raulmur / ORB_SLAM2

Real-Time SLAM for Monocular, Stereo and RGB-D Cameras, with Loop Detection and Relocalization Capabilities
Other
9.17k stars 4.69k forks source link

How to configure IMU settings in yaml for data from AirSim #1021

Open catproof opened 2 years ago

catproof commented 2 years ago

How would I set up the config file for mono-inertial in Orb Slam? I figured out how to do it for just mono, but I'm not sure how to populate the imu fields in the yaml file for mono-inertial.

the settings for imu in airsim have different names:

"Imu": {
    "SensorType": 2,
    "Enabled" : true,
    "AngularRandomWalk": 0.3,
    "GyroBiasStabilityTau": 500,
    "GyroBiasStability": 4.6,
    "VelocityRandomWalk": 0.24,
    "AccelBiasStabilityTau": 800,
    "AccelBiasStability": 36

compared to the settings in the yaml file for orb slam:

https://github.com/UZ-SLAMLab/ORB_SLAM3/blob/master/Examples/Monocular-Inertial/EuRoC.yaml

here is my settings file for AirSim:

{ "SettingsVersion": 1.2, "ClockSpeed": 1, "SimMode": "Multirotor", "Vehicles" : { "Drone1" : { "VehicleType" : "SimpleFlight", "AutoCreate" : true, "Cameras" : { "front_camera_high_res": { "CaptureSettings" : [ { "ImageType" : 0, "Width" : 1280, "Height" : 720 } ], "X": 0.35, "Y": 0.0, "Z": 0.0, "Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0 } } } } }

catproof commented 2 years ago

I'm guessing it would be something like this:

Transformation from camera to body-frame (imu)

Tbc: !!opencv-matrix rows: 4 cols: 4 dt: f data: [1, 0, 0, -0.35, 0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0.0, 0.0, 1.0]

IMU noise

IMU.NoiseGyro: 4.6 (GyroBiasStability in AirSim) IMU.NoiseAcc: 36 (AccelBiasStability in AirSim) IMU.GyroWalk: 0.3 (AngularRandomWalk in AirSim) IMU.AccWalk: 0.24 (VelocityRandomWalk in AirSim) IMU.Frequency: 200

catproof commented 2 years ago

update: it looks like someone already figured out how to get the noise parameters https://github.com/microsoft/AirSim/discussions/3523#discussioncomment-525240

how would I get the transformation from camera to body-frame parameters?