diff --git a/behavior_trees/overview/detailed_behavior_tree_walkthrough.rst b/behavior_trees/overview/detailed_behavior_tree_walkthrough.rst
index a321a9c47f..2939fcf447 100644
--- a/behavior_trees/overview/detailed_behavior_tree_walkthrough.rst
+++ b/behavior_trees/overview/detailed_behavior_tree_walkthrough.rst
@@ -65,7 +65,7 @@ BTs are primarily defined in XML. The tree shown above is represented in XML as
-
+
@@ -172,7 +172,7 @@ The XML of this subtree is as follows:
-
+
diff --git a/behavior_trees/trees/nav_through_poses_recovery.rst b/behavior_trees/trees/nav_through_poses_recovery.rst
index b4c92b6c57..be4b4f7640 100644
--- a/behavior_trees/trees/nav_through_poses_recovery.rst
+++ b/behavior_trees/trees/nav_through_poses_recovery.rst
@@ -56,7 +56,7 @@ While this behavior tree does not make use of it, the ``PlannerSelector``, ``Con
-
+
diff --git a/behavior_trees/trees/nav_to_pose_recovery.rst b/behavior_trees/trees/nav_to_pose_recovery.rst
index 2588e3b254..8560ea5b00 100644
--- a/behavior_trees/trees/nav_to_pose_recovery.rst
+++ b/behavior_trees/trees/nav_to_pose_recovery.rst
@@ -52,7 +52,7 @@ While this behavior tree does not make use of it, the ``PlannerSelector``, ``Con
-
+
diff --git a/behavior_trees/trees/nav_to_pose_with_consistent_replanning_and_if_path_becomes_invalid.rst b/behavior_trees/trees/nav_to_pose_with_consistent_replanning_and_if_path_becomes_invalid.rst
index dd353573c8..ac88c418c5 100644
--- a/behavior_trees/trees/nav_to_pose_with_consistent_replanning_and_if_path_becomes_invalid.rst
+++ b/behavior_trees/trees/nav_to_pose_with_consistent_replanning_and_if_path_becomes_invalid.rst
@@ -48,7 +48,7 @@ While this behavior tree does not make use of it, the ``PlannerSelector``, ``Con
-
+
diff --git a/behavior_trees/trees/navigate_on_route_graph_w_recovery.rst b/behavior_trees/trees/navigate_on_route_graph_w_recovery.rst
index 28e9256538..04467f880f 100644
--- a/behavior_trees/trees/navigate_on_route_graph_w_recovery.rst
+++ b/behavior_trees/trees/navigate_on_route_graph_w_recovery.rst
@@ -7,7 +7,7 @@ This behavior tree implements a different style of navigation than the other ver
Rather than using a freespace planner ``ComputePathToPose`` to plan a complete path to the goal, this behavior tree instead uses the Route Server to find a route to the goal through a pre-defined navigation graph.
This can be useful for navigating in large-scale environments where real-time planning in freespace for a long distance is not computationally feasible, where a map of the entire space is not possible to plan within, or where deterministic behavior and limited navigation zones/lanes/routes are demanded.
-This tree computes a route through the environment using the ``ComputeRoute`` node which is executed on initialization and when either the goal is updated due to preemption (``GlobalUpdatedGoal``) or the current route path is invalid due to collision (``isPathValid``).
+This tree computes a route through the environment using the ``ComputeRoute`` node which is executed on initialization and when either the goal is updated due to preemption (``GlobalUpdatedGoal``) or the current route path is invalid due to collision (``ValidatePath``).
After which, if the robot's starting pose is too far from the first route node in the graph solution, it will use freespace planning to connect the robot's current pose to the first node in the route.
This is called the ``first mile`` and is computed using the ``ComputePathToPose`` node.
This may be removed if navigation only on the graph is required and you know that the robot will always be located on or near the graph.
@@ -35,7 +35,7 @@ For a detailed description of the role of the selector nodes, recovery behaviors
-
+
diff --git a/configuration/packages/bt-plugins/conditions/IsPoseOccupied.rst b/configuration/packages/bt-plugins/actions/CheckPoseOccupancy.rst
similarity index 86%
rename from configuration/packages/bt-plugins/conditions/IsPoseOccupied.rst
rename to configuration/packages/bt-plugins/actions/CheckPoseOccupancy.rst
index e5474fc9aa..fc1983a937 100644
--- a/configuration/packages/bt-plugins/conditions/IsPoseOccupied.rst
+++ b/configuration/packages/bt-plugins/actions/CheckPoseOccupancy.rst
@@ -1,9 +1,9 @@
-.. _bt_is_pose_occupied_condition:
+.. _bt_check_pose_occupancy_action:
-IsPoseOccupied
-==============
+CheckPoseOccupancy
+==================
-Checks to see if the pose is occupied. If it is occupied, the condition returns SUCCESS, otherwise
+Checks to see if the pose is occupied. If it is occupied, it returns SUCCESS, otherwise
it returns FAILURE.
Input Ports
@@ -81,4 +81,4 @@ Example
.. code-block:: xml
-
+
diff --git a/configuration/packages/bt-plugins/conditions/IsStopped.rst b/configuration/packages/bt-plugins/actions/CheckStopStatus.rst
similarity index 81%
rename from configuration/packages/bt-plugins/conditions/IsStopped.rst
rename to configuration/packages/bt-plugins/actions/CheckStopStatus.rst
index 823fde96a4..29a8edff69 100644
--- a/configuration/packages/bt-plugins/conditions/IsStopped.rst
+++ b/configuration/packages/bt-plugins/actions/CheckStopStatus.rst
@@ -1,7 +1,7 @@
-.. _bt_is_stopped_condition:
+.. _bt_check_stop_status_action:
-IsStopped
-=========
+CheckStopStatus
+===============
BT node that tracks robot odometry and returns SUCCESS if robot is considered stopped for long enough,
RUNNING if stopped but not for long enough and FAILURE otherwise
@@ -36,4 +36,4 @@ Example
.. code-block:: xml
-
+
diff --git a/configuration/packages/bt-plugins/conditions/IsPathValid.rst b/configuration/packages/bt-plugins/actions/ValidatePath.rst
similarity index 94%
rename from configuration/packages/bt-plugins/conditions/IsPathValid.rst
rename to configuration/packages/bt-plugins/actions/ValidatePath.rst
index 56aaa7b562..abfc5897dd 100644
--- a/configuration/packages/bt-plugins/conditions/IsPathValid.rst
+++ b/configuration/packages/bt-plugins/actions/ValidatePath.rst
@@ -1,10 +1,10 @@
-.. _bt_is_path_valid_condition:
+.. _bt_validate_path_action:
-IsPathValid
-===========
+ValidatePath
+============
Checks to see if the global path is valid. If there is an
-obstacle along the path, the condition returns FAILURE, otherwise
+obstacle along the path, it returns FAILURE, otherwise
it returns SUCCESS. Optionally checks specific costmap layers and
can use a custom footprint for validation.
@@ -114,7 +114,7 @@ Example
.. code-block:: xml
-
@@ -137,7 +137,7 @@ Checking a specific costmap layer:
.. code-block:: xml
- `_, the following nodes were moved from condition nodes to action nodes and renamed:
+
+- `IsStopped` is now `CheckStopStatus`
+- `IsPathValid` is now `ValidatePath`
+- `IsPoseOccupied` is now `CheckPoseOccupancy`
+
+This change was made because these behavior tree nodes may return RUNNING or require more time to complete, making them unsuitable for behavior tree that are expected to be ticked at 100 Hz.
diff --git a/plugins/index.rst b/plugins/index.rst
index d8fa1e1480..17dacb4a20 100644
--- a/plugins/index.rst
+++ b/plugins/index.rst
@@ -489,6 +489,16 @@ Behavior Tree Nodes
+---------------------------------------------+---------------------+------------------------------------------+
| `Cancel Follow Object`_ | Alberto Tudela | Cancels follow object action |
+---------------------------------------------+---------------------+------------------------------------------+
+| `Validate Path`_ | Joshua Wallace | Checks if a path is valid by making |
+| | | sure there are no LETHAL obstacles along |
+| | | the path. |
++---------------------------------------------+---------------------+------------------------------------------+
+| `Check Stop Status`_ | Tony Najjar | Checks if robot is |
+| | | stopped for a duration |
++---------------------------------------------+---------------------+------------------------------------------+
+| `Check Pose Occupancy`_ | Maurice Alexander | Checks if a pose is occupied. |
+| | Purnawan | |
++---------------------------------------------+---------------------+------------------------------------------+
.. _Back Up Action: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/action/back_up_action.cpp
.. _Drive On Heading Action: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/action/drive_on_heading_action.cpp
@@ -537,7 +547,9 @@ Behavior Tree Nodes
.. _Toggle Collision Monitor Service: https://github.com/ros-navigation/navigation2/blob/main/nav2_behavior_tree/plugins/action/toggle_collision_monitor_service.cpp
.. _Follow Object: https://github.com/ros-navigation/navigation2/blob/main/nav2_behavior_tree/plugins/action/follow_object_action.cpp
.. _Cancel Follow Object: https://github.com/ros-navigation/navigation2/blob/main/nav2_behavior_tree/plugins/action/follow_object_cancel_node.cpp
-
+.. _Validate Path: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/action/validate_path_action.cpp
+.. _Check Stop Status: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/action/check_stop_status_action.cpp
+.. _Check Pose Occupancy: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/action/check_pose_occupancy_action.cpp
+------------------------------------+--------------------+------------------------+
| Condition Plugin Name | Creator | Description |
@@ -559,9 +571,6 @@ Behavior Tree Nodes
| | | making progress or |
| | | stuck |
+------------------------------------+--------------------+------------------------+
-| `Is Stopped Condition`_ | Tony Najjar | Checks if robot is |
-| | | stopped for a duration |
-+------------------------------------+--------------------+------------------------+
| `Transform Available Condition`_ | Steve Macenski | Checks if a TF |
| | | transformation is |
| | | available. When |
@@ -581,12 +590,6 @@ Behavior Tree Nodes
| | | percentage is below |
| | | a specified value. |
+------------------------------------+--------------------+------------------------+
-| `Is Path Valid Condition`_ | Joshua Wallace | Checks if a path is |
-| | | valid by making sure |
-| | | there are no LETHAL |
-| | | obstacles along the |
-| | | path. |
-+------------------------------------+--------------------+------------------------+
| `Path Expiring Timer`_ | Joshua Wallace | Checks if the timer has|
| | | expired. The timer is |
| | | reset if the path gets |
@@ -622,9 +625,6 @@ Behavior Tree Nodes
| `Are Poses Near Condition`_ | Steve Macenski | Checks if 2 poses are |
| | | nearby to each other. |
+------------------------------------+--------------------+------------------------+
-| `Is Pose Occupied Condition`_ | Maurice Alexander | Checks if a pose is |
-| | Purnawan | occupied. |
-+------------------------------------+--------------------+------------------------+
| `Is Goal Nearby Condition`_ | Jakub ChudziĆski | Checks if the robot is |
| | | near the goal based on |
| | | remaining path length. |
@@ -639,12 +639,10 @@ Behavior Tree Nodes
.. _Global Updated Goal Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/globally_updated_goal_condition.cpp
.. _Initial Pose received Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/initial_pose_received_condition.cpp
.. _Is Stuck Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_stuck_condition.cpp
-.. _Is Stopped Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_stopped_condition.cpp
.. _Transform Available Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/transform_available_condition.cpp
.. _Distance Traveled Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/distance_traveled_condition.cpp
.. _Time Expired Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/time_expired_condition.cpp
.. _Is Battery Low Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_battery_low_condition.cpp
-.. _Is Path Valid Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_path_valid_condition.cpp
.. _Path Expiring Timer: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/path_expiring_timer_condition.cpp
.. _Are Error Codes Present: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/are_error_codes_present_condition.cpp
.. _Would A Controller Recovery Help: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/would_a_controller_recovery_help_condition.cpp
@@ -653,7 +651,6 @@ Behavior Tree Nodes
.. _Would A Route Recovery Help: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/would_a_route_recovery_help_condition.cpp
.. _Is Battery Charging Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_battery_charging_condition.cpp
.. _Are Poses Near Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/are_poses_near_condition.cpp
-.. _Is Pose Occupied Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_pose_occupied_condition.cpp
.. _Is Goal Nearby Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_goal_nearby_condition.cpp
.. _Is Within Path Tracking Bounds Condition: https://github.com/ros-navigation/navigation2/tree/main/nav2_behavior_tree/plugins/condition/is_within_path_tracking_bounds_condition.cpp