cartographer_ros icon indicating copy to clipboard operation
cartographer_ros copied to clipboard

Landmark data integration without unique IDs

Open reinzor opened this issue 5 years ago • 8 comments

I read about landmark data integration into google cartographer: https://google-cartographer-ros.readthedocs.io/en/latest/demos.html#static-landmarks

If landmark data requires an unique identifier, we need data association if we cannot extract the unique identifier from the landmark measurement (e.g. measured reflector). What would be the way to go to integrate reflector measurements into Google Cartographer? Should there be a separate node (outside of cartographer) that handles the data association problems (in map frame) and publishes unique landmarks? Or can this be embedded into Google Cartographer? Any suggestions?

reinzor avatar Nov 11 '19 16:11 reinzor

If you could set up a separate node would output associations, I think it would be your best bet without having to get too much involved with the Cartographer code base.

ojura avatar Nov 11 '19 18:11 ojura

Thanks for your reply. Could you perhaps also address the other option of integrating it into the Cartographer code base. Where should this be addressed in your opinion and do you think such a contribution is desired?

reinzor avatar Nov 12 '19 07:11 reinzor

Any thoughts?

reinzor avatar Nov 19 '19 07:11 reinzor

Sorry, haven't seen your response. Upstream activity has been a bit quiet recently. But feel free to drop an rfc at googlecartographer/rfcs with a proposal to hopefully get some discussion going.

Unfortunately, I can't help you with the exact design, as that would be quite time consuming. The Cartographer codebase is quite readable and self-explanatory, though; you just have to put some effort into understanding it and perhaps you'll come up with an idea. To give you a starting hint, I think this should go into the part with deals with global SLAM, ie. the pose graph optimizer and the constraint builder, which act as a correcting layer for local SLAM (which is the local trajectory builder, ie. the laser odometry scan matcher which creates submaps). Perhaps you could implement an AssociationFinder or something like that which would be tasked with looking for associations and returning the appropriate constraints to PoseGraph.

ojura avatar Nov 19 '19 09:11 ojura

Thanks for your response. I will discuss this internally.

reinzor avatar Nov 19 '19 10:11 reinzor

Looking forward to your rfc :-) I think you can rely on Cartographer's constraint builder for closing loops and solving the kidnapped robot problem, and use a simple "nearest within search window" approach for creating associations. If you want to use just the markers for solving the kidnapped robot problem, we had some good experience with the method from this paper.

ojura avatar Nov 19 '19 10:11 ojura

Hi, Is there any progress on this issue. Does the cartographer now support landmarks without unique IDs? Are markers without orientation now supported, e.g. reflectors.

maxbader avatar Feb 17 '20 13:02 maxbader

Thanks for your response. I will discuss this internally.

Hi, Any update for that? I'm looking forward to your solution.

Huyhust13 avatar Jul 23 '21 03:07 Huyhust13