项目简介
本项目是对论文“A Gaussian Process approach for IMU to Pose Spatiotemporal Calibration”的公开代码实现,提供了Python/C++工具包,可用于IMU与姿态(通常是Vicon/运动捕捉系统或机械臂)的外部和时间校准。通过读取IMU和Vicon的数据,处理数据来估计两者之间的转换关系,以及IMU的轨迹和偏差,具备数据处理、校准计算和可视化结果等功能。
项目的主要特性和功能
- 数据读取与处理:可读取IMU和Vicon姿态传感器的数据,包含加速度计、陀螺仪和姿态信息。
- 校准参数估计:利用高斯过程回归和Ceres优化库,估计IMU与Vicon之间的旋转和平移校准参数。
- 可视化工具:提供可视化工具,展示加速度、角速度以及校准结果,方便理解和分析。
- 灵活配置:支持配置文件,用户能根据实际需求调整配置参数,如数据路径、话题名称等。
- 文档与示例数据:包含详细文档和示例数据,便于用户快速上手。
安装使用步骤
前提假设
假设用户已下载本项目的源码文件,且安装了ROS(机器人操作系统)、Git、CMake以及Python环境,具备基本编程和命令行操作能力。
安装步骤
- 复制项目代码:
- 安装C++依赖库:
sudo apt-get install libboost-program-options-dev sudo apt-get install libeigen3-dev sudo apt-get install libceres-dev
若libboost-program-options-dev
有问题,可尝试libboost-all-dev
。 - 编译项目:
cd imu_vicon_calib mkdir build cd build cmake ../ make -j4 cd ..
- 安装Python依赖:所需Python包列于
scripts/requirements.txt
。
使用步骤
- 配置文件:更新配置文件
scripts/config.yaml
,包含rosbag路径、话题名称、写入路径、外部变换初始猜测等。IMU话题类型须为sensor_msgs/Imu
,姿态为geometry_msgs/TransformStamped
或来自tf
树。 - 运行脚本:
python scripts/calibrate.py -c scripts/config.yaml
运行后会出现两组绘图,若IMU和Vicon/姿态测量曲线(橙色和绿色线)良好重叠,则校准效果佳。程序在两个窗口关闭时终止。 - 查看结果:使用提供的配置文件和示例数据,脚本会将IMU到姿态的外部参数和时间偏移写入
data/imu_vicon_calib.csv
,格式为pos_x, pos_y, pos_z, rot_x, rot_y, rot_z, delta_t
。
使用注意事项
- 确保数据文件路径和格式正确。
- 根据实际需求调整配置参数。
- 运行脚本前确保所有依赖库已正确安装。
- 保存生成的校准结果文件,以便后续使用。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】