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
Copy file name to clipboardExpand all lines: behavior_trees/trees/nav_through_poses_recovery.rst
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ In nominal execution, this will replan the path at every 3 seconds and pass that
17
17
The planner though is now ``ComputePathThroughPoses`` taking a vector, ``goals``, rather than a single pose ``goal`` to plan to.
18
18
The ``RemovePassedGoals`` node is used to cull out ``goals`` that the robot has passed on its path.
19
19
In this case, it is set to remove a pose from the poses when the robot is within ``0.5`` of the goal and it is the next goal in the list.
20
+
Additionally, it records the status of each waypoint (e.g. ``PENDING``, ``COMPLETED``, ``SKIPPED`` or ``FAILED``) in the ``waypoint_statuses``.
20
21
This is implemented such that replanning can be computed after the robot has passed by some of the intermediary poses and not continue to try to replan through them in the future.
21
22
This time, if the planner fails, it will trigger contextually aware recoveries in its subtree, clearing the global costmap.
22
23
Additional recoveries can be added here for additional context-specific recoveries, such as trying another algorithm.
@@ -46,7 +47,7 @@ While this behavior tree does not make use of it, the ``PlannerSelector``, ``Con
@@ -231,6 +237,7 @@ The ``nav2_simple_commander`` has a few examples to highlight the API functions
231
237
- ``example_waypoint_follower.py`` - Demonstrates the waypoint following capabilities of the navigator, as well as a number of auxiliary methods.
232
238
- ``example_follow_path.py`` - Demonstrates the path following capabilities of the navigator, as well as a number of auxiliary methods like path smoothing.
233
239
- ``example_assisted_teleop.py`` - Demonstrates the assisted teleop capabilities of the navigator.
240
+
- ``example_route.py`` - Demonstrates the route server capabilities of the navigator.
234
241
235
242
The ``nav2_simple_commander`` has a few demonstrations to highlight a couple of simple autonomy applications you can build using the API:
Four of the action servers in this project are the planner, behavior, smoother, route, and controller servers.
113
114
114
115
These action servers are used to host a map of algorithm plugins to complete various tasks.
115
116
They also host the environmental representation used by the algorithm plugins to compute their outputs.
@@ -131,6 +132,10 @@ This is done because of the wide variety of behavior actions that may be created
131
132
The behavior server also contains a costmap subscriber to the local costmap, receiving real-time updates from the controller server, to compute its tasks.
132
133
We do this to avoid having multiple instances of the local costmap which are computationally expensive to duplicate.
133
134
135
+
The route server does not contain multiple "routing algorithms" like the planner or controller servers.
136
+
Instead, it computes a route using a navigation graph using a set of plugins for scoring edges in the graph, parsing graph files, and performing operations along the route, if necessary.
137
+
Rather than freespace planning, this computes a route using a graph that can be generated to represent lanes, areas the robot is allowed to navigate, a teach-and-repeat route, urban roadways, and more.
138
+
134
139
Alternatively, since the BT nodes are trivial plugins calling an action, new BT nodes can be created to call other action servers with other action types.
135
140
It is advisable to use the provided servers if possible at all times.
136
141
If, due to the plugin or action interfaces, a new server is needed, that can be sustained with the framework.
@@ -173,7 +178,7 @@ However, many classes of controllers and local planners exist.
173
178
It is the goal of this project that all controller algorithms can be plugins in this server for common research and industrial tasks.
174
179
175
180
Behaviors
176
-
==========
181
+
=========
177
182
178
183
Recovery behaviors are a mainstay of fault-tolerant systems.
179
184
The goal of recoveries are to deal with unknown or failure conditions of the system and autonomously handle them.
@@ -200,6 +205,13 @@ Use of a separate smoother over one that is included as part of a planner is adv
200
205
The general task in Nav2 for a smoother is to receive a path and return its improved version.
201
206
However, for different input paths, criteria of the improvements and methods of acquiring them exist, creating space for a multitude of smoothers that can be registered in this server.
202
207
208
+
Route
209
+
=====
210
+
211
+
The route server is a specialized planner that computes a route using a navigation graph, rather than the freespace costmap.
212
+
The route is computed as the optimal way from the start to the goal through the set of nodes and directional edges in the pre-defined navigation graph.
213
+
This navigation graph can be generated to represent lanes, areas the robot is allowed to navigate, a teach-and-repeat route, urban roadways, and more.
Used to cancel the compute and track route action that is part of the behavior server. The server address can be remapped using the ``server_name`` input port.
7
+
8
+
Input Ports
9
+
-----------
10
+
11
+
:service_name:
12
+
13
+
====== =======
14
+
Type Default
15
+
------ -------
16
+
string N/A
17
+
====== =======
18
+
19
+
Description
20
+
Service name, if not using default of ``compute_and_track_route`` due to remapping.
0 commit comments