上篇文章中我们主要讲到了怎么利用Matlab根据仿真多无人机编队的情况,最终的效果通过Matlab的可视化工具展示了出来,这篇文章,我们就来介绍怎么将Matlab的多无人机编队的效果通过Gazebo的3d物理仿真软件展示出来,这里我们主要利用了rotor_simulation的无人机仿真工具。
01
多无人机仿真环境搭建
在多无人机仿真环境搭建中我们主要利用了rotors_simulation的无人机仿真平台,下面将介绍一下如何搭建rotors_simulation无人机仿真平台
本项目的主要实现环境是在ubuntu 18.04、ROS melodic版本下实现的
1 . 下载安装好ROS相关功能包、wstool、catkin-tools
2 . 创建工作文件夹,下载rotor_simulations
mkdir -p ~/catkin_ws/src #创建文件夹catkin_init_workspace #初始化工作空间wstool init #工具初始化wget https://raw.githubusercontent.com/ethz-asl/rotors_simulator/master/rotors_hil.rosinstall #下载rotor_simulation工具wstool merge rotors_hil.rosinstallwstool update
3 . 编译rotors_simulation功能包
cd ~/catkin_ws/catkin build
02
Gazebo多无人机编队实现
多无人机的仿真实现与多机器人类似,具体的原理操作大家可以参考古月居中的多机器人的配置。在本项目中,我们通过编写launch文件,调用rotor_simulation中的文件,以及实现多无人机Gazebo仿真,具体的代码可以参考:multi_uav_simulation.launch
<arg name="mav_name" default="firefly"/> <arg name="world_name" default="cloister"/> <arg name="enable_logging" default="false" /> <arg name="enable_ground_truth" default="true" /> <arg name="log_file" default="$(arg mav_name)" /> <arg name="debug" default="false"/> <arg name="gui" default="true"/> <arg name="paused" default="true"/> <arg name="verbose" default="false"/> <env name="GAZEBO_MODEL_PATH" value="${GAZEBO_MODEL_PATH}:$(find rotors_gazebo)/models"/> <env name="GAZEBO_RESOURCE_PATH" value="${GAZEBO_RESOURCE_PATH}:$(find rotors_gazebo)/models"/> <include