ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org
Ask Your Question
0

Navigation Stack, AMCL or EKF

asked 2014-08-22 17:09:31 -0600

ROSCMBOT gravatar image

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

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2014-08-22 17:21:28 -0600

paulbovbel gravatar image

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

edit flag offensive delete link more

Comments

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?

ROSCMBOT gravatar imageROSCMBOT ( 2014-08-22 17:44:58 -0600 )edit

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.

paulbovbel gravatar imagepaulbovbel ( 2014-08-22 18:39:55 -0600 )edit

@paulbovel, what to do in the case I only use visual odometry and need amcl to output odom->map/world

creative_cimmons gravatar imagecreative_cimmons ( 2015-07-01 17:19:00 -0600 )edit

@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?

murdock gravatar imagemurdock ( 2016-05-15 10:54:52 -0600 )edit
1

@murdock, that's exactly what I outlined above.

paulbovbel gravatar imagepaulbovbel ( 2016-05-16 17:39:06 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2014-08-22 17:09:31 -0600

Seen: 1,694 times

Last updated: Aug 22 '14