rviz_plugin 的使用
除直接修改 fcu_mission.cpp 进行任务规划外,还可使用 rviz_plugin 插件设置航点。插件源代码位于 fcu_core_rviz_swarm_goals_plugin。RViz 自动加载插件后,可在界面中设置航点并执行轨迹。插件将任务发送至 fcu_mission.cpp,由该模块完成任务规划。
界面介绍

- 选择显示界面
该区域使用 RViz 原生功能,用于选择显示界面中的可视化组件。详细说明参见 RViz 官方文档。
- 控制界面
该区域为自定义控制界面,源代码位于 fcu_core_rviz_swarm_goals_plugin。
控制界面使用
基础按键区域

- 解锁:启用无人机动力系统。解锁后,飞控才能向无刷电机的电调和舵机发送控制信号;锁定状态下,电调和舵机不接收控制信号。
解锁前,必须确认无人机所需传感器(如 IMU、光流传感器和气压计)工作正常。 此外,光流定位模式下,需将无人机提起至离地 1 m 处,完成光流初始化后放回地面,才允许解锁。SLAM 定位模式下,飞控必须收到外部输入的里程计(Odom)数据,即机载电脑通过串口发送的里程计数据。若不满足相应条件,解锁将失败,飞控会发出提示音。
-
锁定:关闭无人机动力系统,停止向无刷电机的电调和舵机发送控制信号。SD 卡中的 Mlog 日志记录区间为
飞控解锁->飞控锁定。 -
起飞:解锁后,无人机以
自动起飞速度上升至起飞高度,随后悬停。这两个参数均在 FanciSwarm App 中设置。 -
降落:无人机以
自动降落速度下降至降落锁定高度,随后锁定电调。这两个参数均在 FanciSwarm App 中设置。 -
前视追踪至自由追踪:对应目标追踪案例中的各类追踪模式,使用方法参见相应案例。启动追踪后,无法通过 rviz_plugin 控制无人机移动。
航点设置区域

rviz_plugin 提供航点设置功能,最多支持 6 架无人机。各无人机的航点列表如下图所示:

航点的位置使用当前定位系统全局坐标系下的绝对坐标。位置单位为米,界面中的偏航角单位为度。设置前,请确认当前无人机的坐标原点、坐标轴方向和显示位置。
航点设置方法:
-
在
航点编辑区域添加、删除或修改航点。- 添加空航点:复制当前航点列表中的最后一个航点,并将副本添加至列表末尾。


- 插入航点:选中目标航点后,点击
插入航点,在该航点后插入一个相同的航点。


- 删除航点:选中目标航点后,点击
删除航点,删除该航点,后续航点依次前移。


- 上移/下移:选中目标航点后,调整其在列表中的位置。
-
使用 RViz 自带的
2D Nav Goal工具设置目标点。- 选择
2D Nav Goal工具。

- 在显示界面中点击目标位置,并拖动鼠标设置偏航角(yaw)。

- 选择
航点执行区域

执行轨迹、单步执行 和 循环执行 同时作用于所有活动无人机,不受当前选中的无人机标签页限制。执行前,请核对活动无人机数量及各机的航点列表。
-
执行轨迹:同时启动所有活动无人机的航点任务,各机按各自航点列表的顺序执行。启用循环执行后,各机将重复执行各自的航点列表。

-
单步执行:每次点击同时触发所有活动无人机各自的下一个航点。确认各机当前航点均执行完成后,再次点击可继续执行后续航点。
-
停止轨迹:停止下发后续航点;已发送至无人机的航点无法撤回,该操作不保证无人机立即悬停。
航点的保存/加载

-
保存目标点:将当前所有无人机的航点列表保存为 TXT 文本文件,保存路径由用户指定。
-
加载目标点:选择航点文件,使用文件中的数据覆盖当前航点列表。加载前,请先保存需要保留的航点;加载后,逐一核对各无人机的航点数量和坐标。
可调参数区域

-
活动无人机数量(默认值:6,最大值:6):设置参与任务的无人机数量,并控制对应航点列表的启用状态。

减小该值后,可使用的无人机航点列表数量随之减少。

-
每机最大航点数(默认值:50):设置每架无人机航点列表中的航点数量上限。
-
默认高度:使用 RViz 的
2D Nav Goal工具时,只能设置 x、y 坐标,航点高度由默认高度参数指定。 -
相对移动步长/转向步长:用于
相对控制区域。移动步长决定前进、后退、上升、下降、左移、右移的单次移动距离;转向步长决定左转、右转的单次转向角度。
-
到点距离阈值:用于判断无人机是否到达航点,以无人机与目标点之间的欧氏距离为依据。默认不将 z 轴高度纳入判断。
-
到点偏航阈值:用于判断无人机偏航角(yaw)是否满足航点要求,单位为度,默认不启用。
如需启用 z 轴高度判断和偏航角判断,请将下图所示的对应标志位设为 false。

- 到点悬停时间:设置无人机到达航点后的悬停时间。不需要悬停时,设为
0.0。
相对控制区域

以无人机最后一个目标点的位姿为参考,在航点列表中添加相对位姿航点,用于微调无人机位置和朝向。
虚拟围墙设置区域

虚拟围墙仅用于可视化显示,不对无人机运动施加约束。
