자율주행 자동차는 운전자의 개입 없이 주변 환경을 인식하고, 주행 상황을 판단하여 차량을 제어함으로써 스스로 주어진 목적지까지 주행하는 자동차를 의미한다. 자율주행 자동차 기술을 완성하기 위해 자동차 부품 업체 뿐만 아니라 완성차 업체에서도 앞 다투어 자율주행 자동차 기술 개발에 뛰어들어 앞으로 새롭게 형성될 자율주행 자동차 시장의 선점을 위하여 노력하고 있다.
이러한 자율주행 자동차를 개발할 때 대부분의 개발 업체에서는 실제 자율주행 자동차로부터 얻은 센서 정보를 가지고 자율주행을 위한 알고리즘을 테스트한다. 하지만 이 방법은 센서 데이터를 사용해 주행 궤적을 만들고 실제 자동차를 움직이는 제어 알고리즘을 검증할 때는 디버깅이 매우 힘들고 위험하다는 단점이 있다. 따라서 실제와 비슷한 가상의 도로 환경과 자동차를 제공하는 시뮬레이터를 사용해 자율주행 알고리즘 개발이 이루어지고 있다. 실제 도로 환경을 제공하면서, 자동차에 달린 센서 정보를 획득할 수 있고, 알고리즘을 개발하여 시뮬레이터에 적용할 수 있는 기능을 제공해주는 시뮬레이터 중에 대표적으로 CARLA[1], Car-demo[2], lgsvl-simulator[3]가 있다. 이들은 모두 오픈소스로 되어 있다. CARLA는 게임엔진을 사용해 개발되었고, Car-demo는 Gazebo를 사용해 개발되었고, lgsvl-simulator는 자체적으로 시뮬레이터를 개발해 apollo[4]와 autoware[5]의 자율주행 플랫폼에 적용하였다. 본 논문에서는 이 중 Car-demo (그림 1)를 자율주행 자동차를 위한 시뮬레이터로 선택하여, 이를 제어하는 ROS 컨트롤러를 설계하였다. 선속도와 각속도의 레퍼런스 입력이 주어졌을 때 Car-demo에 있는 자율주행 자동차가 이를 잘 따라가도록 하는 brake, throttle, steering 입력을 생성하였다.
그림1 Car-demo를 실행한 환경
그림2 시스템 구성
<aside> 📄
“Gazebo와 ROS를 사용한 자율주행 제어 시스템 환경 구축” 전자부품연구원 모빌리티플랫폼연구센터 김윤정 등 4명 (2018) 논문 내용의 일부를 직접 인용하였습니다.
</aside>