이름 | 담당 |
---|---|
조영진(팀장) | 허프변환, PID, 이동평균 필터 적용 |
구민상 | 허프변환, PID, 이동평균 필터 적용 |
고세람 | 허프변환, PID값 최적화 |
임경묵 | 허프변환, PID값 최적화 |
- 차선을 벗어나지 않고 3바퀴 연속 주행
- Ubuntu 18.04
- ROS Melodic
- Xycar Model D
- Nvidia TX 2
Project2
└─ src
│ └─ main.py # xycar drive main code
│ └─ main_video.py # video drive main code
│ └─ imageProcessing.py # imageProcessing Module
│ └─ pid.py # PID Module
│ └─ movingAverage.py # movingAverage Filter Module
└─ launch
└─ main.launch # xycar drive main launch
└─ src
$ roslaunch Project2 main.launch
- gray scale
- 화면의 중심을 기준으로 왼쪽 좌표와 오른쪽 좌표의 중심과의 차이를 구해서 error 도출
- 한쪽 좌표가 없어졌을 때를 코너로 인식
- 직선과 코너에 다르게 PID 제어
- PID Control
- Moving Average Filter
- 2-way Lane Detection
- 바닥에 비친 형광등, 기둥을 차선으로 인식하여 차선을 벗어나는 경우가 있었다.
- 카메라 노출도 조정과 한쪽 차선만 검출하여 해결
- PID 제어를 사용할 때 직선 구간에서 똑바로 가지 못함
- PID값을 조절하여 P = 0.25, I = 0.0005, D = 0.25 으로 설정했을 때 가장 안정적이었음.
- 하지만 위 PID 값을 적용했을 때, 곡선에서 차선 이탈을 하는 문제가 있었음
- 곡선과 직선에서의 PID값을 따로 주어 해결 -> 곡선 P = 0.5, I = 0.0, D = 0.25 로 설정.
- Image Processing의 다양한 Noise 해결 방법
- hough transform을 사용한 lane detection
- 상황에 맞게 PID와 MovingAverageFilter를 조절해서 부드러운 조향각 제어