Skip to main content
The key features include:
  • Waypoint and virtual path management on the map.
  • Path following navigation to target waypoints.
  • Obstacle avoidance during path following.

Software structure

The following figure shows the software structure of the qrb_ros_follow_path service:
Layered stack on RBx with 2D lidar ROS, robot base, 2D lidar SLAM, follow path service, and follow path manager running on ROS2 Jazzy.

Software structure of qrb_ros_follow_path.

ROS nodes and modules used in the qrb_ros_follow_path service

The following table describes the ROS nodes and modules used in the qrb_ros_follow_path service.

qrb_ros_follow_path_service APIs

The following table describes the qrb_ros_follow_path_service APIs.

Prerequisites

You have set up the device, installed ROS2 Jazzy and the Qualcomm Intelligent Robotics (QIR) SDK on the device according to Install the QIR SDK.

Run out-of-the-box qrb_ros_follow_path service

Run the following commands on the device unless otherwise specified.
1

Install the qrb_ros_follow_path service packages

2

Set up 2D lidar SLAM

Set up 2D lidar SLAM by completing the steps 1-6 in Run out-of-the-box 2D lidar SLAM. Ensure that the mapping is completed.
3

Set up the sample environment on the device

4

Test the follow-path service

  • You can implement a ROS node according to the qrb_ros_follow_path_service APIs table to complete the follow-path navigation.
  • You also can use these ROS commands to complete the follow-path navigation.
a. Install rqt-robot-steering on the host computer (Ubuntu 24.04).
b. Run rqt-robot-steering on the host computer.
c. Use rqt_robot_steering to move the robot base to an expected position.d. Install and set up rviz2 on the host computer (Ubuntu 24.04).
e. Get the pose from rviz and convert the pose to a 2D position (x,y,angle).f. Add a waypoint with the current position.For example, if the current position is (0.1, 0.3, 3.0), use the following command:
Get the waypoint ID from the service response. For example, waypoint ID is 1.g. Use rqt_robot_steering to move the robot base to another position.h. Get the pose from rviz and convert the pose to a 2D position (x,y,angle).i. Add a waypoint with the current position.For example, if the current position is (0.3, 0.1, 3.0), use the following command:
Get the waypoint id from service respond. For example, waypoint ID is 2.j. Set the virtual path between waypoint (id = 2) and waypoint (id = 1).
k. Start a follow-path operation from waypoint (id = 2) to waypoint (id = 1).

Build from source and run the follow-path service

Build the follow-path service from source when you need to change the service code. The device steps install the dependencies, clone the source repositories, build the packages, and run the result.

Device steps

1

Install the dependencies

2

Download and build

3

Run and test the service

Run and test according to step 2 to step 4 of Run out-of-the-box qrb_ros_follow_path service.