Airsim动态 | ROS教程(AirSim ROS Tutorial)


导语

今天为大家带来一组教程,为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 GazeboDronemkdir build && cd buildcmake -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.html

2.AirSim中ROS使用教程:

https://microsoft.github.io/AirSim/airsim_tutorial_pkgs/

3.导入Gazebo仿真模型:

https://microsoft.github.io/AirSim/gazebo_drone/

阿木实验室致力于前沿IT科技的教育和智能装备,让机器人研发更高效!

公众号:阿木实验室 ( 领取免费资料包)

官方淘宝店:阿木实验室(可购买硬件配件)

硬件咨询:yanyue199506(欢迎洽谈合作)

课程咨询:jiayue199506 (免费领取机器人工程师学习计划)

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。