0
$\begingroup$

Rosanswers logo

According to ROS wiki:

"amcl takes in a laser-based map, laser scans, and transform messages, and outputs pose estimates."

"The Robot Pose EKF package is used to estimate the 3D pose of a robot, based on (partial) pose measurements coming from different sources. It uses an extended Kalman filter with a 6D model (3D position and 3D orientation) to combine measurements from wheel odometry, IMU sensor and visual odometry."

What I understand from the descriptions of these two localization algorithms is that amcl only works with laser data and ekf works only with odometry sources (wheel encoder, IMU, visual odometry). Is this a correct interpretation?

and how can I switch between amcl and ekf in the navigation stack?

Thanks


Originally posted by ROSCMBOT on ROS Answers with karma: 651 on 2014-08-22

Post score: 1

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

You would use ekf_robot_pose (or the newer more flexible robot_localization) package to fuse together odometry data such as with wheel odometry, imu, gps, etc

Then you would use amcl to compensate for drift in the odometry by estimating pose in relation to your static map (/odom->/map tf).


Originally posted by paulbovbel with karma: 4518 on 2014-08-22

This answer was ACCEPTED on the original site

Post score: 5


Original comments

Comment by ROSCMBOT on 2014-08-22:
Thanks. So can we say ekf_robot_pose localizes the robot using odomtery sources, and amcl complements it using laser/camera data? and in the navigation stack, is amcl using ekf_robot_pose automatically?

Comment by paulbovbel on 2014-08-22:
ekf_robot_pose fuses the sensor data using an extended kalman filter. this result is then used as a better-than-just-wheel-odometry data source to aid in localization.

Comment by creative_cimmons on 2015-07-01:
@paulbovel, what to do in the case I only use visual odometry and need amcl to output odom->map/world

Comment by murdock on 2016-05-15:
@paulbovbel, What If I used ekf_localization_node + amcl? Wouldnt it do the same thing? Fuse data in EKF node and then provide it to AMCL one?

Comment by paulbovbel on 2016-05-16:
@murdock, that's exactly what I outlined above.

$\endgroup$

Your Answer

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