从10Hz到100Hz:KITTI数据集IMU频率升级实战指南
在自动驾驶和机器人定位研究中,KITTI数据集堪称行业标杆,但其原始数据中的IMU采样率仅为10Hz,这给需要高频率惯性数据的研究者带来了不小挑战。本文将带你深入解决这个痛点,通过Python2和rosbag工具链,将IMU数据频率提升至100Hz,同时保持与其他传感器的精确同步。
1. 理解KITTI数据集的频率差异
KITTI数据集实际上包含两种不同版本的数据:
- sync版本:经过相机去畸变处理,但IMU频率降至10Hz
- extract版本:原始传感器数据,IMU保持100Hz原始频率,但未做相机畸变校正
这种设计源于数据采集时的技术限制。原始100Hz的IMU数据对于姿态估计、传感器融合等算法至关重要,特别是当需要处理快速运动或高频振动时,10Hz的数据会导致信息严重丢失。
关键区别:extract数据中的
/kitti/oxts/imu话题包含100Hz原始数据,而sync版本中同名话题只有10Hz
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与数据获取
2.1 必要工具安装
确保已安装以下工具链:
bash复制# Python2环境(推荐使用virtualenv)
sudo apt install python2 python-pip
# ROS相关工具
sudo apt install ros-<distro>-rosbag ros-<distro>-tf2-msgs
# 可视化工具
sudo apt install pyqt4-dev-tools
2.2 数据集下载与整理
-
从KITTI官网下载
2011_10_03_drive_0027的extract版本:code复制http://www.cvlibs.net/datasets/kitti/raw_data.php?type=residential -
下载对应的sync版本数据集(需已拥有)
-
文件结构重组:
bash复制# 将extract中的oxts重命名 mv oxts oxts_extract # 复制到sync目录 cp -r oxts_extract /path/to/sy
