You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document bt_navigator error_code_name_prefixes and error_msg (#587)
* Trim trailing whitespace
Signed-off-by: Mike Wake <[email protected]>
* Document behavior tree error_code_name_prefixes, error_msg
Signed-off-by: Mike Wake <[email protected]>
* address error_msg review comments
Signed-off-by: Mike Wake <[email protected]>
* Update migration/Jazzy.rst
Signed-off-by: Steve Macenski <[email protected]>
* Improve mandatory migration for error_code_name_prefixes parameter (#586)
Signed-off-by: Mike Wake <[email protected]>
* Document navigator error code ranges (#586)
Signed-off-by: Mike Wake <[email protected]>
* More behavior tree error_msg migration clarity (#586)
Signed-off-by: Mike Wake <[email protected]>
* Add builtin error_code_name_prefixes to tutorial (#586)
Signed-off-by: Mike Wake <[email protected]>
* Some more s/error_code_names/error_code_name_prefixes (#586)
Signed-off-by: Mike Wake <[email protected]>
* Add error_code_id and error_msg to Wait action (#586)
Signed-off-by: Mike Wake <[email protected]>
* distinguish release for error_code_names and error_code_name_prefixes (#586)
error_code_names - Jazzy and older
error_code_name_prefixes - Kilted and newer
Signed-off-by: Mike Wake <[email protected]>
* Expand error code ranges for navigators (#586)
Signed-off-by: Mike Wake <[email protected]>
* Update configuration/packages/configuring-bt-navigator.rst
Signed-off-by: Steve Macenski <[email protected]>
* Update configuration/packages/configuring-bt-navigator.rst
Signed-off-by: Steve Macenski <[email protected]>
* Update migration/Jazzy.rst
Signed-off-by: Steve Macenski <[email protected]>
* Update Jazzy.rst
Signed-off-by: Steve Macenski <[email protected]>
---------
Signed-off-by: Mike Wake <[email protected]>
Signed-off-by: Steve Macenski <[email protected]>
Signed-off-by: Mike Wake <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>
Co-authored-by: Mike Wake <[email protected]>
Copy file name to clipboardExpand all lines: behavior_trees/trees/nav_to_pose_and_pause_near_goal_obstacle.rst
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,15 +3,15 @@ Navigate To Pose and Pause Near Goal-Obstacle
3
3
4
4
.. note:: As a prerequisite, we encourage the users to go through the `Behavior Tree documentation <https://behaviortree.github.io/BehaviorTree.CPP/>`_, which explains about different behaviors nodes used in these trees such as ``ReactiveSequence``, ``SequenceWithMemory`` and ``RetryUntilSuccessful``.
5
5
6
-
This behavior tree is a soft extension to the :ref:`behavior_tree_nav_to_pose`.
6
+
This behavior tree is a soft extension to the :ref:`behavior_tree_nav_to_pose`.
7
7
Apart from the functionalities of :ref:`behavior_tree_nav_to_pose`, this behavior tree allows the robot to efficiently handle an obstacle (e.g. forklift, person, or other temporary obstacles) close to the goal by pausing the robot's navigation and wait for a user-specified time to check if the obstacle has cleared.
8
8
If the obstacle has moved during the waiting time, the robot will continue to the goal taking the shorter path. If the obstacle has not moved during the waiting time or the waiting time expires, then the robot will use the longer path around to reach the final goal location.
9
-
Ultimately, for a given task, this behavior tree aids in solving the problem of long cycle time, which is caused because of the long path generated due to the temporary obstacles present close to the goal location.
9
+
Ultimately, for a given task, this behavior tree aids in solving the problem of long cycle time, which is caused because of the long path generated due to the temporary obstacles present close to the goal location.
10
10
11
-
The behavior tree is depicted in the image below.
12
-
From the image, it can be noted that there is an additional branch in the Navigation Subtree known as ``MonitorAndFollowPath``. This branch is created with the intention for the users to perform any kind of monitoring behavior that their robot should exhibit.
13
-
In this particular BT, the monitoring branch is exclusively utilized by ``PathLongerOnApproach`` BT node for checking if the global planner has decided to plan a significantly longer path for the robot on approaching the user-specified goal proximity.
14
-
If there is no significantly longer path, the monitor node goes into the ``FollowPath`` recovery node, which then generates the necessary control commands.
11
+
The behavior tree is depicted in the image below.
12
+
From the image, it can be noted that there is an additional branch in the Navigation Subtree known as ``MonitorAndFollowPath``. This branch is created with the intention for the users to perform any kind of monitoring behavior that their robot should exhibit.
13
+
In this particular BT, the monitoring branch is exclusively utilized by ``PathLongerOnApproach`` BT node for checking if the global planner has decided to plan a significantly longer path for the robot on approaching the user-specified goal proximity.
14
+
If there is no significantly longer path, the monitor node goes into the ``FollowPath`` recovery node, which then generates the necessary control commands.
@@ -21,18 +21,18 @@ Firstly, the ``SequenceWithMemory`` node cancels the controller server by tickin
21
21
Next, the ``SequenceWithMemory`` node ticks the ``Wait`` node, which enables the robot to wait for the given user-specified time.
22
22
Here we need to note that, the ``MonitorAndFollowPath`` is a ``ReactiveSequence`` node, therefore the ``PathLongerOnApproach`` node needs to return SUCCESS, before the ``FollowPath`` node can be ticked once again.
23
23
24
-
In the below GIF, it can be seen that the robot is approaching the goal location, but it found an obstacle in the goal proximity, because of which the global planner, plans a longer path around.
25
-
This is the point where the ``PathLongerOnApproach`` ticks and ticks its children, consequently cancelling the ``controller_server`` and waiting to see if the obstacle clears up.
26
-
In the below scenario, the obstacles do not clear, causing the robot to take the longer path.
24
+
In the below GIF, it can be seen that the robot is approaching the goal location, but it found an obstacle in the goal proximity, because of which the global planner, plans a longer path around.
25
+
This is the point where the ``PathLongerOnApproach`` ticks and ticks its children, consequently cancelling the ``controller_server`` and waiting to see if the obstacle clears up.
26
+
In the below scenario, the obstacles do not clear, causing the robot to take the longer path.
Apart from the above scenarios, we also need to note that, the robot will take the longer path to the goal location if the obstacle does not clear up in the given user-specific wait time.
35
+
Apart from the above scenarios, we also need to note that, the robot will take the longer path to the goal location if the obstacle does not clear up in the given user-specific wait time.
36
36
37
37
In conclusion, this particular BT would serve, both as an example and ready-to-use BT for an organizational specific application, that wishes to optimize its process cycle time.
38
38
@@ -46,7 +46,7 @@ In conclusion, this particular BT would serve, both as an example and ready-to-u
0 commit comments