Airsim(1.3.1版本)setting.json帮助⽂档解析
setting.json是airsim的核⼼配置⽂件,下⾯对官⽅⽂档进⾏解读
⽂章⽬录
1 json存储位置
Windows在Documents\AirSim,Linux在 ~/Documents/AirSim
第⼀次启动Airsim时候将⾃动创建⼀个空的setting⽂件,为了避免其他问题,永远使⽤ASCII保存⽂件。
2 如何在车辆Car和旋翼⽆⼈机Multirotor之间进⾏选择
如果想使⽤Car则在json⽂件设置"SimMode": "Car" ,如下所⽰
{
"SettingsVersion": 1.2,
"SimMode": "Car"
}
选择Multirotor则设置 "SimMode": "Multirotor". 如果设置"SimMode": "".则启动Airsim时候会⾃动弹出⼀个对话框询问使⽤哪个。
3 可⽤的设置和对应默认值
下⾯是所有可⽤的设置和其对应默认值,⼀些默认值为 "" 将会根据实际使⽤的车辆类型进⾏选择,⽐如 ViewMode 为 "" ,对于⽆⼈机则使⽤"FlyWithMe" ,对⽆⼈车则使⽤"SpringArmChase" 。
注意: 没有必要将所有的设置复制过去,需要什么粘贴什么即可,仅有 "SettingsVersion"是需要设置的。
{
"SimMode":"",
"ClockType":"",
"ClockSpeed":1,
"LocalHostIp":"127.0.0.1",
"RecordUIVisible":true,
"LogMessagesVisible":true,
"ViewMode":"",
"RpcEnabled":true,
"EngineSound":true,
"PhysicsEngineName":"",
"SpeedUnitFactor":1.0,
"SpeedUnitLabel":"m/s",
"Recording":{
"RecordOnMove":false,
"RecordInterval":0.05,
"Cameras":[
{"CameraName":"0","ImageType":0,"PixelsAsFloat":false,"Compress":true}
]
},
"CameraDefaults":{
"CaptureSettings":[
{
"ImageType":0,
"Width":256,
"Height":144,
"FOV_Degrees":90,
"AutoExposureSpeed":100,
"AutoExposureBias":0,
"AutoExposureMaxBrightness":0.64,
"AutoExposureMinBrightness":0.03,
"MotionBlurAmount":0,
"MotionBlurAmount":0,
"TargetGamma":1.0,
"ProjectionMode":"",
"OrthoWidth":5.12
}
]
,
"NoiseSettings":[
{
"Enabled":false,
"ImageType":0,
"RandContrib":0.2,
"RandSpeed":100000.0,
"RandSize":500.0,
"RandDensity":2,
"HorzWaveContrib":0.03,
"HorzWaveStrength":0.08,
"HorzWaveVertSize":1.0,
"HorzWaveScreenSize":1.0,
"HorzNoiseLinesContrib":1.0,
"HorzNoiseLinesDensityY":0.01,
"HorzNoiseLinesDensityXY":0.5,
"HorzDistortionContrib":1.0,
"HorzDistortionStrength":0.002
}
],
"Gimbal":{
"Stabilization":0,
"Pitch":NaN,"Roll":NaN,"Yaw":NaN
}
"X":NaN,"Y":NaN,"Z":NaN,
"Pitch":NaN,"Roll":NaN,"Yaw":NaN
},
"OriginGeopoint":{
"Latitude":47.641468,
"Longitude":-122.140165,
"Altitude":122
},
"TimeOfDay":{
"Enabled":false,
"StartDateTime":"",
"CelestialClockSpeed":1,
"StartDateTimeDst":false,
"UpdateIntervalSecs":60
},
"SubWindows":[
{"WindowID":0,"CameraName":"0","ImageType":3,"Visible":false},
{"WindowID":1,"CameraName":"0","ImageType":5,"Visible":false},
{"WindowID":2,"CameraName":"0","ImageType":0,"Visible":false}
],
"SegmentationSettings":{
"InitMethod":"",
"MeshNamingMethod":"",
"OverrideExisting":false
},
"PawnPaths":{
"BareboneCar":{"PawnBP":"Class'/AirSim/VehicleAdv/Vehicle/VehicleAdvPawn.VehicleAdvPawn_C'"}, "DefaultCar":{"PawnBP":"Class'/AirSim/VehicleAdv/SUV/SuvCarPawn.SuvCarPawn_C'"}, "DefaultQuadrotor":{"PawnBP":"Class'/AirSim/Blueprints/BP_FlyingPawn.BP_FlyingPawn_C'"}, "DefaultComputerVision":{"PawnBP":"Class'/AirSim/Blueprints/BP_ComputerVisionPawn.BP_ComputerVisionPawn_C'"} },
"Vehicles":{
"SimpleFlight":{
"SimpleFlight":{
"VehicleType":"SimpleFlight",
"DefaultVehicleState":"Armed",
"AutoCreate":true,
"PawnPath":"",
"EnableCollisionPassthrogh":false,
"EnableCollisions":true,
"AllowAPIAlways":true,
"RC":{
"RemoteControlID":0,
"AllowAPIWhenDisconnected":false
},
"Cameras":{
//same elements as CameraDefaults above, key as name
},
"X":NaN,"Y":NaN,"Z":NaN,
"Pitch":NaN,"Roll":NaN,"Yaw":NaN
},
"PhysXCar":{
"VehicleType":"PhysXCar",
"DefaultVehicleState":"",
"AutoCreate":true,
"PawnPath":"",
"EnableCollisionPassthrogh":false,
"EnableCollisions":true,
"RC":{
"RemoteControlID":-1
},
"Cameras":{
"MyCamera1":{
//same elements as elements inside CameraDefaults above
},
"MyCamera2":{
//same elements as elements inside CameraDefaults above
},
},
"X":NaN,"Y":NaN,"Z":NaN,
"Pitch":NaN,"Roll":NaN,"Yaw":NaN
}
}
}
SimMode
SimMode⽤来确定仿真模式,当前⽀持以下模式值:
"": 启动仿真时候⾃定义选择模式
"Multirotor": 使⽤旋翼仿真
"Car": 使⽤车辆仿真
"ComputerVision": 仅使⽤相机,⽆⽆⼈机和车辆
ViewMode
ViewMode确定将哪个摄影机⽤作默认摄影机以及摄影机将如何跟随车辆。对于⽆⼈机,默认是 "FlyWithMe",⽽⽆⼈车则默认是"SpringArmChase".
FlyWithMe: 以6个⾃由度从后⾯追赶车辆
GroundObserver: 从离地6’处追逐车辆,但在XY平⾯上保持完全⾃由。
Fpv: 从车辆前摄像头观看场景,就是车辆视⾓,可以理解为第⼀⼈称视⾓。
Manual: 不要⾃动移动相机。使⽤箭头键和ASWD键⼿动移动摄像机。
SpringArmChase: ⽤安装在隐形的⼿臂上的摄像头追踪车辆,该⼿臂通过弹簧连接到车辆上(因此它在运动中有⼀些延迟)。
NoDisplay: 就是不可视化仿真器,但是⼦窗⼝、录制和API的渲染仍处于活动状态。此模式对于在“⽆头”模式下保存资源⾮常有⽤,在这种模式下,您只对获取图像感兴趣,⽽不关⼼在主屏幕上呈现的内容。这也可以提⾼记录图像的FPS。
TimeOfDay
控制太阳在环境中的时间⽤的,其中的属性Enabled是false,太阳将永远保持不变。如果属性为true,则太阳的位置将会使⽤经纬度和⾼度来计算,这些将会在后⾯介绍的OriginGeopoint属性进⾏介绍。 在属性StartDateTime使⽤ 设置时间,例如2018-02-12 15:20:00,如果为空则使⽤当前时间。StartDateTimeDst截⽌时间,到那个时间就会保持不变(我理解的)。在某些情况下,可能希望天体时钟⽐模拟时钟运⾏得快或慢,则可以指定CelestialClockSpeed,⽐如,值100表⽰时间是实际时间的100倍。
这个也可以通过API控制,我们后⾯再分析。
{
"TimeOfDay": {
"Enabled": false,
"StartDateTime": "",
"CelestialClockSpeed": 1,
"StartDateTimeDst": false,
"UpdateIntervalSecs": 60
},
}
OriginGeopoint
这个⽤来记录经纬度和⾼度,起始原点也是利⽤这个计算出来的。所有坐标是北东地坐标系,在系统中,每个车辆从(0,0,0)点开始。时间设置也是通过这个算出来的OriginGeopoint(感觉解释很模糊,等以后测试使⽤后再补充细节吧)
{
"OriginGeopoint": {
"Latitude": 47.641468,
"Longitude": -122.140165,
"Altitude": 122
},
}
SubWindows
这个设置⽤来确定当按下0的时候,哪个窗⼝是可见的。具体⽤法如下所⽰。
"SubWindows": [
{"WindowID": 0, "ImageType": 0, "CameraName": "3", "Visible": true},
{"WindowID": 1, "ImageType": 3, "CameraName": "0", "Visible": true},
{"WindowID": 2, "ImageType": 6, "CameraName": "4", "Visible": true}
]
"WindowID"表⽰使⽤哪个窗⼝,值在0-2之间。
"ImageType"表⽰图像类型,⼀共有8种类型,分别如下所⽰
Scene = 0,
DepthPlanner = 1,
DepthPerspective = 2,
DepthVis = 3,
DisparityNormalized = 4,
Segmentation = 5,
SurfaceNormals = 6,
Infrared = 7
"CameraName"相机名称,⼀共有5个相机,front_center, front_right, front_left, fpv 和back_center,为了向后兼容,⽤0-4对应。
Recording
按照特定的时间间隔记录数据,⽐如位置、姿态、速度和对应图像。仿真器上⾯有按钮可以开始记录。数据存在Documents\AirSim,对应配置代码如下所⽰。
"Recording":{
"RecordOnMove": false,
"RecordInterval": 0.05,
"Cameras":[
{"CameraName":"0", "ImageType": 0, "PixelsAsFloat": false, "Compress":true}
]
},
RecordInterval 指定采集两张图⽚的最⼩时间间隔,就是每隔多少秒采集⼀张图⽚。
RecordOnMove指定如果车辆不动是否还采集图像
Cameras设置相机的属性,默认是使⽤相机0,并压缩存储。相同属性跟SubWindows⼀样,如果PixelsAsFloat为true,图像将会存储为pfm格式。
ClockSpeed
调整仿真速度,默认是1与实际⼀样,⼩于1则慢,⼤于1则快。注意:随着仿真时钟的运⾏速度加快,仿真质量可能会下降。可能会看到像物体移动过障碍物这样的伪影,因为没有检测到碰撞。然⽽,减慢模拟时钟(即值<1.0)通常会提⾼模拟质量。
Segmentation Settings
"SegmentationSettings":{
"InitMethod":"",
"MeshNamingMethod":"",
"OverrideExisting":false
},
InitMethod 确定分割图的分割ID信息,默认"" 和"CommonObjectsRandomIDs"意味着随机分配ID。"None"意味着不初始化ID,导致分割图只有⼀个颜⾊,如果计划使⽤API设置ID的话,这个模式很有⽤,对于城市的环境,可以节省⼤量延迟。
如果 OverrideExisting 为false,则初始化不会更改已分配的⾮零对象ID,否则会更改。configuredclockspeed是什么意思
如果 MeshNamingMethod是 “” 或 “OwnerName” 分配ID⽤的,还有个属性是 “StaticMeshName” ,这个具体⽤法我不是很明⽩,后续使⽤后更新。
Camera Settings
CameraDefaults 在第⼀级根⽬录,指定所有相机的默认值,这些默认值在每个Vehicles中的相机Cameras中重写。
属性ImageType已经在前⾯介绍过了,除此之外可以设置ImageType: -1应⽤在外部相机(也就是显⽰屏成像的相机)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。