자율 주행 시스템의 개발, 훈련, 검사를 지원하기 위해 제작된 언리얼 엔진 기반의 무료 오픈 소스 시뮬레이터인 CARLA가 이에 대한 해결책을 제안하고 있습니다.
오픈 소스 시뮬레이터의 탄생
CARLA는 현재 CARLA의 팀 리드인 연구과학자 헤르만 로스(Germán Ros)와 바르셀로나 컴퓨터 비전 센터(Computer Vision Center)의 교수 안토니오 M. 로페즈(Antonio M. López)가 처음 고안한 것입니다. 로스는 2013년부터 자율주행차 관련 프로젝트를 진행했으며, 로페즈는 자율 시스템 분야에서 수십년이 넘는 경력을 보유하고 있습니다.로스는 2015년 바르셀로나 대학에서 로페즈의 감독 아래 박사 학위 과정 끝무렵에 자율 주행 환경인 SYNTHIA 작업을 시작했습니다. SYNTHIA는 2016년 처음 출시된 이후 연구 커뮤니티, 특히 인지 관련 프로젝트에서 인기를 끌었습니다. 하지만 SYNTHIA의 기반이었던 리얼타임 엔진의 라이선스 제약으로 인해 기존 개발팀은 자유롭게 프로젝트를 배포하거나 소스 코드 액세스 권한을 제공할 수 없었습니다.
라스베이거스에서 열린 CVPR(Conference on Computer Vision and Pattern Recognition, 컴퓨터 비전 및 패턴 인식 콘퍼런스)에서 SYNTHIA를 소개할 때, 로스와 로페즈, 그리고 인텔(Intel) 인털리전트 시스템 랩(Intelligent Systems Lab)의 책임 연구원이자 디렉터인 블라들롄 콜툰(Vladlen Koltun)이 만나 이 문제를 이야기하게 되었습니다. 콜툰은 개발팀의 작업물을 높이 평가하지만 누구나 사용할 수 있는 비슷한 작업물을 볼 수 있으면 좋겠다고 말한 것이죠. 이 말에 로스와 로페즈도 전적으로 공감하게 되면서 인텔이 주요 스폰서로 참여한 CARLA 프로젝트가 탄생하게 되었습니다.
CARLA를 자유롭게 배포하겠다는 결정은 언리얼 엔진을 선택한 주요한 이유였습니다. 바로 엔진을 무료로 사용할 수 있고, 소스 코드 액세스도 제공되기 때문입니다. 로스는 다음과 같이 말했습니다. "사람들과 공유하고 싶었어요. 사람들이 모든 걸 수정할 수 있기를 바랐죠. 그래서 완전히 공개되어 있고, 엔진, 플랫폼 등 모든 소스 코드에도 액세스할 수 있는 프로젝트를 만들고 싶었습니다. 완전히 공개되어야 커뮤니티에 도움이 된다고 생각하는 이유는 그래야만이 각기 다른 용도와 시나리오에 맞게 적용할 수 있기 때문이죠."
개발팀은 SYNTHIA를 제작하면서 받은 영감과 터득한 노하우로 새로운 시뮬레이터를 처음부터 제작하기 시작했습니다. 그 당시에 로스의 본업은 토요타 리서치 인스티튜트(Toyota Research Institute)에서 각종 툴을 사용해 시뮬레이션 프로젝트를 진행하는 일이었습니다. 이 연구에서 배운 것이 CARLA에 영향을 주기도 했습니다.
로스는 토요타가 오픈 소스 프로젝트를 지원해준 덕분에 해가 떠 있을 때 CARLA 작업을 할 수 있었습니다. "토요타는 이 경험을 통해 모두가 배울 수 있어서 만족하고 있습니다. 툴이 작동하지 않으면 그 이유를 배울 수 있고, 작동한다면 함께 사용하면 되니까요. 윈윈인 셈이죠."
CARLA는 2017년 콘퍼런스 포 로봇 러닝(Conference for Robot Learning, CoRL)에서 처음으로 공식 발표되었습니다. 자율 주행에 관한 관심이 높아지면서 빠르게 발전하는 커뮤니티의 평가도 매우 좋았습니다. 현재 CARLA는 세계 각지에서 개발에 주력하는 25명의 개발팀이 있으며 이들은 2~3개월마다 새로운 버전을 출시하고 있습니다. 또한 학계 및 시뮬레이터 유저를 포함하여 약 1600명 이상의 유저 기반도 보유하고 있습니다. 로스는 현재 자율 주행을 연구하고 있는 대학과 R&D 부서가 있는 대형 기업인 경우 사실상 CARLA를 어떤 방식으로든 사용하고 있다고 말합니다. 일부 기업은 CARLA를 메인 시뮬레이션 플랫폼으로 사용하고 있으나, "거래 기밀"이라는 이유로 이를 공개하지 않기도 합니다.
자율주행차 연구개발의 민주화
CARLA 개발팀은 오픈 소스 모델이 자율 주행 개발을 민주화하는 데 중요하다는 것을 개발 초기 때부터 인지했습니다."자본이 많은 대기업이 이뤄내는 자율 주행의 진전에 의존하는 것만으로는 부족합니다." 라고 로스는 말합니다. "자율 주행을 더 빠르게 발전시키고 싶다면 학계와 중소기업도 함께 참여해야 합니다. 우리는 자율 주행을 바라고 있습니다. 자율 주행은 정말 중요하고, 생명을 구할 수 있으며, 삶을 더 윤택하게 만들 것입니다. 그러니 더 빨리 이루어져야 하지 않을까요? 그러려면 커뮤니티의 협력이 필요합니다.“
"CARLA의 주된 목표 중 하나가 기업간의 격차를 메꾸고 개발 여정을 민주화하는 것이었습니다. 작은 국가의 작은 대학에 있는 작은 팀이라도, 대량의 자동차나 데이터에는 액세스할 수 없더라도 최첨단 자율 주행 연구개발에 참여할 수 있도록 해야 합니다. 이렇게 모두 공유할 수 있는 시뮬레이터가 있으면 새로운 알고리즘과 솔루션을 고안해낼 수 있는 것입니다."
CARLA의 두 번째 목표는 시간 혹은 자금이 없거나 사람을 구할 수 없어서 완전한 시뮬레이션 팀을 꾸릴 수 없는 사람들에게 플랫폼을 사용할 수 있게 해주는 것이었습니다.
"별도의 시뮬레이션 팀을 만드는 것에 더 이상 신경 쓰지 않아도 됩니다.”라고 로스는 말합니다. "이미 존재하는, 충분히 좋은 툴이 있고 필요에 따라 확장까지 하고 싶다면, 엔지니어가 20명이나 되는 시뮬레이션 팀을 꾸리는 대신 CARLA를 사용하고 한 두 명만 고용하면 되기 때문이죠."
마지막으로 팀은 CARLA를 표준으로 만들려 했습니다. "내부 시뮬레이터가 있을 수도 있고, 정교한 툴이 있을 수도 있습니다. 그런 건 상관없습니다."라고 로스는 말합니다. "언젠가는 이를 경쟁사와 공유하고, 입법 기관에 결과를 공유해야 할 때가 오게 됩니다. 그렇다면 모든 표준을 만족하고 커뮤니티에 데이터를 투명성 있게 전달하여 현재 상태를 함께 이해할 수 있는 오픈 소스 툴을 사용하는 건 어떨까요?"
"바로 그렇기 때문에 CARLA를 애셋, 코드 등을 모두 마음대로 사용할 수 있고 상업적인 용도까지 허용되는 오픈 소스 포맷으로 만들기로 한 겁니다. 원하는 것이 무엇이든지, CARLA를 최대한으로 활용할 수 있습니다."
유효성 검사와 인증의 필요성 해결
자율 주행 커뮤니티는 활성화돼있지만, 궁금한 걸 모두 해결했다고 보기에는 어렵습니다. 그럴 때 CARLA가 필요합니다."현재 자율 주행 산업은 상당히 혼란스럽습니다."라고 로스는 말합니다. "2016년에는 모두가 2019년에 자율 주행 문제가 해결될 거라고 생각했습니다. 몇 조가 넘어가는 거리를 시뮬레이션 하면 된다고 생각했죠. 하지만 곧 유효성 검사나 인증과 같은 문제를 고민해야 했습니다. 사람들은 어느 시점부터 자율주행차의 생산이 아직 멀었다는 걸 깨닫게 되면서 시뮬레이션이 연구개발에 더 유용하게 사용되었습니다. 연구개발 사이클 테스트를 촉진하고, 아이디어의 유효성을 검사하고, 알고리즘을 아주 빠르게 개발할 수 있기 때문입니다."
"풀스택 인증과 유효성 검사는 좀 더 복잡하다는 걸 깨달은 것 같습니다. 몇 조가 넘어가는 거리를 주행할 준비가 사실상 안되어 있었거나, 당시에는 말이 안되는 소리였는지도 모르죠. 웨이모(Waymo)와 우버(Uber) 같은 회사는 이런 풀스택 인증을 할 역량을 갖추고 있습니다. 하지만 나머지 OEM은 어떤 툴을 조합해야 할지 여전히 고민 중인 상황입니다."
인증은 미국 도로교통안전국(National Highway Traffic Safety Administration, NHTSA)과 미국 교통국(US Department of Transportation)과 같은 정부 기관이 진행합니다. 하지만 이런 기관도 이런 일을 효과적이고 안전하게 진행하려면 적합한 툴을 결정하는 데 있어 도움이 필요합니다. 그래서 CARLA 팀은 이런 기관과도 의견을 나누고 있습니다.
"CARLA는 관련 정의를 내리는 방법을 살펴보고 이해할 수 있도록 돕고 있습니다."라고 로스가 말합니다. "흥미롭지만 혼란스럽기도 합니다. 사람들이 이 툴을 사용해서 어떻게 스택의 유효성을 검사할 것인지에 대한 의문이 여전히 남아있죠. 지금까지 CARLA가 연구개발과정에 도움이 되어 기쁩니다. 실제 자동차로는 몇 달 또는 몇 년이 걸릴 일을 아주 빠르게 시도할 수 있는 기회를 주기 때문입니다. 빠르게 사용할 수 있는 시뮬레이터라는 점을 생각해보면 실제 자동차에 구현했을 때 생길 문제점들이 무엇인지 금세 이해할 수 있을 것입니다."
CARLA 자율 주행 챌린지
자율주행차 소프트웨어 스택의 공정성 있는 유효성 검사와 인증에 기여하기 위해 CARLA 팀은 CARLA 자율 주행 챌린지를 도입했습니다. 이 챌린지에서는 참가자의 자율 주행 에이전트가 교통법을 어기지 않고 미리 정해진 경로를 따라 목적지에 도달해야 합니다. 에이전트들은 예상치 못한 장애물 피하기, 도로 상황으로 잃은 조향 능력 되찾기, 적신호에 교차로 통과하기 등 NHTSA가 수집한 충돌 이전 교통 시나리오(pre-crash traffic scenario)를 주행 중에 만나게 됩니다.이 챌린지는 같은 경로, 교통 상황, 기상 상황에서 참가자를 테스트해보며 서로 다른 스택 사이의 공정한 비교가 가능합니다. 이는 현재 OEM과 스타트업이 지난 1년간 해당 자동차가 어떻게 주행했는지에 대한 여러 통계를 NHTSA에 제출할 수 있는 자율보고서와는 매우 다릅니다.
로스는 말합니다. "그러한 수치를 보고 비교하고, 전체적인 상황을 파악하려 해도 불가능합니다. 수치가 전혀 보정되지 않았기 때문이죠. 예를 들어 중소기업 하나가 약 1600km를 주행하면서 개입을 5번 했다고 신고했다고 합시다. 좋아요, 물론 가능한 일이죠. 그렇다면 그 1600km가 어디였을까요? 다른 차량도, 신호등도 없는 아주 이상적인 상황에서 한 구획을 돌기만 한 건 아니었을까요? 다른 회사가 약 320km를 주행하면서 45번 개입했다는 결과와 어떻게 비교해야 할까요? 그 320km가 더 어려운 경로였을 수도 있습니다. 훈련 상황이었을지도 모르죠."
CARLA 자율 주행 챌린지는 대성공이었으며, 최고의 기계학습 및 AI 컨퍼런스 중 하나인 CVPR에서 수상하기도 했습니다.
최신 출시: 더 현실적인 보행자
CARLA의 주요 가치 중 하나는 무료 애셋에 있습니다. 애셋에는 도시 레이아웃, 건물, 차량, 보행자 등이 포함되어 있죠. 버전을 0.8에서 0.9로 바꾸면서 플랫폼 전체를 완전히 재설계하면서 보행자가 잠시 사라지기도 했습니다. 7월에 공개된 최신 0.96 버전에서는 보행자가 다시 추가되고, 완전히 새로운 AI 레이어도 추가되었습니다. 또한 어린이 캐릭터가 생겼고, 기존 모델의 변수를 늘리고, 스켈레톤 계층구조의 모든 뼈대를 제어할 수 있는 새로운 인터페이스도 함께 추가되었습니다. 특히 로스가 기대한 건 마지막 부분입니다."아주 복잡한 연출을 할 수 있어요."라고 그가 말합니다. "인간과 기계의 상호작용 영역에 큰 도움이 되리라 생각합니다. 예를 들면 예측 분야를 개선할 수 있죠. 예측은 AV 스택의 가장 중요한 모듈 중 하나입니다. 5초 또는 10초 이후 보행자나 차량이 어떤 행동을 할지 알 수 있어야 합니다. 현재와 이전 2, 3, 5프레임을 이용해 보행자가 다음엔 어떤 행동을 할지 예측할 수 있어야 하는 것이죠. 보행자는 과연 길을 건널까요, 아니면 계속 보도에 있을까요? 그것을 알려면 고급 단서가 필요합니다. 보행자가 보디랭귀지를 사용해 아주 현실적으로 행동해야 합니다. 풀 스켈레탈 컨트롤 덕분에 바로 그런 일이 가능해진 것입니다."
CARLA팀이 더 많은 일을 이뤄낼 것이라는 사실은 분명합니다. 사람들이 사용하고 싶어 하고, 수정하고, 또 그 기반으로 빌드할 수 있는 최고의 시뮬레이터를 선사하기 위해 계속해서 노력하고 있습니다. 당연히 전부 무료입니다.
언리얼 엔진 4를 어떻게 활용할 수 있는지 알고 싶으신가요? 언제든지 문의해 주세요.