Waypoint Follower

Source code on Github.

The Waypoint Follower module implements a way of doing waypoint following using the NavigateToPose action server. It will take in a set of ordered waypoints to follow and then try to navigate to them in order. 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. If a waypoint is not achievable, the stop_on_failure parameter will determine whether to continue to the next point or stop.

Parameters

stop_on_failure:
 
Type Default
bool true
Description

Whether to fail action task if a single waypoint fails. If false, will continue to next waypoint.

loop_rate:
Type Default
int 20
Description

Rate to check for results from current navigation task.

waypoint_task_executor_plugin:
 
Type Default
string ‘wait_at_waypoint’
Description

A plugin to define tasks to be executed when robot arrives to a waypoint.

Note

The plugin namespace defined needs to have a plugin parameter defining the type of plugin to be loaded in the namespace.

Example:

waypoint_follower:
  ros__parameters:
    waypoint_task_executor_plugin: "wait_at_waypoint"
    wait_at_waypoint:
      plugin: "nav2_waypoint_follower::WaitAtWaypoint"
      enabled: True
      waypoint_pause_duration: 0

Provided Plugins

The plugins listed below are inside the nav2_waypoint_follower namespace.

Default Plugin

Namespace Plugin
“wait_at_waypoint” “nav2_waypoint_follower::WaitAtWaypoint”

Example

waypoint_follower:
  ros__parameters:
    loop_rate: 20
    stop_on_failure: false
    waypoint_task_executor_plugin: "wait_at_waypoint"
      wait_at_waypoint:
        plugin: "nav2_waypoint_follower::WaitAtWaypoint"
        enabled: True
        waypoint_pause_duration: 0