This project was completed on 12/10/2018, and was just uploaded to my Github account recently
In this project, I designed a LQR controller to control a car following a given trajectory. The goal of this project is to make the car finish the path as quickly as possible while still maintaining good accuracy.
The tasks for this project include:
- Model the car using a bicycle model
- linearize the model and decouple them into lateral and longitudinal models
- Design a controller for both lateral and longitudinal models and tune the parameters to get the optimal peformance
The detailed modeling of the car can be found in the reference. The liearization process can be found in the "Calculation and result" folder
For this project, I designed 2 controllers. One is slow but accurate, the other is fast but barely satisfy the accuracy requirement. These two controllers can be found in controller_slow.py and controller_fast.py
Here are some simulation results:
- Total time: 74.55 s
- Maximun distance from reference: 5.7268493347214475 m
- Average distance from reference: 1.3019881974778402 m
- Total time: 157.45000000000002 s
- Maximun distance from reference: 5.6915563863996335 m
- Average distance from reference: 0.7979645575292 m
Reference
- Rajamani Rajesh. Vehicle dynamics and control. Springer Science & Business Media,2011.
- Kong Jason, et al. "Kinematic and dynamic vehicle models for autonomous driving control design." Intelligent Vehicles Symposium, 2015.