# 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.

**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.
Manager: Library interface.
Virtual Path Manager: Manages waypoints and virtual paths and computes the follow-path.
Follow Path Planner: Sends linear speed and angular speed to Robot Base Controller, checks for obstacles on the follow path and supports dynamic obstacle avoidance.
Obstacle Detector: Uses laser scan and a grid map to detect dynamic obstacles.
PID Controller: Computes the speed and checks if the target pose is reached.