The TL;DR

Python

pip install "rko_lio[all]"
rko_lio -v /path/to/data

For example, if you’re running on a ROS bag, place all split parts in one folder (with metadata.yaml for ROS2) and pass that folder as the data path. -v opens the rerun visualizer.

By default, rko_lio tries to infer topics and TF relationships automatically; override with flags like --lidar, --imu, or --base_frame. If your bag doesn’t contain TF, supply IMU–LiDAR extrinsics via a YAML config (rko_lio --dump_config writes a default one to start from).

See Python for detailed examples and the full CLI surface.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-${ROS_DISTRO}-rko-lio
ros2 launch rko_lio odometry.launch.py \
    lidar_topic:=/your/lidar imu_topic:=/your/imu base_frame:=base

If you want to build from source instead, see ROS.

The launch file supports both online and offline modes via the mode argument and requires at least lidar_topic, imu_topic, and base_frame. Override individual parameters on the CLI or load them from a YAML file (config_file:=/path/to/config). Add rviz:=true for visualization.

To explore all launch parameters:

ros2 launch rko_lio odometry.launch.py -s

See ROS for an extended description.