0
$\begingroup$

Rosanswers logo

Hello,

I would like to ask the difference between a state estimator like robot_localization, or robot_pose_ekf and a localization package like amcl.

Can we say, a state estimator estimating (x, y, z, roll, pitch, yaw, and their respective velocities) is more general than a localization module which only estimates (x, y, z, roll, pitch, yaw)

Other than the fact that, robot_localization, or robot_pose_ekf are fusing odometry data from different sensors and amcl is using this data plus laser/camera data to localize the robot, and (x, y, z) in state estimators are relative to the initial position and global (relative to the map) in amcl

Thanks


Originally posted by ROSCMBOT on ROS Answers with karma: 651 on 2014-09-04

Post score: 3


Original comments

Comment by Martin Peris on 2014-09-04:
I guess that the main difference would be a state estimator provides localization of the robot on a frame local to the robot (the origin of the odometry frame will depend on where the robot woke up) and a localization package such as amcl provides localization on a global frame.

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

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).


Originally posted by Tom Moore with karma: 13689 on 2014-09-05

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by ROSCMBOT on 2014-09-05:
Thanks. regarding amcl, as I know it uses LIDAR data and odometry data published by robot_pose_ekf or robot_localization on /odom_combined to localize the robot on a given map.

$\endgroup$
0
$\begingroup$

Rosanswers logo

In ROS these 3 are different implementations. Main difference is methods based on EKF need initial guess and are unimodal but particle filter doesnt need initial guess and are multimodal


robot_localization -> 3D tacking based on Extended Kalman filter with mulitple sensors (multiple odom and multiple IMU..)and provide more functionality (i didnt use it)


robot_pose_ekf -> 3D tacking based on Extended Kalman filter fusing wheel odometry, IMU sensor and visual odometry. For tracking pose.


amcl -> 2D localization based on particle filter uses odometry and laser.



Originally posted by bvbdort with karma: 3034 on 2014-09-05

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by ROSCMBOT on 2014-09-05:
Thanks. Is there a difference between tracking and localizing a robot in the environment?

Comment by bvbdort on 2014-09-05:
In localization you have to localize without initial guess and solving kidnapping problem (i.e in case if you lift the robot and place in other place it should recover). But in case of tracking, you need initial guess and need continuous tracking. In summary once you localize, you are just tracking

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.