smac
November 25, 2019, 11:57pm
1
Hi, Friendly neighborhood Nav stack maintainer here.
I’ve started a discussion analog to the default SLAM discussion regarding localization techniques to support in ROS2 navigation for the foreseeable future. AMCL is not awesome, and I think many folks would like to see it die. Here’s your chance to make your thoughts known! If you have other non-MCL localization techniques you’d like to throw out, I’d love to hear them and any links to existing implementations that might exist (not required). See discussion below in link and comments to follow.
opened 11:50PM - 25 Nov 19 UTC
We should consider how to improve on AMCL by replacing, refactoring, or reconsid… ering algorithms given the state of the art. NDT is another method and a paper https://www.researchgate.net/publication/261352911_Normal_distributions_transform_Monte-Carlo_localization_NDT-MCL/link/587c8d6608ae4445c067dbb4/download uses NDT-MCL for localization to increase quality greatly resembling reflector-level localization errors (really good). There's also maybe (?) an MVP version here: https://github.com/OrebroUniversity/perception_oru/tree/port-kinetic
---
There's also an on-going discussion here (https://github.com/VorpalBlade/quickmcl/issues/15) about potentially moving away from the software package that implements an MCL, AMCL, to another, QuickMCL (QMCL?).
Benefits are
- More permissive licensing (probably)
- Better structured software
- Lower memory footprint
- Scales linearly (vs o(n2)) with number of particle
Drawbacks
- Quite a bit of work to migrate to ROS2
- No beam skipping or beam model yet
- No motion models yet
- Not as rigorously tested in numerous environments
It seems like a good way to go if we can put in a little elbow grease. I'm not sure if folks' interests in getting away from AMCL are solely based on the AMCL-specific implementation or away from an MCL based localizer. I can see benefits (generic, works for most people) and drawbacks (generic, doesn't work great for anyone) of either direction. NDT is what the autonomous driving folks use, maybe a good option as another alternative algorithm.
This ticket is to bring up both QMCL as **a potential alternative as well as get feedback if people think we should migrate entirely to a new default localization algorithm, and what that might be.** Points to any suggestion that can be extended to 3D lidars as well as 2D (which MCLs and NDTs can be)
---
Adding additional restrictions on particle sampling. For instance, not allowing particles to be populated in collision states or not populating new particles that would require going through a wall.
---
https://discourse.ros.org/t/localization-architecture/8602/3
Take some queues from the autonomous driving crowd if we can find options computationally feasible for us

(using mulitiple sources like vision, laser, gnss looks interesting so we're not just using laser)
3 Likes
gbiggs
November 26, 2019, 3:17am
2
Everything is awesome. The song is very clear about this fact.
2 Likes