Source Based Model Car Pl atform For Autonomous Driving Development 자동운전 개발을 위한 오픈 소스 기반 모형차 플랫폼 Open

 Open Source Based Model Car Platform For Autonomous Driving Development 자율주행 개발을 위한 오픈 소스 기반 모형차 플랫폼

오픈소스 기반의 모형차 플랫폼은 자율주행기술 개발에 있어서 실차 대신 비용과 안전문제를 줄이는 대체제로서의 역할뿐만 아니라 엔니지 양성과 비즈니스 진출의 초석이 될 수 있다.

글│김혜진 수석한컴MDS 교육연구팀 _hyejin@hancommds.com

아우디는 2018년 아우디 자율주행컵대회(Audi Autonomous Driving Cup 2018)를 개최하였다. 참가자들은 18크기의 아우디 Q2모형 차를 이용하고 로봇 공학, 소프트웨어 아키텍처, AI기술 등을 구현하고 자율 주행 기술을 경쟁했다. 아우디는 이 대회를 통해 고급 자율주행 엔지니어를 양성 확보함으로써 자율주행기술에 대한 신뢰를 얻는 데 목적이 있다. 자율주행자동차 연구를 위한 OEM 투자가 지속적으로 확대되고 새로운 자율주행기술 개발회사가 등장하면서 자율주행 엔지니어 수요가 급증하고 있다. 고도 엔지니어의 양성, 그리고 실제로 비슷한 도로상황에서의 자동운전센서, , 통신 등의 첨단기술의 연구, 개발을 위한 자동운전 테스트 환경이 매우 중요해졌다.

테스트를 위한 연구개발용 플랫폼의 필요성

테스트 베드(Test Bed)란 새로운 기술제품 서비스의 성능 및 효과를 시험할 수 있는 환경 혹은 시스템, 설비를 말한다. 자동차에 적용되는 자율주행 기술을 개발하고 결과물을 검증하려면 실차를 테스트베드로 써야 한다. 하지만 이를 위해서는 구입, 수리 비용이 부담되고 주행 테스트 시 운전자의 사고 위험뿐 아니라 2차 사고에 따른 인명사고 위험도 있다. 이 같은 위험을 최소화하기 위해 대개 도로주행시험장을 이용해 테스트한다. 하지만 자동차 개발업체조차 도로주행시험장을 보유하기는 쉽지 않다. 일반 연구를 하는 학생이나 연구원들은 도로주행시험장을 이용할 뿐 아니라 대여 비용도 비싸 테스트하기가 현실적으로 쉽지 않다.

이에 따라 이들이 쉽고 편리하게 개발을 경험할 수 있는 자동차 플랫폼 수요가 증가하면서 자연스럽게 RC카를 기반으로 고성능 프로세서와 각종 센서장치, 제어장치를 장착한 작은 크기(110)의 자율주행 모형차가 등장하게 됐다. 이러한 소형 모형차가 실차를 대신해 자율주행 솔루션의 개발, 검증에 사용되고 있으며, 교육용기재나 연구개발의 테스트베드로도 활용되고 있다. 자동주행 모형차, 그것들을 구성하는 하드웨어 구조와 , 소프트웨어 구성, 활용, 고려사항 등을 조사한다. 나아가 모형차를 기반으로 한 상용 주행 로봇 개발 방법도 알아본다.

모형 자동차 플랫폼

코딩 열풍과 함께 프로그래밍으로 움직일 수 있는 다양한 구동체(드론 모형차 로봇 등) 제품이 나왔지만 대부분 저사양 프로세서로 간단한 센싱과 알고리즘 구동만 가능한 수준이어서 자율주행 소프트웨어 개발과 검증용으로는 적합하지 않았다.미국 MIT와 UPenn대 등에서는 실차에서 사용하는 라이더, IMU센서와 같은 장치를 장착하고 인공지능 구동이 가능한 GPU 기반의 고성능 프로세서를 장착한 모형차를 개발, 제작방법과 소스코드를 공개했다. 이를 통해 많은 사람이 쉽게 자율주행기술을 접하고 배울 수 있어 자신이 개발한 솔루션과 알고리즘을 쉽고 빠르게 검증할 수 있게 됐다.

자율주행 소프트웨어 개발을 목표로 모형차를 만드는 프로젝트로는 미국 MIT대의 Racecar 프로젝트와 엔비디아 오픈소스 프로젝트 (Jetsonhacks.com)의 RACE CARJ 프로젝트가 유명하다. 한국에서는 임베디드 솔루션 전문기업인 한컴MDS와 자율주행 자동차·로봇 개발업체 자이트론이 공동으로 개발하는 「AI AutoCAR(Xycar) 프로젝트」가 있다. MIT 및 UPenn대학에서는 모형차 제작 과정을 동영상으로 인터넷에 공개하고 있으며 프로그램도 오픈 소스로 만들어 제한 없이 공개하고 있다. 학생과 개발자들은 쉽게 관련 자료를 참고해 직접 DIY 방식으로 모형차 하드웨어를 제작할 수 있고 오픈소스인 리눅스와 ROS(Robot OS)를 기반으로 개발하는 방법을 공개하고 있어 소프트웨어 구현도 쉽게 가능하다.

하드웨어 아키텍처

모형차는 실제 차와 비교해 110의 비율로 축소한 것으로 크기도 작아 스펙과 성능은 떨어지지만 자율주행기술 구현에 필요한 센서를 갖추고 있어 실제 차와 최대한 비슷하게 동작할 수 있도록 작은 부분까지 꼼꼼하게 설계됐다. 복잡하고 계산량이 많은 주행제어 인공지능 소프트웨어가 원활하게 구동될 수 있도록 GPU가 지원되는 고성능 인공지능 프로세서, 카메라, 깊이카메라, IMU, 라이더, 초음파센서 등 주변 환경정보 수집을 위한 다양한 센서를 장착한다. 차량의 속도와 조향 제어는 휠 모터와 스티어링 모터를 통해 이뤄진다. 배터리와 모터로 구성된 구동부를 정밀하게 제어하기 위해 오픈하드웨어 모터제어기(ESC-Electronic Speed Controler)가 장착되며 Wi-Fi 무선랜, 유선랜, HDMI, SSD, 아두이노 등 응용개발 편의성 제고를 위한 다양한 주변장치들이 장착된다. 또, 주변장치를 용이하게 확장하는 것을 지원하기 위해, 메인 인터페이스 방식으로 고속 USB 3.0 표준이 채용된다.

소프트웨어 아키텍처

모형차 플랫폼을 기반으로 개발되고 검증된 자율주행 소프트웨어는 실제 실차에서도 쉽게 포팅되고 유사한 기능 수행과 성능을 내기 위해 최대한 실차와 유사한 소프트웨어 개발 환경에서 설계됐다. 모형차 플랫폼에 탑재된 소프트웨어 개발 환경인 리눅스와 ROS(Robot OS)는 실제로 자율주행차나 주행 로봇에 적용되는 사례가 계속 늘고 있다. 리눅스와 ROS는 모두 오픈 소스이기 때문에 많은 개발자들의 협업을 통해 진화하고 있으며 안전성과 성능이 빠르게 향상되고 있다. 오픈소스의 경우 관련 자료와 소스 코드를 쉽게 구할 수 있고 다양한 Q&A 정보를 인터넷에서 쉽게 찾아볼 수 있어 모형차로 자율주행 기술을 처음 배우는 사람도 어렵지 않게 자율주행 솔루션 개발 프로젝트를 진행할 수 있다. 센서를 만드는 기업에서도 센서 구동을 위한 ROS Package를 직접 제작하여 배포하므로 손쉽게 새로운 센서를 추가하거나 교체할 수 있다.

개발자를 위한 각종 연구개발도구

ROS 플랫폼은 로봇 제품을 위해 개발된 오픈 소스 미들웨어로, 다양한 분야에서 다양한 용도로 활용되는 로봇을 개발하기 위한 편리한 개발 도구를 제공하고 있다. 센서로부터 수집된 센싱정보를 2D3D 그래픽으로 시각화하는 뷰어, GUI 기반의 제어프로그램을 직접 설계할 수 있는 도구, 직접 프로그래밍까지 가능한 3차원 시뮬레이터 등이 제공된다.

모형차 플랫폼 기반 주행 로봇

자율주행 기술 하면 많은 사람들이 도로를 달리는 자동차와 그 안에서 독서를 하고 있는 운전자의 모습을 떠올린다. 하지만 자율주행 기술은 자동차뿐 아니라 더 많은 제품에 적용할 수 있는 기술 요소다. 사람이 탑승하지 않아 인명사고에 시달리지 않아도 되는 주행 로봇의 경우 보다 쉽게 자율주행 제품을 상품화할 수 있다. 실제로 물류센터 운반로봇이나 공항 안내로봇 등은 이미 상용화됐다. 지난 3월 정부는 로봇산업 육성전략을 발표하면서 “서비스 로봇산업을 시장 초기 단계로 삼아 향후 산업의 급성장이 예상된다”며 4대 서비스로봇 분야를 선정하고 이를 적극 육성하겠다는 의지를 밝혔다. 물류로봇, 안내로봇, 순찰로봇 등은 자율주행 기능이 필수인 주행로봇이어서 자율주행 모형차 플랫폼을 활용하면 어렵지 않게 만들어져 빠르게 상품화할 수 있다.

오픈소스 기반으로 만들어진 모형차 플랫폼은 실차 대신 비용과 안전 문제를 줄이는 대체제 역할도 하지만, 여타 개발자들이 큰 어려움 없이 자율주행 분야에 진입할 수 있도록 돕는 토대 역할을 한다. 또, 여러가지 주행 로봇의 개발이나 상품화에 활용할 수 있는 반제품적 성격의 레퍼런스 제품으로서의 역할도 완수한다. 오픈소스의 공생 생태계에서 자율주행 모형차 플랫폼이 많은 개발자에게 활용되어 그들에 의해 진화·발전하기를 바란다.