Booil Jung

CARLA 오픈소스 자율주행 시뮬레이터

자율주행 기술의 개발은 천문학적인 시간과 비용, 그리고 무엇보다도 안전에 대한 막대한 책임을 수반한다. 실제 차량을 개조하여 도로 주행 테스트를 수행하는 전통적인 방식은 그 자체로 수많은 한계에 직면한다. 예측 불가능한 교통 상황, 기상 변화, 그리고 잠재적인 사고 위험은 데이터 수집의 효율성을 저해하고 개발 주기를 지연시키는 주된 요인이다. 특히, 시스템의 안전성을 검증하기 위해 반드시 필요한 위험한 ‘엣지 케이스(Edge Case)’ 시나리오, 예를 들어 갑작스러운 보행자 출현이나 전방 차량의 급제동과 같은 상황을 실제 도로에서 의도적으로 재현하는 것은 거의 불가능에 가깝다.

이러한 물리적 테스트의 근본적인 한계를 극복하기 위한 대안으로 가상 환경 시뮬레이션이 부상하였다. 시뮬레이터는 비용 효율적이고 안전하며, 통제된 환경에서 수많은 시나리오를 무한히 반복 테스트할 수 있는 독보적인 장점을 제공한다. 이는 단순히 기존의 테스트를 보조하는 수단을 넘어, 자율주행 알고리즘, 특히 인공지능(AI) 모델의 개발 패러다임 자체를 바꾸는 핵심 동력으로 작용한다. 강화학습이나 모방학습과 같은 데이터 기반 AI 모델은 방대한 양의 주행 데이터를 필요로 하는데, 시뮬레이터는 이러한 대규모 데이터셋을 단기간에 자동으로 생성하는 강력한 도구로서의 역할을 수행한다.1

이러한 시대적 요구 속에서, CARLA(Car Learning to Act)는 자율주행 연구의 새로운 지평을 연 핵심적인 오픈소스 프로젝트로 등장하였다.

CARLA는 자율주행 시스템의 개발, 훈련, 그리고 검증을 총체적으로 지원하기 위한 목적으로 처음부터 설계된 오픈소스 시뮬레이터이다.3 Intel, Toyota, GM과 같은 세계적인 기업들의 공동 개발 참여는 프로젝트의 초기 비전과 기술적 깊이를 방증한다.1

CARLA의 가장 중요한 철학은 ‘연구의 민주화(Democratization of R&D)’에 있다.4 과거 고성능 시뮬레이션 환경은 일부 거대 기업이나 연구소의 전유물이었으며, 이는 기술 개발의 진입 장벽으로 작용했다. CARLA는 이러한 장벽을 허물기 위해 소스 코드는 물론, 도시 레이아웃, 건물, 차량, 보행자와 같은 고품질 디지털 에셋을 누구나 자유롭게 사용할 수 있도록 공개하였다. 이 개방성 철학 덕분에, 대규모 자본이나 물리적 인프라를 갖추지 못한 전 세계의 소규모 연구팀이나 대학에서도 최첨단 자율주행 연구에 동등하게 참여할 수 있는 기회가 열렸다. 이는 특정 플랫폼에 종속된 상용 시뮬레이터들과 CARLA를 구분 짓는 가장 근본적인 차별점이다.

이러한 배경은 CARLA의 등장이 단순한 도구의 출현을 넘어 자율주행 연구의 ‘방법론적 전환’을 촉발했음을 시사한다. 과거 연구가 고가의 실제 차량을 개조하고 제한된 도로 환경에서 데이터를 수집하는 하드웨어 중심의 접근법에 의존했다면 , CARLA는 사실적인 가상 환경과 센서 데이터를 무료로 제공함으로써 연구의 중심축을 물리적 세계에서 가상 세계로 이동시키는 촉매가 되었다. 연구자들은 이제 코드 몇 줄로 위험한 충돌 시나리오나 극한의 악천후 조건을 생성하고 2, 수만 개의 정제된 데이터를 단시간에 확보할 수 있게 되었다.1 결과적으로 CARLA는 아이디어의 검증 주기를 획기적으로 단축시키고, 데이터 기반 AI 모델 개발이라는 새로운 연구 패러다임을 가속하는 핵심 연구 플랫폼으로 확고히 자리매김하였다.

본 보고서는 오픈소스 자율주행 시뮬레이터 CARLA를 다각적이고 심층적으로 고찰하는 것을 목표로 한다. 이를 위해 먼저 CARLA의 근간을 이루는 서버-클라이언트 아키텍처와 언리얼 엔진의 역할을 분석한다. 이어서 카메라, LiDAR 등 핵심 기능과 기술적 제원을 상세히 살펴보고, 알고리즘 검증부터 데이터셋 생성에 이르는 구체적인 활용 사례를 연구한다. 또한, ROS 연동을 포함한 CARLA의 확장적 생태계를 조망하고, LGSVL, AirSim 등 주요 경쟁 시뮬레이터와의 비교를 통해 그 위상을 평가한다. 마지막으로, 물리 엔진의 한계와 Sim-to-Real 문제 등 기술적 한계점을 비판적으로 분석하고, 최신 개발 동향을 바탕으로 미래 발전 방향을 전망하며 결론을 맺는다.

CARLA의 아키텍처는 그 핵심에 서버-클라이언트 모델을 두고 있다. 이는 시뮬레이션의 연산 부하를 분리하고 시스템의 유연성과 확장성을 극대화하기 위한 설계적 선택이다.

이 분산 구조는 하나의 서버에 여러 클라이언트가 동시에 접속하여 각기 다른 액터를 제어하는 것을 가능하게 한다.5 예를 들어, 한 클라이언트는 자율주행 차량(Ego Vehicle)을 제어하고, 다른 클라이언트들은 주변 차량이나 보행자의 행동을 제어하는 복잡한 다중 에이전트(Multi-agent) 상호작용 시나리오를 손쉽게 구현할 수 있다. 이는 대규모 교통 환경 시뮬레이션을 위한 확장성의 근간이 된다. 클라이언트는 carla.Client('localhost', 2000)와 같은 간단한 코드를 통해 서버에 접속하며, 이 통신은 TCP/IP 프로토콜을 기반으로 이루어진다.6 고성능이 요구되는 작업을 위해 C++로 직접 클라이언트를 개발할 수도 있는데, 이는 Python API가 내부적으로 C++로 작성된 libCarla 라이브러리를 바인딩(binding)한 구조이기 때문이다.

CARLA가 높은 수준의 시각적 사실성을 달성할 수 있었던 배경에는 에픽게임즈의 언리얼 엔진이 있다. CARLA가 언리얼 엔진을 렌더링 및 물리 엔진으로 채택한 이유는 크게 세 가지로 요약할 수 있다. 첫째, 업계 최고 수준의 사실적인 그래픽 렌더링 능력. 둘째, 엔진을 무료로 사용할 수 있고 소스 코드에 직접 접근할 수 있는 개방적인 라이선스 정책. 셋째, 방대한 개발자 커뮤니티와 문서이다.7

초기 버전은 OpenGL 렌더링 백엔드를 사용했으나, 최신 버전에서는 더 높은 성능을 제공하는 Vulkan을 기본으로 지원한다.5 또한, 공식 로드맵에 따라 차세대 렌더링 기술이 집약된 언리얼 엔진 5로의 메이저 업데이트가 진행 중이어서 , 향후 그래픽 품질과 시뮬레이션 성능은 더욱 향상될 것으로 기대된다.

물리 연산은 언리얼 엔진에 내장된 PhysX 엔진을 기반으로 수행된다.5 이는 차량 간의 충돌, 중력, 마찰 등 기본적인 물리 현상을 모사하는 데 사용된다. 하지만 PhysX는 범용 물리 엔진으로서, 실제 차량의 복잡하고 정밀한 동역학을 완벽하게 시뮬레이션하는 데에는 명백한 한계를 가진다. 이 점은 CARLA의 주요 기술적 한계 중 하나로, VII절에서 더 상세히 논한다.

CARLA의 가장 강력한 특징 중 하나는 직관적이고 유연한 Python API를 제공한다는 점이다. 이 API는 사용자가 스크립트 언어를 통해 시뮬레이션의 거의 모든 측면을 정밀하게 제어할 수 있는 핵심 인터페이스 역할을 한다.

Python API를 통해 수행할 수 있는 주요 작업은 다음과 같다.

이러한 유연성 덕분에 pygame, numpy와 같은 파이썬 생태계의 풍부한 라이브러리들과 손쉽게 통합하여 사용자 인터페이스를 구축하거나 데이터를 분석할 수 있다. 더 나아가 TensorFlow, Keras, PyTorch와 같은 주요 머신러닝 프레임워크와 직접 연동하여, 시뮬레이션 환경 내에서 AI 모델을 실시간으로 훈련하고 평가하는 파이프라인을 구축하는 것이 가능하다.10

CARLA에서 차량의 움직임을 제어하는 기본 모델은 주로 자전거 모델(Bicycle Model)에 기반한 키네마틱 모델(kinematic model)이다.11 이 모델은 4개의 바퀴를 가진 복잡한 차량 시스템을 전륜과 후륜, 단 두 개의 바퀴로 구성된 시스템으로 단순화한다. 차량의 거동은 주로 앞바퀴의 조향각($\delta$)과 속도($v$)에 의해 결정되는 비선형(non-linear) 시스템으로 표현된다.

이러한 모델링 방식은 모델 예측 제어(MPC, Model Predictive Control)와 같은 고급 제어 알고리즘을 적용하기에 적합하다.11 MPC는 현재 상태를 기반으로 미래의 일정 시간 동안 차량의 거동을 예측하고, 동시에 조향각 제한이나 가속도 제한과 같은 물리적 제약 조건을 만족시키면서 목표 경로와의 오차를 최소화하는 최적의 제어 입력(조향각, 가속도)을 계산하는 기법이다.

사용자는 VehiclePhysicsControl API를 통해 각 바퀴의 최대 조향각(max_steer_angle)이나 타이어 마찰 계수 등 일부 물리 파라미터를 조정하여 차량의 거동을 어느 정도 변경할 수 있다.12 하지만 이는 실제 차량의 복잡한 타이어-노면 상호작용, 서스펜션의 움직임, 하중 이동에 따른 동특성 변화 등을 정밀하게 모사하기에는 역부족이다.

결론적으로 CARLA의 아키텍처는 ‘개방성’과 ‘실용성’ 사이의 정교한 타협의 산물이라 할 수 있다. 최고 수준의 그래픽 사실성을 위해 상용 게임 엔진인 언리얼 엔진을 채택하는 ‘실용적’ 선택을 했고, 동시에 모든 제어권을 사용자에게 개방하기 위해 유연한 서버-클라이언트 구조와 Python API라는 ‘개방적’ 인터페이스를 설계했다. 물리 엔진의 경우, 극도로 정밀하지만 무거운 전문 동역학 시뮬레이터 대신, 언리얼 엔진의 내장 PhysX와 키네마틱 모델을 사용하는 ‘실용적’ 절충안을 택했다. 만약 극사실적인 물리 엔진을 기본으로 채택했다면, 시뮬레이션 속도가 저하되어 대규모 AI 학습 데이터 생성이라는 핵심 목표 달성이 어려웠을 것이다. 이처럼 CARLA의 아키텍처는 학술 연구와 AI 개발이라는 명확한 목표를 달성하기 위해, 그래픽 사실성은 극대화하고 제어 유연성은 완전히 개방하며, 물리 시뮬레이션은 성능을 위해 일정 수준 타협한 결과물이다. 이 절묘한 균형점이 바로 CARLA를 성공으로 이끈 핵심 요인이라 분석된다.

CARLA는 실제 자율주행 차량에 탑재되는 다양한 센서들을 정교하게 모델링하여 제공한다. 이는 인지 알고리즘의 개발과 검증에 필수적인 요소다.

이처럼 CARLA는 단순한 테스트베드를 넘어 ‘AI 교사’로서의 역할을 수행한다. 일반적인 시뮬레이터가 현실 세계의 센서 출력을 ‘모방’하는 데 그친다면, CARLA는 현실에서는 얻을 수 없는 완벽한 정보, 즉 ‘Ground-Truth’ 데이터를 제공한다. 예를 들어, 모든 객체의 3D 바운딩 박스 정보를 오차 없이 제공하며 , 이는 객체 탐지 모델을 훈련시키는 데 이상적인 정답지로 활용된다. 이 능력은 AI 모델이 불완전하고 노이즈가 많은 실제 데이터로 학습할 때보다 훨씬 효율적으로 성능을 향상시킬 수 있는 환경을 제공하며, CARLA가 자율주행 AI 연구에서 대체 불가능한 위치를 차지하게 만든 결정적 요인이다.

정적인 도로 환경뿐만 아니라, 그 안에서 상호작용하는 동적인 액터들을 제어하는 기능은 시뮬레이션의 현실성을 좌우한다.

CARLA의 시뮬레이션이 펼쳐지는 공간인 ‘맵’ 또는 ‘월드’는 3D 모델과 도로망 정보의 결합으로 이루어진다.

다음 표는 CARLA가 제공하는 주요 센서 모델의 명세와 그 강점 및 한계를 요약한 것이다. 이는 연구자가 시뮬레이션 데이터를 활용할 때 그 내재적 한계를 명확히 인지하고, 알고리즘 설계 시 이를 보완하는 방향을 고려하는 데 필수적인 정보를 제공한다.

센서 유형 블루프린트 ID 주요 설정 파라미터 출력 데이터 형식 노이즈 모델 강점 한계점
RGB 카메라 sensor.camera.rgb image_size_x, fov, lens_distortion carla.Image 지원 (제한적) 높은 사실성, 다양한 카메라 효과 실제와 같은 광학적 왜곡, 노출 변화 완벽 재현 불가
LiDAR sensor.lidar.ray_cast channels, range, points_per_second carla.LidarMeasurement 지원 (Drop-off 등) 포인트 클라우드 강도(intensity) 값 제공 악천후(비, 안개)에 의한 산란 효과 미흡, 빔 발산 모델 단순
RADAR sensor.other.radar horizontal_fov, range, points_per_second carla.RadarMeasurement 지원 속도 정보 직접 측정 클러터(Clutter), 다중 반사 등 복잡한 전파 현상 모델링 미흡
IMU sensor.other.imu noise_accel_stddev_x, noise_gyro_bias_y carla.IMUMeasurement 지원 (가우시안 노이즈) 가속도, 각속도, 방위각 제공 온도 변화에 따른 바이어스 드리프트 등 미지원
GNSS sensor.other.gnss noise_lat_stddev, noise_lon_stddev carla.GnssMeasurement 지원 (가우시안 노이즈) 전역 위치 정보 제공 다중 경로 오차(Multipath error), 위성 가시성 변화 미반영

CARLA의 풍부한 기능과 유연한 API는 자율주행 연구의 다양한 단계에서 폭넓게 활용된다. 단순한 알고리즘 검증을 넘어, AI 모델 학습을 위한 데이터 생성, 특정 위험 상황에 대한 스트레스 테스트 등 그 활용 범위는 매우 넓다.

End-to-End 자율주행은 센서 입력(예: 카메라 영상)으로부터 조향, 가속/감속과 같은 차량 제어 출력을 직접 학습하는 방식으로, CARLA는 이러한 모델의 연구 및 개발에 이상적인 환경을 제공한다.10

대표적인 학습 방식은 모방학습(Imitation Learning)이다. 연구자는 CARLA의 Autopilot 모드를 이용해 전문가(expert)의 주행 데이터를 손쉽게 수집할 수 있다.1 이 과정에서 시뮬레이터는 주행 영상, 차량의 위치 및 속도, 그리고 해당 시점의 운전 조작량(조향각, 스로틀 값)을 한 쌍으로 묶어 기록한다. 이렇게 수집된 수만 개의 데이터 쌍은 AI 모델, 특히 심층 신경망(Deep Neural Network)을 훈련시키는 데 사용된다.1

하지만 이러한 방식은 명백한 한계를 가진다. 학습 데이터에 포함되지 않은 예외적인 상황, 예를 들어 갑자기 도로로 뛰어드는 보행자나 정차된 장애물을 마주했을 때, 모델이 올바르게 대처하지 못하고 충돌하는 문제가 발생할 수 있다.18 이를 해결하기 위해, 카메라 영상뿐만 아니라 LiDAR나 RADAR와 같은 추가 센서 정보를 입력으로 함께 사용하여 모델의 상황 인지 능력을 높이거나, 정상 주행 데이터의 분포에서 벗어나는 이상 상황을 탐지(Anomaly Detection)하는 별도의 모듈을 결합하는 등의 연구가 활발히 진행되고 있다.18

현실의 자율주행 시스템은 대부분 인지(Perception), 판단(Planning), 제어(Control)의 여러 모듈이 결합된 복잡한 아키텍처를 가진다. CARLA는 이러한 모듈형 시스템의 각 구성 요소를 개별적으로 테스트하고, 전체 시스템을 통합하여 종합적으로 검증하는 강력한 테스트베드 역할을 수행한다.

그 대표적인 예가 CARLA Leaderboard 챌린지이다. 이는 전 세계 연구팀들이 자신들의 자율주행 스택을 CARLA가 제공하는 표준 시나리오 환경에서 경쟁적으로 평가받는 플랫폼이다. 2023년 Leaderboard 2.0 챌린지에서 우승한 Kyber-E2E 팀의 사례는 CARLA의 활용 가능성을 잘 보여준다.20

이 사례는 CARLA가 단순히 개별 알고리즘의 성능을 측정하는 것을 넘어, 최신 AI 기술들이 총망라된 복잡한 자율주행 스택 전체의 실효성을 종합적으로 평가하고 검증하는 표준 플랫폼으로서 기능하고 있음을 명확히 보여준다.

자율주행 시스템의 안전성을 확보하기 위해서는 맑은 날의 이상적인 조건뿐만 아니라, 폭우, 안개, 야간 등 인지 시스템의 성능이 저하될 수 있는 악천후(adverse weather) 환경에서의 강건성을 검증해야 한다. 그러나 실제 세계에서 이러한 특정 조건의 데이터를 일관성 있게, 그리고 대량으로 수집하는 것은 매우 어렵고 위험하다.2

CARLA는 이러한 문제를 해결하는 데 매우 효과적인 솔루션을 제공한다. CARAIN 데이터셋 생성 사례는 그 대표적인 예다.21

  1. 원본 데이터 획득: 먼저 CARLA 시뮬레이터 내에서 맑은 날씨의 고속도로 주행 장면 이미지를 대량으로 획득한다.
  2. 악천후 효과 합성: 획득한 원본 이미지에 강우량($mm/h$)에 따라 계산된 빗줄기 효과를 디지털 방식으로 합성하여, 다양한 강도의 폭우 상황 이미지를 생성한다.
  3. 데이터 라벨링: 생성된 합성 이미지에 대해 차선 정보를 수동 또는 반자동으로 주석(Annotation) 처리하여, AI 모델 학습을 위한 정답 데이터를 만든다.
  4. 성능 평가: 이렇게 구축된 ‘가상 악천후 데이터셋’을 사용하여, 기존의 DNN 기반 차선 인식 알고리즘들의 성능이 강우량 증가에 따라 얼마나 급격히 저하되는지를 정량적으로 측정하고 분석한다.

이 연구는 시뮬레이터가 단순히 존재하는 시나리오를 테스트하는 것을 넘어, 현실에서 얻기 힘든 ‘가상의 데이터셋’을 창조하고, 이를 통해 특정 환경 요인이 시스템의 특정 모듈에 미치는 영향을 체계적으로 분석할 수 있음을 입증한 중요한 사례다.

자율주행 시스템의 안전성을 평가하기 위해서는 무작위적인 교통 흐름 속에서의 주행 능력뿐만 아니라, 사전에 정의된 특정 위험 시나리오에 대한 대응 능력을 검증하는 것이 필수적이다.

ScenarioRunner는 이를 위해 CARLA가 공식적으로 제공하는 시나리오 실행 엔진이다. 사용자는 Python 스크립트나 표준화된 파일 형식을 통해 ‘전방 차량이 50m 앞에서 급정거하는 시나리오’, ‘사각지대에서 보행자가 무단횡단하는 시나리오’ 등 구체적인 테스트 케이스를 기술하고, 이를 CARLA 환경에서 자동으로 실행 및 평가할 수 있다.

특히 ScenarioRunner는 ASAM의 표준 시나리오 기술 언어인 OpenSCENARIO를 지원한다. 이는 시나리오의 재사용성과 이식성을 크게 높여, RoadRunner와 같은 외부 도구에서 생성한 시나리오를 CARLA에서 실행하거나 22, CARLA에서 검증된 시나리오를 다른 시뮬레이터 환경에서도 활용할 수 있는 기반을 제공한다.

더 나아가, ISS-Scenario 프레임워크와 같이 ScenarioRunner를 기반으로 시스템의 가장 취약한 지점을 능동적으로 찾아내는 연구도 활발하다.23 이 프레임워크는 시나리오의 매개변수(예: 상대 차량의 속도, 출현 타이밍)를 유전 알고리즘(Genetic Algorithm)과 같은 최적화 기법을 통해 변화시키면서, 시스템이 충돌하거나 오작동하는 ‘실패 지점(failure case)’을 자동으로 탐색한다. 이는 수동적인 테스트 케이스 실행을 넘어, 시스템의 안전성을 보다 체계적이고 효율적으로 검증하는 진일보한 접근법이다.

이러한 활용 사례들은 CARLA가 ‘재현성(Reproducibility)’과 ‘확장성(Scalability)’이라는 과학적 연구의 핵심 가치를 자율주행 분야에 구현하고 있음을 보여준다. 전통적인 도로 테스트는 날씨, 주변 차량의 미세한 움직임 등 통제 불가능한 변수 때문에 동일한 조건을 완벽하게 재현하는 것이 불가능하다. 반면, CARLA는 Traffic Manager의 결정론적 모드 5와 ScenarioRunner를 통해 모든 조건을 완벽하게 통제하고 수천 번 반복 실행할 수 있는 ‘재현성’을 보장한다. 또한 클라우드 플랫폼과 연계하여 수천 개의 시뮬레이션을 병렬로 실행하는 ‘확장성’을 제공한다.24 이를 통해 CARLA는 자율주행 알고리즘 평가를 ‘일회성 주행’에서 ‘대규모 통계적 검증’으로 전환시켰으며, 이는 기술의 안전성을 객관적으로 입증하는 데 필수적인 패러다임의 변화라 할 수 있다.

CARLA의 진정한 힘은 단일 소프트웨어로서의 기능적 우수성을 넘어, 다양한 외부 도구 및 플랫폼과 유기적으로 결합하여 더 큰 가치를 창출하는 개방형 ‘생태계’에 있다. CARLA는 모든 것을 스스로 해결하려 하기보다, 다른 전문 분야의 강력한 도구들과 쉽게 연결될 수 있는 ‘인터페이스’를 제공하는 데 집중함으로써 자율주행 개발의 허브(Hub)로 자리매김했다.

ROS(Robot Operating System)는 로봇 공학 분야의 사실상 표준 플랫폼으로, 수많은 알고리즘, 드라이버, 개발 도구로 구성된 방대한 생태계를 자랑한다. CARLA는 carla-ros-bridge라는 공식 브릿지를 통해 이 거대한 로보틱스 세계와 완벽하게 통합된다.

carla-ros-bridge는 CARLA 시뮬레이터와 ROS 간의 양방향 통신을 중계한다.25

이러한 연동을 통해, 연구자들은 실제 로봇 하드웨어 없이도 ROS 기반으로 개발된 전체 자율주행 소프트웨어 스택을 CARLA의 사실적인 가상 환경에서 직접 테스트하고 디버깅할 수 있다. 특히, 대표적인 오픈소스 자율주행 스택인 Autoware와의 통합이 용이하여 , Autoware의 인지, 판단, 제어 모듈이 CARLA 환경에서 어떻게 작동하는지 검증하는 것이 가능하다. 또한, Rviz와 같은 ROS의 강력한 시각화 도구를 사용하여 시뮬레이션 중인 센서 데이터와 알고리즘의 중간 결과물을 실시간으로 모니터링할 수 있어 개발 및 디버깅 효율을 크게 향상시킨다.26

CARLA는 자신의 약점을 보완하고 기능을 확장하기 위해 다른 전문 시뮬레이션 도구와의 연동, 즉 Co-simulation(협력 시뮬레이션)을 적극적으로 지원한다.

자율주행 소프트웨어는 수백만 줄의 코드로 이루어진 복잡한 시스템으로, 새로운 기능을 추가하거나 버그를 수정할 때마다 기존 기능이 의도치 않게 손상되는 회귀(Regression) 문제가 발생할 위험이 크다. 이를 방지하기 위해, 코드 변경이 있을 때마다 수천 개의 테스트 시나리오를 자동으로 실행하여 시스템의 안전성과 성능을 지속적으로 검증하는 CI/V&V(Continuous Integration / Verification & Validation) 프로세스가 필수적이다.

Applied Intuition과 같은 상용 CI/V&V 플랫폼들은 CARLA를 핵심 시뮬레이션 엔진 중 하나로 활용하여 이러한 개발 프로세스를 자동화한다.24 개발자가 새로운 코드를 버전 관리 시스템에 제출하면, 클라우드 기반의 CI 파이프라인이 자동으로 트리거된다. 이 파이프라인은 CARLA 시뮬레이터 상에서 수백, 수천 개의 정의된 테스트 시나리오를 병렬로 실행하고, 그 결과를 분석하여 시스템이 사전에 정의된 안전 요구사항(예: 충돌 없음, 차선 이탈 없음)을 모두 만족하는지 자동으로 리포트한다. 이처럼 CARLA를 CI/V&V 파이프라인에 통합함으로써, 개발 주기를 획기적으로 단축하고 자율주행 소프트웨어의 신뢰성을 체계적으로 관리할 수 있다.

결론적으로, CARLA의 성공은 단일 소프트웨어의 우수성을 넘어 ‘개방형 생태계’ 전략의 승리라고 평가할 수 있다. CARLA는 그 자체로 완벽한 도구가 아니다. 물리 엔진은 부정확하고, 교통류 모델은 전문 도구보다 단순하며, 시나리오 관리 기능도 제한적이다. 하지만 CARLA 개발팀은 이 모든 것을 직접 개발하는 대신, carla-ros-bridge, Co-simulation 인터페이스 등 다른 전문 도구와 쉽게 ‘연결’될 수 있는 표준화된 인터페이스를 제공하는 데 집중했다. 그 결과, CARLA는 자율주행 개발이라는 거대한 퍼즐의 ‘중심 조각’이 되었다. 사용자들은 ROS 생태계의 방대한 알고리즘 라이브러리를 가져와 CARLA에 연결하고, CarSim의 정밀한 물리 엔진을 빌려오며, Applied Intuition의 관리 도구를 얹어 자신에게 필요한 최적의 개발 환경을 ‘조립’할 수 있게 되었다. 이러한 플랫폼이자 허브로서의 역할이야말로 CARLA의 지속 가능성과 확장성을 담보하는 가장 중요한 자산이다.

자율주행 시뮬레이터 시장에는 CARLA 외에도 여러 대안이 존재해왔다. 이들과의 비교 분석을 통해 CARLA의 기술적 위상과 경쟁력을 객관적으로 평가할 수 있다. 특히 LGSVL(현 SVL)과 AirSim은 CARLA와 함께 오픈소스 진영을 대표했던 주요 시뮬레이터다.

이러한 비교 분석은 현재 자율주행 시뮬레이터 시장이 단순한 ‘기술’ 경쟁을 넘어 ‘생태계의 지속성’ 경쟁으로 전환되었음을 명확히 보여준다. 과거에는 LGSVL, AirSim, CARLA가 각각 Autoware 통합, 드론 지원, 그래픽 품질 등 고유의 기술적 장점을 내세우며 경쟁했다. 그러나 LGSVL과 AirSim은 개발 주체 기업의 전략 변화로 인해 오픈소스 프로젝트로서의 성장 동력을 상실했다. 이는 아무리 뛰어난 기술이라도 지속적인 유지보수와 커뮤니티의 지원 없이는 결국 도태될 수 있음을 보여주는 사례다.

반면, CARLA는 특정 기업의 단기적 이익을 넘어 학계와 산업계가 함께 참여하는 강력하고 활발한 오픈소스 커뮤니티를 구축하는 데 성공했다. GitHub에서의 활발한 논의, 꾸준한 버전 릴리즈 5, Leaderboard와 같은 경쟁 플랫폼 운영 20 등이 이를 증명한다. 결과적으로, 연구자와 개발자가 시뮬레이터를 선택하는 기준은 더 이상 ‘현재의 기능’에만 머무르지 않는다. ‘미래의 발전 가능성’, ‘문제 발생 시 도움을 받을 수 있는 커뮤니티의 존재’, ‘지속적인 업데이트’와 같은 생태계의 건강성과 지속성이 훨씬 더 중요한 판단 기준이 되었다. 이러한 관점에서 CARLA는 경쟁자들을 압도하며 자율주행 연구 분야의 사실상 표준(De facto standard) 시뮬레이터로 자리 잡았다.

다음 표는 주요 오픈소스 자율주행 시뮬레이터의 핵심적인 특징을 비교 분석한 것이다.

구분 CARLA LGSVL (SVL) AirSim
개발 엔진 Unreal Engine Unity Unreal Engine
라이선스 MIT (코드), CC-BY (에셋) Apache 2.0 MIT
개발 현황 활발 (Active Development) 비활발/중단 (Inactive) 개발 중단 (Discontinued)
주요 특징 고품질 그래픽, 풍부한 센서, 동적 액터(보행자), Traffic Manager, 시나리오 실행기 Autoware 통합, 다중 로봇 시뮬레이션 차량 및 드론(UAV) 지원, 고충실도 물리 모델
생태계 매우 풍부 (ROS Bridge, Leaderboard, ScenarioRunner, 다수 연동 사례) Autoware 중심 제한적
적합 분야 AI 모델 학습/검증, 데이터셋 생성, 복잡한 도시 시나리오 테스트 Autoware 기반 시스템 통합 테스트 드론 및 항공 로보틱스 연구, 물리 기반 제어 알고리즘
장점 활발한 커뮤니티, 지속적 업데이트, 풍부한 문서, 높은 유연성 간편한 Autoware 연동 드론 지원, HIL/SIL 지원
단점 단순한 차량 동역학 모델, 높은 시스템 요구사양 개발 불확실성, 제한된 기능 확장 개발 중단, 도시 동적 요소 부족

CARLA는 자율주행 연구에 지대한 공헌을 했지만, 완벽한 도구는 아니며 몇 가지 명백한 한계점과 기술적 도전 과제를 안고 있다. 이러한 한계를 명확히 인지하는 것은 시뮬레이션 결과를 올바르게 해석하고, Sim-to-Real 문제를 해결하기 위한 첫걸음이다.

CARLA의 가장 빈번하게 지적되는 약점은 차량 동역학 모델의 정밀성이 부족하다는 점이다.27 앞서 언급했듯, CARLA의 기본 차량 모델은 언리얼 엔진의 범용 물리 엔진인 PhysX와 키네마틱 모델에 기반한다. 이 모델은 일반적인 주행 상황을 근사적으로 모사할 수는 있지만, 실제 차량의 복잡한 동적 특성(dynamic characteristics)을 정밀하게 반영하지 못한다.

예를 들어, 급격한 조향 시 발생하는 타이어의 측면 슬립(side slip), 노면 상태에 따른 접지력 변화, 제동 시 무게 중심 이동으로 인한 노즈 다이브(nose-dive) 현상, 서스펜션의 정교한 움직임 등은 CARLA의 저자유도(low-fidelity) 모델로는 정확한 시뮬레이션이 어렵다.27 이로 인해, CARLA 시뮬레이션 환경에서 완벽하게 안정적으로 작동하던 제어 알고리즘이 실제 차량에 탑재되었을 때에는 예상치 못한 진동이나 불안정한 거동을 보이는 심각한 ‘Sim-to-Real Gap’을 유발할 수 있다.

이 문제를 극복하기 위한 가장 현실적인 방안은 CarSim, VI-Grade, IPG CarMaker와 같은 고정밀 차량 동역학 전문 시뮬레이터와의 연동(Co-simulation)이다.27 이러한 하이브리드 접근법을 통해, CARLA는 자신의 강점인 사실적인 환경 및 센서 모델링에 집중하고, 차량의 정밀한 물리 거동 계산은 전문 도구에 위임함으로써 시뮬레이션의 전체적인 신뢰도를 높일 수 있다.

언리얼 엔진 기반의 고품질 그래픽 렌더링은 CARLA의 큰 장점이지만, 동시에 높은 컴퓨팅 자원을 요구하는 원인이 되기도 한다. CARLA를 원활하게 구동하기 위해서는 최소 6GB, 권장 8GB 이상의 VRAM을 갖춘 고성능 GPU가 필수적이다.

특히 대규모 맵에서 수십, 수백 대의 차량과 다수의 고해상도 센서(카메라, LiDAR 등)를 동시에 시뮬레이션할 경우, 초당 프레임 수(FPS)가 급격히 저하되는 성능 병목 현상이 발생할 수 있다. 이는 실시간 상호작용이 중요한 테스트나, 빠른 반복 학습이 필수적인 강화학습 환경에서 큰 제약이 된다.

CARLA는 이러한 성능 문제를 완화하기 위한 몇 가지 옵션을 제공한다.

모든 시뮬레이터는 현실 세계의 복잡성을 어느 정도 추상화하고 단순화할 수밖에 없으며, 이로 인해 발생하는 ‘현실과의 간극’은 CARLA 역시 피할 수 없는 근본적인 도전 과제다.

오픈소스 프로젝트로서 CARLA는 지속적으로 개선되고 있지만, 사용 과정에서 몇 가지 불편함이나 버그가 보고되기도 한다. 예를 들어, 특정 버전에서는 카메라 센서의 데이터 전송이 갑자기 중단되거나, IMU 센서의 중력 측정값에 오류가 발생하는 등의 버그가 존재했으며, 이는 후속 버전에서 수정되었다. 또한, Python API를 코드 편집기에서 사용할 때 자동 완성(auto-completion) 기능이 원활하게 작동하지 않아 개발 편의성이 떨어지는 문제가 지적되기도 한다.28 시뮬레이터를 비정상적으로 종료할 경우 프로세스가 완전히 정리되지 않아 시스템이 멈추는 현상도 빈번하게 발생한다.28 Autoware와 연동하여 신호등 인식 기능을 테스트할 때, 시뮬레이션을 재시작하면 신호등의 내부 ID가 변경되어 매번 수동으로 매핑을 다시 해주어야 하는 번거로움도 보고된 바 있다.29

이러한 CARLA의 한계점들은 그 자체의 결함이라기보다, 시뮬레이션 기술 본연의 내재적 딜레마인 ‘정밀도(Fidelity) vs. 확장성(Scalability)’의 문제를 드러낸다. CARLA는 물리 엔진의 정밀도를 일부 희생하는 대신, 수백 대의 차량을 동시에 시뮬레이션할 수 있는 확장성을 얻었다. 센서 모델의 완벽한 현실성을 추구하기보다, 실시간 성능을 유지하는 범위 내에서의 근사를 택했다. 이 딜레마는 CARLA만의 문제가 아니라 모든 시뮬레이터가 직면한 근본적인 트레이드오프다. 따라서 CARLA를 평가할 때는 ‘왜 모든 것이 현실과 똑같지 않은가?’라는 질문 대신, ‘주어진 목표(AI 학습, 대규모 시나리오 테스트)를 달성하기 위해 정밀도와 확장성 사이에서 어떤 현명한 선택을 했는가?’라는 관점으로 접근해야 한다. CARLA의 진정한 가치는 이 딜레마에 대한 성공적인 해답을 제시하고, 사용자가 Co-simulation 등을 통해 스스로 그 균형점을 조절할 수 있는 유연성을 제공했다는 데 있다.

CARLA는 지난 몇 년간 자율주행 기술 생태계에 지대한 영향을 미치며, 단순한 시뮬레이션 도구를 넘어 연구와 개발의 패러다임을 전환하는 핵심 플랫폼으로 자리 잡았다. 그 영향을 요약하면 다음과 같다.

첫째, 연구의 민주화를 실현했다. 고품질의 시뮬레이션 환경과 디지털 에셋을 오픈소스로 제공함으로써, 막대한 자본 투자 없이도 누구나 최첨단 자율주행 연구에 참여할 수 있는 길을 열었다.

둘째, 데이터 기반 AI 개발 방법론을 확산시켰다. 현실에서 수집하기 어려운 위험 시나리오나 악천후 조건의 데이터를 대량으로 생성할 수 있게 함으로써, 모방학습 및 강화학습과 같은 AI 모델의 발전을 가속화했다.

셋째, 알고리즘 성능 평가의 표준을 제시했다. CARLA Leaderboard와 같은 플랫폼을 통해, 전 세계 연구팀들이 공정하고 재현 가능한 환경에서 자신들의 자율주행 스택을 객관적으로 평가하고 경쟁할 수 있는 기준을 마련했다.

넷째, 강력한 개방형 생태계를 구축했다. ROS, Autoware, CarSim 등 외부 전문 도구와의 유연한 연동을 지원함으로써, CARLA를 중심으로 한 확장 가능한 개발 환경을 조성하고 기술 공유의 선순환 구조를 만들었다.

CARLA는 현재의 성공에 안주하지 않고, 활발한 커뮤니티와 개발팀을 중심으로 지속적인 발전을 거듭하고 있다. 공식 로드맵과 최근 릴리즈 노트를 통해 다음과 같은 미래 발전 방향을 엿볼 수 있다.

CARLA의 발전을 통해 본 자율주행 시뮬레이션 기술은 앞으로 다음과 같은 방향으로 진화할 것으로 전망된다.

CARLA는 자율주행 기술 개발의 패러다임을 바꾼 혁신적인 도구임이 분명하다. 개방성과 유연성을 무기로 연구의 진입 장벽을 낮추고, 전 세계 수많은 연구자들의 집단 지성을 통해 발전하는 성공적인 오픈소스 생태계의 모델을 제시했다.

그러나 우리는 시뮬레이션이 현실을 ‘대체’하는 마법의 도구가 아니라, 현실 세계의 테스트를 ‘보완’하고 ‘가속화’하는 도구임을 항상 명심해야 한다. CARLA의 강점인 데이터 생성 능력과 시나리오 테스트 유연성을 극대화하는 동시에, 그 내재적 한계인 Sim-to-Real 간극을 명확히 인지해야 한다. 시뮬레이션 결과를 비판적으로 분석하고, 도메인 적응 기법을 적용하며, 최종적으로는 실제 도로에서의 검증을 통해 그 간극을 메우려는 노력을 병행할 때, 우리는 CARLA라는 강력한 도구를 발판 삼아 더 안전하고 신뢰할 수 있는 자율주행 기술의 미래에 한 걸음 더 다가갈 수 있을 것이다.

  1. [논문 리뷰] ISS-Scenario: Scenario-based Testing in CARLA - Moonlight, accessed August 20, 2025, https://www.themoonlight.io/ko/review/iss-scenario-scenario-based-testing-in-carla
  2. 한국자동차공학회, accessed August 20, 2025, https://www.ksae.org/journal_list/search_index.php?mode=view&sid=53066&gubun=2&year=2023&month=11&issue=0&number=0&page=45&page_pre=&kwon_title=JUVDJUI2JTk0JUVBJUIzJTg0JUVEJTk1JTk5JUVDJTg4JUEwJUVCJThDJTgwJUVEJTlBJThD
  3. Maps - CARLA Simulator, accessed August 20, 2025, https://carla.readthedocs.io/en/latest/core_map/
  4. CARLA Simulator, accessed August 20, 2025, https://carla.org/
  5. 경로 추종 시뮬레이티드 운전 차량의 영상 기반 행동 학습을 위한 심층신경망 모델 - AURIC, accessed August 20, 2025, http://journal.auric.kr/kiee/XmlViewer/f396690
  6. (CARLA) 1. PythonAPI를 이용해서 CARLA 사용하기 - 자동차 설계하기.., accessed August 20, 2025, https://kimbrain.tistory.com/515
  7. Development of High-Fidelity Automotive LiDAR Sensor Model with Standardized Interfaces, accessed August 20, 2025, https://www.mdpi.com/1424-8220/22/19/7556
  8. A Comparative Analysis of CARLA and AirSim Simulators: Investigating Implementation Challenges in Autonomous Driving - Longdom Publishing, accessed August 20, 2025, https://www.longdom.org/open-access/a-comparative-analysis-of-carla-and-airsim-simulators-investigating-implementation-challenges-in-autonomous-driving-1101912.html
  9. CARLA 시뮬레이터 기반 합성 평가 데이터셋을 활용한 극한 폭우 상황에서의 심층 신경망을 - Korea Science, accessed August 20, 2025, https://koreascience.kr/article/JAKO202405136180753.pdf
  10. 다중 신경망 기반 Carla simulator 자율주행 성능개선, accessed August 20, 2025, https://lib.kau.ac.kr/mir.liberty.file/libertyfile/contents/0000000002/20220106035239503NZ9I6HQOIG.pdf
  11. carla 0.9.12 - 캔버슬릭의 블로그 It is all doable - 티스토리, accessed August 20, 2025, https://rinpoche.tistory.com/3
  12. A Survey on Simulators for Testing Self-Driving Cars - ResearchGate, accessed August 20, 2025, https://www.researchgate.net/publication/353695427_A_Survey_on_Simulators_for_Testing_Self-Driving_Cars
  13. CARLA+: An Evolution of the CARLA Simulator for Complex Environment Using a Probabilistic Graphical Model - MDPI, accessed August 20, 2025, https://www.mdpi.com/2504-446X/7/2/111
  14. CARLA [0.9.X] 실행 방법 - GitHub, accessed August 20, 2025, https://github.com/BenMSK/Carla_log
  15. Carla Scenario and Casezoo Evaluation — DI-drive 0.3.4 documentation - GitHub Pages, accessed August 20, 2025, https://opendilab.github.io/DI-drive/features/casezoo.html
  16. Carla 연동 자율주행 시나리오 편집기 개발 - 한국자동차공학회, accessed August 20, 2025, https://www.ksae.org/func/download_journal.php?path=L2hvbWUvdmlydHVhbC9rc2FlL2h0ZG9jcy91cGxvYWQvam91cm5hbC8yMDIwMDgyMjE2MDYxNC4yMzAuNS4yLnBkZg==&filename=MjBTS1NBRV9EMDIwLnBkZg==&bsid=47153
  17. [Lab Meeting] MPC 기반 차량 경로 추종 제어기Carla Simulator 구현 - YouTube, accessed August 20, 2025, https://www.youtube.com/watch?v=pNXzbjuuVS0
  18. 시뮬레이터와 차량 모델 통합 및 검증 CARLA … - 한국자동차공학회, accessed August 20, 2025, https://ksae.org/func/download_journal.php?path=L2hvbWUvdmlydHVhbC9rc2FlL2h0ZG9jcy91cGxvYWQvam91cm5hbC8yMDI1MDMxNDEzNDQxNy42MDkzLjkuMy5wZGY=&filename=MjRBS1NBRV9KMDE1LnBkZg==&bsid=55386
  19. 자율주행차 연구개발의 민주화를 위한 CARLA - CoPlay, accessed August 20, 2025, https://www.coplay.kr/en/community/posts/259
  20. [Carla Project] Localization-1: Kalman Filter based IMU GPS Fusion Localization - gyeongtiger 님의 블로그 - 티스토리, accessed August 20, 2025, https://gyeongtiger.tistory.com/24
  21. carla-simulator/carla: Open-source simulator for autonomous driving research. - GitHub, accessed August 20, 2025, https://github.com/carla-simulator/carla
    1. CARLA튜토리얼 - CVAD - 티스토리, accessed August 20, 2025, https://cvad.tistory.com/7
  22. 자율 주행 시스템을 위한 테스트 시나리오 개발 - MATLAB & Simulink - MathWorks, accessed August 20, 2025, https://www.mathworks.com/videos/design-and-simulate-scenarios-for-automated-driving-application-1655370916390.html
  23. There is also… AirSim from Microsoft - https://github.com/microsoft/airsim Gaz… Hacker News, accessed August 20, 2025, https://news.ycombinator.com/item?id=15721311
  24. C++ Carla client - velog, accessed August 20, 2025, https://velog.io/@nabi4622/libCarla-%EB%B9%8C%EB%93%9C%EA%B3%BC%EC%A0%95
  25. CARLA Version Releases 번역 - 이승민의 개발 블로그, accessed August 20, 2025, https://minsdevblog.tistory.com/12
  26. [ROS 시뮬레이터] Autonomous Car Simulator : Carla 환경 구성 및 설치 / 기본 예제 살펴보기 (trouble shooting failed), accessed August 20, 2025, https://saint-swithins-day.tistory.com/54
  27. [자율주행 시뮬레이터] CARLA 서버·클라이언트 생성하기 정리하여 …, accessed August 20, 2025, https://hchoi256.github.io/cv/carla-lt1/
  28. [현대제어강의]자율주행 시뮬레이터 Carla Simulator 소개 - YouTube, accessed August 20, 2025, https://www.youtube.com/watch?v=z_oulQggw68