Airsim是一款基于Unreal Engine构建的无人机、汽车等模拟器的开源平台,并且可以跨平台的通过PX4飞行控制器进行仿真控制,在物理和视觉上逼真的模拟环境使得它成为一款很好的平台。不仅模拟了汽车无人机等动力学模型,甚至对天气效果灯光控制也做出了非常好的模拟。并且Microsoft官方发布了很多测试环境,诸如森林、平原、乡村、山脉景观等。Airsim公开了API,可以通过Python等语言与仿真程序中的车辆或者无人机进行交互,可以使用这些API进行图像检索,获取状态,控制车辆等。相较于现实中的自动驾驶等实际应用,Airsim更好得实现了对于数据集的收集,相较于一些汽车公司动辄几百PB的数据资源,通过模拟器显然可以更好的构建网络学习而不用受制于数据收集的问题。而端到端的深度学习的提出是一种建模策咯,是对深度神经网络的成功响应。随着近些年硬件的升级进步(如GPU、FPGA等),使我们批量处理大量数据成为可能,相较于传统的ML,端到端深入学习更接近人类的学习方式,因为它允许神经网络将原始的数据直接映射到输出。本文的目的是将Airsim作为AI研究平台,收集数据进行深度学习,运用较少的数据集完成模型的建立,进而可以在Airsim平台上模拟运行自动驾驶汽车。

  1. 在VisualStudio2017上搭建Airsim

VisualStudio为Airsim提供了一个良好的编译环境,在这里,你可以访问并修改环境场景中的各种变量,包括设置遥控器或者方向盘这类与人有着更好交互体验的API。我们搭建好平台之后,就可以为我们数据收集提供一个方便的数据接口,具体结构和数据流在接下来进行介绍。


2. Airsim仿真软件结构

上图说明了虚幻游戏引擎如何加载和调用Airsim。

Airisim中的API接口都保存在AirLib文件下,由以下几部分组成:

f

  • 物理引擎:这是仅有导引头的物理引擎,它的设计是快速和可扩展的。旨在快速、可扩展地实现不同车辆;
  • 传感器模型:气压计,IMU,GPS和磁力计等;
  • 车辆模型:用于车辆配置的模型,目前,我们已经实现了一个多转子模型和配置的PX4四旋翼在X型布局下的配置;
  • 控件库:提供抽象的API接口,还具有RPC客户端和服务器的类;

根据功能划分,Airsim仿真程序场景显示软件由四部分组成:

  • 三维模型的建立,如无人机(Drone),汽车(Car)等应用实体以及树木、房屋、山脉、草地等仿真环境的建模以及大地形建模;
  • 模型渲染和显示,如天气场景,光照场景,风速场景等,以及对无人机或者车辆模型运动过程中的姿态和运动学表达;
  • 仿真系统中碰撞信息检测的实现,如汽车前行过程中碰到障碍物,仿真软件会把撞击信息包括但不限于碰撞时间碰撞速度位置信息转角信息等记录下来;
  • 生成具有交互性的编程应用程序,如可以通过对Python脚本链接到仿真场景进行模型驱动和交互显示。
  1. 软件接口图

数据接口软件主要包括外部数据接口、数据记录/读取、数据处理和内部数据接口等四部分。

  • 外部数据接口:外部数据接口在仿真过程中以一秒10帧的周期读取图像信息和仿真数据,由Airsim中内置的时间API提供仿真时钟进行;
  • 数据记录/读取:在仿真软件REC运行时从外部数据接口获取原始仿真数据记录到文本文件和图像文件中;
  • 数据处理:将原始文件中与实验无关的一些信息剔除,主要是节省内存和方便数据处理,同时将车辆的姿态和位置信息处理成统一坐标系下的信息;
  • 内部数据接口:将处理后的数据写入内存文件中,供以后使用。

Airsim软件提供了大量API接口,可以用于我们收集数据和进行控制仿真,下图介绍了Airism中一些软件接口图的关系,图片中只列举了与我们本文自动驾驶有关的接口项目。通过访问外部API接口,Airsim可以很好的将数据存入内部储存空间,并预先进行一些必要的处理,如文件命名和标签设定,为我们后续的工作提供了方便。

  1. 软件开发流程

可见,Airsim提供了不同形式不同接口的传感器,本文将运用汽车前方的单目摄像头对前方图像进行采样训练,以得到一个简单的自动驾驶模型,设计方案如下:

我们通过三部分进行实验:

1、第一部分是在人为操作下,控制车辆随机在地图内行走,通过摄像头和传感器记录图像和汽车动力学模型,并保存为/images和airsim_rec.txt文件;

2、第二部分是进行模型训练,将得到的图片和动力学模型数据分为两个子集——训练集和验证集。利用深度学习网络在训练集上训练出合适的模型,并把训练好的模型放在验证集进行测试,如果准确率高于一定阈值,则模型拟合程度较好,可以用作在测试集上继续表现,如果准确率较低,则重复一二部分;

3、第三部分是将训练好的模型连接到Airsim软件,编写Python程序,通过训练好的模型进行测试和验证,控制车辆前进速度和转弯角度,检测和分析仿真结果。

Airsim仿真平台介绍相关推荐

  1. 【ROS仿真实战】Gazebo仿真平台介绍及安装方法(一)

    文章目录 前言 一.Gazebo简介 二.Gazebo仿真平台的基本概念 三.Gazebo仿真平台的安装方法 四.总结 前言 Gazebo仿真平台是一个广泛应用于机器人研发.测试和教育等领域的开源软件 ...

  2. java实现物理仿真平台介绍,物理仿真实验室

    <物理仿真实验室>辅导资料是利用仿真模拟开发技术,按照高(中)等职业教育大纲的要求,开发的面向中等院校及技工.高级技校.高职等院校在校师生和广大非在校的劳动者的物理学基本原理和操作技能仿真 ...

  3. airsim 安装指导(无人机、无人车视觉导航仿真平台)

    说明: airsim是基于UE4开发的仿真平台,听到UE4这个名字不是做游戏的同学,可能会觉得陌生,但是其实我们经常玩的一些游戏就是基于UE4开发的,比如最近比较火的吃鸡游戏. 借助于UE4强大的虚幻 ...

  4. AirSim仿真学习记录(1)

    一.AirSim概述 1.1什么是AirSim AirSim是一款基于虚幻引擎构建的无人机.汽车等模拟器(我们现在还有一个实验性的Unity版本).它是开源的,跨平台的,并支持使用流行的飞行控制器(如 ...

  5. 在Windows10系统上搭建UE4+AirSim仿真环境

    文章目录 1. 简介 2. 工具准备 2.1 AirSim 2.2 Visual Studio 2019 2.3 UE4 2.4 Anaconda3 2.5 Git 2.6 版本说明 3. 具体步骤 ...

  6. 车辆动力学及控制pdf_Simulink软件仿真平台之车辆模型

    之前一篇文章简要介绍了新能源车控制策略仿真平台的基本内容,主要包括驾驶员模型.控制策略.车辆模型三部分,如下图所示.今天我们详细说说第三部分车辆模型(车辆平台)的相关内容,也是最复杂的部分. 车辆模型 ...

  7. Apollo进阶课程㊵丨Azure仿真平台使用

    原文链接:进阶课程㊵丨Azure仿真平台使用 Azure是一种灵活和支持互操作的平台,它可以被用来创建云中运行的应用或者通过基于云的特性来加强现有应用.它开放式的架构给开发者提供了Web应用.互联设备 ...

  8. 腾讯TAD Sim2.0领跑自动驾驶仿真市场 双擎驱动构建新一代仿真平台

    随着自动驾驶领域硬件.算法等方面的快速发展,虚拟仿真技术在自动驾驶研发和测试领域的应用日渐广泛,成为自动驾驶量产应用的必备工具,城市智慧交通调度管理和相关法规制定的有力辅助. 在这片行业竞争新高地上, ...

  9. 全数字实时仿真平台SkyEye和同步数据流语义与翻译正确性验证

    全数字实时仿真平台 SkyEye,中文全称天目全数字实时仿真软件,应用软件仿真技术,逼真地模拟出被测软件的物理环境.用图形化方式构建虚拟目标系统,有效降低了硬件工程师和软件工程师之间的沟通成本,软件工 ...

最新文章

  1. 又是华为!对标 TensorFlow、PyTorch,深度学习框架 MindSpore已开源!附入手公开课...
  2. 什么?强化学习竟然来源于心理学?
  3. 读书笔记《数据挖掘概念与技术》第2章 数据预处理 2.4 数据集成和变换
  4. 03_4_this关键字
  5. React.Component(V16.8.6)
  6. 算法之快速排序(递归和非递归)
  7. 利用日志传送来实现数据库的可用性
  8. Linux下安装mongodb详细过程
  9. Windows上搭建SFTP服务器
  10. 链表:头插法与尾插法(简易图解和代码)
  11. 搭档之家|打造信息交互平台,推进合作新发展
  12. android使用xml定义背景边框
  13. 【MySQL】 锁机制:InnoDB引擎中锁分类以及表锁、行锁、页锁详解
  14. NetFPGA-SUME开发环境安装
  15. 对应于正态分布的拉丁超立方抽样——Python版
  16. 【经典算法实现 3】冒泡排序算法(单向冒泡,双向冒泡)
  17. vue路由报错Navigation aborted from “/a“ to “/b“ via a navigation guard.两种解决方案
  18. 手工注入完成SQL注入漏洞
  19. 7-7 The Whimper of Universe (30 分)
  20. monkey脚本试验

热门文章

  1. Android 10 Selinux
  2. Unexpected aliasing of ‘this‘ to local variable.
  3. google earth engine GEE批量 run下载插件
  4. springMVC+jcrop实现头像上传截图功能
  5. 基于停车管理系统的分析与理解
  6. 愿得一人心,白首不相离!
  7. 卓岚联网模块连接三菱FX系列PLC应用实例
  8. 四年级上册java呢时候到_四年级上册数学计算题100道
  9. PYTHON新建PPT
  10. 学习淘淘商城第二十三课(添加商品的实现)