Adaptive Monte Carlo Localization
AMCL 自适应蒙特卡洛定位AMCLCommonA ROS localization module that estimates a robot's position on a known map using particle filtering and laser scans.
AMCL is the 2D localization package in the ROS navigation stack, implementing Dieter Fox's adaptive (KLD-sampling) Monte Carlo localization; the ROS 1 version is credited to Brian Gerkey, and Nav2 ported it over largely unchanged as nav2_amcl. Monte Carlo localization itself was proposed by Frank Dellaert, Dieter Fox, Wolfram Burgard, and Sebastian Thrun in 1999, and represents the robot's possible positions with a set of particles: as the robot moves, the particles are pushed forward according to odometry plus noise, and each new laser scan gives higher weight to particles that agree with the map; resampling by weight then lets the particles gradually converge on the true position. ‘Adaptive’ refers to the particle count automatically growing or shrinking with the level of uncertainty. AMCL only handles localization — the map itself must already have been built with SLAM.
ExampleAfter a warehouse AMR powers on, the operator roughly marks its initial position in RViz using ‘2D Pose Estimate.’ As the robot starts moving, AMCL's particle cloud gradually shrinks from a broad spread into a tight cluster, and the position locks in.
- Also called
- AMCL, KLD-Sampling Monte Carlo Localization, nav2_amcl
- Related
- Particle Filter · Simultaneous Localization and Mapping · 2D LiDAR · Wheel Odometry · Occupancy Grid Map · ROS 2 Navigation Stack (Nav2)
- Sources
- ROS amcl package.xml (ros-planning/navigation, noetic-devel)
Nav2 nav2_amcl README
Wikipedia: Monte Carlo localization