[Nav2] Major run-time improvement on Smac Planners (10-30%)!

Hi all, your friendly neighborhood navigator here.

I just wanted to make an annoucement about a hot-hot-hot change that just dropped in Nav2. The Smac Planners were carefully designed and tested against a number of standard template library implementations of data structures before selecting those that we used for the graph, node, and data representations. However, from recent work by mangoschorle, we’ve found that there are some other implementations of these STL containers that are far superior for our search-based planning needs.

Thus, I’m happy to announce that in Nav2’s main branch, all of the Smac Planners are now between 10-30% faster on planning requests, making them now generally faster than the non-feasible counterparts in most every situation. The larger impacts on run-time can be seen for more complex planning requests where the data structure has to do additional re-hashing, but even on some minimal benchmarking experiments, I was able to see between 10-15% reduction in modest sized environments.

Also shout out to @jwallace for his great work on the Planner Benchmarking utilities also in Nav2 to help in doing objective comparisons between planners and versions.

Happy hashing,