AirSim无人机仿真(Ubuntu18.04)

2023-05-16

安装过程:

1.先要安装Unreal Engine。需要在官网(https://www.unrealengine.com/)注册账号,并用github拉取代码,最后在终端执行安装操作

cd UnrealEngine
./Setup.sh
./GenerateProjectFiles.sh
make

特别注意,UE整个下载安装非常消耗系统空间(估计有70G左右),建议在安装前预留系统空间100G,整个过程也十分耗时,要是网速不好,可能需要十几个小时下载完十几G内容。

2.安装AirSim(确保1中make成功),从github上克隆源码(GitHub - microsoft/AirSim: Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research),然后在终端执行安装操作

cd AirSim
./setup.sh   #要是不需要car,则 ./setup.sh --no-full-poly-car
./build.sh

同样地,该过程也比较耗时,耐心等待。

步骤1和2基本不会出现什么问题,因为仅仅是安装编译过程,如果不放心,在步骤1前,先更新系统。

运行AirSim测试环境:

1.在终端启动UE

cd ~/UnrealEngine/Engine/Binaries/Linux/ #注意自己安装的路径
./UE4Editor

如果出现问题,例如出现vulkan,请检查系统是否有安装nvidia驱动(用 nvidia-smi检查),若没有,则需要根据系统配置安装显卡驱动,安装完成后,重启电脑,重新执行命令。

2.加载空白工程,直接在界面中打开项目 AirSim/Unreal/Environments/Blocks/Blocks.uproject,为了提高性能,需要在设置中勾选 使用较少CPU(播放按钮下拉,选择高级设置,搜索CPU),最后在 choose vehicle界面选择 否(启动无人机)。

3.启动控制器,控制无人机飞行

cd ~/AirSim/PythonClient/multirotor/
python3 hello_drone.py

如果出现问题,可能是没有安装python环境的AirSim,在终端安装即可

pip3 install msgpack-rpc-python
pip3 install airsim
pip3 install opencv-python

外部加载场景:

1.从相应的网站下载模型(例如 Release v1.3.1 - Linux · microsoft/AirSim · GitHub);

2.将模型解压后放到 AirSim/Unreal/Environments文件夹下,然后在 ../Binaries/Linux下双击可执行文件,启动场景仿真;

3.如果不熟悉界面操作,在场景中按F1会弹出命令指导;

4.启动multirotor控制器,即可控制场景中的无人机起飞;

注意,在场景界面中按F11可以将场景缩小只一定范围(避免场景最大化,而无法操作命令行终端)。

参数设置(settings.json):

1.默认地,在ubuntu中,settings.json文件在 ~/Documents/AirSim/ 文件夹下;

2.每次更改settings.json中的内容,需要重新播放UE4,否则更改参数不生效;

3.要是运行的是外部场景,则每次修改settings.json后,也是需要重新启动外部场景;

4.无人机中坐标系是这样的,向前为X轴,向右为Y轴,向下为Z轴,遵循右手坐标系;

5.

无人机中加入雷达:

1.先在settings.json中增加雷达传感器;

2.启动场景后,再启动airsim的ros节点(注意要source一下,建议写成脚本);

roslaunch airsim_ros_pkgs airsim_node.launch

3.则可以在场景视图中看到雷达点云;

4.ros节点运行后也可以在rviz中看到所有的话题;

场景运动物体模型添加:

1.需要在UE编辑器中打开蓝图进行操作;

2.需要添加的运动物体可以从一些3D模型网站上免费下载(Hot Air Balloon Set 3D Moddel free 3D model | CGTrader);

3.要让模型能够在场景中运动(飞行),需要使用蓝图工具对模型进行轨迹设定;

----------

问题集锦:

1.编译 AirSim/ros,出现yaml-cpp的部分库未定义,这是CMakeLists.txt没有找到yaml库,需要在CMakeLists.txt中添加库的路径(前提是系统安装了yaml-cpp)

#add yaml-cpp

find_package(yaml-cpp REQUIRED)

include_directories(include ${YAML_CPP_INCLUDE_DIRS})

link_directories(${YAML_CPP_LIBRARY_DIRS})

2.有时候修改settings.json文件后,发现无法启动场景,这可能是因为在修改settings.json文件时无意使用了中文输入法。千万不能在settings.json文件中输入中文符号(例如空格)!此外也要注意参数后面的逗号(每块的最后一个参数后面不需要逗号)

3.有时候重新打开场景,但是无法正常启动,有可能是之前的UE4Editor编辑器的进行没有及时退出,需要在系统监视器中将其杀死

4.无人机的激光雷达模块在实际的应用过程中可能会存在一定的问题(尤其是想得到高分辨率点云效果),不能完全按照教程来调整参数(也许airsim本身针对雷达传感器的模拟就有bug),需要不断尝试参数的搭配。。。

5.激光雷达传感器模型获取场景的点云,尤其是目标物体,例如树木、动物、石头等之类的,能否得到对应物体表面的3D轮廓数据,需要该场景是否能够将物体的的表面物理状态模拟的跟物体外形轮廓一致,否则,明明场景中有物体,但是就是无法探测到物体上的点云信息(如下图右边点云中就没有地面动物的点云信息!),此外也有可能明明物体是一棵大树,但是点云显示的却是一个球体。虽然很多时候,场景中所有细节均能够在相机图像中显示出来,但是却不一定能在激光雷达中显示出来,这个跟场景建模有关!

 

6.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AirSim无人机仿真(Ubuntu18.04) 的相关文章

随机推荐