• 开源自动驾驶仿真平台 AirSim (2)


    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

    clip_image001

    然后,在右侧的 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 目录。

    clip_image002

    确定后入下图,

    clip_image003

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

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

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

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

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

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

    我们需要进入到 AirSim 目录中,找到 AirSimAirSim_3AirLibdepseigen3EigensrcCorearchCUDAhalf.h

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

    clip_image004

    5 更新 Powershell [3]

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

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

    clip_image005

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

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

    clip_image006

    .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。

    clip_image007

    写在后面

    如果顺利的话就可以编译成功了,但是大家往往在这里会遇到各种各样的问题。建议,首先看一下是不是都按照上面的做了。然后,如果还有问题可以在 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/

  • 相关阅读:
    springboot的@EnableAutoConfiguration起作用的原理
    springboot加载bean过程探索
    dubbo源码阅读笔记-如何引用远程服务,变成invoker
    HashMap如何实现序列化
    如果处理缓存失效从数据库加载数据
    redis设计原则
    redis相关运维命令
    spring的compentScan注解扫描类机制
    全文检索技术
    前端设计网站
  • 原文地址:https://www.cnblogs.com/frankfanxinqi/p/8125184.html
Copyright © 2020-2023  润新知