Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 55 additions & 44 deletions configuration/packages/configuring-bt-navigator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -180,50 +180,6 @@ Parameters
Description
Topic on which odometry is published

:goal_blackboard_id:

====== =======
Type Default
------ -------
string "goal"
====== =======

Description
Blackboard variable to use to supply the goal to the behavior tree for ``NavigateToPose``. Should match ports of BT XML file.

:path_blackboard_id:

====== =======
Type Default
------ -------
string "path"
====== =======

Description
Blackboard variable to get the path from the behavior tree for ``NavigateThroughPoses`` feedback. Should match port names of BT XML file.

:goals_blackboard_id:

====== =======
Type Default
------ -------
string "goals"
====== =======

Description
Blackboard variable to use to supply the goals to the behavior tree for ``NavigateThroughPoses``. Should match ports of BT XML file.

:waypoint_statuses_blackboard_id:

====== ===================
Type Default
------ -------------------
string "waypoint_statuses"
====== ===================

Description
Blackboard variable to get the statuses of waypoints from the behavior tree for ``NavigateThroughPoses`` feedback/result. Should match ports of BT XML file.

:error_code_name_prefixes:

============== ===========================
Expand Down Expand Up @@ -284,6 +240,28 @@ Parameters
NavigateToPose Parameters
*************************

:``<navigate_to_pose_name>``.goal_blackboard_id:

====== =======
Type Default
------ -------
string "goal"
====== =======

Description
Blackboard variable to use to supply the goal to the behavior tree for ``NavigateToPose``. Should match ports of BT XML file.

:``<navigate_to_pose_name>``.path_blackboard_id:

====== =======
Type Default
------ -------
string "path"
====== =======

Description
Blackboard variable to get the path from the behavior tree for ``NavigateToPose`` feedback. Should match port names of BT XML file.

:``<navigate_to_pose_name>``.enable_groot_monitoring:

============== =======
Expand All @@ -309,6 +287,39 @@ NavigateToPose Parameters
NavigateThroughPoses Parameters
*******************************

:``<navigate_through_poses>``.goals_blackboard_id:

====== =======
Type Default
------ -------
string "goals"
====== =======

Description
Blackboard variable to use to supply the goals to the behavior tree for ``NavigateThroughPoses``. Should match ports of BT XML file.

:``<navigate_through_poses>``.path_blackboard_id:

====== =======
Type Default
------ -------
string "path"
====== =======

Description
Blackboard variable to get the path from the behavior tree for ``NavigateThroughPoses`` feedback. Should match port names of BT XML file.

:``<navigate_through_poses>``.waypoint_statuses_blackboard_id:

====== ===================
Type Default
------ -------------------
string "waypoint_statuses"
====== ===================

Description
Blackboard variable to get the statuses of waypoints from the behavior tree for ``NavigateThroughPoses`` feedback/result. Should match ports of BT XML file.

:``<navigate_through_poses>``.enable_groot_monitoring:

============== =======
Expand Down
68 changes: 63 additions & 5 deletions migration/Kilted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -197,13 +197,13 @@ Now, it supports future extensions for lifecycle subscriptions or additional wra
Additionally, it supports QoS override using the parameter ``allow_parameter_qos_overrides``.

Removed Parameter action_server_result_timeout
**********************************************
----------------------------------------------

Removed the parameter ``action_server_result_timeout`` from all action servers after resolution within ``rcl`` and ``rclcpp`` to address early goal removal.
This is not longer required to be set.

Added Corner Smoothing functionality to route_server
****************************************************
----------------------------------------------------

In `PR #5226 <https://github.com/ros-navigation/navigation2/pull/5226>`_ the ability to stitch two successive edges in ``route_server`` with a smooth circular arc has been added. Below is an example of two successive edges forming a corner being smoothed with a radius of one. The red lines are the edges of the route graph and the green line is the resultant path that can be used by a local planner.

Expand All @@ -212,22 +212,22 @@ In `PR #5226 <https://github.com/ros-navigation/navigation2/pull/5226>`_ the abi
New parameters include ``smooth_corners`` which enable or disable corner smoothing and ``smoothing_radius`` which specifies the radius of the corner to fit to a corner. The tangents of the starting and ending points of the circular arc will match the tangent of the edges that form the corner. In the event that two edges are basically straight, no corner arc is added and regular linear interpolation is done. In addition to that, if the corner arc requires a starting point and ending point that's longer than the edge lengths, then it will not add a corner arc.

Added NonblockingSequence Control Node
**************************************
--------------------------------------

In `PR #5325 <https://github.com/ros-navigation/navigation2/pull/5325>`_ a new Nav2 specific behavior tree control node has been added. The new behavior tree control node, ``NonblockingSequence``, allows every child node in the sequence to be ticked through even if one of the child node returns ``RUNNING``. This is done to prevent long running child nodes from blocking the sequence.

For additional details regarding the ``NonblockingSequence`` please see the `Nav2 specific node walkthrough <../behavior_trees/overview/nav2_specific_nodes.html>`_ and `NonblockingSequence configuration guide <../configuration/packages/bt-plugins/controls/NonblockingSequence.html>`_.

MPPI Optimal Trajectory Validator Plugin
****************************************
----------------------------------------

The MPPI controller now has a plugin, ``OptimalTrajectoryValidator``, which can be used to validate an output trajectory for execution.
This can be used to check for collisions, margin from obstacles, distance from a path, progress being made, etc.
By default, it uses the ``DefaultOptimalTrajectoryValidator`` which checks for collisions.
Note that kinematic and dynamic constraints are not required to be checked as the Optimizer ensures these constraints are met.

Added PersistentSequence and PauseResumeController Control Nodes
****************************************************************
----------------------------------------------------------------

In `PR #5247 <https://github.com/ros-navigation/navigation2/pull/5247>`_ two new Nav2 specific behavior tree control nodes have been added.

Expand Down Expand Up @@ -289,3 +289,61 @@ Below are measured bandwidth values for different transport types with default p
+------------------+----------------+
| zlib | 121.95 |
+------------------+----------------+

Private BT Navigator's BlackBoard ID parameters
-----------------------------------------------

The parameters ``xx_blackboard_id`` used in the BT navigator to specify the name of the blackboard variables from the
behavior trees were moved into the respective navigators. They now have to be specified under the namespace of the particular navigator.

These parameters are:

- NavigateToPose:

- ``<navigate_to_pose_name>.goal_blackboard_id``
- ``<navigate_to_pose_name>.path_blackboard_id``

- NavigateThroughPoses:

- ``<navigate_through_poses_name>.goals_blackboard_id``
- ``<navigate_through_poses_name>.path_blackboard_id``
- ``<navigate_through_poses_name>.waypoint_statuses_blackboard_id``

- CoverageNavigator:

- ``<coverage_navigator_name>.path_blackboard_id``
- ``<coverage_navigator_name>.field_file_blackboard_id``
- ``<coverage_navigator_name>.field_polygon_blackboard_id``
- ``<coverage_navigator_name>.polygon_frame_blackboard_id``

Example:

.. code-block:: yaml

bt_navigator:
ros__parameters:
other parameters: ....

navigate_to_pose:
plugin: "nav2_bt_navigator::NavigateToPoseNavigator"
enable_groot_monitoring: false
groot_server_port: 1667
goal_blackboard_id: "goal"
path_blackboard_id: "path"

navigate_through_poses:
plugin: "nav2_bt_navigator::NavigateThroughPosesNavigator"
enable_groot_monitoring: false
groot_server_port: 1669
goals_blackboard_id: "goals"
path_blackboard_id: "path"
waypoint_statuses_blackboard_id: "waypoint_statuses"

navigate_complete_coverage:
plugin: "opennav_coverage_navigator/CoverageNavigator"
path_blackboard_id: "path"
field_file_blackboard_id: "field_filepath"
field_polygon_blackboard_id: "field_polygon"
polygon_frame_blackboard_id: "polygon_frame_id"

See also :ref:`configuring_bt_navigator`