Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
jazzy

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
kilted

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
rolling

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rko_lio package from rko_lio repo

rko_lio

ROS Distro
humble

Package Summary

Version 0.2.0
License MIT
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PRBonn/rko_lio.git
VCS Type git
VCS Version master
Last Updated 2025-12-02
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

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

Maintainers

  • Meher Malladi

Authors

No additional authors.

RKO-LIO

Robust LiDAR-Inertial Odometry Without Sensor-Specific Modelling

[![arXiv](https://img.shields.io/badge/arXiv-2509.06593-b31b1b.svg)](https://arxiv.org/abs/2509.06593) [![GitHub License](https://img.shields.io/github/license/PRBonn/rko_lio)](/LICENSE) [![GitHub last commit](https://img.shields.io/github/last-commit/PRBonn/rko_lio)](/) [![PyPI - Version](https://img.shields.io/pypi/v/rko_lio?color=blue)](https://pypi.org/project/rko-lio/) ![ROS Package Index](https://img.shields.io/ros/v/humble/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/jazzy/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/kilted/rko_lio) ![ROS Package Index](https://img.shields.io/ros/v/rolling/rko_lio)

Visualization of odometry system running on data from four different platforms in four different environments
Four different platforms, four different environments, one odometry system

Quick Start

Assuming you have a rosbag (ros1/ros2) which contains a TF tree, you can run RKO-LIO through

pip install rko_lio rosbags rerun-sdk
# data path should be a directory with *.bag files (ROS1) or a metadata.yaml (ROS2)
rko_lio -v /path/to/data

Why pip install those three packages?

  • rko_lio -> the odometry package
  • rosbags -> required for the rosbag dataloader. Both ros1 and ros2 bags are supported!
  • rerun-sdk -> required for the optional visualizer (-v flag)

Check further options for the CLI through rko_lio --help.

More details are available in the Python usage docs.

ROS

Supported distros: Humble, Jazzy, Kilted, Rolling.

sudo apt install ros-$ROS_DISTRO-rko-lio

Or if you’d like to build from source, clone the repo into your colcon workspace and

rosdep install --from-paths src --ignore-src -r -y
colcon build --packages-select rko_lio  # --symlink-install --event-handlers console_direct+

In case you cannot system install the necessary dependencies through rosdep, you can also build the dependencies while building RKO-LIO

colcon build --packages-select rko_lio --cmake-args -DRKO_LIO_FETCH_CONTENT_DEPS=ON

A launch file is provided:

ros2 launch rko_lio odometry.launch.py imu_topic:=<topic> lidar_topic:=<topic> base_frame:=base_link

The three parameters above are the minimum you need to specify for the launch file.

Check further launch configuration options through ros2 launch rko_lio odometry.launch.py -s

More details are available in the ROS usage docs.

License

This project is free software made available under the MIT license. For details, see the LICENSE file.

Citation

If you found this work useful, please consider leaving a star :star: on this repository and citing our paper:

@article{malladi2025arxiv,
  author      = {M.V.R. Malladi and T. Guadagnino and L. Lobefaro and C. Stachniss},
  title       = {A Robust Approach for LiDAR-Inertial Odometry Without Sensor-Specific Modeling},
  journal     = {arXiv preprint},
  year        = {2025},
  volume      = {arXiv:2509.06593},
  url         = {https://arxiv.org/pdf/2509.06593},
}

RA-L Submission

You can check out the branch ral_submission for the version of the code used for submission to RA-L. Please note that that branch is meant to be an as-is reproduction of the code used during submission and is not supported. The master and release versions are vastly improved, supported, and are the recommended way to use this system.

Acknowledgements

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package rko_lio

0.2.0 (2025-12-02)

  • Fix (core): log proper pose for the first frame if init. phase is on (#89)
  • chore: bump FetchContent Eigen to 5.0.1 (#88) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • core: minimize TimestampProcessingConfig (#87)
    • remove the configs for start and end time thresholds that can be satisfied much simpler by just forcing relative or absolute overrides
  • python: remove unnecessary scan viz (#85)
  • remove pytest as optional dep, added toml based config (#83)
  • Rename published_deskewed_cloud to publish_deskewed_scan (#81)
  • Fix: core - proper second frame pose if initialization off (#77)
    • move preproc to its own file and fix the non intialization behaviour
    • better (but not cross platform-worthy) identity registration testing
  • Update accelerometer data expectation in docs. Clarified accelerometer assumptions
  • core: Configurable lidar timestamp processing (#74)
    • thresholds and timestamp processing behaviour is configurable
    • config modifications to the python side
    • ros side launch config modified to have more params
    • docs additions and cleanup
    • fix the py tests since the api changed
  • update installation instructions and badge formatting. Updated README.md to improve formatting and clarity of installation instructions and dependencies.
  • More CLI options, profiles stats has variance, dumping deskewed scans (#73)
    • add the modifications needed to dump the plys when running
    • add variance to profile stats
    • python: pybind interval stats, and imu logging in rerun
    • more cli options, viz improvements a bit
    • update the cli for dumping deskewed
    • update the rbl
  • Update README.md. Add ros source build details
  • Folder reorganisation and docs update (#69)
    • flatten the directories. massive renaming across the board
    • docs rework
    • docs updates
    • rename the config file so its explicit
    • fix workflows
  • Core/move logging to wrappers (#68)
    • remove logging from core. improve docs
    • python side now does its own config and traj dumping
    • nlohmann json is no longer a core requirement. ros only
    • result dumping on ros side now
    • make result logging on ros optional. and add launch config for that
    • use a shutdown callback for ros to dump results
  • Contributors: Anthony Bisulco, Meher Malladi, dependabot[bot]

0.1.7 (2025-10-21)

  • python: Update rosbags requirement from to allow 0.11 (#63)

    • Update rosbags requirement from <0.11,>=0.10 to >=0.10,<0.12 in /python

    * Changes to rosbag reader to support older versions and 0.11 Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Meher Malladi <<rm.meher97@gmail.com>>

  • actions: Bump pypa/cibuildwheel from 3.2.0 to 3.2.1 (#61) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update typer requirement from <0.20,>=0.19 to >=0.19,<0.21(#62) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: Update rerun-sdk version (#64) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

  • python: pin versions for compatibility (#60)

    • add python to dependabot checks
    • specify upper bounds for pip dependencies
    • add optional dataloader tests, and add a workflow to install and

File truncated at 100 lines see the full file

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rko_lio at Robotics Stack Exchange