AirSim 自动驾驶仿真 (6) 设置采集参数和属性
https://cloud.tencent.com/developer/article/2011384
1.配置文件在哪
默认情况下,文件位于用户目录下的AirSim文件夹,比如在Windows下,文件位于C:\Users\admin\Documents\AirSim,如下。
C:\Users\dongdong\Documents\AirSim


2.配置文件长什么样
打开配置文件可以看到,这是一个标准的json格式文件。如果没有这个文件,AirSim会在启动的时候自动新建一个空白的文件。
3.有哪些属性可以改
这个问题便是本文的核心内容,这里列举出一些常用的属性,下面分别进行介绍。完整的属性介绍与默认值列表,还是请参考官方文档。
3.1 采集平台选择
AirSim支持汽车和多旋翼无人机两种采集平台,通过SimMode属性进行设置。该属性默认值为空,也即用户手动选择。



3.2 视角模式选择
AirSim支持多种视角模式,通过ViewMode进行设置。对于Car,默认值为SpringArmChase,对于Multirotor,默认值为FlyWithMe。




3.3 地理原点设置
AirSim支持设置仿真场景的真实地理位置,通过OriginGeopoint属性设置,默认为(0,0,0),分别对应纬度、经度和高程。我们可以按下面的格式设置位置。
"OriginGeopoint": {
"Latitude": 30,
"Longitude": 120,
"Altitude": 122
}
3.4 仿真光照设置
用于控制仿真场景中太阳的位置(根据不同时间)与光照,由TimeOfDay属性控制,默认为false。也就是光照恒定且不随时间变化。而如果设为true,则会根据指定的时间、位置计算出太阳位置与光照,当然同样也不会随时间变化。如果想让光照随时间变化,需要将StartDateTimeDst属性设为true,并指定更新频率UpdateIntervalSecs。这样,场景就会以一定的频率根据时间和位置(刚刚上面提到的OriginGeoPoint属性)计算光照。如下展示了设置光照的一个具体例子:
"TimeOfDay": {
"Enabled": true,
"StartDateTime": "2021-12-01 23:30:00",
"CelestialClockSpeed": 1,
"StartDateTimeDst": false,
"UpdateIntervalSecs": 60
}
3.5 可视化窗口设置
AirSim支持数据采集的过程中实时展示采集的数据,这主要通过SubWindows属性进行设置。进一步,它又包含多个属性:
WindowID: 指定SubWindow的ID,0,1,2三者之一。CameraName: 相机名称,枚举类型属性。对于Car,有front_center、front_right、front_left、fpv、back_center可选;对于Multirotor,有front_center、front_right、front_left、bottom_center、back_center可选;对于ComputerVision,可选相机种类与Multirotor相同。当然,在AirSim中,为了向下兼容(Backward Compatibility),依然保留了相机索引,可以通过0、1、2、3、4来分别获取对应相机。ImageType: 影像类型,枚举类型属性。Scene=0,DepthPlanar=1,DepthPerspective=2,DepthVis=3,DisparityNormalized=4,Segmentation=5,SurfaceNormals=6,Infrared=7。其中Scene=0就是普通的RGB影像,DepthVis=3就是场景的可视化深度图,Segmentation=5就是场景的语义分割图。更详细的介绍参考官方文档。VehicleName: 采集平台的名称,在有多个采集设备的时候会比较有用。External: 如果为外部相机就设为true,如果为true,VehicleName属性就被忽略。
"SubWindows": [
{"WindowID": 0, "ImageType": 0, "CameraName": "front_center", "Visible": true},
{"WindowID": 1, "ImageType": 3, "CameraName": "front_center", "Visible": true},
{"WindowID": 2, "ImageType": 5, "CameraName": "front_center", "Visible": true}
]
如下展示了一个简单的例子:展开三个子窗口,显示front_center相机的RGB影像、深度图以及语义分割影像:

3.6 录制设置
如前面的博客所说,开始和结束录制按键盘R键即可。数据录制主要由Recording属性控制,同样的,里面又有一些子属性:
RecordInterval: 指定两帧影像之间的最小时间间隔,单位秒。RecordOnMove: 指定如果采集平台不动的时候就停止录制,动的时候再录制。Folder: 指定录制数据的输出文件夹,默认是放在Documents/AirSim下面。Enabled: 指定是否从启动环境就开始录制,默认为false。Cameras: 指定录制哪些相机的内容。默认情况下是以压缩的png格式录制camera 0(front_center)的RGB(scene)数据。如果只想录制采集平台的物理数据,把Cameras属性设为空即可:"Cameras": []。PixelsAsFloat: 是否以pfm(portable float map)格式保存数据而不是png文件。
下面展示的是录制front_center相机的RGB、深度和语义分割数据的示例。
"Recording": {
"RecordInterval": 0.05,
"Cameras": [
{ "CameraName": "front_center", "ImageType": 0, "PixelsAsFloat": false, "Compress": true },
{ "CameraName": "front_center", "ImageType": 3, "PixelsAsFloat": false, "Compress": true },
{ "CameraName": "front_center", "ImageType": 5, "PixelsAsFloat": false, "Compress": true }
]
}

3.7 相机设置
我们也可以指定相机的一些参数,如视场角、影像分辨率等,这些参数主要由CameraDefaults属性控制。进一步又包含CaptureSettings、NoiseSettings、Gimbal这三个子属性。如下是一个简单的示例。
"CameraDefaults": {
"CaptureSettings": [
{
"ImageType": 0,
"Width": 1920,
"Height": 1080,
"FOV_Degrees": 90,
"AutoExposureSpeed": 100,
"AutoExposureBias": 0,
"AutoExposureMaxBrightness": 0.64,
"AutoExposureMinBrightness": 0.03,
"MotionBlurAmount": 0,
"TargetGamma": 1.0,
"ProjectionMode": "",
"OrthoWidth": 5.12
},
{
"ImageType": 3,
"Width": 1920,
"Height": 1080,
"FOV_Degrees": 90,
"AutoExposureSpeed": 100,
"AutoExposureBias": 0,
"AutoExposureMaxBrightness": 0.64,
"AutoExposureMinBrightness": 0.03,
"MotionBlurAmount": 0,
"TargetGamma": 1.0,
"ProjectionMode": "",
"OrthoWidth": 5.12
},
{
"ImageType": 5,
"Width": 1920,
"Height": 1080,
"FOV_Degrees": 90,
"AutoExposureSpeed": 100,
"AutoExposureBias": 0,
"AutoExposureMaxBrightness": 0.64,
"AutoExposureMinBrightness": 0.03,
"MotionBlurAmount": 0,
"TargetGamma": 1.0,
"ProjectionMode": "",
"OrthoWidth": 5.12
}
]
}
这样我们就可以捕获1920×1080分辨率的数据了,如下图所示。
另外需要注意的是,对于双目相机而言,双目相机默认的基线长度为25cm,详情参考这个文档。
4.参考资料
- [1] https://microsoft.github.io/AirSim/settings
- [2] https://microsoft.github.io/AirSim/image_apis/#available-cameras
- [3] https://microsoft.github.io/AirSim/image_apis/#available-imagetype-values
- [4] https://microsoft.github.io/AirSim/sensors
- [5] https://github.com/microsoft/AirSim/blob/master/docs/image_apis.md
AirSim 自动驾驶仿真 (6) 设置采集参数和属性的更多相关文章
- AirSim 自动驾驶仿真 (2-3) python控制无人机 win10
1首先搭建好环境 参考 2 python控制 https://blog.csdn.net/Zhaoxi_Li/article/details/108002544 官方代码位置 自己pythonj教程 ...
- 开源自动驾驶仿真平台 AirSim (1) - Unreal Engine
AirSim 官方Github: https://github.com/Microsoft/AirSim AirSim 是微软的开源自动驾驶仿真平台(其实它还能做很多事情,这里主要用于自动驾驶仿真研究 ...
- 基于DRL和TORCS的自动驾驶仿真系统——之环境配置
基于DRL和TORCS的自动驾驶仿真系统 --之环境配置 玩TORCS和DRL差不多有一整年了,开始的摸爬滚打都是不断碰壁过来的,近来在参与CMU的DRL10703课程学习和翻译志愿者工作,也将自己以 ...
- Carla 自动驾驶仿真平台的安装与配置指南
简介 Carla 是一款基于 Python 编写和 UE(虚幻引擎)的开源仿真器,用于模拟自动驾驶车辆在不同场景下的行为和决策.它提供了高度可定制和可扩展的驾驶环境,包括城市.高速公路和农村道路等.C ...
- 开源自动驾驶仿真平台 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 这个插件 ...
- Mechanical Simulation借助UE发力自动驾驶仿真
Source https://www.unrealengine.com/en-US/blog/making-autonomous-vehicles-safer-before-they-hit-the- ...
- [原]JSBSim 自动驾驶(浅出)
jsbsim的脚本文件分为几大类: 1.系统脚本: systems 包含通用飞机各部分功能模块组件以及自动飞行控件:Autopilot.xml 和 自动飞行的算法控件:GNCUtilities.x ...
- zz自动驾驶多传感器感知的探索1
Pony.ai 在多传感器感知上积累了很多的经验,尤其是今年年初在卡车上开始了新的尝试.我们有不同的传感器配置,以及不同的场景,对多传感器融合的一些新的挑战,有了更深刻的认识,今天把这些经验,总结一下 ...
- zz自动驾驶多传感器感知的探索
案例教学,把“问题”讲清楚了,赞 Pony.ai 在多传感器感知上积累了很多的经验,尤其是今年年初在卡车上开始了新的尝试.我们有不同的传感器配置,以及不同的场景,对多传感器融合的一些新的挑战,有了更深 ...
随机推荐
- Linux 命令:lsof
参考文档:lsof命令详解 lsof,列出系统中所有打开的文件. 各列字段意义如下: COMMAND: 进程的名称 PID: 进程标识符 USER: 进程所有者 FD: 文件描述符,应用程序通过文件描 ...
- Uncaught TypeError: Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite.
musicSeekTo: function(value){this.audio.currentTime = this.audio.duration*value; }, musicVoiceSeekTo ...
- python移动文件
#移动文件(目录) shutil.move("oldpos","newpos") shutil.move("D:/知乎日报/latest/一张优惠券, ...
- [数据分析与可视化] Python绘制数据地图4-MovingPandas入门指北
MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据.它提供了一组强大的工具,可以轻松地加载.分析和可视化移动物体的轨迹.通过使用Mo ...
- [ansible]简介安装入门
简介 ansible是一种运维自动化工具,默认通过ssh协议管理机器.只需要在一台机器上安装好,就可以通过这台电脑管理一组远程的机器.而被管理的linux机器只要有python环境,就不需要额外安装a ...
- CentOS安装ffmpeg并转码视频为mp4
前言 现需要将一批avi格式的视频转码为mp4,以下为操作步骤.系统版本为CentOS 7. 如果不安装x264,转码后只有声音,没有视频. 编译安装nasm wget https://www.nas ...
- IOS App内嵌H5 swiper 轮播出现卡顿白屏闪烁
话说在前头:前端开发同学遇到这个问题不慌,因为接下来你要踩的坑我都帮你们踩完了,所以有了这一篇博客.希望能帮到你 轮播组件:swiper@4.5.1 (4x稳定的最后一个版本) 设备:ios版本15x ...
- [ABC151E] Max-Min Sums
2023-03-11 题目 题目传送门 翻译 翻译 难度&重要性(1~10):5 题目来源 AtCoder 题目算法 数学 解题思路 对于一个正数 \(x,x\in A\) 一定会有 \(C_ ...
- 定义一个函数,传入一个字典和一个元组,将字典的值(key不变)和元组的值交换,返回交换后的字典和元组
知识点:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. li=[3,4,5] t=(7,8,9) print(list(zip(li,t ...
- Python Web:Django、Flask和FastAPI框架对比
Django.Flask和FastAPI是Python Web框架中的三个主要代表.这些框架都有着各自的优点和缺点,适合不同类型和规模的应用程序. Django: Django是一个全功能的Web框架 ...