ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

I've always considered localization to be a special case of state estimation, but the state being estimated is the robot's pose and velocity.

As far as how each can be used, it's really up to you. Both robot_localization and robot_pose_ekf can fuse global position information, such as from a GPS or by using landmarks (providing you have a node that can generate a position estimate based on landmarks). They can also both fuse odometry data as estimated from a LIDAR, but again, you'd need a node that performs something like ICP on point cloud data and generates an odometry message. The main differences between the packages are that robot_localization can take in an arbitrary number of input sources and that it can integrate velocity data. The added flexibility does result in some extra legwork to set it up, however.

I should also point out that while robot_localization currently contains only one state estimation node (ekf_localization_node), the goal of the package is to eventually provide multiple state estimation nodes that vary in their approach (unscented Kalman filters, particle filters, graph-base techniques, etc.)

I am less familiar with amcl, but reading the wiki page, it looks likes it's using LIDAR to localize the robot in 2D against a map that is known a priori (someone correct me if this is wrong).