查看: 760|回复: 0

Mavros gazebo PX4 APM多机仿真

[复制链接]

346

主题

380

帖子

1075

积分

金牌飞友

Rank: 6Rank: 6

积分
1075
飞币
691
注册时间
2017-7-31
发表于 2022-10-23 22:57:20 | 显示全部楼层 |阅读模式
前提

按照Ros Mavros gazebo OFFBOARD 和 APM Gazebo两篇文章,把相关环境、软件都安装配置好。
PX4

        PX4进行多机仿真比较容易,相关的资料也比较全。

  • roslaunch px4 multi_uav_mavros_sitl.launch
  • 打开另一个终端,输入rostopic         list就可以看到uav0、uav1、uav2的mavros消息了
  • 修改offboard_node.cpp文件,加入uav0、uav1、uav2的mavros消息订阅,catkin         build重新编译一下
  • rosrun offboard_pkg offboard_node 即可实现多机仿真
APM

        ardupilot 多机仿真相关的资料比较少,下面以两个gazebo-iris四轴无人机仿真为例

  • 在之前下载好的ardupilot_gazebo/worlds/文件里的iris_ardupilot.world文件复制一下,作为修改模板
  • 打开复制好的iris_ardupilot.world,在加入一个四轴模型
    原来:

Mavros gazebo PX4 APM多机仿真-1.jpg
改成

Mavros gazebo PX4 APM多机仿真-2.jpg
3.可以发现新加入了iris_1,uri为model://iris_with_standoffs_demo1,因此需要在gazebo/models文件夹下面新建一个iris_with_standoffs_demo1文件夹,里面的model.config、model.sdf文件与iris_with_standoffs_demo里的基本相同。
除了,因为每个模型要与apm固件实现联合仿真,需要有固定的网络接口。参考相关资料及sim_vehicle.py         发现每加入一个模型,其对应的fdm_port_in、fdm_port_out就要加10,因此,
iris_with_standoffs_demo里的model.sdf设置如下
  

Mavros gazebo PX4 APM多机仿真-3.jpg
iris_with_standoffs_demo1里的model.sdf设置如下

Mavros gazebo PX4 APM多机仿真-4.jpg
sim_vehicle.py 里的相关代码为

Mavros gazebo PX4 APM多机仿真-5.jpg
4.gazebo --verbose iris_ardupilot_two.world 会看到打开的gazebo里有两个四轴

5.开启ardupilot         sitl仿真
四轴1:../Tools/autotest/sim_vehicle.py         -f gazebo-iris -I0 --sysid=1
四轴2:../Tools/autotest/sim_vehicle.py         -f gazebo-iris -I1 –sysid=2
-I0、-I1对应上图中sim_vehicle.py里的i
此外,查看终端发现四轴1打开的是127.0.0.1:14551/14550两个端口,四轴2打开的是127.0.0.1:14561/14560端口,后面修改apm.launch文件的时候要用的

6.修改apm.launch文件如下
  


Mavros gazebo PX4 APM多机仿真-6.jpg
7.roslaunch mavros apm.launch         

8.新打开一个终端,输入rostopic         list能看到uav0、uav1的mavros消息

9.修改offboard_node.cpp,重新编译,启动节点,就能在gazebo里看到相应的动作了
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表