以下是AirSim配置文件front_stereo_and_center_mono.json文件全文及其注释
{
#SeeDocsAt参数用于提示官方文档地址
"SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md",
#SettingsVersion该参数用于指出settings.json文件版本
"SettingsVersion": 1.2,
#SimMode参数用于指定仿真模式,“Multirotor”为无人机仿真,“Car”为汽车仿真,“CumputerVison”为计算机自由视角
#“”为仿真开始时用户从汽车和无人机中选择一个,如果要与ros联合仿真,SimMode必须指定出来,不能使用空参数
"SimMode": "",
#ViewMode参数用于设置仿真运行时候屏幕呈现给你用于交互的视角模式,和载具上传感器采集的数据无关
#“FlyWithMe”为6自由度从后面追拍,“GroundObserver”从离开6米处拍,在xy平面具有完全自由度,“Fpv”从前置摄像头拍摄
#“Manual”为手动控制,视角不会自动移动,“SpringArmChase”为使用安装在隐形臂上的摄像头从后面追拍,注意该模式在运动中有一定延迟
#“Nodisplay”冻结屏幕渲染,提高仿真性能,其中汽车仿真默认值为“SpringArmChase”,飞机仿真默认值为“FlyWithMe”
"ViewMode": "SpringArmChase",
#CLockSpeed参数用于设置仿真时间相对于现实时间的倍率,减慢仿真速率(值<1.0)可以提高仿真质量
"ClockSpeed": 1.0,
#Vehicles是一个关键字,我们需要在其后面的{}中定义我们使用的仿真载具的具体信息,注意这里的Vechicles是关键字,而不是说明仿真载具是车辆
#具体的仿真载具类型是我们在Vecicles后面的{}中定义的
# ------------------仿真载具定义开始--------------#
"Vehicles": {
#-----------------定义drone_0载具开始----------#
#这里的"drone_0"参数是载具名称,可以定义多个载具,每个载具需要由不同的名称
"drone_0":{
},
#-----------------定义drone_0载具结束----------#
#-----------------定义drone_1载具开始----------#
"drone_1": {
#VehicleType参数是载具类型,必须填写。“PhysXCar”为可以使用键盘和api控制的汽车,“SimpleFlight”为可以使用api控制的无人机
#还有四个可以选择的参数为"PX4Multirotor","ComputerVision","ArduCopter","ArduRover",似乎是需要电脑外接控制器的载具类型
"VehicleType": "SimpleFlight",
#DefaultVehicleState参数是载具初始状态,对于车辆仿真,该项选项为“”;对于飞机仿真,由两个可选参数
#“Armed”为就绪状态,飞机可以起飞,“Disarmed”为锁定状态,飞机需要先解锁再起飞
"DefaultVehicleState": "Armed",
#EnableCollisionPassthrogh参数为是否允许物体在碰撞时候穿模,“true”为可以,“false”为不可以,一般应设置为false
"EnableCollisionPassthrogh": false,
#EnableCollisions是否启用碰撞系统(就是一个物体可以吧另外一个撞飞),“true”为可以,“false”为不可以
"EnableCollisions": true,
#AllowAPIAlways是否总是允许API控制载具,“true”为总是允许,此时api总是拥有载具的控制权限。
#“flase”为不总是允许,此时如果使用RC控制器,则需要在RC控制器上手动同意api控制,api才会接管载具控制
"AllowAPIAlways": true,
#-------------------------设置drone_1载具控制器------------#
"RC": {
#RemoteControlID参数为使用的RC控制器的编号,当进行车辆仿真时候,设置为-1是使用键盘控制
"RemoteControlID": 0,
#AllowAPIWhenDisconnected为RC控制器失去连接时候是否允许api接管控制,true为允许,false为不允许
"AllowAPIWhenDisconnected": false
},
#-------------------------设置drone_1载具控制器结束---------#
#-------------------------设置drone_1除了相机外的传感器----------------#
"Sensors": {
#“Imu“为传感器名字,可以自定义
"Imu" : {
#SensorType为传感器类型,”1“为气压计,”2“为IMU,”3“为GPS,”4“为磁力计,”5“为距离传感器,”6“为激光雷达
"SensorType": 2,
#Enabled为传感器是否激活,true为激活
"Enabled": true
},
#"Lidar"为传感器名字
"Lidar": {
"SensorType": 6,
"Enabled": true,
#NumberOfChannels为激光雷达通道数
"NumberOfChannels": 16,
#PointsPerSecond为每秒捕获的点数
"PointsPerSecond": 10000,
#”X,Y,Z“为激光雷达相对于车辆的位置,以NED为参考坐标系,以米为单位
"X": 0,
"Y": 0,
"Z": -1,
#DrawDebugPoints参数为是否在交互渲染界面绘制激光点,注意如果绘制激光点相机采集的图像中也会有这些点
"DrawDebugPoints": false
}
},
#-------------------------设置drone_1除了相机外的传感器----------------#
#-------------------------设置drone_1的相机传感器---------------------#
"Cameras": {
#front_center_custom为相机名称,后面{}内容为该相机设定
"front_center_custom": {
#CaptureSettings为相机参数设定
"CaptureSettings": [
{
"PublishToRos": 1,
"ImageType": 0,
"Width": 640,
"Height": 480,
"FOV_Degrees": 27,
"DepthOfFieldFstop": 2.8,
"DepthOfFieldFocalDistance": 200.0,
"DepthOfFieldFocalRegion": 200.0,
"TargetGamma": 1.5
}
],
"X": 0.50, "Y": 0, "Z": 0.10,
"Pitch": 0, "Roll": 0, "Yaw": 0
},
#front_left_custom为相机名称,后面{}内容为该相机设定
"front_left_custom": {
"CaptureSettings": [
{
"PublishToRos": 1,
"ImageType": 0,
"Width": 672,
"Height": 376,
"FOV_Degrees": 90,
"TargetGamma": 1.5
},
{
"PublishToRos": 1,
"ImageType": 1,
"Width": 672,
"Height": 376,
"FOV_Degrees": 90,
"TargetGamma": 1.5
}
],
"X": 0.50, "Y": -0.06, "Z": 0.10,
"Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0
},
#front_right_custom为相机名称,后面{}内容为该相机设定
"front_right_custom": {
"CaptureSettings": [
{
"PublishToRos": 1,
"ImageType": 0,
"Width": 672,
"Height": 376,
"FOV_Degrees": 90,
"TargetGamma": 1.5
}
],
"X": 0.50, "Y": 0.06, "Z": 0.10,
"Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0
}
},
#-------------------------设置drone_1的相机传感器结束---------------------#
#drone_1车辆在NED坐标系中的初始位置
"X": 2, "Y": 0, "Z": 0,
"Pitch": 0, "Roll": 0, "Yaw": 0
}
#--------------------定义drone_1载具结束-----------------#
},
#----------------------仿真载具定义结束---------------------#
#SubWindows配置子窗口,WindowID:0,1,2分别对应按键1,2,3时显示的窗口
"SubWindows": [
#CameraName参数是子窗口的图像来源
#Visible是仿真时候窗口是否默认打开,如果Visible的参数是false,需要在仿真时候手动通过数字按键打开该窗口
{"WindowID": 0, "ImageType": 0, "CameraName": "front_left_custom", "Visible": true},
{"WindowID": 1, "ImageType": 0, "CameraName": "front_center_custom", "Visible": false},
{"WindowID": 2, "ImageType": 0, "CameraName": "front_right_custom", "Visible": true}
]
}