PRBonn/rko_lio

A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modelling

RKO‑LIO – 鲁棒的激光雷达-惯性里程计

是什么 – RKO‑LIO 是一个开源库,将 3D 激光雷达扫描与 IMU 数据融合,以估计机器人的位姿(里程计),无需特定传感器的校准模型。它可在原始 ROS 包(ROS 1 或 ROS 2)上运行,也可作为纯 Python 包使用。

主要特性

  • 传感器无关:无需为特定激光雷达或 IMU 手动调优模型;仅需两个坐标系之间的外参变换。
  • 多平台支持:使用单一代码库在四种不同机器人和环境中成功验证。
  • Python 与 ROS 接口:可通过 pip 安装以快速实验,或作为 ROS 2 包(apt install ros-<distro>-rko-lio)使用。
  • 可视化:可选的实时可视化工具,使用 Rerun SDK(-v 标志)。
  • 可配置:外参通过一个小型 YAML 文件提供;其他所有参数均有合理默认值。
  • 已发表研究:配套发表于 2026 年的同行评审 IEEE RA‑L 论文及 arXiv 预印本。

Python 使用入门

pip install "rko_lio[all]"   # 安装 rko_lio、rosbags、rerun-sdk
rko_lio -v /path/to/rosbag_folder   # 带可视化运行
  • 使用 rko_lio --dump_config > config.yaml 生成模板。
  • 编辑 config.yaml,设置 extrinsic_imu2base_quat_xyzw_xyzextrinsic_lidar2base_quat_xyzw_xyz(示例:[0,0,0,1,0,0,0])。
  • 使用 rko_lio --config config.yaml 运行。

ROS 2 使用入门

sudo apt install ros-$ROS_DISTRO-rko-lio   # Humble、Jazzy 等版本的二进制安装
# 或在 colcon 工作空间中从源码构建
colcon build --packages-select rko_lio
ros2 launch rko_lio odometry.launch.py   # 自动检测话题与坐标系
  • 若自动检测失败,可通过启动参数提供 imu_topiclidar_topicbase_frame(或完整配置文件)。

典型工作流程

  1. 记录包含激光雷达扫描、IMU 数据和 TF 树的 ROS 包。
  2. 确保 IMU 到基座和激光雷达到基座的外参在 TF 树中,或通过 YAML 文件提供。
  3. 运行该包(Python CLI 或 ROS 启动)以获得连续的位姿估计。
  4. 使用 Rerun(-v)实时可视化,或使用 PlotJuggler 后续回放。

为何重要 – 传统激光雷达-惯性里程计通常需要针对每个传感器进行校准(如噪声模型、偏置参数)。RKO‑LIO 消除了这一负担,使在新硬件上部署或快速原型开发变得更加容易,同时仍能提供准确且漂移较小的位姿估计。

文档与支持

引用 如果在研究中使用 RKO‑LIO,请引用配套的 IEEE RA‑L 论文(2026)——README 提供了完整的 BibTeX 条目。


TL;DR – RKO‑LIO 是一个即用型、传感器无关的激光雷达-惯性里程计库,支持通过 pip 安装的 Python 包和 ROS 2 包,并可通过 Rerun 实现可选的实时可视化。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目