# Test follow-path with the `qrb_ros_follow_path` service The `qrb_ros_follow_path` service is a ROS2 package suite designed for path following navigation on the Qualcomm® Robotics Platform. 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 figure shows the software structure of the `qrb_ros_follow_path` service. ![image26](data:image/png;base64,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) **Software structure of `qrb_ros_follow_path`** ## ROS nodes and modules used in the `qrb_ros_follow_path` service | Node name | Description | | --- | --- | | [qrb_ros_follow_path](https://github.com/qualcomm-qrb-ros/qrb_ros_follow_path_service/tree/main/qrb_ros_follow_path) | This ROS2 package implements the action/service clients and servers, publishers and subscribers for waypoints, virtual paths, follow path navigation, position and lidar data. | | [qrb_follow_path_manager](https://github.com/qualcomm-qrb-ros/qrb_ros_follow_path_service/tree/main/qrb_follow_path_manager) | This is a C++ library that provides APIs for waypoints and virtual path management and path following navigation.
| | [Robot Base and Robot Base Controller](https://github.com/qualcomm-qrb-ros/qrb_ros_robot_base) | This is a ROS2 package for AMR base control. | | 2D lidar SLAM ROS and 2D lidar SLAM | Provides mapping and localization. | | 2D lidar ROS | Provides lidar data. | ## `qrb_ros_follow_path_service` APIs qrb_ros_follow_path_service APIs | Interface | Name | Type | Description | | --- | --- | --- | --- | | Subscriber | developer\_mode | `std_msgs::msg::Int16` | Receives debugging information. | | Subscriber | robot\_base\_exception | `qrb_ros_robot_base_msgs::msg::Exception` | Receives exception information. | | Service server | virtual\_path | `qrb_ros_navigation_msgs::srv::VirtualPath` | Manages waypoints or the virtual path. | | Service server | compute\_follow\_path | `qrb_ros_navigation_msgs::srv::ComputeFollowPath` | Computes the follow-path, including the passing through waypoints. | | Service server | follow\_path\_sub\_cmd | `qrb_ros_amr_msgs::srv::SubCmd` | Cancel, pause or resume follow path | | Action server | wfollowpath | `qrb_ros_navigation_msgs::action::FollowPath` | Request a follow path navigation | ## Prerequisites You have set up the device, installed ROS2 Jazzy and QIR SDK on the device according to [Install the QIR SDK](https://docs.qualcomm.com/doc/80-90441-2/topic/2-install-the-qir-sdk.html#install-qir-sdk). ## Run out-of-the-box `qrb_ros_follow_path` service Note Run the following commands on the device unless otherwise specified. **Steps** 1. Install the `qrb_ros_follow_path` service packages. sudo apt install ros-jazzy-nav2-msgs sudo apt install ros-jazzy-nav-2d-msgs sudo apt install ros-jazzy-qrb-ros-amr-msgs sudo apt install ros-jazzy-qrb-ros-navigation-msgs sudo apt install ros-jazzy-qrb-follow-path-manager sudo apt install ros-jazzy-qrb-ros-follow-path Copy to clipboard 2. Set up 2D lidar SLAM by completing the steps 1-6 in [Run out-of-the-box 2D lidar SLAM](https://docs.qualcomm.com/doc/80-90441-2/topic/enable-2d-lidar-slam-with-cartographer_node-and-cartographer_occupancy_grid_node.html#run-out-box-2d-lidar-slam). Ensure that the mapping is completed. 3. Set up the sample environment on the device. source /opt/ros/jazzy/setup.bash source install/setup.bash ros2 launch qrb_ros_follow_path qrb_ros_follow_path_bringup.launch.py Copy to clipboard 4. Test the follow-path service. - You can implement a ROS node according to table 31 to complete the follow-path navigation. - You also can use these ROS commands to complete the follow-path navigation. 1. Install `rqt-robot-steering` on the host computer (Ubuntu 24.04). sudo apt install ros-jazzy-rqt-robot-steering Copy to clipboard 2. Run `rqt-robot-steering` on the host computer. ros2 run rqt_robot_steering rqt_robot_steering Copy to clipboard 3. Use `rqt_robot_steering` to move the robot base to an expected position. 4. Install and set up rviz2 on the host computer (Ubuntu 24.04). sudo apt install ros-jazzy-rviz2 ros2 run rviz2 rviz2 Copy to clipboard 5. Get the pose from rviz and convert the pose to a 2D position (x,y,angle). 6. Add a waypoint with the current position. For example, if the current position is (0.1, 0.3, 3.0), use the following command: ros2 service call /virtual_path qrb_ros_navigation_msgs/srv/VirtualPath "{api_id: 2, waypoint: {x: 0.1, y: 0.3, z: 3.0}}" Copy to clipboard Get the waypoint ID from the service response. For example, waypoint ID is 1. 7. Use `rqt_robot_steering` to move the robot base to another position. 8. Get the pose from `rviz` and convert the pose to a 2D position (x,y,angle). 9. Add a waypoint with the current position. For example, if the current position is (0.3, 0.1, 3.0), use the following command: ros2 service call /virtual_path qrb_ros_navigation_msgs/srv/VirtualPath "{api_id: 2, waypoint: {x: 0.3, y: 0.1, z: 3.0}}" Copy to clipboard Get the waypoint id from service respond. For example, waypoint ID is 2. 10. Set the virtual path between waypoint (id = 2) and waypoint (id = 1). ros2 service call /virtual_path qrb_ros_navigation_msgs/srv/VirtualPath "{api_id: 6, waypoint_id: 1, adjacent_waypoints: [2]}" Copy to clipboard 11. Start a follow-path operation from waypoint (id = 2) to waypoint (id = 1). ros2 action send_goal /wfollowpath qrb_ros_navigation_msgs/action/FollowPath "{goal: 1}" Copy to clipboard ## Build from source and run the `follow-path` service **Device steps** 1. Install the dependencies. sudo apt install ros-jazzy-nav2-msgs sudo apt install ros-jazzy-nav-2d-msgs Copy to clipboard 2. Download and build. source /opt/ros/jazzy/setup.bash git clone https://github.com/qualcomm-qrb-ros/qrb_ros_follow_path_service.git git clone https://github.com/qualcomm-qrb-ros/qrb_ros_interfaces.git colcon build Copy to clipboard 3. Run and test according to step 2 to step 4 of [Run out-of-the-box qrb\_ros\_follow\_path service](https://docs.qualcomm.com/doc/80-90441-2/topic/test-follow-path-with-the-qrb_ros_follow_path-service.html#run-qrb-ros-follow-path-service). Last Published: Sep 07, 2026 [Previous Topic Enable 2D Lidar SLAM with cartographer\_node and cartographer\_occupancy\_grid\_node](https://docs.qualcomm.com/bundle/publicresource/80-90441-2/topics/enable-2d-lidar-slam-with-cartographer_node-and-cartographer_occupancy_grid_node.md) [Next Topic Run basic AMR functionality with the AMR service](https://docs.qualcomm.com/bundle/publicresource/80-90441-2/topics/run-basic-amr-functionality-with-the-amr-service.md)