../_images/tiagopro-icon.png ../_images/kangaroo-icon.png ../_images/tiago-icon.png ../_images/ari-icon.png ../_images/talos-icon.png ../_images/mobile-bases-icon.png

πŸ”Œ Waypoint Navigation API#

ROS 2 API#

To interact with the Waypoint Navigation module, you can refer to the following ROS 2 APIs:

The nodes: bt_navigator, bt_navigator_navigate_through_poses, pal_bt_navigator_through_waypoints and waypoint_follower implement the main Waypoint Navigation functionalities.

To configure the bt_navigator you can refer to the Behavior-Tree Navigator Configuration Guide.

Note

To configure the Behavior Tree for the Waypoint Navigation, you can create your own parameter file and follow the guide in πŸ“” Navigation Configuration Guide section:

touch ~/.pal/pal_navigation_cfg_params/params/nav2_bt_navigator/my_navigate_w_replanning_and_recovery.yaml
sudo vi ~/.pal/pal_navigation_cfg_params/params/nav2_bt_navigator/my_navigate_w_replanning_and_recovery.yaml

To learn more about the NavigateThroughPoses Usage, please refer to the Navigate Through Poses Configuration and to the Nav2 node configuration.

To configure the waypoint_follower you can refer to the Waypoint Follower Configuration Guide.

To configure the pal_bt_navigator_through_waypoints you can refer to the following table containing the pal_bt_navigator node’s parameters and their explanation.

Parameter

Description

use_sim_time

Whether to use simulation time or not.

odom_topic

The topic name for the odometry.

process_at_waypoint_plugins

List of the Task Executors plugins that could be loaded.

Provided Plugin

Package

Description

wait_at_waypoint

Name of the package to which the plugin belongs (nav2_waypoint_follower).

Name of the plugin to load (nav2_waypoint_follower::WaitAtWaypoint).

spin_at_waypoint

Name of the package to which the plugin belongs (pal_nav2_waypoint_follower).

Name of the plugin to load (pal_nav2_waypoint_follower::SpinAtWaypoint).

set_parameters_at_waypoint

Name of the package to which the plugin belongs (pal_nav2_waypoint_follower).

Name of the plugin to load (pal_nav2_waypoint_follower::SetParametersAtWaypoint).

set_nav_configurations_at_waypoint

Name of the package to which the plugin belongs (pal_nav2_waypoint_follower).

Name of the plugin to load (pal_nav2_waypoint_follower::SetNavConfigurationsAtWaypoint).

Note

To configure the pal_bt_navigator_through_waypoints, you can create your own parameter file and follow the guide in πŸ“” Navigation Configuration Guide section:

touch ~/.pal/pal_nav2_bt_navigator/params/my_navigate_through_waypoints.yaml
sudo vi ~/.pal/pal_nav2_bt_navigator/params/my_navigate_through_waypoints.yaml

RVIZ GUI#

To allow the user to easily interface with the Waypoint Navigation, PAL Navigation for ROS2 offers a set of RViz tools and a PAL Navigation2 Panel which monitors the waypoint navigation status.

../_images/waypoint_icon.svg

Waypoint tool#

This tool allows the user to set waypoints in the map by clicking on the desired location. You can give name to a waypoint and eventually set a floor if the robot is navigating in a building. The waypoints are saved in a YAML file that can be loaded by the navigator.

../_images/waypoint_tool.svg

To learn more about buildings and floors, please refer to πŸ›οΈ Environmental Annotations

PAL Navigation2 Panel#

The PAL Navigation2 Panel is a graphical interface that allows the user to monitor the status of the waypoint navigation. It shows the current loop, the remaining waypoints, and the number of remaining loops as well as other status information.

../_images/pal_nav2_panel.svg

Once you set a new waypoint, its name will appear in the window Available Waypoints. You can select a waypoint and drag and drop it in the Selected Waypoints window to set it as one of the goals of the navigation. Then from the Available Actions window you can drag and drop actions you would like to perform and assign them to a certain waypoint.

Lastly, you can set a Behavior Tree choosing among the available ones or by giving the complete path for your custom behavior tree.

../_images/set_bt.svg