Path Tracking
I though path tracking was a trivial problem. That is, when you generate a path (a set of waypoints), getting a vehicle to follow that path.
At slower speeds, it is indeed trivial. But at high speeds, it can get pretty difficult. I’ve had first-hand experience with this through the F1TENTH.
Resources
- https://dingyan89.medium.com/three-methods-of-vehicle-lateral-control-pure-pursuit-stanley-and-mpc-db8cc1d32081
- https://medium.com/roboquest/understanding-geometric-path-tracking-algorithms-stanley-controller-25da17bcc219
- https://www.ri.cmu.edu/pub_files/2009/2/Automatic_Steering_Methods_for_Autonomous_Automobile_Path_Tracking.pdf
- Some boilerplate code: https://github.com/AtsushiSakai/PythonRobotics/tree/master/PathTracking
Path Tracking Implementations
- Line Follow using a PID?
- Pure Pursuit
- Uses Cross-Track Error
- Stanley Method (from Stanford DARPA Challenge)
- Uses both Cross-Track Error and Heading Error
- MPC
The Key Difficulty in Path Tracking
After playing arouund These are basically the same issues that you face with PID Control.
- high gain = more accurate tracking, but more oscillations
- low gain = less oscillations, but poor tracking
Path Smoothing
Consider using Clothoid.
https://www.sciencedirect.com/science/article/pii/S1474667016437614 ^but this paper is for Differential Drive robots
From ChatGPT, I learned about Savitzky-Golay filter