AirSim 官方Github: https://github.com/Microsoft/AirSim
AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究)。
AirSim 没有独立的官网,它托管在 Github 上面。
AirSim 使用了 Unreal Engine 作为自己的图像开发引擎。所以想要运行AirSim,我们必须先会用Unreal Engine和它使用的平台工具。
下面我简单介绍一下 Unreal Engine,和如何使用它。
Unreal是UNREAL ENGINE(虚幻引擎)的简写,由Epic开发,是目前世界知名授权最广的游戏引擎之一,占有全球商用游戏引擎80%的市场份额。
“Unreal Engine 3”3D引擎采用了目前最新的即时光迹追踪、HDR光照技术、虚拟位移…等新技术,而且能够每秒钟实时运算两亿个多边形运算,效能是目前“Unreal Engine”的100倍,而通过nVIDIA的GeForce 6800显示卡与“Unreal Engine 3”3D引擎的搭配,可以实时运算出电影CG等级的画面,效能非常非常恐怖。
基于它开发的大作无数,除《虚幻竞技场3》外,还包括《战争机器》、《质量效应》、《生化奇兵》等等。在美国和欧洲,虚幻引擎主要用于主机游戏的开发,在亚洲,中韩众多知名游戏开发商购买该引擎主要用于次世代网游的开发,如《剑灵》、《TERA》、《战地之王》、《一舞成名》等。 iPhone上的游戏有《无尽之剑》(1、2、3)、《蝙蝠侠》等
想要使用 Unreal Engine,我们需要下载 Epic 开发的 Epic Games Launcher。然后,从 Epic Games Launcher 中再下载所需要版本的 Unreal Engine。
2.1 下载和安装 Epic Games Launcher
在 Unreal Engine 官网下载所对应系统的 Epic Games Launcher。
https://www.unrealengine.com/download
2.2 下载 Unreal Engine 4.18
现在的版本应该是4.19,开始的时候可能找不到 4.18,注意版本号旁边有一个小三角,下拉可以选择版本。(4.19没经过测试,不知道行不行)
2.3 下载虚拟场景
选择 Epic Games Launcher 中左侧的 Learn,然后在右侧的页面中一直下拉找到 Landscape Mountains点进去。这个场景是官方教程使用的,大家都用它。
选择 Create Project,然后选择一个路径存下(路径要看一下,因为下面要用到)。
这个场景是比较小的,不过也有 2G 左右。请耐心等待。
下载好场景,Unreal Engine 这一块的任务就基本完成啦。
参考文献
[1] http://www.cnblogs.com/frankfanxinqi/p/8119931.html
[2] https://baike.baidu.com/item/Unreal/4754084?fr=aladdin
[3] https://github.com/Microsoft/AirSim/blob/master/docs/build_windows.md
AirSim 的官方对Linux下编译过程的说明 Github: https://github.com/Microsoft/AirSim/blob/master/docs/build_linux.md
对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把无人车,无人机以插件的形式加入 Unreal 的场景中。
下面是如何在mac电脑上运行 AirSim。
若是自己的mac已经更新到最新版本的话,就可以直接在app store上下载xcode;否则,像我的电脑是10.12.6,没法直接在app store上面下载,因为xcode只支持最新版本。所以可以选择更新系统,或者,去官网下载旧版本,一样可以用。(推荐下载旧版本)
https://developer.apple.com/download/
页面上没有旧版本,不要慌,看这里:
我下载的这两个,然后在shell中输入:
xcode-select --install
若是出现下面,说明Command Line Tools安装成功了
xcode-select: error: command line tools are already installed, use “Software Update” to install updates
然后可以打开xcode,去新建一个c++项目,看看是否能正确运行出来。
xcode的是否正确安装会影响UE4的编译问题。
依次运行下面的命令:
git clone https://github.com/Microsoft/AirSim.git
cd AirSim
./setup.sh
./build.sh
我在setup时第一次出错了,又运行了一次就争取通过了;但是build上面卡了很久,一直报错:
原因是找不到cmake的编译器,gcc和g++,解决方案是在配置文件
vim ~/.bash_profile
添加两行语句:
export CMAKE_C_COMPILER="/usr/bin/gcc"
export CMAKE_CXX_COMPILER="/usr/bin/g++"
编译通过!(在此特意感谢世杰大佬的帮忙~)
3.1运行AirSim自带的环境
cd Unreal/Environments/Blocks/
双击Blocks.uproject运行,可能会提醒重新编译,正常一步步进行后会打开界面(渲染可能还需要一段时间):
然后点击播放按钮,就可以玩游戏啦~
3.2运行UE4下载的环境
把unreal/plugins文件夹复制到LandscapeMountains文件夹的根目录下。这样你的工程就有了一个airsim的插件,双击打开LandscapeMountains.uproject即可自动编译运行。
ps:注意检查plugins/AirSim文件夹下是否包含Binaries文件夹,因为有可能在打开.uproject时报错说缺少二进制文件导致无法正常编译。
打开UE4后,要在你的环境中做的第一件事情就是设置PlayerStart对象。在LandscapeMountains的环境中,PlayerStart对象已经存在了,你可以在世界大纲视图找到它。确保你的位置设置为如图所示,这是airsim插件创建和放置载具的地方。如果太高载具会在你输入随机行为的时候立即坠落。
在如下的窗口/世界设置,把GameMode Override设置为AirSimGameMode:
然后点击播放按钮。现在你已经可以在你的Unreal环境中使用airsim了。
运行后会让你选择是否使用车辆,若选择‘yes’,则是驾驶车辆状态,若选择’no’,则是无人机状态。
car:使用键盘上的方向键来手动驾驶。按住空格来刹车。在手动驾驶模式,档被设置为“自动”;可以按下F键来获取第一人称视角,再按/来回到俯视视角。更多快捷键可按F1来获取。默认情况下包含了三个相机:中间的,左边的和右边的。你可以通过选择相机的id0,1,2来获得对应方向的图像。按下’R’,录制图片。
官方文档:https://github.com/Microsoft/AirSim/blob/master/docs/apis.md
使用python3(python2试过,好像不行,不是特别确定)
具体步骤:首先在UE4上面运行AirSim,然后python hello_car.py