littlebot
Published on 2025-04-12 / 2 Visits
0

【源码】基于Python和C++的IMU与姿态传感器校准系统

项目简介

本项目是对论文“A Gaussian Process approach for IMU to Pose Spatiotemporal Calibration”的公开代码实现,提供了Python/C++工具包,可用于IMU与姿态(通常是Vicon/运动捕捉系统或机械臂)的外部和时间校准。通过读取IMU和Vicon的数据,处理数据来估计两者之间的转换关系,以及IMU的轨迹和偏差,具备数据处理、校准计算和可视化结果等功能。

项目的主要特性和功能

  1. 数据读取与处理:可读取IMU和Vicon姿态传感器的数据,包含加速度计、陀螺仪和姿态信息。
  2. 校准参数估计:利用高斯过程回归和Ceres优化库,估计IMU与Vicon之间的旋转和平移校准参数。
  3. 可视化工具:提供可视化工具,展示加速度、角速度以及校准结果,方便理解和分析。
  4. 灵活配置:支持配置文件,用户能根据实际需求调整配置参数,如数据路径、话题名称等。
  5. 文档与示例数据:包含详细文档和示例数据,便于用户快速上手。

安装使用步骤

前提假设

假设用户已下载本项目的源码文件,且安装了ROS(机器人操作系统)、Git、CMake以及Python环境,具备基本编程和命令行操作能力。

安装步骤

  1. 复制项目代码:
  2. 安装C++依赖库: sudo apt-get install libboost-program-options-dev sudo apt-get install libeigen3-dev sudo apt-get install libceres-devlibboost-program-options-dev有问题,可尝试libboost-all-dev
  3. 编译项目: cd imu_vicon_calib mkdir build cd build cmake ../ make -j4 cd ..
  4. 安装Python依赖:所需Python包列于scripts/requirements.txt

使用步骤

  1. 配置文件:更新配置文件scripts/config.yaml,包含rosbag路径、话题名称、写入路径、外部变换初始猜测等。IMU话题类型须为sensor_msgs/Imu,姿态为geometry_msgs/TransformStamped或来自tf树。
  2. 运行脚本: python scripts/calibrate.py -c scripts/config.yaml 运行后会出现两组绘图,若IMU和Vicon/姿态测量曲线(橙色和绿色线)良好重叠,则校准效果佳。程序在两个窗口关闭时终止。
  3. 查看结果:使用提供的配置文件和示例数据,脚本会将IMU到姿态的外部参数和时间偏移写入data/imu_vicon_calib.csv,格式为pos_x, pos_y, pos_z, rot_x, rot_y, rot_z, delta_t

使用注意事项

  • 确保数据文件路径和格式正确。
  • 根据实际需求调整配置参数。
  • 运行脚本前确保所有依赖库已正确安装。
  • 保存生成的校准结果文件,以便后续使用。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】