PRBonn/rko_lio

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

RKO‑LIO – Robust LiDAR‑Inertial Odometry

What it is – RKO‑LIO is an open‑source library that fuses a 3‑D LiDAR scanner with an IMU to estimate a robot’s pose (odometry) without needing sensor‑specific calibration models. It works on raw ROS bags (ROS 1 or ROS 2) and can also be run as a pure‑Python package.

Key features

  • Sensor‑agnostic: No hand‑tuned models for a particular LiDAR or IMU; only the extrinsic transform between the two frames is required.
  • Multi‑platform: Demonstrated on four different robots and environments with a single code base.
  • Python & ROS interfaces: Install via pip for quick experiments or as a ROS 2 package (apt install ros-<distro>-rko-lio).
  • Visualization: Optional real‑time visualizer using the Rerun SDK (-v flag).
  • Configurable: Extrinsics are supplied via a tiny YAML file; all other parameters have sensible defaults.
  • Published research: Accompanies a peer‑reviewed IEEE RA‑L paper (2026) and an arXiv pre‑print.

How to get started (Python)

pip install "rko_lio[all]"   # pulls rko_lio, rosbags, rerun-sdk
rko_lio -v /path/to/rosbag_folder   # run with visualizer
  • Use rko_lio --dump_config > config.yaml to create a template.
  • Edit config.yaml to set extrinsic_imu2base_quat_xyzw_xyz and extrinsic_lidar2base_quat_xyzw_xyz (identity example: [0,0,0,1,0,0,0]).
  • Run with rko_lio --config config.yaml.

How to get started (ROS 2)

sudo apt install ros-$ROS_DISTRO-rko-lio   # binary install for Humble, Jazzy, …
# or build from source in a colcon workspace
colcon build --packages-select rko_lio
ros2 launch rko_lio odometry.launch.py   # autodetect topics & frames
  • If autodetection fails, provide imu_topic, lidar_topic, and base_frame (or a full config file) via launch arguments.

Typical workflow

  1. Record a ROS bag containing LiDAR scans, IMU data, and a TF tree.
  2. Ensure the IMU‑to‑base and LiDAR‑to‑base extrinsics are either in the TF tree or supplied in a YAML file.
  3. Run the package (Python CLI or ROS launch) to obtain a continuous pose estimate.
  4. Visualize live with Rerun (-v) or replay later with PlotJuggler.

Why it matters – Traditional LiDAR‑Inertial odometry often requires per‑sensor calibration (e.g., noise models, bias parameters). RKO‑LIO removes that burden, making it easier to deploy on new hardware or in rapid‑prototyping scenarios while still delivering accurate, drift‑reduced pose estimates.

Documentation & support

Citation If you use RKO‑LIO in research, cite the accompanying IEEE RA‑L paper (2026) – the README provides the full BibTeX entry.


TL;DR – RKO‑LIO is a ready‑to‑use, sensor‑agnostic LiDAR‑Inertial odometry library for robotics, available both as a pip‑installable Python package and a ROS 2 package, with optional real‑time visualization via Rerun.

Related

  • Project
  • Project
  • Project
  • Project
  • Project