I’ve been playing with this today and wanted to share my very preliminary results.
I would independently verify that its much lighter weight than other options I’ve seen recently for the optimizer based SLAM option. I’m seeing the CPU grow but overall pretty consistent over short trajectories at around 10% CPU on a 6th gen i7. Over the same trajectories with my package I’m seeing less consistent but generally hovering around 30% – both with more or less the same memory utilization.
I’d say though the rastered map image out isn’t as good as slam toolbox and I’m not seeing it accomplish loop closures as responsively. That may not be a big deal for many users. For the datasets it works with, it works pretty well to keep as a reasonable option on the table. For the datasets it doesn’t work with, I have no idea what’s going on. See below, the same robot, on the same day in the same environment 2 datasets were taken, one works fine, the other does this:
It worked for about 10-20 updates and then just started blowing up. No warnings or errors thrown. I’m also going to have to figure out why LaMa has so much of a CPU drop from Slam toolbox, it looks like it uses much of the same techniques and it may lie in the dependency libraries since I use Ceres as my LM solver & a bunch of outside libraries so I can swap out with new technology trends – though I’m sure you get a really nice speed up from the distance field work as well.
Overall I think this is a pretty good option, but needs to expose more of the parameters, documentation, and hardening – which in SLAM isn’t the hard stuff.
If there’s any interest in writing and maintaining long term a ROS2 port of this work, I’d support this as a genuine option for us on the ROS2 Navigation Working Group/TSC to consider at for the “default option” in ROS2. I think its well written and enables a number of applications on lower power machines, though being able to scale from small examples to 200,000+ sqft facilities remains to be evaluated.
Edit: I didn’t evaluate the localization stuff.
Edit2: I was thinking about those numbers, which seemed high and remembered that I didn’t build in release mode so those are going to be higher than you’d see in production.