Skip to content

Commit

Permalink
adding pluginized navigator (ros-navigation#380)
Browse files Browse the repository at this point in the history
* adding pluginized navigator

* Update migration/Humble.rst
  • Loading branch information
SteveMacenski authored Jan 3, 2023
1 parent 33d680c commit 5f6aff6
Show file tree
Hide file tree
Showing 5 changed files with 397 additions and 1 deletion.
17 changes: 17 additions & 0 deletions configuration/packages/configuring-bt-navigator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,18 @@ Consider checking out the :ref:`groot_introduction` tutorial for using Groot to
Parameters
**********

:navigators:

============== ============================================================
Type Default
-------------- ------------------------------------------------------------
vector<string> {'navigate_to_pose', 'navigate_through_poses'}
============== ============================================================

Description
New to Iron: Plugins for navigator types implementing the ``nav2_core::BehaviorTreeNavigator`` interface.
They implement custom action servers with custom interface definitions and use that data to populate and process behavior tree navigation requests. Plugin classes are defined under the same namespace, see examples below. Defaults correspond to the ``NavigateToPoseNavigator`` and ``NavigateThroughPosesNavigator`` navigators.

:default_nav_to_pose_bt_xml:

====== =======
Expand Down Expand Up @@ -210,6 +222,11 @@ Example
goal_blackboard_id: goal
goals_blackboard_id: goals
path_blackboard_id: path
navigators: ['navigate_to_pose', 'navigate_through_poses']
navigate_to_pose:
plugin: "nav2_bt_navigator/NavigateToPoseNavigator"
navigate_through_poses:
plugin: "nav2_bt_navigator/NavigateThroughPosesNavigator"
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_follow_path_action_bt_node
Expand Down
7 changes: 7 additions & 0 deletions migration/Humble.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ Humble to Iron

Moving from ROS 2 Humble to Iron, a number of stability improvements were added that we will not specifically address here.

New Behavior-Tree Navigator Plugins
***********************************

New in `PR 3345 <https://github.com/ros-planning/navigation2/pull/3345>`_, the navigator types are exposed to users as plugins that can be replaced or new navigator types added. The default behaviors of navigate to pose and navigate through poses continue to be default behavior but are now customizable with new action interface definitions. These plugins implement the ``nav2_core::BehaviorTreeNavigator`` base class, which must process the action request, feedback, and completion messages. The behavior tree is handled by this base class with as much general logic as possible abstracted away from users to minimize repetition.

See :ref:`writing_new_nav2navigator_plugin` for a tutorial about writing new navigator plugins.

Added Collision Monitor
***********************
`PR 2982 <https://github.com/ros-planning/navigation2/pull/2982>`_ adds new safety layer operating independently of Nav2 stack which ensures the robot to control the collisions with near obstacles, obtained from different sensors (LaserScan, PointCloud, IR, Sonars, etc...). See :ref:`configuring_collision_monitor` for more details. It is not included in the default bringup batteries included from ``nav2_bringup``.
Expand Down
Loading

0 comments on commit 5f6aff6

Please sign in to comment.