Overview
This project explores learning-based control for autonomous vehicles by designing a lane-keeping system for a robotic car. The goal is to develop a robust driving policy that can keep the vehicle centered in its lane while adapting to different driving conditions. The implemented approach combines classical control methods with machine learning techniques: a PID controller provides stable baseline control, PCA is used to estimate the vehicle heading from sensor information, and reinforcement learning is incorporated to improve overall driving performance.
Features
- Autonomous lane-keeping using a PID-based control policy
- PCA-based heading estimation for improved vehicle orientation tracking
- Reinforcement learning augmentation to improve control performance
- Simulation and evaluation framework for comparing different driving policies
Technologies
- Python
- Jupyter Notebook
- ROS 2 robotics framework
- Reinforcement Learning and classical control methods
Source Code
The complete source code is publicly available on GitHub:
View source code
Explore the implementation, documentation, and experiments.
Results
The project demonstrated how traditional control approaches can be combined with reinforcement learning to improve autonomous vehicle behavior. A key challenge was integrating stable control from PID methods with adaptive learning-based improvements while maintaining reliable lane tracking. The project provided practical experience in robotics software development, autonomous systems, and the integration of machine learning techniques for real-world control problems.