Mavros gazebo PX4 APM多机仿真
前提按照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,在加入一个四轴模型
原来:
改成
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设置如下
iris_with_standoffs_demo1里的model.sdf设置如下
sim_vehicle.py 里的相关代码为
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文件如下
7.roslaunch mavros apm.launch
8.新打开一个终端,输入rostopic list能看到uav0、uav1的mavros消息
9.修改offboard_node.cpp,重新编译,启动节点,就能在gazebo里看到相应的动作了
页:
[1]