Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 2.44 KB

README.md

File metadata and controls

55 lines (42 loc) · 2.44 KB

1. Overview

These projects are to precess images and control RC-Car.
These is divided into three parts.

1st - RC-Car perception and control

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 image

Huff Transform Lane Detection image

2nd - More sophisticated image processing

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.

image
(Green Box - original lane, Red Box - predicted lane using kalman filter)

3rd - Sliding Window Lane Detection with C++

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++.
Screenshot from 2022-07-22 09-39-36

2. How to Use

1. 1st project

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.

2. 2nd project

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.
image

3. 3rd project

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}