[Nav2] Waypoint Follower Executor Plugins!

Hi all, friendly neighborhood navigator here.

Another great (while simple) development in Navigation-land worth sharing! We now support plugins inside of Navigation2’s waypoint follower node. This allows users to perform custom behaviors at waypoints to implement simple autonomy tasks.

Some examples of uses:

  • At a waypoint, take an image with your camera for a security, retail, or inspection task.
  • At a waypoint, wait for user input on an iPad / button / etc for a warehouse picking or food delivery application.
  • At a waypoint, call a service or action like MoveIt2 to pick up a box or other more complex tasks that you want to run in external processes or computers.
  • At a waypoint, report to your fleet manager that you’ve made it.

Because we wouldn’t be doing our jobs if we also didn’t provide some examples or even plugins you might use in your applications. We provide a wait, take image, and user input executor plugins for waypoint follower batteries included. More are welcome to be included with community contributions.

A quick illustrative demo is below. We use the image capture executor to take images of warehouse shelves that can be used to analyze the state of the shelf while searching for a package or validating inventory. We define the waypoints through the Nav2 Waypoint Follower integration for Rviz2, but a more production use would be to have previously defined waypoints to use of known poses with respect to shelving.

A second quick demo is using the user input executor plugin. This is an example ‘pick’ task in a warehouse where the robot will drive to a pose near a set of boxes for pick up and wait for a virtual person to place a box on the robot and hit a button to deliver it to its final destination (in this case, a pallet jack). In this example, I publish to the button pressing topic to simulate a person in the … simulation (I can simulate a simulation? Best not to think about that too closely).

Happy autonomying,

S

16 Likes