Launch 文件¶
平台的启动分为两层:px4_launch 启动仿真器、PX4 与 MAVROS;ROS 功能包内的 launch 文件启动控制节点和算法节点。
PX4 SITL 启动文件¶
首次使用时,将它们复制到 PX4 的 launch 目录:
cp ~/swiftwing_ws/src/px4_launch/*.launch ~/PX4-Autopilot/launch/
| 文件 | 数量 | 模型 | ROS 命名空间 |
|---|---|---|---|
single_plane.launch |
1 | plane_catapult |
无 |
single_vtol.launch |
1 | standard_vtol |
无 |
single_rotor.launch |
1 | iris |
无 |
6_plane.launch |
6 | plane |
/uav0 至 /uav5 |
6_vtol.launch |
6 | standard_vtol |
/uav0 至 /uav5 |
6_rotor.launch |
6 | iris |
/uav0 至 /uav5 |
单机文件常用参数:
roslaunch px4 single_plane.launch gui:=false verbose:=true
可配置参数包括初始位置 x/y/z、姿态 R/P/Y、world、vehicle、gui、debug、verbose、paused 和 fcu_url。
单机算法启动文件¶
single_demo/launch/ 提供 3 种机型与 5 种轨迹的组合,共 15 个文件:
| 轨迹后缀 | 固定翼前缀 | 垂起前缀 | 多旋翼前缀 |
|---|---|---|---|
circle_track |
plane_ |
vtol_ |
rotor_ |
inclinecircle_track |
plane_ |
vtol_ |
rotor_ |
lissajous_track |
plane_ |
vtol_ |
rotor_ |
poly_track |
plane_ |
vtol_ |
rotor_ |
spiraling_up |
plane_ |
vtol_ |
rotor_ |
垂起 launch 还会设置 uav_id=0、uav_amount=1 和 uav_type=standard_vtol,并启动真值位姿转发节点。
多机算法启动文件¶
| 文件 | 用途 |
|---|---|
leader_plane.launch / leader_vtol.launch |
单独启动领航者 |
single_follower_plane.launch / single_follower_vtol.launch |
启动一架指定编号的跟随者 |
6_leader_follower_plane.launch / 6_leader_follower_vtol.launch |
1 架领航者 + 5 架跟随者 |
6_consensus_plane.launch / 6_consensus_vtol.launch |
6 机分布式一致性编队 |
单独调试编号为 2 的固定翼跟随者:
roslaunch multi_demo single_follower_plane.launch uav_id:=2 uav_amount:=6
命名空间与编号规则¶
- 单机:MAVROS 与控制话题位于根命名空间,例如
/mavros/state。 - 多机:第
N架飞机使用/uavN,例如/uav3/mavros/state。 uav_id从 0 开始,且必须与 PX4 实例和 Gazebo 模型编号一致。uav_amount决定控制类采用单机还是多机话题格式。
编辑多机 launch 文件时,应同时检查 MAVLink UDP 端口、PX4 实例编号、模型名称、生成位置与 ROS 命名空间,避免两个实例占用同一端口或节点名。