日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

AirSim 自动驾驶仿真 (3) setting.json帮助文档解析

發布時間:2023/12/19 综合教程 63 生活家
生活随笔 收集整理的這篇文章主要介紹了 AirSim 自动驾驶仿真 (3) setting.json帮助文档解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://blog.csdn.net/Zhaoxi_Li/article/details/107946885

文章目錄

1 json存儲位置
2 如何在車輛Car和旋翼無人機Multirotor之間進行選擇
3 可用的設置和對應默認值

SimMode
ViewMode
TimeOfDay
OriginGeopoint
SubWindows
Recording
ClockSpeed
Segmentation Settings
Camera Settings
Vehicles Settings
其他的一些設置

總結

1 json存儲位置

Windows在DocumentsAirSim,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,
        "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": {
      "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。

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

按照特定的時間間隔記錄數據,比如位置、姿態、速度和對應圖像。仿真器上面有按鈕可以開始記錄。數據存在DocumentsAirSim,對應配置代碼如下所示。

"Recording": {
    "RecordOnMove": false,
    "RecordInterval": 0.05,
    "Cameras": [
        { "CameraName": "0", "ImageType": 0, "PixelsAsFloat": false, "Compress": true }
    ]
  },

  

RecordInterval指定采集兩張圖片的最小時間間隔,就是每隔多少秒采集一張圖片。
RecordOnMove指定如果車輛不動是否還采集圖像
Cameras設置相機的屬性,默認是使用相機0,并壓縮存儲。相同屬性跟SubWindows一樣,如果PixelsAsFloat為true,圖像將會存儲為pfm格式。

Camera Settings

CameraDefaults在第一級根目錄,指定所有相機的默認值,這些默認值在每個Vehicles中的相機Cameras中重寫。

屬性ImageType已經在前面介紹過了,除此之外可以設置ImageType: -1應用在外部相機(也就是顯示屏成像的相機)。

"CaptureSettings"設置的是不同種圖像屬性,比如scene, depth, disparity, surface normals和segmentation 等等。屬性Width, Height, FOV就是圖像分辨率內參相關。AutoExposureSpeed值較高可以消除圖像采集中的偽影。MotionBlurAmount設置為0以避免真值中的偽影。ProjectionMode投影模式,不太能理解,用默認perspective就行(其他參數有的跟參數有關,主要是需要設置前4個,其他默認就好)。

NoiseSettings允許想特定圖像添加噪聲,目的是模擬傳感器噪聲,干擾和偽影。默認是無噪聲添加的Enabled: false。如果需要噪聲,設置其余屬性就行。

RandContrib噪聲混合比,0表示無噪聲,1表示只有噪聲。
RandSpeed設置噪波波動的速度,1表示無波動,較高的值如1E6表示完全波動。
RandSize這決定了噪聲的粗糙程度,1表示每個像素都有自己的噪聲,而較高的值意味著超過1個像素共享相同的噪聲值。
RandDensity這決定了有多少像素會有噪聲,1表示所有像素,值越高表示像素數越少。
HorzWaveContrib添加水平凹凸/閃爍/重影效果,這決定了噪波像素與圖像像素的混合比,0表示無噪波,1表示只有噪波。
HorzWaveStrength這決定了效果的整體強度。
HorzWaveVertSize這決定了有多少垂直像素會受到效果的影響。
HorzWaveScreenSize這決定了屏幕有多大程度上受效果的影響。
其他都是各種方向噪聲,感覺用途不多,暫時不分析了,專業人士看文檔即可。

Gimbal允許凍結相機三個軸的方向,這個設置對第三人稱視角是無用的,也就是ImageType為-1,當Stabilization為0就表示相機隨著本體模型的運動而運動,值為1時候,表示完全穩定。值取值范圍為0-1,用來與車的角度進行混合,Pitch,RollYaw任何一個值設為NaN,表示這個角度將隨車運動。

"CameraDefaults": {
    "CaptureSettings": [
      {
        "ImageType": 0,
        "Width": 256,
        "Height": 144,
        "FOV_Degrees": 90,
        "AutoExposureSpeed": 100,
        "AutoExposureBias": 0,
        "AutoExposureMaxBrightness": 0.64,
        "AutoExposureMinBrightness": 0.03,
        "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
  },

  

Vehicles Settings

仿真器將遍歷"Vehicles"列表創建"AutoCreate": true的車輛。
Each simulation mode will go through the list of vehicles specified in this setting and create the ones that has"AutoCreate": true. 指定的每個車輛都有個key,這個key就是車的名字。如果這個設置中不存在這個屬性,則使用默認叫“PhysXCar”的車和“SimpleFlight”的無人機來填充。

"Vehicles": {
    "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
    }
  }

  

下面對其中的一些屬性進行說明。

VehicleType: 這個屬性可以選擇PhysXCar,SimpleFlight,PX4MultirotorComputerVision. 不存在默認值因此這個必須被指定。
PawnPath: This allows to override the pawn blueprint to use for the vehicle. For example, you may create new pawn blueprint derived from ACarPawn for a warehouse robot in your own project outside the AirSim code and then specify its path here. See alsoPawnPaths.
DefaultVehicleState: 用于無人機的可能值,ArmedDisarmed
AutoCreate: 如果為真,則生成此車輛。
RC: 指定車輛使用的遙控器
RemoteControlID. 控制器選擇,值為-1時候使用鍵盤控制(不支持無人機),值≥0時候指定一個連接在電腦的控制器。
X, Y, Z, Yaw, Roll, Pitch: 車輛初始化時候的位置和方向。
IsFpvVehicle: 選擇那輛車產生第一視角數據,默認是使用第一輛車作為FPV車輛,其實就是數據窗口總共就3個,必須指定一個來采集數據。
Cameras: 為每個車輛指定相機,屬性和值的使用與CameraDefaults是一樣的。如果改變前置相機的FOV為120°,那么可以按照如下的代碼對Vehicles進行修改.

"Vehicles": {
    "FishEyeDrone": {
      "VehicleType": "SimpleFlight",
      "Cameras": {
        "front-center": {
          "CaptureSettings": [
            {
              "ImageType": 0,
              "FOV_Degrees": 120
            }
          ]
        }
      }
    }
}

  

總結

以上是生活随笔為你收集整理的AirSim 自动驾驶仿真 (3) setting.json帮助文档解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。