运动传感器(IMU / Odometry)
支持惯性测量单元(AIASDGIMUSensor)与轮式里程计(AIASDGOdometrySensor),可与相机/雷达同步采集,也可在不开启相机的情况下独立高频运行。
1. 传感器类型与输出文件
| 传感器 | 关卡 Actor 类名 | 输出文件 | 格式说明 |
|---|---|---|---|
| IMU | AIASDGIMUSensor | {imu}/data.csv{imu}/data_groundtruth.csv{imu}/imu_params.yaml | EuRoC 风格 CSV:timestamp[ns], wx, wy, wz, ax, ay, az(三轴角速度 rad/s + 三轴比力加速度 m/s²),附带 Kalibr 兼容参数文件 |
| Odometry | AIASDGOdometrySensor | {odometry}/data.tum{odometry}/data_groundtruth.tum | TUM 轨迹格式:timestamp x y z qx qy qz qw(含轮径/轴距误差、打滑与航向漂移的里程计位姿) |
2. IMU 配置(sensors.imu.instances[])
"sensors": {
"imu": {
"instances": [
{
"name": "imu",
"enabled": true,
"preset": "bmi088",
"sample_rate_hz": 200,
"value": "both",
"time_offset_ms": 0.0,
"jitter_sigma_ms": 0.0
}
]
}
}
IMU 噪声预设(preset)
preset 值 | 陀螺噪声密度 ($\text{rad}/(\text{s}\cdot\sqrt{\text{Hz}})$) | 加计噪声密度 ($\text{m}/(\text{s}^2\cdot\sqrt{\text{Hz}})$) | 说明 |
|---|---|---|---|
ideal | 0 | 0 | 零噪声理想真值 |
bmi088 | 2.44e-4 | 1.72e-3 | Bosch BMI088 车载/无人机级 IMU |
mpu6050 | 8.73e-4 | 4.0e-3 | InvenSense MPU-6050 消费级 IMU |
custom | 自定义 | 自定义 | 在实例中直接填写下方任意 Kalibr 噪声参数即可覆盖预设 |
IMU 可选自定义参数
| 字段名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
sample_rate_hz | float | 200.0 | 输出采样频率(Hz) |
gyro_noise_density / accel_noise_density | float | 随 preset | 陀螺 / 加速度计白噪声密度(连续时间 Kalibr 定义) |
gyro_random_walk / accel_random_walk | float | 随 preset | 陀螺 / 加速度计零偏随机游走 |
gyro_turn_on_bias_sigma / accel_turn_on_bias_sigma | float | 0.0 | 每次采集上电抽样一次的常值零偏标准差(实际抽样值记录在 imu_params.yaml) |
value | string | "both" | "gt"(仅真值)、"sensor"(仅带噪观测)、"both"(同时输出 data.csv 与 data_groundtruth.csv) |
time_offset_ms / jitter_sigma_ms | float | 0.0 | 带噪流时间戳固定偏移与抖动(毫秒,真值文件始终保持精确仿真时间) |
state_source | string | "auto" | 运动状态源:auto | plant | physics | movement | differenced |
提示:IMU 的真实运动学带宽由仿真步长
clock.step_dt决定(观测频率 $= 1 / \text{step_dt}$,记入imu_params.yaml的ia_truth_bandwidth_hz)。若载具存在剧烈高频机动,可减小clock.step_dt(如设为0.005即 200 Hz 仿真步)。
3. 轮式里程计配置(sensors.odometry.instances[])
"sensors": {
"odometry": {
"instances": [
{
"name": "odometry",
"enabled": true,
"model": "ackermann",
"sample_rate_hz": 50,
"wheel_radius_m": 0.3,
"wheelbase_m": 2.5,
"left_wheel_error_fraction": 0.005,
"right_wheel_error_fraction": -0.003,
"slip_noise_sigma": 0.01,
"yaw_drift_rate": 0.002,
"value": "both"
}
]
}
}
4. 导出 EuRoC 视觉惯性(VIO / SLAM)数据集
当同一次采集中同时启用了相机与 IMU 时,采集结束后会自动在输出根目录生成 rig_calibration.json(包含相机内参、相机-IMU 外参变换矩阵与刚体性校验)。
运行以下命令即可一键转换为标准 EuRoC MAV 格式数据集(含 cam0/、imu0/、state_groundtruth_estimate0/ 与 sensor.yaml 标定文件),直接接入 ORB-SLAM3、VINS-Mono、OpenVINS 等算法:
python -m dataset_converter.convert <capture_dir> --format euroc