Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Smac Planner] Enable goal orientation non-specificity #532

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
13 changes: 13 additions & 0 deletions configuration/packages/smac/configuring-smac-hybrid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,18 @@ Parameters
Description
Goal heading mode enum string to plan goal with multiple orientation. Options are "DEFAULT", "BIDIRECTIONAL" and "ALL_DIRECTION". With default mode, the planner will plan the goal with the orientation of the goal pose as was sent by the user. With the "BIDIRECTIONAL" mode, the planner will plan the goal with the orientation of the goal pose and with orientation 180 degree offset from the goal pose orientation. For "ALL_DIRECTION" mode, the planner will plan the goal with the orientation of the goal pose and all the possible orientation based on the angle quantization bins. For both the "BIDIRECTIONAL" and "ALL_DIRECTION" mode, the planner returns the path with the minimum cost.

:``<name>``.coarse_search_resolution:

============== ===========================
Type Default
-------------- ---------------------------
string "4"
============== ===========================

Description
Number of goal heading bins to skip during the coarse search phase of planning. When a goal is found, a fine search is performed to determine the exact path. This parameter is only used when the goal heading mode is set to "ALL_DIRECTION" and It helps to reduce search time.


Example
*******
.. code-block:: yaml
Expand Down Expand Up @@ -425,6 +437,7 @@ Example
use_quadratic_cost_penalty: False
downsample_obstacle_heuristic: True
allow_primitive_interpolation: False
coarse_search_resolution: 4 # Number of bins to skip when doing a coarse search for the path. Only used for all_direction goal heading mode.
goal_heading_mode: "DEFAULT" # DEFAULT, BIDIRECTIONAL, ALL_DIRECTION
smooth_path: True # If true, does a simple and quick smoothing post-processing to the path

Expand Down
10 changes: 10 additions & 0 deletions configuration/packages/smac/configuring-smac-lattice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,16 @@ Parameters
Description
Goal heading mode enum string to plan goal with multiple orientation. Options are "DEFAULT", "BIDIRECTIONAL" and "ALL_DIRECTION". With default mode, the planner will plan the goal with the orientation of the goal pose as was sent by the user. With the "BIDIRECTIONAL" mode, the planner will plan the goal with the orientation of the goal pose and with orientation 180 degree offset from the goal pose orientation. For "ALL_DIRECTION" mode, the planner will plan the goal with the orientation of the goal pose and all the possible orientation based on the angle quantization bins. For both the "BIDIRECTIONAL" and "ALL_DIRECTION" mode, the planner returns the path with the minimum cost.

:``<name>``.coarse_search_resolution:

============== ===========================
Type Default
-------------- ---------------------------
string "4"
============== ===========================

Description
Number of goal heading bins to skip during the coarse search phase of planning. When a goal is found, a fine search is performed to determine the exact path. This parameter is only used when the goal heading mode is set to "ALL_DIRECTION" and It helps to reduce search time.

Example
*******
Expand Down Expand Up @@ -371,6 +380,7 @@ Example
lookup_table_size: 20.0 # Size of the dubin/reeds-sheep distance window to cache, in meters.
cache_obstacle_heuristic: false # Cache the obstacle map dynamic programming distance expansion heuristic between subsequent replannings of the same goal location. Dramatically speeds up replanning performance (40x) if costmap is largely static.
allow_reverse_expansion: false # If true, allows the robot to use the primitives to expand in the mirrored opposite direction of the current robot's orientation (to reverse).
coarse_search_resolution: 4 # Number of bins to skip when doing a coarse search for the path. Only used for all_direction goal heading mode.
goal_heading_mode: "DEFAULT" # DEFAULT, BIDIRECTIONAL, ALL_DIRECTION
smooth_path: True # If true, does a simple and quick smoothing post-processing to the path
smoother:
Expand Down
3 changes: 2 additions & 1 deletion migration/Iron.rst
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,9 @@ Smac and Theta* planners have a new parameter ``terminal_checking_interval`` whi

Enable goal orientation non-specificity
*******************************************
`PR #4148 <https://github.com/ros-planning/navigation2/pull/4127>`_ introduces a new parameter(goal_heading_mode) in the smac planner, specifically the smac planner hybrid and smac planner lattice that allows for the
`PR #4148 <https://github.com/ros-planning/navigation2/pull/4127>`_ introduces two new parameters(goal_heading_mode, coarse_search_resolution) in the smac planner, specifically the smac planner hybrid and smac planner lattice that allows for the
planner to plan to a goal with multiple orientations and return the best path in just one planning call. This is useful for robots that can approach a goal from multiple orientations and the user does not want to plan to each orientation separately.
In addition to this, the coarse_search_resolution parameter is added to the smac planner lattice to allow for a faster search for the best path.

Here is an Example of the smacHybrid planner with the default goal_heading_mode to see the difference in the planned path.

Expand Down
Loading