github.com/at-wat/mcl_3dl

A ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.

Open this visualization on its own page →

Contributors

7

Lines of Code

845

From

2016-10-06

To

2021-01-15

About at-wat/mcl_3dl

mcl_3dl is a ROS node that implements Monte Carlo localization for 6-DOF pose estimation of mobile robots equipped with 3-D LIDAR sensors. The system works by comparing incoming pointcloud data against a reference pointcloud map and using a particle filter approach to estimate the robot's position and orientation across all six degrees of freedom (x, y, z, yaw, pitch, roll). Motion prediction from odometry data assists the localization process.

The implementation uses standard Monte Carlo localization algorithms where particles represent candidate poses weighted by their likelihood based on how well their predicted sensor readings match actual LIDAR observations. The node currently supports differential-wheeled robot motion models and provides visualization of internal computation details including sampled points and raycasting operations. The package has been tested with tracked vehicles carrying multiple 3-D LIDAR units and includes demonstration datasets showing practical use cases both with and without odometry or IMU data.

The codebase is written in C++ following ROS style guidelines and has been developed as an active open-source project. Following ROS 1's end-of-life, the package has transitioned to Alpine ROS distribution. It includes backported code from the Point Cloud Library and provides modular parameters for algorithm configuration documented in the repository.

Share this video