多机示例速览¶
本页用于直接运行和修改现有 6 机示例。LQR、领航—跟随坐标变换和图拉普拉斯一致性项的推导见多机路径跟踪与编队算法。
multi_demo 提供两套 6 机编队示例,固定翼和垂起固定翼均有对应 launch 文件。每架无人机使用独立的 ROS 命名空间、PX4 实例和 MAVROS 连接。
领航—跟随编队¶
leader_uav.py 根据预设矩形航线生成领航者指令,并发布:
/leader/desire_p:领航者位置/leader/desire_v:领航者速度/leader/desire_roll:领航者滚转角
follower_uav.py 订阅这些信息,根据圆形编队偏移计算各跟随者指令。默认编队间距为 20 m,飞行高度基准为 80 m。
启动固定翼示例:
roslaunch px4 6_plane.launch
roslaunch multi_demo 6_leader_follower_plane.launch
启动垂起固定翼示例:
roslaunch px4 6_vtol.launch
roslaunch multi_demo 6_leader_follower_vtol.launch
分布式一致性编队¶
consensus_uav.py 使用环形通信拓扑。每架无人机在 /uavN/consensus_data 发布自身参考点,并只订阅拓扑中的相邻节点。默认轨迹为边长约 1000 m 的闭合矩形,默认编队间距为 20 m。
roslaunch px4 6_plane.launch
roslaunch multi_demo 6_consensus_plane.launch
垂起固定翼版本:
roslaunch px4 6_vtol.launch
roslaunch multi_demo 6_consensus_vtol.launch
调整参数¶
| 目标 | 修改位置 |
|---|---|
| 领航轨迹与巡航速度 | multi_demo/scripts/leader_uav.py |
| 跟随编队间距与队形 | multi_demo/scripts/follower_uav.py |
| 一致性轨迹、通信拓扑与队形 | multi_demo/scripts/consensus_uav.py |
| 无人机数量与命名空间 | multi_demo/launch/*.launch 与对应 px4_launch 文件 |
当前仓库直接提供的是固定 6 机 launch 文件。改变数量时,PX4 实例、MAVROS UDP 端口、命名空间、uav_id 和 uav_amount 必须同步调整,不能只修改其中一个数值。
运行检查¶
rosnode list | grep uav
rostopic list | grep consensus_data
rostopic hz /uav0/control_signal/att
如果某架飞机没有动作,先检查其 /uavN/mavros/state 是否连接、对应控制话题是否持续发布,以及 Gazebo 模型名称是否与 get_local_pose.py 的 uav_type 一致。
逐文件函数参考见API 参考总览。