快速开始¶
本页以固定翼圆轨迹为例。仿真环境和控制示例需要在两个终端中分别启动。
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、控制话题频率和启动终端中的第一条报错。