/PurePursuitControllerROS

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Pure Pursuit Controller for ROS

Pure Pursuit Path Tracking Controller for ROS (Modified from here), tested on an Ackermann-steering vehicle.

Environment:

  • Ubuntu 18.04
  • ROS Melodic

Requirements:

  1. tf from map to base_link, which can be obtained using AMCL node or robot_localization node.

  2. The reference_path is published on 'map' frame.

Usage:

Configuration:

See pure_pursuit_controller.yaml

Launch:

  1. 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
  1. Run the Pure Pursuit Controller:
    $roslaunch pure_pursuit_controller pure_pursuit.launch
  1. Send waypoints reference path
    $roslaunch pure_pursuit_controller test_send_waypoints.launch

Tuning:

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.

Reference: