Skip to content
forked from koide3/glim

GLIM: versatile and extensible range-based 3D localization and mapping framework

License

Notifications You must be signed in to change notification settings

Futu-reADS/glim

 
 

Repository files navigation

GLIM

Introduction

GLIM is a versatile and extensible range-based 3D mapping framework.

  • Accuracy: GLIM is based on direct multi-scan registration error minimization on factor graphs that enables to accurately retain the consistency of mappint results. GPU acceleration is supported to maximize the mapping speed and quality.
  • Easy-to-use: GLIM offers an interactive map correction interface that enables the user to manually correct mapping failures and easily refine mapping results.
  • Versatility: As we eliminated sensor-specific processes, GLIM can be applied to any kind of range sensors including:
    • Spinning-type LiDAR (e.g., Velodyne HDL32e)
    • Non-repetitive scan LiDAR (e.g., Livox Avia)
    • Solid-state LiDAR (e.g., Intel Realsense L515)
    • RGB-D camera (e.g., Microsoft Azure Kinect)
  • Extensibility: GLIM provides the global callback slot mechanism that allows to access the internal states of the mapping process and insert additional constraints to the factor graph. We also release glim_ext that offers example implementations of several extension functions (e.g., explicit loop detection, LiDAR-Visual-Inertial odometry estimation).

Documentation: https://koide3.github.io/glim/
Docker hub: koide3/glim_ros1, koide3/glim_ros2
Related packges: gtsam_points, glim, glim_ros1, glim_ros2, glim_ext

Tested on Ubuntu 22.04 /24.04 with CUDA 12.2 / 12.5, and NVIDIA Jetson Orin (Jetpack 6.0).

If you find this package useful for your project, please consider leaving a comment here. It would help the author receive recognition in his organization and keep working on this project.

Build ROS1 ROS2 EXT

Dependencies

Mandatory

Optional

Video

See more at Video Gallery.

Left: Mapping with various range sensors, Right: Outdoor driving test with Livox MID360

Estimation modules

GLIM provides several estimation modules to cover use scenarios, from robust and accurate mapping with a GPU to lightweight real-time mapping with a low-specification PC like Raspberry Pi.

modules

License

If you find this package useful for your project, please consider leaving a comment here. It would help the author receive recognition in his organization and keep working on this project. Please also cite the following paper if you use this package in your academic work.

This package is released under the MIT license. For commercial support, please contact [email protected].

Related work

Koide et al., "GLIM: 3D Range-Inertial Localization and Mapping with GPU-Accelerated Scan Matching Factors", Robotics and Autonomous Systems, 2024, [DOI] [Arxiv]

The GLIM framework involves ideas expanded from the following papers:

  • (LiDAR-IMU odometry and mapping) "Globally Consistent and Tightly Coupled 3D LiDAR Inertial Mapping", ICRA2022 [DOI]
  • (Global registration error minimization) "Globally Consistent 3D LiDAR Mapping with GPU-accelerated GICP Matching Cost Factors", IEEE RA-L, 2021, [DOI]
  • (GPU-accelerated scan matching) "Voxelized GICP for Fast and Accurate 3D Point Cloud Registration", ICRA2021, [DOI]

Contact

Kenji Koide, [email protected]
National Institute of Advanced Industrial Science and Technology (AIST), Japan

About

GLIM: versatile and extensible range-based 3D localization and mapping framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.0%
  • CMake 2.0%