快速开始

本页以固定翼圆轨迹为例。仿真环境和控制示例需要在两个终端中分别启动。

1. 启动 PX4 SITL

终端 A:

source /opt/ros/noetic/setup.bash
source ~/swiftwing_ws/devel/setup.bash
roslaunch px4 single_plane.launch

等待 Gazebo 加载完成,并确认 MAVROS 已连接 PX4。可在新终端检查:

rostopic echo -n 1 /mavros/state

输出中的 connected 应为 True

2. 启动轨迹示例

终端 B:

source /opt/ros/noetic/setup.bash
source ~/swiftwing_ws/devel/setup.bash
roslaunch single_demo plane_circle_track.launch

vector_fw.py 会完成固定翼控制节点初始化并尝试起飞、切入 OFFBOARD;circle_track.py 根据当前位置计算圆轨迹期望速度,并发布到 /control_signal/vector

3. 更换机型

机型 PX4 启动命令 圆轨迹示例
固定翼 roslaunch px4 single_plane.launch roslaunch single_demo plane_circle_track.launch
垂起固定翼 roslaunch px4 single_vtol.launch roslaunch single_demo vtol_circle_track.launch
多旋翼 roslaunch px4 single_rotor.launch roslaunch single_demo rotor_circle_track.launch

停止上一组节点后再更换机型,避免 Gazebo 模型、MAVROS 端口和 ROS 节点重名。

4. 更换轨迹

circle_track 替换为以下名称即可:

  • inclinecircle_track:倾斜圆轨迹
  • lissajous_track:Lissajous 曲线
  • poly_track:多项式轨迹
  • spiraling_up:螺旋上升轨迹

例如,运行垂起固定翼的多项式轨迹:

roslaunch px4 single_vtol.launch
roslaunch single_demo vtol_poly_track.launch

两条命令需要在两个已加载环境变量的终端中执行。

5. 运行 6 机示例

先启动 6 架固定翼 SITL:

roslaunch px4 6_plane.launch

再选择一种编队算法:

roslaunch multi_demo 6_leader_follower_plane.launch

或:

roslaunch multi_demo 6_consensus_plane.launch

垂起固定翼版本把命令中的 plane 替换为 vtol。多机仿真会同时启动多个 PX4、MAVROS 和控制节点,建议先关闭其他 Gazebo/PX4 实例,并确认计算机资源充足。

运行检查

rosnode list
rostopic list | grep control_signal
rostopic hz /control_signal/vector

单机模式的话题没有命名空间;多机模式使用 /uav0/uav1 等命名空间。若无人机未进入预期状态,先检查 /mavros/state、控制话题频率和启动终端中的第一条报错。