4차 산업혁명의 시작으로 지금 전 세계는 로봇에 대한 관심이 커지고 있다. 특히 요즘 가장 뜨거운 관심을 가지고 있는 분야는 바로 자율주행 자동차라 할 수 있다.
실제 차량을 이용한 자율 주행 테스트는 위험성이 높고 비용적인 부담이 되기 때문에 본 프로젝트는 ROS 프레임워크를 사용하여 터틀봇을 사용한 자율 주행 환경을 제공한다.
* OS : Ubuntu 18.04 LTS
* Programming Language : Python2.7
* IDE : Pycharm 2.7.17
* Framework : Ros melodic
* Library : OpenCV
* Version control : Docker, Git
-
정지선 인식 및 정지
Image에 대한 마스킹을 진행하여 정지선을 검출하고, 터틀봇을 3초간 정지시킨다.
Canny 알고리즘을 사용하여 기울기가 0 이 될때까지 좌우로 움직여 수평을 맞춘다.
-
차선 인식 및 추적
Canny 알고리즘을 사용하여 차선을 인식하고, 인식되는 차선에 따라 주행 방향을 설정한다.
-
장애물 인식 및 정지
LaserScan을 사용하여 전방에 장애물이 있는지 스캔하고, 인식되면 터틀봇을 정지시킨다.
터틀봇에 좌, 우 카메라 추가
kobuki.urdf.xacro 참고
$ cd ~/catkin_ws/src/kobuki_description/urdf
$ gedit kobuki.urdf.xacro
$ cd ~/catkin_ws
$ catkin_make
launch 파일 및 car_state_machine.py 실행
$ roscd deu_car
$ source ./gazebo_env.sh
$ chmod +x ./scripts/blocking_bar_control.sh
$ chmod +x ./scripts/obstacle_spawn.py
$ roslaunch deu_car car_test.launch #1차선
roslaunch deu_car car_test.launch line:=2 #2차선
$ rosrun deu_car car_state_machine.py