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)
,分别对应纬度、经度和高程。我们可以按下面的格式设置位置。
1 2 3 4 5 | "OriginGeopoint" : { "Latitude" : 30 , "Longitude" : 120 , "Altitude" : 122 } |
3.4 仿真光照设置
用于控制仿真场景中太阳的位置(根据不同时间)与光照,由TimeOfDay
属性控制,默认为false。也就是光照恒定且不随时间变化。而如果设为true,则会根据指定的时间、位置计算出太阳位置与光照,当然同样也不会随时间变化。如果想让光照随时间变化,需要将StartDateTimeDst
属性设为true,并指定更新频率UpdateIntervalSecs
。这样,场景就会以一定的频率根据时间和位置(刚刚上面提到的OriginGeoPoint
属性)计算光照。如下展示了设置光照的一个具体例子:
1 2 3 4 5 6 7 | "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
属性就被忽略。
1 2 3 4 5 | "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、深度和语义分割数据的示例。
1 2 3 4 5 6 7 8 | "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
这三个子属性。如下是一个简单的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | "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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-11-02 slam14(2-2) 高斯分布 协方差
2020-11-02 基于TCP的socket网络传输视频(C++, python)
2020-11-02 用flask加载静态html模板,并解决路由要加static的问题