AirSim 的官方 Github: https://github.com/Microsoft/AirSim

对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把无人车,无人机以插件的形式加入 Unreal 的场景中。

下面是如何编译 AirSim。

1 下载 Visual Studio 2015 Update 3

建议大家下载 Visual Studio Professional 2015 with Update 3,我之前使用的 Visual Studio Community 2015 with Update 3 遇到一些问题。不过具体是不是 Community 版本造成的,我后来也不是特别清楚。

只有 Community 是免费版的。

鉴于碰见朋友找不到下载链接,给一个 Visual Studio 2015 with Update 3 的传送门。

http://blog.csdn.net/luckypeng/article/details/54342659

*官方强调了只有 VS 2015 update 3 他们测试过,其他版本即使是 2017 版也可能带来各种问题。

2 通过 VS 2015 内置 Git 克隆 AirSim 到本地 [1]

在 VS 中选择 Team,然后选择 Mange Connections

然后,在右侧的 Team Explorer 中展开 Local Git Repositories。选择 Clone,第一行输入 URL 为 AirSim 的官方 Github https://github.com/Microsoft/AirSim, 第二行选择本地的存储地址。然后,点击 Clone。

3 配置 eigen [1]

简单说一下,eigen是开源的 C++ 库, 用于线性代数,矩阵,矢量运算,数值分析及其相关算法 [2]。

在官网下载 eigen,http://eigen.tuxfamily.org/index.php?title=Main_Page

将其解压在一个新文件夹中,并将此文件夹的一级目录命名为 eigen。

打开设置系统环境变量:开始 -> 右键“计算机”-> 选择“属性” -> 在左侧,选择“高级系统设置”-> 高级中找到“系统变量”

在系统变量中新建一个,输入变量名字 EIGEN_ROOT,然后将变量值设置为自己刚刚建立的 eigen 目录。

确定后入下图,

但是,在这里一定要把所有的确定键都按了,然后重启电脑,这里的配置才能生效。

*在Github上有人说可以将这个 eigen 库直接拷贝到 AirSim/AirLib 目录下,这样虽然保证我在下面一步能够编译成功,最终还是在和 Unreal 一起编译的时候出现了问题。很多人最后是通过从 Win7 换到 Win10 解决的。但是,我发现只要使用环境变量的配置方式能够保证最后的成功的。

*所以,不要去拷贝这个库!

*在这一步,如果使用的是学校或者公司的电脑,一定要配置到系统变量中。我使用公司的电脑,用户管理这里做的比较复杂,配置到用户变量中完全没有起作用。这才导致我会尝试去拷贝这个库,但这是一个完全错误的做法。如果你的电脑环境也很复杂,请直接修改在系统变量。

4 修改一个运用 eigen 部分代码的 bug

我不太清楚这个 bug 出现了很久为什么一直没有更正。这个 bug 是 [1] 中的大牛发现的。它是一个在注释部分使用了非 UTF-8 编码的双引号导致的。

我们需要进入到 AirSim 目录中,找到 \AirSim\AirSim_3\AirLib\deps\eigen3\Eigen\src\Core\arch\CUDA\half.h

打开 half.h 找到第 16 行的一个 "AS IS",将它的引号替换一下。

5 更新 Powershell [3]

由于 Win7 自带的 Powershell 只有2.0,我们需要用到高版本的 Powershell。

首先,查看自带 Powershell的版本。开始->附件->Windows Powershell,打开 Powershell。输入get-host查看版本 [4]。

在网站下载 Powershell 5.0版本。因为微软没有提供独立的 Powershell 更新包,它被放在了Windows Management Framework”的组件中。

请在下面的链接中下载 https://www.microsoft.com/en-us/download/details.aspx?id=50395

.msu 文件即微软的 microsoft software update 的缩写。

如果担心出新问题,请提前在控制面板中卸载旧版本的 Windows Management Framework。

6 Build AirSim

终于到要 Build 的时候了。如果上面配置都正确的话,从开始中打开 Developer Command Prompt for VS 2015。Windows 的命令行操作和 Linux 大致一样,进入目录使用的依然是 cd 命令。不过,如果从 c 盘进入 d 盘,不需要要输入 cd 直接在命令行输入 "d:"。列出目录不再是 "ls",而换成了 "dir"。然后,进入到 AirSim的目录中,执行 build.cmd。

写在后面

如果顺利的话就可以编译成功了,但是大家往往在这里会遇到各种各样的问题。建议,首先看一下是不是都按照上面的做了。然后,如果还有问题可以在 AirSim 官方的 Github 中的 Issues 查看一下。

AirSim的 Issues: https://github.com/Microsoft/AirSim/issues

AirSim 的官方 Github: https://github.com/Microsoft/AirSim

我之前遇到的一个问题,下午 6 点左右发上去,晚上 9 点就有人回复给我了。让我深深感受到了开源的力量。

参考文献

[1] http://blog.csdn.net/u011860814/article/details/60469441

[2] https://baike.baidu.com/item/Eigen/18001249?fr=aladdin

[3] http://www.boxfun.net/2017/02/10/upgrade-powershell-to-new-version/

[4] http://www.boxfun.net/2017/02/10/review-powershell-version/

开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim的更多相关文章

  1. 开源自动驾驶仿真平台 AirSim (1) - Unreal Engine

    AirSim 官方Github: https://github.com/Microsoft/AirSim AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究 ...

  2. 开源自动驾驶仿真平台 AirSim (3) - 运行 AirSim

    AirSim 的官方 Github: https://github.com/Microsoft/AirSim 之前配置了很多,终于要让 AirSim 自己跑起来了. 我们需要把 AirSim 这个插件 ...

  3. NXP开源自动驾驶计算平台Bluebox 打造现实无人汽车

    知名半导体制造商恩智浦NXP已经准备好了自家的自动驾驶计算开源平台Bluebox,将为汽车制造商提供现成的一体化自动 驾驶计算解决方案.专为自动驾驶设备的BlueBox中央计算引擎.不仅能够为无人驾驶 ...

  4. 基于DRL和TORCS的自动驾驶仿真系统——之环境配置

    基于DRL和TORCS的自动驾驶仿真系统 --之环境配置 玩TORCS和DRL差不多有一整年了,开始的摸爬滚打都是不断碰壁过来的,近来在参与CMU的DRL10703课程学习和翻译志愿者工作,也将自己以 ...

  5. 线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评

    全球自动驾驶创业公司最主流的测试开发用车是林肯MKZ,这是因为其高性能高精度的线控能力表现,易于使用逆向工程实现改装,以及存在成熟的线控改造服务提供商AS和Dataspeed,共同为自动驾驶初创及辅助 ...

  6. Mechanical Simulation借助UE发力自动驾驶仿真

    Source https://www.unrealengine.com/en-US/blog/making-autonomous-vehicles-safer-before-they-hit-the- ...

  7. 自动驾驶缺人才?听听David Silver怎么说!

    如今自动驾驶在全球范围内的发展势头愈发“凶猛”,该领域人才也一度被视为“香饽饽”. 即使在美国,自动驾驶工程师的起薪也已经突破了25万美元,我国‘“开价”之高更是令人咋舌. 人才.人才.还是人才!重要 ...

  8. 自动驾驶汽车数据不再封闭,Uber 开源新的数据可视化系统

    日前,Uber 开源了基于 web 的自动驾驶可视化系统(AVS),称该系统为自动驾驶行业带来理解和共享数据的新方式.AVS 由Uber旗下负责自动驾驶汽车研发的技术事业群(ATG)开发,目前该系统已 ...

  9. [转]自动驾驶平台Apollo 2.5环境搭建

    原文地址:https://blog.csdn.net/jinzhuojun/article/details/80210180,转载主要方便随时查阅,如有版权要求,请及时联系. 我们知道,自动驾驶在学界 ...

随机推荐

  1. Reading Notes : 180213 计算机的硬件构成与处理流程

    读书<计算机组成原理>,<鸟哥的Linux私房菜基础篇> 基本上接触过计算机的人,都多少知道计算机的具体构成,但是真正能讲明白的却说了很多,本节将讲解一下计算机的基本硬件构成和 ...

  2. 微信网页授权-公众号支付(获取openid、用户信息等)

    名词解释: openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要 ...

  3. BZOJ 3771: Triple(生成函数 FFT)

    Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 911  Solved: 528[Submit][Status][Discuss] Description ...

  4. getline的字符串读入

    也许是最近模拟题打多了的缘故,我发现自己渐渐变得比较毒瘤起来,当然这也是有一定的好处的,因为从中我也学到了一些处理字符串的正确姿势,今天我们就来讲一 讲如何用函数getline来读入一整行字符串进行处 ...

  5. linux操作系统的目录以及用户权权限的管理

    linux操作系统的目录以及对目录的操作 一: linux操作系统的目录结构   bin #可执行程序的安装目录 , 命令 boot #系统启动引导目录 dev #设备目录 etc #软件配置文件目录 ...

  6. Python编程从入门到实践,个人笔记

    3-9 晚餐嘉宾:在完场练习3-6时编写的程序之一中,使用len()打印一条消息,指出有多少位嘉宾来与你共进晚餐. 自己先写的程序如下: # coding=gbk #邀请一些人吃饭 per_list= ...

  7. 使用bison和yacc制作脚本语言(1)

    使用bison和yacc制作脚本语言(1) 环境: 环境 windows 10 Cygwin64 语言 C 工具 mingw bison flex 主要是使用bison和flex这两个软件,编译器无所 ...

  8. Java基础—IO小结(二)缓冲流与其它流的使用

    一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中 ...

  9. WebRTC中Android Demo中的摄像头从采集到预览流程

    APPRTC-Demo调用流程 1.CallActivity#onCreate 执行startCall开始连接或创建房间 2.WebSocketClient#connectToRoom 请求一次服务器 ...

  10. 2017Noip普及组游记

    Day0 一天都基本在休息,早上信心赛,大家都是400整. 下午一群人窝在教室里打三国杀. Day1:Before Contest 早上大约十点到了试场,在考提高组,不能进. 喝了一杯咖啡去除早起的身 ...