导语
今天为大家带来一组教程,为ROS中使用AirSim提供了教学示例。其中包含有AirSim的settings.json,roslaunch和rviz文件的讲解。针对如何在AirSim中添加其他飞机模型,我们在最后讲解了怎么将Gazebo中的飞行模型导入到AirSim中,快来和阿木一起看看吧。
一、设置
1.首先检查是否已经完成airsim_ros_pkgs的安装程序和其他必要的安装。
$ cd PATH_TO/AirSim/ros
$ catkin build airsim_tutorial_pkgs
2.请注意,这里如果您的GCC版本不是8以上的版本,则会导致编译失败。
catkin build airsim_tutorial_pkgs -Dcmake_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g -8
注意:
对于运行示例,以及每当打开新终端时,【setup.bash】都需要获取文件。如果您经常使用 ROS wrapper,则可以添加【source PATH_TO/AirSim/ros/devel/setup.bash】到【~/.profile】或【~/.bashrc】中,这样可以避免每次打开新终端时都需要运行该命令。
二、示例
1.搭载单目和深度相机以及激光雷达的单无人机
- Settings.json - front_stereo_and_center_mono.json
$ source PATH_TO/AirSim/ros/devel/setup.bash
$ roscd airsim_tutorial_pkgs
$ cp settings/front_stereo_and_center_mono.json ~/Documents/AirSim/settings.json
## Start your unreal package or binary here
$ roslaunch airsim_ros_pkgs airsim_node.launch;
# in a new pane / terminal
$ source PATH_TO/AirSim/ros/devel/setup.bash
$ roslaunch airsim_tutorial_pkgs front_stereo_and_center_mono.launch
以上是使用tf’s启动的rviz。通过使用depth_to_pointcloud启动文件并使用depth_image_proc注册的RGBD云端。
2.两架无人机,并且每架都有摄像头、激光雷达、IMU模块
- Settings.json - two_drones_camera_lidar_imu.json
$ source PATH_TO/AirSim/ros/devel/setup.bash
$ roscd airsim_tutorial_pkgs
$ cp settings/two_drones_camera_lidar_imu.json ~/Documents/AirSim/settings.json
## Start your unreal package or binary here
$ roslaunch airsim_ros_pkgs airsim_node.launch;
$ roslaunch airsim_ros_pkgs rviz.launch
可以在rivz中查看tfs,并在【rostopic list】和【rosservice list】中检查服务缴费。
3. 二十五架飞机方阵
- Settings.json - twenty_five_drones.json
$ source PATH_TO/AirSim/ros/devel/setup.bash
$ roscd airsim_tutorial_pkgs
$ cp settings/twenty_five_drones.json ~/Documents/AirSim/settings.json
## Start your unreal package or binary here
$ roslaunch airsim_ros_pkgs airsim_node.launch;
$ roslaunch airsim_ros_pkgs rviz.launch
同上,可以在rivz中查看tfs,并在【rostopic list】和【rosservice list】中检查服务缴费。
Gazebo仿真软件中所使用的飞机模型,也可以直接导入到AirSim中,并且能够使用Gazebo无人机作为飞机动力学模型(FDM)并且生成环境传感器数据。可以实现多轴飞行器,固定翼以及任何其他飞行器模型。
四、导入Gazebo模型
1.确保已经安装了Gazebo依赖项:
sudo apt-get install libgazebo9-dev
2. AirLab
该项目是从GCC 8构建出来的,所以AirLib也需要用GCC 8进行构建,从AirSim的根文件进行运行:
./clean.sh
./setup.sh
./build.sh --gcc
3. Airsim中的设置
AirSim模拟器的UE插件需要用clang构建,所以不能使用上步进行编译,可以使用官方所提供的的二进制文件
(https://github.com/microsoft/AirSim/releases),
或者可以在了另一个文件夹中再次克隆AirSim,并在没有上面选项的情况下构建它,然后可以运行Blocks测试文件或者自己所添加的文件。
在AirSim中的设置需要现在
【settings.json】
文件中个,添加以下行:
"PhysicsEngineName":"ExternalPhysicsEngine"
如果需要更改AirSim无人机的视觉模型,可以按照官网教程进行操作:
https://youtu.be/Bp86WiLUC80
4. 创建
从AirSim的根文件夹执行此操作:
cd GazeboDrone
mkdir build && cd build
cmake -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g -8 ..
make
5. 运行
注意此处运行需要先运行AirSim模拟器和Gazebo模型,然后从AirSim根文件夹执行命令:
cd GazeboDrone/build
./GazeboDrone
参考资料:
1.有关ROS API的相关资料可以参考:
https://github.com/microsoft/AirSim/blob/master/docs/airsim_ros_pkgs.md
2.AirSim中ROS使用教程:
https://microsoft.github.io/AirSim/airsim_tutorial_pkgs/
3.导入Gazebo仿真模型:
https://microsoft.github.io/AirSim/gazebo_drone/
阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。