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/Yworldvehicleguidebugverbosepausedfcu_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=0uav_amount=1uav_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 命名空间,避免两个实例占用同一端口或节点名。