Skip to content

Commit a3bdd89

Browse files
include documentation for new orientation flexibitliy feature
Signed-off-by: stevedanomodolor <stevedan.o.omodolor@gmail.com>
1 parent 7233218 commit a3bdd89

6 files changed

Lines changed: 75 additions & 0 deletions

configuration/packages/smac/configuring-smac-hybrid.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,28 @@ Parameters
378378
Description
379379
Number of times to recursively attempt to smooth, must be ``>= 1``.
380380

381+
:``<name>``.goal_heading_mode:
382+
383+
============== ===========================
384+
Type Default
385+
-------------- ---------------------------
386+
string "DEFAULT"
387+
============== ===========================
388+
389+
Description
390+
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.
391+
392+
:``<name>``.coarse_search_resolution:
393+
394+
============== ===========================
395+
Type Default
396+
-------------- ---------------------------
397+
string "4"
398+
============== ===========================
399+
400+
Description
401+
Number of goal heading bins to skip during the coarse search phase of analytic expansion goal-finding. When a goal is found, a fine search is performed to determine the exact path during full-resolution. This parameter is only used when the goal heading mode is set to "ALL_DIRECTION" and It helps to reduce search time of analytic expansions.
402+
381403
Example
382404
*******
383405
.. code-block:: yaml
@@ -414,6 +436,8 @@ Example
414436
use_quadratic_cost_penalty: False
415437
downsample_obstacle_heuristic: True
416438
allow_primitive_interpolation: False
439+
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.
440+
goal_heading_mode: "DEFAULT" # DEFAULT, BIDIRECTIONAL, ALL_DIRECTION
417441
smooth_path: True # If true, does a simple and quick smoothing post-processing to the path
418442
419443
smoother:

configuration/packages/smac/configuring-smac-lattice.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,28 @@ Parameters
328328
Description
329329
Number of times to recursively attempt to smooth, must be ``>= 1``.
330330

331+
:``<name>``.goal_heading_mode:
332+
333+
============== ===========================
334+
Type Default
335+
-------------- ---------------------------
336+
string "DEFAULT"
337+
============== ===========================
338+
339+
Description
340+
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.
341+
342+
:``<name>``.coarse_search_resolution:
343+
344+
============== ===========================
345+
Type Default
346+
-------------- ---------------------------
347+
string "1"
348+
============== ===========================
349+
350+
Description
351+
Number of goal heading bins to skip during the coarse search phase of analytic expansion goal-finding. When a goal is found, a fine search is performed to determine the exact path during full-resolution. This parameter is only used when the goal heading mode is set to "ALL_DIRECTION" and It helps to reduce search time of analytic expansions. g the coarse search phase of analytic expansion goal-finding. When a goal is found, a fine search is performed to determine the exact path during full-resolution. This parameter is only used when the goal heading mode is set to "ALL_DIRECTION" and it helps to reduce search time of analytic expansions. It is recommended to only do coarser search if the number of bins are > 24. Otherwise, leave as 1 (fine search).
352+
331353
Example
332354
*******
333355
.. code-block:: yaml
@@ -358,6 +380,8 @@ Example
358380
lookup_table_size: 20.0 # Size of the dubin/reeds-sheep distance window to cache, in meters.
359381
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.
360382
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).
383+
coarse_search_resolution: 1 # Number of bins to skip when doing a coarse search for the path. Only used for all_direction goal heading mode.
384+
goal_heading_mode: "DEFAULT" # DEFAULT, BIDIRECTIONAL, ALL_DIRECTION
361385
smooth_path: True # If true, does a simple and quick smoothing post-processing to the path
362386
smoother:
363387
max_iterations: 1000

migration/Jazzy.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,33 @@ MPPI controller re-implemented using Eigen library and performance improved by 4
329329
In the `PR #4621 <https://github.com/ros-navigation/navigation2/pull/4621>`_ MPPI controller is fully reimplemented using Eigen as it is well supported hpc library and suits better for our use case of two dimensional batches of trajectories. GPU support for rolling out trajectories could also be possible in future using Eigen.
330330
MPPI Optimizer's performance is improved by 40-50%. Now MPPI Controller can also be run on ARM processors which do not support SIMD Instructions extensively.
331331

332+
Enable goal orientation non-specificity
333+
***************************************
334+
`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
335+
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.
336+
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.
337+
338+
Here is an Example of the smacHybrid planner with the default goal_heading_mode to see the difference in the planned path.
339+
340+
.. image:: images/smacHybrid_with_default_goal_heading_mode.gif
341+
:width: 700px
342+
:alt: Navigation2 with smacHybrid planner with default goal_heading_mode
343+
:align: center
344+
345+
Here is an Example of the smacHybrid planner with the bidirectional goal_heading_mode to see the difference in the planned path.
346+
347+
.. image:: images/smacHybrid_with_bidirectional_goal_heading_mode.gif
348+
:width: 700px
349+
:alt: Navigation2 with smacHybrid planner with bidirectional goal_heading_mode
350+
:align: center
351+
352+
Here is an Example of the smacHybrid planner with the all_directions goal_heading_mode to see the difference in the planned path.
353+
354+
.. image:: images/smacHybrid_with_all_direction_goal_heading_mode.gif
355+
:width: 700px
356+
:alt: Navigation2 with smacHybrid planner with all_direction goal_heading_mode
357+
:align: center
358+
332359
DriveOnHeading and BackUp behaviors: Addition of acceleration constraints
333360
*************************************************************************
334361
`PR #4810 <https://github.com/ros-navigation/navigation2/pull/4810>`_ adds new parameters ``acceleration_limit``, ``deceleration_limit``, ``minimum_speed`` for the `DriveOnHeading` and `BackUp` Behaviors. The default values are as follows:
4.02 MB
Loading
1.5 MB
Loading
2.14 MB
Loading

0 commit comments

Comments
 (0)