자율주행과 로보틱스 시스템은 단일 기술이 아닌 수십 가지 기술의 융합체다. 센서로부터 원시 데이터를 받아 환경을 인식하고, 경로를 계획하고, 차량을 제어하는 전체 파이프라인에는 C++, GPU 프로그래밍, 딥러닝, 센서 퓨전, 시뮬레이션, 클라우드 인프라가 모두 관여한다.
이 포스트는 자율주행/로보틱스 엔지니어가 알아야 할 13개 핵심 기술 영역을 실전 관점에서 정리한다.
┌────────────────────────────────────────────────────────────────┐
│ 자율주행 기술 스택 전체 구조 │
│ │
│ ┌──────────┐ ┌───────────┐ ┌───────────┐ ┌──────────────┐ │
│ │ 센서 계층 │ │ 인식 계층 │ │ 판단 계층 │ │ 제어 계층 │ │
│ │ GPS/IMU │→│ CV/DL │→│ Planning │→│ Control │ │
│ │ Camera │ │ 센서 퓨전 │ │ Prediction│ │ CAN/Ethernet │ │
│ │ LiDAR │ │ VLM/VLA │ │ │ │ │ │
│ └──────────┘ └───────────┘ └───────────┘ └──────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 인프라 계층: C++ | ROS2 | CUDA | TensorRT | Cloud/MLOps │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 검증 계층: SIL/HIL | Simulation(CARLA/Isaac) | VR/AR │ │
│ └──────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
로보틱스는 결정론적 실행, 제로 오버헤드 추상화, 하드웨어 직접 접근을 요구한다. Modern C++는 이 세 가지를 모두 제공하면서도 코드 안전성과 표현력을 대폭 향상시킨다. ROS2 노드부터 CUDA 커널, 실시간 제어 루프까지 모든 성능 핵심 코드는 C++로 작성된다.
| 기능 | 로보틱스 활용 |
|---|
std::optional / std::variant | 센서 상태 표현 ("값 있음/없음") |
| Structured bindings | auto [x, y, z] = getPosition(); |
if constexpr | 센서 추상화 레이어의 컴파일 타임 분기 |
std::filesystem | 로그 관리, 맵 파일 로딩 |
Parallel STL (std::execution::par) | 포인트 클라우드 병렬 처리 |
template<typename T>
concept Sensor = requires(T s) {
{ s.read() } -> std::convertible_to<SensorData>;
{ s.calibrate() } -> std::same_as<bool>;
};
auto obstacles = pointCloud
| views::filter(isAboveGround)
| views::transform(toWorldFrame)
| views::take(maxObstacles);
- Concepts: 템플릿 파라미터 제약 → 컴파일 타임 타입 안전성
- Ranges: 조합 가능한 lazy 데이터 변환
- Coroutines: 임베디드 플랫폼의 비동기 I/O
std::jthread: 협력적 취소가 가능한 스레드
std::expected<T, E>: 예외 없는 에러 처리 (실시간 코드에서 예외는 금지)std::mdspan: 이미지/텐서 데이터의 다차원 배열 뷰 (복사 없이)std::print: 타입 안전한 포맷 출력
✗ Hot path에서 동적 메모리 할당 → ✓ std::pmr 할당자 또는 사전 할당 풀
✗ 실시간 제어 루프에서 예외 → ✓ std::expected 또는 에러 코드
✗ 뮤텍스 기반 통신 → ✓ std::atomic, lock-free 자료구조
✗ 기본 스케줄링 → ✓ SCHED_FIFO / SCHED_RR (POSIX)
ROS2는 로봇 애플리케이션 구축을 위한 오픈소스 미들웨어다. ROS1을 완전히 재작성하여 실시간, 다중 로봇, 프로덕션급 배포를 지원한다. 최신 LTS 릴리스는 ROS2 Jazzy Jalisco (2024.05)이다.
| 항목 | ROS1 | ROS2 |
|---|
| 디스커버리 | 중앙집중형 (roscore) | 분산형 (DDS 디스커버리) |
| 미들웨어 | 커스텀 TCPROS/UDPROS | DDS/RTPS 표준 |
| 실시간 | 미지원 | DDS QoS로 1급 지원 |
| 보안 | 없음 | DDS-SROS2 (인증, 암호화, ACL) |
| 다중 로봇 | 복잡한 네임스페이스 해킹 | 네이티브 다중 도메인 |
| 라이프사이클 | 없음 | Managed Node (configure, activate, deactivate) |
| OS 지원 | Linux만 (공식) | Linux, macOS, Windows, RTOS |
| 빌드 시스템 | catkin | colcon + ament |
ROS2는 Data Distribution Service (DDS) 표준을 통해 통신한다.
| DDS 구현체 | 특징 |
|---|
| Eclipse Cyclone DDS | 경량, 고성능 (Jazzy 기본값) |
| eProsima Fast DDS | 기능 풍부, 널리 사용 |
| RTI Connext DDS | 엔터프라이즈급, 안전 인증 |
핵심 QoS 프로파일: Reliability(Best-Effort vs Reliable), Durability(Volatile vs Transient-Local), History Depth, Deadline, Liveliness
| 개념 | 설명 | 예시 |
|---|
| Node | 모듈식 프로세스 | 인식 노드, 계획 노드, 제어 노드 |
| Topic | Pub/Sub 채널 | 센서 데이터 스트림 |
| Service | 동기 Request/Reply | "캘리브레이션 트리거" |
| Action | 비동기 장기 태스크 + 피드백 | "웨이포인트로 이동" |
| Executor | 콜백 실행 정책 | SingleThreaded, MultiThreaded |
| Component Node | 동적 로드 가능한 공유 라이브러리 | Zero-copy 인트라프로세스 통신 |
| Lifecycle Node | 결정론적 시작/종료 상태 머신 | configure → activate → deactivate |
2024-2026년의 지배적 패러다임은 다중 카메라 뷰를 통합 BEV 특징 공간으로 투영하는 것이다.
Front Camera ──┐
Left Camera ──┤
Right Camera ──┼──→ [BEV Feature Space] ──→ 3D Detection
Rear Camera ──┤ Lane Detection
Side Cameras ──┘ Occupancy Prediction
| 모델 | 방법 | 성능 (nuScenes NDS) |
|---|
| BEVFormer | Deformable Attention + Spatiotemporal Transformer | 56.9% |
| BEVDet/BEVDepth | 명시적 깊이 예측으로 2D→3D 리프팅 | - |
| LSS | 픽셀별 깊이 분포 예측 | - |
| 단계 | 기술 | 대표 모델 |
|---|
| 2D 객체 검출 | 실시간 검출 | YOLOv8, YOLOv9, RT-DETR |
| 3D 객체 검출 | 카메라 기반 3D | DETR3D, PETR, StreamPETR |
| 차선 검출 | 파라메트릭/앵커 기반 | CLRNet, LaneATT, TopoNet |
| 깊이 추정 | 단안/다시점 | MiDaS, Depth Anything V2 |
| Occupancy 예측 | 3D 복셀 그리드 | SurroundOcc, Occ3D |
| 신호/표지 인식 | 교통 인프라 분류 | 전용 분류기 |
인식 진화 경로:
CNN (2011-2016) → RNN+GAN (2016-2018) → BEV (2018-2020)
→ Transformer+BEV (2020-현재) → Occupancy (2022-현재) → End-to-End VLA (2024-현재)
- UniAD (CVPR 2023 Best Paper): 인식+예측+계획을 하나의 네트워크에서 수행
- VAD: 벡터화된 장면 표현 기반 End-to-End 주행
- DriveTransformer (ICLR 2025): 효율적 병렬 End-to-End 아키텍처
Vision-Language-Action (VLA) 모델은 시각 입력(카메라 이미지)과 언어 명령을 받아 로봇 행동을 직접 출력하는 Foundation Model이다. 인터넷 스케일의 Vision-Language 사전학습과 로봇 제어를 연결하는 가교 역할을 한다.
| 모델 | 조직 | 시기 | 핵심 특징 |
|---|
| PaLM-E | Google | 2023 | 562B 멀티모달 모델, 시각 토큰을 LLM에 임베딩 |
| RT-2 | DeepMind | 2023 | 최초의 VLA, 이산화된 행동 토큰 출력, Chain-of-Thought 추론 |
| Octo | UC Berkeley | 2024 | 오픈소스 범용 정책, Open X-Embodiment 학습, Diffusion 헤드 |
| OpenVLA | Stanford | 2024.06 | 7B 파라미터, Llama 2 + DINOv2 + SigLIP, LoRA Fine-tuning 가능 |
| pi0 | Physical Intelligence | 2024 말 | ~3.3B, Flow Matching으로 연속적 행동 출력 |
| Helix | Figure AI | 2025.02 | 최초 전신 휴머노이드 VLA (팔, 손, 몸통, 머리, 손가락) |
| GR00T N1 | NVIDIA | 2025.03 | 휴머노이드 Foundation Model, Isaac Sim 통합 |
행동 출력 방식 비교:
RT-2 방식 (Action Tokenization):
"move arm" → LLM → [토큰256] [토큰128] [토큰064] → 이산 행동
pi0 방식 (Flow Matching):
"move arm" → VLM → Flow Expert → 연속적 벡터 필드 → 부드러운 행동
- Action Tokenization: 연속 행동을 어휘 토큰으로 이산화 (RT-2)
- Flow Matching: 학습된 벡터 필드로 연속 행동 생성 (pi0)
- Cross-Embodiment Transfer: 다중 로봇 타입으로 학습 → 일반화
- Open X-Embodiment: 21개+ 기관, 1M+ 에피소드 협력 데이터셋
자율주행 차량은 다중 카메라 스트림, LiDAR 포인트 클라우드, 레이더 신호를 동시 처리하면서 여러 신경망을 100ms 이내에 실행해야 한다. CPU만으로는 불가능하다.
┌─────────────────────────────────────────────┐
│ CUDA 메모리 계층 │
│ │
│ 레지스터 (스레드당) │
│ ↓ │
│ 공유 메모리 (블록당, ~48-164KB) │
│ ↓ │
│ L2 캐시 │
│ ↓ │
│ 글로벌 메모리 (VRAM) │
│ │
│ 스레드 → 워프(32개) → 블록(최대1024) → 그리드 │
└─────────────────────────────────────────────┘
| 개념 | 설명 |
|---|
| Kernel | GPU에서 수천 스레드로 병렬 실행되는 함수 |
| Warp | 32개 스레드가 SIMT로 동기 실행 |
| Stream | 커널 동시 실행 및 연산/메모리 전송 오버랩 |
| Coalesced Access | 인접 스레드 → 인접 메모리 접근 → 최대 대역폭 |
| Shared Memory | 블록 내 데이터 재사용을 위한 사용자 관리 스크래치패드 |
| Pinned Memory | DMA를 통한 비동기 CPU-GPU 전송 |
| 응용 | 구체적 작업 |
|---|
| 포인트 클라우드 처리 | 복셀화, 지면 제거, 클러스터링 |
| 이미지 전처리 | 왜곡 보정, 리사이즈, 색공간 변환, 정규화 |
| 신경망 추론 | 컨볼루션, 어텐션, 정규화 커널 (cuDNN, cuBLAS) |
| 후처리 | NMS, BEV 그리드 생성 |
| 센서 동기화 | 다중 센서 스트림 타임스탬프 정렬 |
| 플랫폼 | 성능 | 용도 |
|---|
| Orin SoC | 254 TOPS INT8 | 현재 L2+ ~ L4 |
| Thor (차세대) | 2,000 TOPS | L4 중앙 컴퓨팅 |
cuDNN(딥러닝), cuBLAS(선형대수), Thrust(병렬 STL), CUB(블록/디바이스 프리미티브), NCCL(다중 GPU 통신), cuPCL(포인트 클라우드)
NVIDIA의 고성능 딥러닝 추론 SDK다. PyTorch/TensorFlow/ONNX 모델을 그래프 최적화, 커널 자동 튜닝, 정밀도 캘리브레이션, 메모리 관리를 통해 최적화한다. 일반적으로 2~10배 속도 향상을 달성한다.
최적화 전: Conv → BatchNorm → ReLU (3개 커널 실행)
최적화 후: Conv+BN+ReLU (1개 커널 실행)
효과: 커널 실행 오버헤드 최대 80% 감소
메모리 대역폭 최대 50% 감소
처리량 ~30% 향상
| 변환 | 처리량 향상 | 정확도 손실 | 캘리브레이션 필요 |
|---|
| FP32 → FP16 | 2배 | 거의 없음 | 불필요 |
| FP32 → INT8 | 4배 | 1% 미만 (적절한 캘리브레이션 시) | 필요 (500-1000 샘플) |
| FP32 → FP8 | 최적 (Hopper/Blackwell) | 최소 | 필요 |
PTQ (Post-Training Quantization): 재학습 불필요, 캘리브레이션 데이터만으로 양자화 QAT (Quantization-Aware Training): 학습 중 양자화 시뮬레이션 → 더 높은 정확도
PyTorch Model
→ ONNX Export (torch.onnx.export)
→ TensorRT Builder (trtexec 또는 Python API)
→ 그래프 최적화 + 레이어 퓨전
→ 정밀도 캘리브레이션 (INT8/FP8)
→ 커널 자동 튜닝
→ 직렬화된 엔진 (.engine 파일)
→ TensorRT Runtime (추론)
| 도구 | 용도 |
|---|
| trtexec | CLI 빌드 및 벤치마킹 |
| TensorRT Python/C++ API | 프로그래밍 제어 |
| Torch-TensorRT | PyTorch 네이티브 통합 |
| ONNX-TensorRT | ONNX 모델 직접 최적화 |
| Triton Inference Server | TensorRT 백엔드 모델 서빙 |
BEVFormer 모델은 FP32에서 50+ TFLOPS가 필요하다 — 차량 내 SoC에서는 불가능하다. 모델 최적화로 4~16배 감소시키면서 원래 정확도의 95% 이상을 유지할 수 있다.
가중치와 활성화의 수치 정밀도를 낮추는 기법.
| 방법 | 재학습 | 정확도 | 적합한 경우 |
|---|
| PTQ | 불필요 (캘리브레이션만) | 약간 낮음 | 빠른 배포, 양자화에 강건한 모델 |
| QAT | 필요 (Fake Quantization) | PTQ보다 높음 | 프로덕션 모델, 정확도 중요 |
정밀도 수준:
| 정밀도 | 압축률 | 정확도 손실 |
|---|
| FP16 | 2배 | 거의 없음 |
| INT8 | 4배 | 1% 미만 |
| INT4 (AWQ, GPTQ) | 8배 | 소량 |
| FP8 (H100/H200) | 최적 | 최소 |
불필요한 가중치/뉴런/채널을 제거하는 기법.
| 유형 | 방법 | 장점 | 단점 |
|---|
| 비구조적 | 개별 가중치 제로화 | 90%+ 희소성 가능 | 전용 하드웨어 필요 (2:4 sparsity) |
| 구조적 | 전체 채널/헤드/레이어 제거 | FLOPs 직접 감소, 범용 하드웨어 | 압축률이 비구조적보다 낮음 |
큰 "교사" 모델의 지식을 작은 "학생" 모델로 전이한다.
- Logit 증류: 학생이 교사의 출력 확률 분포를 모방
- Feature 증류: 학생이 교사의 중간 표현을 모방
- QAD: 양자화 에러를 처리하면서 교사를 모방
Large Teacher (FP32)
→ Knowledge Distillation → Smaller Student
→ Structured Pruning → 채널/헤드 제거
→ QAT Fine-tuning → INT8/FP8
→ TensorRT Export → 퓨전·최적화 엔진
| 센서 | 강점 | 약점 |
|---|
| Camera | 풍부한 의미 정보, 저비용 | 직접 깊이 측정 불가, 조명 민감 |
| LiDAR | 정밀 3D 포인트 클라우드 | 고비용, 원거리 희소 |
| Radar | 전천후 작동 | 낮은 각도 분해능 |
| GPS | 글로벌 위치 | 미터급 오차, 터널/도심 취약 |
| IMU | 고빈도 모션 데이터 | 시간에 따른 드리프트 |
퓨전은 각 센서의 약점을 상호 보완한다.
| 레벨 | 방법 | 예시 |
|---|
| Early (데이터) | 원시 데이터 결합 후 특징 추출 | LiDAR 포인트에 카메라 RGB 페인팅 |
| Mid (특징) | 각 센서의 NN 특징을 공유 공간에서 결합 | BEVFusion, TransFusion |
| Late (결정) | 독립 검출 후 규칙/학습으로 결합 | 앙상블 투표 |
2025년 지배적 트렌드: Unified BEV + Token-Level Cross-Modal Attention
Predict (예측): x̂ₖ|ₖ₋₁ = F·x̂ₖ₋₁ + B·uₖ
Pₖ|ₖ₋₁ = F·Pₖ₋₁·Fᵀ + Q
Update (보정): Kₖ = Pₖ|ₖ₋₁·Hᵀ·(H·Pₖ|ₖ₋₁·Hᵀ + R)⁻¹
x̂ₖ = x̂ₖ|ₖ₋₁ + Kₖ·(zₖ - H·x̂ₖ|ₖ₋₁)
| 필터 | 특징 | 적합한 경우 |
|---|
| KF | 선형 시스템, 가우시안 노이즈 | 단순 GPS+Odometry |
| EKF | 야코비안으로 비선형 선형화 | GPS+IMU 퓨전 표준 |
| UKF | 시그마 포인트 (야코비안 불필요) | 고도로 비선형 시스템 |
| Particle Filter | 비모수적, 다중 모드 분포 | 도심 GPS 모호성 |
상태 벡터 (EKF 일반적): [x, y, z, roll, pitch, yaw, vx, vy, vz, ax, ay, az]
| 유형 | 내용 | 도구 |
|---|
| Extrinsic | 센서 간 회전+이동 관계 | Kalibr (ETH Zurich), 체커보드 기반 |
| Intrinsic | 센서 내부 파라미터 (초점거리, 왜곡계수) | OpenCV calibrateCamera |
| Temporal | 센서 간 시간 오프셋 | PTP, GPS PPS, 신호 상관 |
물리적 도로 테스트로 안전성을 통계적으로 증명하려면 110억 마일 주행이 필요하다 (Waymo 추정). SIL/HIL 시뮬레이션은 하루에 수백만 마일을 시뮬레이션할 수 있다.
┌──────────────────────────────────────────────────┐
│ SIL 환경 │
│ │
│ [인식 알고리즘] ←→ [센서 시뮬레이션] │
│ [계획 알고리즘] ←→ [시나리오 엔진] │
│ [제어 알고리즘] ←→ [차량 역학 모델] │
│ │
│ 실행 환경: Host PC (x86) │
│ 물리 하드웨어: 없음 │
│ 반복 속도: 초~분 │
│ CI/CD 통합: 가능 (클라우드 병렬화) │
└──────────────────────────────────────────────────┘
장점: 하드웨어 비용 없음, 완전 재현 가능, CI/CD 통합, 클러스터 병렬화
┌──────────────────────────────────────────────────┐
│ HIL 환경 │
│ │
│ [실제 ECU (DUT)] ←→ [HIL 시뮬레이터] │
│ ├ 차량 역학 모델 │
│ ├ 센서 신호 주입 (HDMI/ETH) │
│ ├ 버스 시뮬레이션 (CAN/ETH) │
│ └ 고장 주입 │
│ │
│ 실행 환경: 실제 타겟 하드웨어 (Orin, EyeQ 등) │
│ 실시간: 하드웨어 클록 레이트 │
│ ISO 26262: 기능 안전 인증에 필수 │
└──────────────────────────────────────────────────┘
MIL (Model-in-the-Loop) — MATLAB/Simulink 프로토타이핑
→ SIL — Host PC + 시뮬레이션 환경
→ PIL (Processor-in-the-Loop) — 타겟 프로세서 컴파일, Host 실행
→ HIL — 타겟 ECU + 시뮬레이션 환경
→ VIL (Vehicle-in-the-Loop) — 실차 + 시나리오 주입
→ Road Testing — 실차 + 실환경
| 도구 | 용도 |
|---|
| dSPACE SCALEXIO | HIL 시뮬레이션 |
| NI PXI | PXI 기반 HIL |
| Vector CANoe | 버스 시뮬레이션 |
| Applied Intuition HIL Sim | ADAS/AD HIL 플랫폼 |
| IPG CarMaker | SIL/HIL 차량 역학 |
| 특성 | CARLA | Isaac Sim | LGSVL | CarSim | Simulink |
|---|
| 오픈소스 | O | O | O* | X | X |
| 엔진 | Unreal | Omniverse | Unity | 독자 | 독자 |
| 센서 시뮬 | 높음 | 매우 높음 | 높음 | 낮음 | 중간 |
| 차량 역학 | 중간 | 중간 | 중간 | 매우 높음 | 높음 |
| ROS2 지원 | O | O | O | 브릿지 | 툴박스 |
| 합성 데이터 | O | 최고 | O | X | 제한적 |
| ML 학습 | API | Isaac Lab (RL) | API | X | RL Toolbox |
| 활발한 개발 (2025) | O | O | X* | O | O |
*LGSVL은 LG에 의해 중단됨
docker pull carlasim/carla:0.9.15
docker run --privileged --gpus all --net=host \
carlasim/carla:0.9.15 /bin/bash ./CarlaUE4.sh
pip install carla
import carla
client = carla.Client('localhost', 2000)
world = client.get_world()
blueprint = world.get_blueprint_library().find('vehicle.tesla.model3')
spawn_point = world.get_map().get_spawn_points()[0]
vehicle = world.spawn_actor(blueprint, spawn_point)
camera_bp = world.get_blueprint_library().find('sensor.camera.rgb')
camera = world.spawn_actor(camera_bp, carla.Transform(), attach_to=vehicle)
- Omniverse(USD) 기반, RTX 렌더러로 포토리얼리스틱 RGB, 깊이, 세그멘테이션 마스크
- PhysX GPU 가속 물리 엔진
- NuRec 신경 렌더링으로 Sim-to-Real 갭 최소화
- Isaac Lab(RL 학습), Replicator(합성 데이터), Cosmos(생성 AI 환경)
┌─────────────────────────────────────────────────────────────────┐
│ 자율주행 풀 스택 │
│ │
│ 1. Sensing 센서 드라이버, 시간 동기화, 로깅 │
│ ↓ │
│ 2. Localization HD Map 매칭, V-SLAM, LiDAR SLAM, GNSS/IMU │
│ ↓ → 6-DOF 차량 자세 (100+ Hz) │
│ 3. Perception 3D 검출, 추적, 시맨틱 세그멘테이션, Occupancy │
│ ↓ → 3D 바운딩 박스, 트랙 ID, 시맨틱 맵 │
│ 4. Prediction 에이전트 미래 궤적 예측 (3-8초) │
│ ↓ → 에이전트별 다중 모드 궤적 │
│ 5. Planning 경로 계획, 행동 계획, 모션 계획 │
│ ↓ → 궤적 (자세 + 속도 시퀀스) │
│ 6. Control 횡방향(조향) + 종방향(가감속) 제어 │
│ ↓ → CAN 명령 (steer-by-wire, brake-by-wire) │
└─────────────────────────────────────────────────────────────────┘
| 접근 | 장점 | 단점 |
|---|
| 모듈식 | 명확한 인터페이스, 테스트 용이, 해석 가능 | 에러 전파, 모듈 간 정보 손실 |
| End-to-End | 전체 최적화, 정보 보존 | 해석 어려움, 안전 검증 난이도 |
| 하이브리드 | 학습된 인식 + 규칙 기반 안전 | 현재 업계 주류 |
| 스택 | 특징 |
|---|
| Autoware | 세계 최고의 오픈소스 AD 스택, ROS2 기반, 완전 모듈식 |
| Apollo (Baidu) | 포괄적 AD 플랫폼, 로보택시 실배포 |
| 분야 | 설명 |
|---|
| 디지털 트윈 | 물리적 로봇/환경의 가상 복제본, 실시간 동기화 |
| 텔레오퍼레이션 | VR로 원격 로봇 조작 (수술, 위험환경, 우주) |
| 데이터 수집 | VR에서 인간 시연 → 로봇 정책 학습 데이터 |
| 시뮬레이션 시각화 | 개발자가 로봇 세계에 몰입하여 디버깅 |
- NVIDIA Omniverse: USD 기반, 실시간 렌더링, 물리 시뮬, 다중 사용자 협업
- Unity + ROS: Unity Robotics Hub로 ROS-Unity 통합
- WebXR + rosbridge: 브라우저 기반 VR 로봇 제어
자율주행 차량은 시간당 1~5TB 데이터를 생성한다. 인식 모델 학습에는 수천 GPU-시간이 필요하다. 클라우드는 선택이 아닌 필수 인프라다.
차량 (Edge)
→ 셀룰러/WiFi로 원시 로그 업로드
→ Object Storage (S3/GCS/Azure Blob)
→ 데이터 카탈로그 & 인덱싱 (시나리오 마이닝)
→ 자동 어노테이션 (기존 모델로 사전 라벨링)
→ 인간 어노테이션 (검증, 코너 케이스)
→ 데이터셋 버전 관리 (DVC, LakeFS)
→ 학습 클러스터
→ 모델 레지스트리
→ 검증 파이프라인 (오프라인 메트릭, SIL)
→ OTA 배포
| 기술 | 역할 |
|---|
| Apache Kafka | 실시간 스트리밍 (텔레메트리, OTA, 차량 통신) |
| Apache Flink | 스트림 처리 (실시간 시나리오 감지) |
| Apache Spark | 대규모 배치 데이터 변환 |
| Apache Airflow | ML 파이프라인 워크플로 오케스트레이션 |
| MCAP | 멀티모달 로그 데이터 포맷 (rosbag 후속) |
A/B 파티션: 비활성 파티션 업데이트 → 재부팅 시 전환
Delta 업데이트: 변경 바이트만 전송 (100-500MB vs 10+GB)
Staged 롤아웃: 1% → 모니터링 → 점진적 확대
Rollback: 이상 감지 시 이전 버전 복원
- 암호화 서명, 안전 상태에서만 적용, ISO 24089 표준
모델 배포 → 실주행 데이터 수집 → 실패 사례 자동 마이닝
→ 어노테이션 추가 → 재학습 → SIL 검증 → A/B 테스트 → 전체 배포
→ [반복]
- NVIDIA CUDA Programming Guide
- NVIDIA TensorRT Documentation
- ROS2 Jazzy Documentation
- CARLA Documentation
- NVIDIA Isaac Sim Documentation
- Autoware Documentation
- Li, Z., et al. (2022). "BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers". ECCV 2022.
- Hu, Y., et al. (2023). "Planning-Oriented Autonomous Driving (UniAD)". CVPR 2023 Best Paper.
- Brohan, A., et al. (2023). "RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control". arxiv.org/abs/2307.15818
- Black, K., et al. (2024). "pi0: A Vision-Language-Action Flow Model for General Robot Control". arxiv.org/abs/2410.24164
- Team, O., et al. (2024). "Octo: An Open-Source Generalist Robot Policy". octo-models.github.io
- Kim, M., et al. (2024). "OpenVLA: An Open-Source Vision-Language-Action Model". arxiv.org/abs/2406.09246
- carla-simulator/carla
- autowarefoundation/autoware
- ApolloAuto/apollo
- openvla/openvla
- octo-models/octo
- OpenDriveLab/UniAD
- NVIDIA/Model-Optimizer
- NVIDIA: How DRIVE AGX Achieves Fast Perception
- NVIDIA: Top 5 AI Model Optimization Techniques
- Multi-Sensor Fusion Survey (MDPI)
- VLA Models Overview (DigitalOcean)
- NetApp: Data Pipeline for Autonomous Driving