Hey Nav2 Community! 
We’re excited to share a new feature in the Smac Planners that makes dealing with goal orientations way more flexible. This came out of this feature request — where the idea was to let the planner consider multiple orientations for the same goal, allowing more flexibility for applications where the goal orientation isn’t as important while still retaining kinematic feasibility!.
This results in better planning speed and less hassle.
Description of contribution
- tackles issue [Smac Planner] Enable goal orientation non-specificity #3789
- Includes the possibility for the user to determine whether they want the goal heading should be default(the one defined in the goal), bidirectional (user defined + 180 degrees), or all_direction.
What’s New?
This is part of PR #4127, and it adds two new more parameters to the Smac planners (SmacHybrid
and SmacLattice
):
goal_heading_mode
"DEFAULT"
– stick with the orientation you give it (classic behavior)"BIDIRECTIONAL"
– try your orientation and its 180° flip"ALL_DIRECTION"
– explore all quantized headings and pick the best path cost-wise
coarse_search_resolution
- This parameter allows users to skip goal heading bins during coarse search, reducing compute time for
"ALL_DIRECTION"
mode. It speeds up planning significantly when many angle bins are in use.
- This parameter allows users to skip goal heading bins during coarse search, reducing compute time for
Visuals!
Default
Bidirectional
All direction
There’s still more room to improve — especially around optimizing the distance heuristic when planning with multiple goal headings. So expect even more speed-ups in future updates.
Happy Navigating!