导语 今天为大家带来一组教程,为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】中检查服务缴费。
- 二十五架飞机方阵 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
- Airsim中的设置 AirSim模拟器的UE插件需要用clang构建,所以不能使用上步进行编译,可以使用官方所提供的的二进制文件 (https://github.com/microsoft/AirSim/releases), 或者可以在了另一个文件夹中再次克隆AirSim,并在没有上面选项的情况下构建它,然后可以运行Blocks测试文件或者自己所添加的文件。
在AirSim中的设置需要现在【settings.json】文件中个,添加以下行: "PhysicsEngineName":"ExternalPhysicsEngine"
如果需要更改AirSim无人机的视觉模型,可以按照官网教程进行操作: https://youtu.be/Bp86WiLUC80
- 创建 从AirSim的根文件夹执行此操作:
cd GazeboDrone mkdir build && cd build cmake -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 .. make
- 运行 注意此处运行需要先运行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/
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!