# robot_localization dual-EKF: where did the idea come from?

We're currently using the dual-EKF scheme described in the documentation and the configuration example for using two instances of robot_localization: one for estimating the map->odom transformation, and another for odom->base_link transformation. So far, it's a working pretty well. My question: who invented this scheme? Is it common practice for UGV localization, and if yes, is there some literature out there about it? I haven't had any luck turning up a paper that talks about the pros/cons of this technique.

edit retag close merge delete

I guess that would be a good question for @Tom-Moore to answer.

( 2019-01-07 03:16:38 -0600 )edit

Sort by » oldest newest most voted

It's all really just a reflection of what's specified in REP-105. From the "Frame Authorities" section:

The transform from odom to base_link is computed and broadcast by one of the odometry sources.

The transform from map to base_link is computed by a localization component. However, the localization component does not broadcast the transform from map to base_link. Instead, it first receives the transform from odom to base_link, and uses this information to broadcast the transform from map to odom.

The whole REP is worth a read. I haven't updated r_l to work with the changes involving the earth frame, but I believe it conforms to the rest.

Note that you don't have to have a dual EKF setup. It's just that if you want your state estimate to come from fused data, rather than a single data source, then r_l can support that. Other approaches, such as letting amcl handle the map frame state estimate (and transform publication) by itself, or letting your wheel encoder odometry source (e.g., the differential drive controller) provide the odom frame state estimate/transform by itself, will also work.

more