需要具备单机仿真的前置知识。

  1. 修改 launch 文件:PX4-Autopilot/launch/multi_uav_mavros_sitl.launch,仿照已有内容,增加uav3,其中fcu_urlmavlink_udp_portmavlink_tcp_port都要 +1 避免重复,上限是10台。(注意起始坐标)

  2. 在单机 offboard 的环境下,src 中新建 offb_node_4_circle.cpp,每架无人机都要定义 NodeHandle 以及设置Offboard enabledVehicle armed

  3. 启动 gazebo:

    cd PX4-Autopilot
    git submodule update --init --recursive
    DONT_RUN=1 make px4_sitl_default gazebo
    roslaunch px4 multi_uav_mavros_sitl.launch
    
  4. 运行 offboard 节点:

    rosrun offboard offb_node
    
  5. 主程序为无人机画圆的过程,启动节点后无人机开始画圆

  6. 如果无人机出现碰撞,则可以调整 launch 文件中的起始位置和 cpp 文件中的 offset。