开源自动驾驶仿真平台 AirSim (1) - Unreal Engine
AirSim 官方Github: https://github.com/Microsoft/AirSim
AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究)。
AirSim 没有独立的官网,它托管在 Github 上面。
AirSim 使用了 Unreal Engine 作为自己的图像开发引擎。所以想要运行AirSim,我们必须先会用Unreal Engine和它使用的平台工具。
下面我简单介绍一下 Unreal Engine,和如何使用它。
1 什么是Unreal Engine [1]
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)、《蝙蝠侠》等
2 安装和使用 Unreal Engine [2]
想要使用 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.16.3

这个图片是官方的,现在应该是 4.16.3 这个版本。
注意开始的时候可能找不到 4.16.3,注意版本号旁边有一个小三角,下拉可以选择版本。
*官方文档特别强调需要使用 4.16 版本,否则可能不成功。低版本自然不行,高版本也可能带来问题。
2.3 下载虚拟场景
选择 Epic Games Launcher 中左侧的 Learn,然后在右侧的页面中一直下拉找到 Landscape Mountains点进去。这个场景是官方教程使用的,第一次玩它用这个就没错。

选择 Create Project,然后选择一个路径存下(路径要看一下,因为下面要用到)。
这个场景是比较小的,不过也有 2G 左右。请耐心等待。
这个软件运行起来确实有些不稳定,我尝试下载了很多次才成功,有一次竟然出现了这个场景 Unavailabe 的情况。只能无数次重新打开它来解决了。
下载好场景,Unreal Engine 这一块的任务就基本完成啦。
参考文献
[1] https://baike.baidu.com/item/Unreal/4754084?fr=aladdin
[2] https://github.com/Microsoft/AirSim/blob/master/docs/build_windows.md
开源自动驾驶仿真平台 AirSim (1) - Unreal Engine的更多相关文章
- 开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim
AirSim 的官方 Github: https://github.com/Microsoft/AirSim 对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把 ...
- 开源自动驾驶仿真平台 AirSim (3) - 运行 AirSim
AirSim 的官方 Github: https://github.com/Microsoft/AirSim 之前配置了很多,终于要让 AirSim 自己跑起来了. 我们需要把 AirSim 这个插件 ...
- NXP开源自动驾驶计算平台Bluebox 打造现实无人汽车
知名半导体制造商恩智浦NXP已经准备好了自家的自动驾驶计算开源平台Bluebox,将为汽车制造商提供现成的一体化自动 驾驶计算解决方案.专为自动驾驶设备的BlueBox中央计算引擎.不仅能够为无人驾驶 ...
- 基于DRL和TORCS的自动驾驶仿真系统——之环境配置
基于DRL和TORCS的自动驾驶仿真系统 --之环境配置 玩TORCS和DRL差不多有一整年了,开始的摸爬滚打都是不断碰壁过来的,近来在参与CMU的DRL10703课程学习和翻译志愿者工作,也将自己以 ...
- 线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评
全球自动驾驶创业公司最主流的测试开发用车是林肯MKZ,这是因为其高性能高精度的线控能力表现,易于使用逆向工程实现改装,以及存在成熟的线控改造服务提供商AS和Dataspeed,共同为自动驾驶初创及辅助 ...
- Mechanical Simulation借助UE发力自动驾驶仿真
Source https://www.unrealengine.com/en-US/blog/making-autonomous-vehicles-safer-before-they-hit-the- ...
- 自动驾驶缺人才?听听David Silver怎么说!
如今自动驾驶在全球范围内的发展势头愈发“凶猛”,该领域人才也一度被视为“香饽饽”. 即使在美国,自动驾驶工程师的起薪也已经突破了25万美元,我国‘“开价”之高更是令人咋舌. 人才.人才.还是人才!重要 ...
- 自动驾驶汽车数据不再封闭,Uber 开源新的数据可视化系统
日前,Uber 开源了基于 web 的自动驾驶可视化系统(AVS),称该系统为自动驾驶行业带来理解和共享数据的新方式.AVS 由Uber旗下负责自动驾驶汽车研发的技术事业群(ATG)开发,目前该系统已 ...
- [转]自动驾驶平台Apollo 2.5环境搭建
原文地址:https://blog.csdn.net/jinzhuojun/article/details/80210180,转载主要方便随时查阅,如有版权要求,请及时联系. 我们知道,自动驾驶在学界 ...
随机推荐
- 【js】深拷贝和浅拷贝区别,以及实现深拷贝的方式
一.区别:简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这 ...
- CSS、JavaScript学习过程
初学JavaScript,通过博客记录自己学习过程中遇到的问题.(包含少量CSS) 零碎记录 JavaScript 输出 type="text/javascript" 那些老旧的实 ...
- Ext自定义控件 - 自学ExtJS
本文所有思想表达均为个人意见,如有疑义请多批评,如有雷同不甚荣幸. 转载请注明出处:Nutk'Z http://www.cnblogs.com/nutkz/p/3448801.html 在用到ExtJ ...
- hdu 1394 Minimum Inversion Number(逆序数对) : 树状数组 O(nlogn)
http://acm.hdu.edu.cn/showproblem.php?pid=1394 //hdu 题目 Problem Description The inversion number ...
- C++分享笔记:扑克牌的洗牌发牌游戏设计
笔者在大学二年级期间,做过的一次C++程序设计:扑克牌的洗牌发牌游戏.具体内容是:除去大王和小王,将52张扑克牌洗牌,并发出5张牌.然后判断这5张牌中有几张相同大小的牌,是否是一条链,有几个同花等. ...
- pastedeploy
3.1作用 不修改WSGI应用程序的情况下通过配置文件配置WSGI服务. filter:过滤器,滤网. pipline:管道 app:application 应用,在这个语境下我举个例子吧,lavab ...
- Docker 相关命令汇总
操作容器的命令 镜像中的容器启动之后可以在 docker 中操作和查看容器的信息 l docker ps 查看运行的容器,如果想查看全部加上参数-a 即可 l docker create 完整 ...
- 用原生JS写一个网页版的2048小游戏(兼容移动端)
这个游戏JS部分全都是用原生JS代码写的,加有少量的CSS3动画,并简单的兼容了一下移动端. 先看一下在线的demo:https://yuan-yiming.github.io/2048-online ...
- 自定义注解实现(spring aop)
1.基本概念 1.1 aop 即面向切面编程,优点是耦合性低,能使业务处理和切面处理分开开发,扩展和修改方面,当引入了注解方式时,使用起来更加方便. 1.2 应用场景 打日志.分析代码执行时间.权限控 ...
- Hadoop MapReduce自定义数据类型
一 自定义数据类型的实现 1.继承接口Writable,实现其方法write()和readFields(), 以便该数据能被序列化后完成网络传输或文件输入/输出: 2.如果该数据需要作为主键key使用 ...