OpenSourceBased ModelCar Platform For Automous Driving Development 자율주행 개발을 위한 오픈소스 기반 모형차 플랫폼
오픈소스 기반 모형차 플랫폼은 자율주행 기술 개발로 실차 대신 비용과 안전 문제를 줄이는 대체제 역할뿐 아니라 엔지니어 양성, 비즈니스 진입의 발판이 될 수 있다.
문영훈 김혜진 팀, 한컴MDS교육연구팀 [email protected]
아우디는 2018년 아우디 자율주행컵 대회(Audi Autonomous Driving Cup 2018)를 개최했다. 참가자들은 1/8 크기의 아우디 Q2 모형차를 이용해 로봇공학, 소프트웨어 아키텍처, AI 기술 등을 구현하고 자율주행 기술을 경쟁했다. 아우디는 이 대회를 통해 고급 자율주행 엔지니어를 양성하고 확보함으로써 자율주행 기술에 대한 신뢰를 얻는 것을 목적으로 했다. 자율주행차 연구를 위한 OEM 투자가 지속적으로 확대되고 새로운 자율주행 기술개발사가 등장하면서 자율주행 엔지니어 수요가 급증하고 있다. 고급 엔지니어 양성, 그리고 실제와 유사한 도로 상황에서 자율주행 센서, 머신러닝, 통신 등 첨단 기술 연구, 개발을 위한 자율주행 테스트 환경이 매우 중요해졌다.
테스트를 위한 연구개발용 플랫폼의 필요성
테스트베드(Test Bed)란 새로운 기술/제품/서비스의 성능 및 효과를 시험할 수 있는 환경 혹은 시스템, 설비를 말한다. 자동차에 적용되는 자율주행 기술을 개발하고 결과를 검증하려면 실차를 테스트베드로 사용해야 한다. 그러나 이를 위해서는 구입, 수리비용이 부담돼 주행 테스트 시 운전자의 사고 위험뿐 아니라 2차 사고로 인한 인명사고 위험도 있다. 이런 위험을 최소화하기 위해 대개 도로주행시험장을 이용해 테스트한다. 그러나 자동차 개발사조차 도로주행시험장을 보유하기는 쉽지 않다. 일반 연구를 하는 학생, 연구원은 공공도로주행시험장을 이용할 뿐 아니라 렌트 비용까지 높아 테스트하기가 현실적으로 쉽지 않다.
때문에 이들이 쉽게 개발을 경험할 수 있는 자동차 플랫폼의 요구가 높아졌고 자연스럽게 RC카를 기반으로 고성능 프로세서와 각종 센서장치, 제어장치를 장착한 작은 크기(1/10)의 자율주행 모형차가 등장하게 됐다. 이러한 소형 모형차가 실차 대신 자율주행 솔루션 개발, 검증에 사용되고 있어 교육용 기자재와 연구개발 테스트베드로도 활용되고 있다. 자율주행 모형차, 이를 구성하는 하드웨어 구조와 기능, 소프트웨어 구성, 활용, 고려사항 등을 알아본다. 아울러 모형차를 기반으로 한 상용 주행 로봇 개발 방법도 알아본다.
모형 자동차 플랫폼
코딩 열풍과 함께 프로그래밍으로 움직일 수 있는 다양한 구동체(드론, 모형차, 로봇 등) 제품이 등장했지만 대부분 저사양 프로세서로 간단한 센싱과 알고리즘 구동만 가능한 수준이어서 자율주행 소프트웨어 개발과 검증용으로 적합하지 않았다.미국 MIT와 Upenn대학 등에서는 실차에서 사용하는 라이다, IMU 센서와 같은 장치를 장착하고 인공지능 구동이 가능한 GPU 기반의 고성능 프로세서를 장착한 모형차를 개발, 제작방법과 소스코드를 공개했다. 이를 통해 많은 사람이 어렵지 않게 자율주행 기술을 접하고 익힐 수 있게 됐고, 자신이 개발한 솔루션과 알고리즘을 쉽고 빠르게 검증할 수 있게 됐다.
자율주행 소프트웨어 개발을 타깃으로 모형차를 만드는 프로젝트로는 미국 MIT대학의 ‘라세카 프로젝트’와 엔비디아 오픈소스 프로젝트 커뮤니티(Jetsonhacks.com)의 ‘라세카/J 프로젝트’가 유명하다. 국내에서는 임베디드 솔루션 전문업체인 한컴MDS와 자율주행 자동차 및 로봇 개발업체 자이트론이 공동으로 개발하는 ‘AI AutoCAR(Xycar) 프로젝트’가 있다. MIT 및 Upenn대학에서는 모형차를 제작하는 과정을 동영상으로 인터넷에 공개하고 있으며 프로그램도 오픈소스로 만들어 제한 없이 공개하고 있다. 학생과 개발자는 손쉽게 관련 자료를 참고해 직접 DIY 방식으로 모형차 하드웨어를 제작할 수 있고 오픈소스인 리눅스와 ROS(RobotOS)를 기반으로 개발하는 방법을 공개하고 있어 소프트웨어 구현도 쉽게 가능하다.
하드웨어 아키텍처
모형차는 실차에 비해 1/10 비율로 축소한 것으로 크기도 작고 스펙과 성능이 떨어지지만 자율주행 기술 구현에 필요한 센서를 갖췄으며 실차와 최대한 비슷하게 작동하도록 작은 부분까지 세밀하게 설계됐다. 복잡하고 계산량이 많은 주행제어 인공지능 소프트웨어가 원활하게 구동될 수 있도록 GPU가 지원되는 고성능 인공지능 프로세서, 카메라, 깊이카메라, IMU, 라이다, 초음파 센서 등 주변 환경정보 수집을 위한 다양한 센서를 장착한다. 차량의 속도와 스티어링 제어는 휠모터와 스티어링모터를 통해 이뤄진다. 배터리와 모터로 구성되는 구동부를 정밀하게 제어하기 위해 오픈 하드웨어 모터 제어기(ESC-Electronic Speeed Controller)가 장착되며 와이파이 무선랜, 유선랜, HDMI, SSD, 아두이노 등 응용 개발과 개발 편의성 향상 목적의 다양한 주변 장치가 장착된다. 또 주변 장치의 간단한 추가 확장을 지원하기 위해 메인 인터페이스 방식으로 고속 USB 3.0 표준이 채택된다.
소프트웨어 아키텍처
모형차 플랫폼을 기반으로 개발되고 검증된 자율주행 소프트웨어는 실제 실차에서도 쉽게 포팅되고 유사한 기능 수행과 성능을 내기 위해 최대한 실차와 유사한 소프트웨어 개발 환경에서 설계됐다. 모형차 플랫폼에 탑재된 소프트웨어 개발 환경인 리눅스와 ROS(RobotOS)는 실제 자율주행차와 주행 로봇에 적용되는 사례가 꾸준히 늘고 있다. 리눅스와 ROS 모두 오픈소스이기 때문에 많은 개발자 협업을 통해 진화하고 있어 안정성과 성능이 빠르게 향상되고 있다. 오픈소스의 경우 관련 자료와 소스코드를 쉽게 입수할 수 있고 다양한 Q&A 정보를 인터넷에서 쉽게 검색할 수 있어 모형차를 가지고 자율주행 기술을 처음 공부하는 사람도 어렵지 않게 자율주행 솔루션 개발 프로젝트를 진행할 수 있다. 센서를 만드는 업체에서도 센서 구동을 위한 ROS Package를 직접 제작해 배포하고 있어 손쉽게 새로운 센서를 추가하거나 교체할 수 있다.
개발자를 위한 각종 연구개발 도구
ROS 플랫폼은 로봇 제품을 위해 개발된 오픈 소스 미들웨어로, 다양한 분야에서 다양한 용도로 활용되는 로봇을 개발하기 위한 편리한 개발 도구를 제공하고 있다. 센서로부터 수집된 센싱 정보를 2D/3D 그래픽으로 시각화하는 뷰어, GUI 기반 제어 프로그램을 직접 설계할 수 있는 툴, 직접 프로그래밍까지 가능한 3차원 시뮬레이터 등이 제공된다.
모형차 플랫폼 기반의 주행 로봇 만들기
자율주행 기술 하면 많은 사람이 도로를 달리는 자동차와 그 안에서 독서를 하고 있는 운전자의 모습을 떠올린다. 그러나 자율주행 기술은 자동차뿐 아니라 훨씬 많은 제품에 적용할 수 있는 요소 기술이다. 사람이 탑승하지 않아 인명사고를 고민하지 않아도 되는 주행 로봇의 경우에는 보다 쉽게 자율주행 제품을 상품화할 수 있다. 실제 물류센터 운반 로봇과 공항 안내 로봇 등은 상용화된 지 오래다. 지난 3월 정부는 로봇산업 육성 전략을 발표하면서 서비스로봇산업을 시장 초기 단계로 향후 산업의 급성장이 예상된다며 4대 서비스로봇 분야를 선정하고 이를 적극 육성하겠다는 의지를 밝혔다. 물류로봇, 안내로봇, 순찰로봇 등은 자율주행 기능이 필수적인 주행로봇으로 자율주행 모형차 플랫폼을 활용하면 어렵지 않게 만들어 신속하게 상품화할 수 있다.
오픈소스 기반으로 만들어진 모형차 플랫폼은 실차 대신 비용과 안전 문제를 줄이는 대체제 역할도 하지만 기타 개발자들이 큰 어려움 없이 자율주행 분야에 진입할 수 있도록 돕는 발판 역할을 한다. 여기에 다양한 주행 로봇을 개발하고 상품화하는 데 활용할 수 있는 반제품 성격의 레퍼런스 제품 역할도 한다. 오픈소스 상생 생태계에서 자율주행 모형차 플랫폼이 많은 개발자에게 활용되고 이들에 의해 진화 발전하기를 희망한다.