PX4之Gazebo多机仿真尝试



在这里插入图片描述


运行多机前,确保你的单机运行没有问题。
Px4源码中已经包含了二机的仿真,运行以下命令:


roslaunch px4 multi_uav_mavros_sitl.launch

    修改Launch相关代码,实现四机仿真:
    模仿单机UAV1的写法,完成UAV1-4的编写。


        <! UAV1 >
    <group ns=“uav1”>
    <! MAVROS and vehicle configs >
    <arg name=“ID” value=“1”/>
    <!<arg name=“fcu_url” default=“udp://:14540@localhost:14557”/>>

    <arg name=“fcu_url” default=“udp://:14540@127.0.0.1:14557”/>
    <! PX4 SITL and vehicle spawn >
    <include file=“$(find px4)/launch/single_vehicle_spawn.launch”>
    <arg name=“x” value=“1”/>
    <arg name=“y” value=“0”/>
    <arg name=“z” value=“0”/>
    <arg name=“R” value=“0”/>
    <arg name=“P” value=“0”/>
    <arg name=“Y” value=“0”/>
    <arg name=“vehicle” value=“$(arg vehicle)”/>
    <arg name=“rcS” value=“$(find px4)/posix-configs/SITL/init/$(arg est)/$(arg vehicle)_1”/>
    <arg name=“mavlink_udp_port” value=“14560”/>
    <arg name=“ID” value=“$(arg ID)”/>
    </include>
    <! MAVROS >
    <include file=“$(find mavros)/launch/px4.launch”>
    <arg name=“fcu_url” value=“$(arg fcu_url)”/>
    <arg name=“gcs_url” value=“”/>
    <arg name=“tgt_system” value=“$(arg ID)”/>
    <arg name=“tgt_component” value=“1”/>
    </include>
    </group>

    在这里插入图片描述
    运行多机仿真mavros


    roslaunch px4 multi_uav_mavros_sitl.launch
    • 1

    在这里插入图片描述
    修改基础的offboard节点,添加发布节点为UAV1-4,并完成编译


    catkin_make
    source devel/setup.sh

    • 1
    • 2
    • 3

    在这里插入图片描述
    运行offboard


    rosrun offboard offboard
    • 1

    在这里插入图片描述
    很多东西还没有理解
    多机之间的飞行策略有问题,延时太大等等等,各种节点的操作处理,没有明白。