Pure Pursuit Path Tracking Controller for ROS (Modified from here), tested on an Ackermann-steering vehicle.
- Ubuntu 18.04
- ROS Melodic
-
tf from map to base_link, which can be obtained using AMCL node or robot_localization node.
-
The reference_path is published on 'map' frame.
See pure_pursuit_controller.yaml
- Make .py Executable
$chmod +x [path_to_your_workspace]/scripts/show_trajectory.py
$chmod +x [path_to_your_workspace]/scripts/test_send_ref_path.py
- Run the Pure Pursuit Controller:
$roslaunch pure_pursuit_controller pure_pursuit.launch
- Send waypoints reference path
$roslaunch pure_pursuit_controller test_send_waypoints.launch
In General, the look_ahead_ratio and look_ahead_constant in pure_pursuit_controller.yaml determines the Look-ahead-Distance in Pure-Pursuit, which mainly affects the Path Tracking Performance. See Matlab: PurePursuit for more information.