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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

Package symbol

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

Package symbol

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
indigo

Package Summary

Tags No category tags.
Version 0.1.4
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-05-21
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status codecov License

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

A demo without odometry is also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.1.4 (2018-12-20)

  • Fix IO figure (#212)
  • Fix tf timestamp (#214)
  • Add pf::ParticleFilter::appendParticle (#207)
  • Fix pointer alignment style (#210)
  • Migrate tf to tf2 (#208)
  • Fix class member naming style (#205)
  • Make lidar measurement model class (#195)
  • Add I/O diagram to the document (#199)
  • Update Algorithms.md (#198)
  • Add apt-get upgrade to test Dockerfiles (#197)
  • Add document for expansion resetting (#193)
  • Add test for expansion resetting (#192)
  • Add test for global localization (#188)
  • Refactor likelihood calculation (#189)
  • Add a comment to test_transform_failure (#184)
  • Build mcl_3dl_msgs from source on CI (#185)
  • Fix resampling (#183)
  • Fix test failure on ROS buildfarm (#181)
  • Fix catkin package definitions (#180)
  • Add tf exception handling and change message level (#177)
  • Relax codecov patch threshold (#179)
  • Allow small coverage drop (#178)
  • Fix test names (#176)
  • Add build id to CI bot comment (#174)
  • Fold CI bot comment (#173)
  • Decrease bag playback rate in integration test (#172)
  • Add test for NormalLikelihoodNd (#171)
  • Report coverage only after successful test (#170)
  • Add CI badges (#169)
  • Add codecov covarage test (#168)
  • Fix bot comment target slug (#167)
  • Contributors: Atsushi Watanabe, So Jomura

0.1.3 (2018-06-23)

  • Fix install of demo launch and config (#164)
  • Update CI and add test on ROS Melodic (#155)
  • Ignore gh-pr-comment failure (#162)
  • Compile with PCL_NO_PRECOMPILE (#161)
  • Fix rostest dependency (#160)
  • Fix roslint dependency (#159)
  • Update install instructions in README (#158)
  • Update manifest format and fix CMakeLists (#157)
  • Use mcl_3dl_msgs package (#152)
  • Test with shadow-fixed repository (#154)
  • Update CI bot environments (#150)
  • Add encrypted token for image caching (#149)
  • Fix migration instruction message (#147)
  • Fix match ratio min/max check (#146)
  • Add interfaces to ChunkedKdtree for external usages (#145)
  • Install headers (#143)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

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

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
lunar

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

Package symbol

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
kinetic

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

Package symbol

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange

Package symbol

mcl_3dl package from mcl_3dl repo

mcl_3dl

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 0.6.5
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/at-wat/mcl_3dl.git
VCS Type git
VCS Version master
Last Updated 2025-07-04
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

3-D/6-DOF localization for mobile robots with 3-D LIDAR(s)

Additional Links

No additional links.

Maintainers

  • Atsushi Watanabe

Authors

  • Atsushi Watanabe

mcl_3dl

Build Status Codecov License

[!NOTE]
After official ROS 1 EOL, this package is released to Alpine ROS.

Package summary

mcl_3dl is 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.

The node receives the reference pointcloud as an environment map and localizes 6-DOF (x, y, z, yaw, pitch, roll) pose of measured pointclouds assisted by a motion prediction using odometry.

Currently, the supported motion model is differential-wheeled-robot. The node provides classic MCL; currently, it doesn’t implement adaptive feature like KDL-sampling and etc.

Algorithms

A fundamental algorithm of mcl_3dl node is Monte Carlo localization (MCL), aka particle filter localization. MCL represents a probabilistic distribution of estimated pose as density and weight of particles and estimates the pose from the distribution.

Node I/O

mcl_3dl I/O diagram

Install

from source

Note: mcl_3dl_msgs package is required to build mcl_3dl package.

# clone
cd /path/to/your/catkin_ws/src
git clone https://github.com/at-wat/mcl_3dl.git
git clone https://github.com/at-wat/mcl_3dl_msgs.git

# build
cd /path/to/your/catkin_ws
rosdep install --from-paths src --ignore-src -y  # Install dependencies
catkin_make -DCMAKE_BUILD_TYPE=Release  # Release build is recommended

from apt repository (for ROS Indigo/Kinetic/Lunar on Ubuntu)

sudo apt-get install ros-${ROS_DISTRO}-mcl-3dl

Running the demo

The example bag file of 2+4-DOF tracked vehicle with two Hokuyo YVT-X002 3-D LIDAR is available online. Pre-processed (filtered) 3-D pointcloud, IMU pose, odometry, and map data are packed in the bag.

# Download the example bag (230M)
wget -P ~/Downloads https://openspur.org/~atsushi.w/dataset/mcl_3dl/short_test3.bag

# Running the demo
roslaunch mcl_3dl test.launch use_pointcloud_map:=false use_cad_map:=false \
  use_bag_file:=true bag_file:=${HOME}/Downloads/short_test3.bag

The map data in the bag was generated by using the cartographer_ros and filtered by using pcl_outlier_removal and pcl_voxel_grid utilities.

Rviz image of the demo

MarkerArray shows several mcl_3dl internal information.

  • Purple spheres: sampled points used in the likelihood-model calculation
  • Red lines: casted rays in the beam-model calculation
  • Red boxes: detected collisions in raycasting

To try global localization, call /global_localization by the following command.

rosservice call /global_localization

Demos without odometry and without IMU are also available.

Contributing

mcl_3dl package is developed under GitHub flow. Feel free to open new Issue and/or Pull Request.

The code in this repository is following ROS C++ Style Guide. A configuration file for clang-format is available at https://github.com/seqsense/ros_style/.

License

CHANGELOG

Changelog for package mcl_3dl

0.6.5 (2025-07-04)

  • Subscribe latency sensitive topics by tcpNoDelay (#430)
  • Fix MCL_3DL_EXTRA_TESTS environment variable check in if condition (#429)
  • Fix CI job names (#428)
  • Remove old post-release script (#427)
  • Migrate to Alpine ROS 1 (#426)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.4 (2024-10-10)

  • Fix angular part of covariance matrix (#417)
  • Contributors: f-fl0

0.6.3 (2024-07-22)

  • Explicitly handle zero sigma (#414)
  • Update assets to v0.6.4 (#413)
  • Update assets to v0.6.3 (#412)
  • Update assets to v0.6.2 (#411)
  • Contributors: Atsushi Watanabe

0.6.2 (2023-11-14)

  • Fix reported entropy (#408)
  • Update assets to v0.6.1 (#407)
  • Update assets to v0.6.0 (#406)
  • Update assets to v0.5.2 (#405)
  • Update assets to v0.5.1 (#404)
  • Update assets to v0.4.2 (#402)
  • Contributors: Atsushi Watanabe, f-fl0

0.6.1 (2023-01-04)

  • Update assets to v0.4.1 (#400)
  • Support PCL 1.11 and later (#397)
  • Update assets to v0.4.0 (#395)
  • Update assets to v0.3.4 (#392)
  • Remove old workarounds for PCL<1.8 (#389)
  • Update assets to v0.3.3 (#388)
  • Update assets to v0.3.2 (#387)
  • Update code format (#386)
  • Contributors: Atsushi Watanabe

0.6.0 (2021-05-12)

  • Add option to load cloud through "load_pcd" service (#381)
  • Update assets to v0.3.1 (#382)
  • Update assets to v0.3.0 (#380)
  • Update assets to v0.2.0 (#379)
  • Contributors: Atsushi Watanabe, Remco

0.5.4 (2021-03-07)

  • Add odom/imu/cloud_queue_size params (#375)
  • Fix flaky tests (#376)
  • Contributors: Atsushi Watanabe

0.5.3 (2021-02-26)

  • Fix cloud accum reset on map update (#371)
  • Contributors: Atsushi Watanabe

0.5.2 (2021-01-15)

  • Fix potential "Time is out of dual 32-bit range" error (#367)

File truncated at 100 lines see the full file

Launch files

  • launch/test.launch
      • without_odom [default: false]
      • without_imu [default: false]
      • use_neonavigation [default: false]
      • use_pointcloud_map [default: true]
      • use_cad_map [default: false]
      • use_cad_map [default: true]
      • map_objs
      • map_pcd
      • map_scale [default: 1.0]
      • map_offset_x [default: 0.0]
      • map_offset_y [default: 0.0]
      • generate_test_bag [default: false]
      • use_bag_file [default: false]
      • bag_file
      • config_file [default: $(find mcl_3dl)/config/test_localization.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noodom.yaml]
      • config_file [default: $(find mcl_3dl)/config/test_localization_noimu.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mcl_3dl at Robotics Stack Exchange