프로그래머스 K-Digital Training 자율주행 데브코스
1:10 스케일 모형 차(Xycar)를 활용한 차선인식 프로젝트 (Lane keeping project using 1:10 scale model car(Xycar))
개발기간 (Development period): 2023.10.28 ~ 2023.11.17
Engineering sample
팀원 | 팀원 | 멘토 |
---|---|---|
김나혜 | 허동욱 | 이치현 |
@nahye03 | @dongwookheo | @hyunny223 |
- 카메라 센서로 차선을 인식하여, Xycar가 주어진 코스를 완주할 수 있도록 한다
- 블록을 넘어뜨릴 경우, 차선을 이탈할 경우 감점
- OpenCV 4.5.5
- ROS melodic
- Ubuntu 18.04 LTS
git clone https://github.com/dongwookheo/lane_detection_project.git
cd lane_detection_project/thirdparty/OpenCV
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.5.5
cd ../build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../install ../opencv
- You can check the number of cores through the
nproc
command.
make -j<core_num>
make install
- 차선의 상태를 나타내는 구조체, 유지 보수를 위한 PREC data type 선언
- 차선 검출을 위한 이미지 전처리 담당 클래스 정의
- 차선 예측을 위한 칼만 필터 클래스 정의
- 차선 검출 담당 클래스 정의
- 차선 검출 시스템을 총괄하는 클래스 정의
- PID 제어기 클래스 정의
- Xycar 컨트롤러 클래스 정의
- 디버깅을 위한 그리기 함수 정의
- 차선 인식 주행
roslaunch lane_detection main_xycar.launch
- i: 속도 Up, k: 속도 Down, j,l: 좌우 조향
- 추후 개선 사항: 현재는 i,j,k,l 키 입력 후 Enter를 입력해야 반영. Enter 입력 없이 주행할 수 있도록 개선 필요.
roslaunch lane_detection teleop_xycar.launch