Skip to content

Commit ac11303

Browse files
committed
adding waypoint following context
1 parent b865319 commit ac11303

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

concepts/index.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,25 @@ Backing up or spinning in place, if permissible, allow the robot to move from a
176176
Finally, in the case of a total failure, a recovery may be implemented to call an operators attention for help.
177177
This can be done with email, SMS, Slack, Matrix, etc.
178178

179+
Waypoint Following
180+
==================
181+
182+
Waypoint following is a basic feature of a navigation system. It tells our system how to use navigation to get to multiple destinations.
183+
184+
The ``nav2_waypoint_follower`` contains a waypoint following program with a plugin interface for specific task executors.
185+
This is useful if you need to go to a given location and complete a specific task like take a picture, pick up a box, or wait for user input.
186+
It is a nice demo application for how to use navigation2 in a sample application.
187+
188+
However, it could be used for more than just a sample application.
189+
There are 2 schools of thoughts for fleet managers / dispatchers.
190+
- Dumb robot; smart centralized dispatcher
191+
- Smart robot; dumb centralized dispatcher
192+
193+
In the first, the ``nav2_waypoint_follower`` is fully sufficient to create a production-grade on-robot solution. Since the autonomy system / dispatcher is taking into account things like the robot's pose, battery level, current task, and more when assigning tasks, the application on the robot just needs to worry about the task at hand and not the other complexities of the system complete the requested task. In this situation, you should think of a request to the waypoint follower as 1 unit of work (e.g. 1 pick in a warehouse, 1 security patrole loop, 1 aisle, etc) to do a task and then return to the dispatcher for the next task or request to recharge. In this school of thought, the waypoint following application is just one step above navigation and below the system autonomy application.
194+
195+
In the second, the ``nav2_waypoint_follower`` is a nice sample application / proof of concept, but you really need your waypoint following / autonomy system on the robot to carry more weight in making a robust solution. In this case, you should use the ``nav2_behavior_tree`` package to create a custom application-level behavior tree using navigation to complete the task. This can include subtrees like checking for the charge status mid-task for returning to dock or handling more than 1 unit of work in a more complex task. Soon, there will be a ``nav2_bt_waypoint_follower`` (name subject to adjustment) that will allow you to create this application more easily. In this school of thought, the waypoint following application is more closely tied to the system autonomy, or in many cases, is the system autonomy.
196+
197+
Neither is better than the other, it highly depends on the tasks your robot(s) are completing, in what type of environment, and with what cloud resources available. Often this distinction is very clear for a given business case.
179198

180199
State Estimation
181200
****************

configuration/packages/configuring-waypoint-follower.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Source code on Github_.
99

1010
The Waypoint Follower module implements a way of doing waypoint following using the NavigateToPose action server.
1111
It will take in a set of ordered waypoints to follow and then try to navigate to them in order.
12+
It also hosts a waypoint task executor plugin which can be used to perform custom behavior at a waypoint like waiting for user instruction, taking a picture, or picking up a box.
1213
If a waypoint is not achievable, the ``stop_on_failure`` parameter will determine whether to continue to the next point or stop.
1314

1415
Parameters

0 commit comments

Comments
 (0)