These projects are to precess images and control RC-Car.
These is divided into three parts.
First project is for real perception and control of RC-Car.
For perception, I use two ways. One is "Brightness Difference Lane Detection". The other is "Huff Transform Lane Detection".
For control, I use "PID control and Weighted Moving Average Filter" for stable driving.
Brightness Difference Lane Detection
Huff Transform Lane Detection
Second project is for mor sophisticated image processing. It is based on "Brightness Difference Lane Detection".
For Robustness against change of Brightness of driving environment, I maintain average brightness. And to prepare for lane loss, I use very basic Kalman filter, not WMVF above. However the performance is not good. It is necessary to adjust the value according to the environment.
(Green Box - original lane, Red Box - predicted lane using kalman filter)
Third project is using Sliding Window algorithm in order to detect lane.
In terms of using mathematical formulas, it is a little bit systematic, but it is also weak to lane loss.
Unlike before, I used c++.
In order to run first project, you need to change topic of my RC-Car motor message type to yours. And this project needs ROS, you should use roslaunch.
In order to run second project, please follow below command.
cd 2nd
python3 subProject_chl.py --video_path ${your video path}
Also, you can adjust value of binary image for better process using trackbar.
In order to run third project, please follow below command.
cd 3rd
mkdir build && cd build
cmake -G Ninja ..
cmake ninja
./sliding window ${your video path}