[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,69 +2,262 @@
|
||||
id: wiki-2026-0508-autonomous-vehicles
|
||||
title: Autonomous Vehicles
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-AUVE-001]
|
||||
aliases: [자율주행, AV, self-driving, Tesla FSD, Waymo, robotaxi, SAE levels, end-to-end driving]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.98
|
||||
tags: [auto-reinforced, autonomous-vehicles, self-driving, ai-Robotics, transport-Innovation, safe-ai]
|
||||
confidence_score: 0.92
|
||||
verification_status: applied
|
||||
tags: [autonomous-vehicles, robotics, perception, lidar, end-to-end, fsd, waymo, sae-levels, safety-critical]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: C++ / Python
|
||||
framework: ROS / Apollo / Autoware / NVIDIA DRIVE
|
||||
---
|
||||
|
||||
# [[Autonomous Vehicles|Autonomous Vehicles]]
|
||||
# Autonomous Vehicles
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "움직이는 바퀴 달린 컴퓨터: 가시광선, 레이더, 라이다로 세상을 초 단위로 분석하여 인간의 개입 없이 스스로 목적지까지 안전하게 도달하는 AI 로보틱스의 집합체."
|
||||
## 📌 한 줄 통찰
|
||||
> **"매 wheels 의 movable computer"**. 매 perception + localization + prediction + planning + control 의 5-stack. 매 modern: 매 end-to-end neural net 의 rule-based 의 superseed. 매 Tesla FSD v12 / Waymo / Mobileye / NVIDIA DRIVE 의 commercialization.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
자율주행차(Autonomous Vehicles)는 환경을 스스로 인지하고 주행 상황을 판단하여 제어되는 차량을 의미합니다.
|
||||
## 📖 핵심
|
||||
|
||||
1. **자율주행 5단계 (SAE 기준)**:
|
||||
* **Level 2**: 운전자 보조 (현재 대중화).
|
||||
* **Level 3**: 조건부 자율주행 (특정 환경에서 시스템이 주도하되 필요시 인간 개입).
|
||||
* **Level 4**: 고도 자율주행 (특정 구역 내에서는 인간 개입 불필요).
|
||||
* **Level 5**: 완전 자율주행 (어떤 환경에서도 인간 개입 불필요).
|
||||
2. **핵심 기술**:
|
||||
* **Perception**: 센서 퓨전을 통한 장애물 및 차선 인식.
|
||||
* **Localization**: 정밀 지도(HD Map) 기반 자신의 위치 파악.
|
||||
* **Prediction**: 주변 차량과 보행자의 다음 움직임 예측 ([[Anticipation|Anticipation]]과 연결).
|
||||
* **Policy/Control**: 위반 없는 최적의 경로 주행 전략 수립.
|
||||
### 매 SAE level
|
||||
| Level | Description | 예 |
|
||||
|---|---|---|
|
||||
| 0 | No automation | manual |
|
||||
| 1 | Driver assist (cruise) | adaptive cruise |
|
||||
| 2 | Partial (steering + speed) | Tesla AP, GM Super Cruise |
|
||||
| 3 | Conditional (eyes off in ODD) | Mercedes Drive Pilot, Honda Sensing |
|
||||
| 4 | High (no driver in ODD) | Waymo, Cruise (suspended), Zoox |
|
||||
| 5 | Full (any condition) | 매 not yet |
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 모든 상황을 코딩하려 했으나(Rule-based), 현대 자율주행 정책은 거대 모델이 주행 영상 전체를 학습하여 직관적으로 운전하는 'End-to-End 신경망 정책'으로 패러다임을 혁신함(RL Update).
|
||||
- **정책 변화(RL Update)**: 사고 시 책임 소재(Liability) 정책이 제조사, 소프트웨어 개발자, 보험사 간에 재정립 중이며, '트롤리 딜레마'와 같은 윤리적 판단을 AI 모델의 가치 정렬([[Alignment|Alignment]]) 정책 내에 어떻게 포함할지가 핵심 쟁점이 됨.
|
||||
→ ODD = Operational Design Domain.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Artificial Intelligence (AI)|Artificial Intelligence (AI)]], [[Robotics|Robotics]], [[Safety & Reliability|Safety & Reliability]], [[Computer Vision|Computer Vision]], [[Anticipation|Anticipation]], [[Ethics & AI|Ethics & AI]]
|
||||
- **Modern Tech/Tools**: Tesla FSD, Waymo, NVIDIA DRIVE, LiDAR/Radar[[_system|system]]s.
|
||||
---
|
||||
### 매 stack
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
#### 1. Sensors
|
||||
- **Camera**: 매 cheap, 매 rich. Tesla 의 vision-only.
|
||||
- **Radar**: 매 long-range, 매 weather-robust.
|
||||
- **LiDAR**: 매 3D, 매 expensive. Waymo / Cruise 사용.
|
||||
- **Ultrasonic**: 매 short-range parking.
|
||||
- **IMU + GPS**: 매 ego-motion.
|
||||
- **HD Map**: 매 lane / sign / topology.
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
#### 2. Perception
|
||||
- 매 detection (3D bbox).
|
||||
- 매 segmentation (BEV, lane).
|
||||
- 매 tracking (multi-object).
|
||||
- 매 sensor fusion (Kalman / DL).
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
#### 3. Localization
|
||||
- 매 GPS + IMU + map matching.
|
||||
- 매 SLAM (LiDAR / visual).
|
||||
- 매 cm-level accuracy required.
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
#### 4. Prediction
|
||||
- 매 surrounding agent 의 trajectory.
|
||||
- 매 multimodal (multiple intent).
|
||||
- 매 socially-aware.
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
#### 5. Planning
|
||||
- 매 behavior (lane change, merge).
|
||||
- 매 trajectory (geometry + time).
|
||||
- 매 motion (control input).
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
#### 6. Control
|
||||
- 매 steering + throttle + brake.
|
||||
- 매 PID / MPC / NN.
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
### 매 paradigm
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
#### Modular (전통)
|
||||
- 매 stack 의 separate.
|
||||
- 매 explainable.
|
||||
- 매 error 의 propagate.
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
#### End-to-End (Tesla FSD v12, Wayve)
|
||||
- 매 video → 매 control.
|
||||
- 매 single NN.
|
||||
- ✅ 매 better edge case.
|
||||
- ❌ 매 black box, 매 verification 어려움.
|
||||
|
||||
#### Hybrid (Waymo)
|
||||
- 매 modular + 매 NN per stage.
|
||||
- 매 verifiable.
|
||||
|
||||
### 매 challenge
|
||||
1. **Long tail**: 매 rare event (animal, crash, construction).
|
||||
2. **Adversarial weather** (snow, fog).
|
||||
3. **Verification**: 매 billion mile 의 simulation.
|
||||
4. **Liability**: 매 maker / driver / software.
|
||||
5. **Trolley problem**: 매 ethical edge.
|
||||
6. **HD map maintenance**.
|
||||
7. **Edge case generalization**.
|
||||
|
||||
### Players (2026)
|
||||
- **Tesla**: FSD v12, vision-only, end-to-end.
|
||||
- **Waymo**: robotaxi (SF, LA, Phoenix).
|
||||
- **Mobileye**: ADAS supplier.
|
||||
- **Cruise**: suspended (2024 incident).
|
||||
- **Zoox** (Amazon): purpose-built.
|
||||
- **NVIDIA DRIVE**: platform (BYD, Jaguar, Mercedes).
|
||||
- **Wayve / Comma**: end-to-end.
|
||||
|
||||
### 매 simulation
|
||||
- **CARLA**: open-source.
|
||||
- **NVIDIA DRIVE Sim** / **DriveWorks**.
|
||||
- **Waymo Carcraft**.
|
||||
- **Tesla simulation**: 매 HW + 매 photoreal.
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
### Sensor fusion (Kalman)
|
||||
```python
|
||||
import numpy as np
|
||||
|
||||
class KalmanFilter:
|
||||
def __init__(self, F, H, Q, R, x0, P0):
|
||||
self.F, self.H, self.Q, self.R = F, H, Q, R # transition, obs, proc noise, meas noise
|
||||
self.x, self.P = x0, P0
|
||||
|
||||
def predict(self):
|
||||
self.x = self.F @ self.x
|
||||
self.P = self.F @ self.P @ self.F.T + self.Q
|
||||
|
||||
def update(self, z):
|
||||
y = z - self.H @ self.x
|
||||
S = self.H @ self.P @ self.H.T + self.R
|
||||
K = self.P @ self.H.T @ np.linalg.inv(S)
|
||||
self.x = self.x + K @ y
|
||||
self.P = (np.eye(len(self.x)) - K @ self.H) @ self.P
|
||||
```
|
||||
|
||||
### 3D detection (PyTorch + LiDAR)
|
||||
```python
|
||||
# 매 PointPillars / VoxelNet / CenterPoint style
|
||||
import torch
|
||||
class PointPillars(torch.nn.Module):
|
||||
def forward(self, points):
|
||||
# 매 1. voxelize
|
||||
pillars = self.voxelize(points, voxel_size=[0.16, 0.16, 4.0])
|
||||
# 매 2. PointNet 의 per-pillar feature
|
||||
features = self.pointnet(pillars)
|
||||
# 매 3. BEV pseudo-image
|
||||
bev = self.scatter(features)
|
||||
# 매 4. 2D backbone + detection head
|
||||
return self.detection_head(self.backbone(bev))
|
||||
```
|
||||
|
||||
### Trajectory prediction (Transformer)
|
||||
```python
|
||||
class TrajectoryPredictor(nn.Module):
|
||||
"""매 surrounding agent 의 multimodal trajectory."""
|
||||
def __init__(self):
|
||||
self.encoder = TransformerEncoder()
|
||||
self.decoder = MultimodalHead(n_modes=6)
|
||||
|
||||
def forward(self, agent_history, map_features):
|
||||
ctx = self.encoder(agent_history, map_features)
|
||||
# 매 6 mode 의 trajectory + 매 confidence
|
||||
return self.decoder(ctx) # 매 (B, 6, T, 2) + (B, 6)
|
||||
```
|
||||
|
||||
### Path planner (RRT*)
|
||||
```python
|
||||
def rrt_star(start, goal, obstacles, max_iter=1000):
|
||||
nodes = [start]
|
||||
parent = {0: None}
|
||||
for _ in range(max_iter):
|
||||
rand = sample_random()
|
||||
nearest = min(range(len(nodes)), key=lambda i: dist(nodes[i], rand))
|
||||
new = steer(nodes[nearest], rand, step=1.0)
|
||||
if not collides(new, obstacles):
|
||||
nodes.append(new)
|
||||
parent[len(nodes)-1] = nearest
|
||||
if dist(new, goal) < 0.5:
|
||||
return reconstruct_path(nodes, parent, len(nodes)-1)
|
||||
return None
|
||||
```
|
||||
|
||||
### Behavior planner (FSM)
|
||||
```python
|
||||
class BehaviorPlanner:
|
||||
def __init__(self):
|
||||
self.state = 'KEEP_LANE'
|
||||
|
||||
def step(self, scene):
|
||||
if self.state == 'KEEP_LANE':
|
||||
if scene.front_too_slow and scene.left_lane_clear:
|
||||
self.state = 'PREP_LANE_CHANGE_LEFT'
|
||||
elif self.state == 'PREP_LANE_CHANGE_LEFT':
|
||||
if scene.left_gap_safe:
|
||||
self.state = 'LANE_CHANGE_LEFT'
|
||||
elif scene.front_clear:
|
||||
self.state = 'KEEP_LANE'
|
||||
# ...
|
||||
return self.state
|
||||
```
|
||||
|
||||
### MPC (Model Predictive Control)
|
||||
```python
|
||||
import cvxpy as cp
|
||||
|
||||
def mpc_step(x_current, x_ref, horizon=10, dt=0.1):
|
||||
x = cp.Variable((horizon+1, 4)) # [x, y, v, ψ]
|
||||
u = cp.Variable((horizon, 2)) # [a, δ]
|
||||
|
||||
cost = 0
|
||||
constraints = [x[0] == x_current]
|
||||
for t in range(horizon):
|
||||
cost += cp.sum_squares(x[t+1] - x_ref[t+1]) + 0.1 * cp.sum_squares(u[t])
|
||||
constraints += [x[t+1] == bicycle_model(x[t], u[t], dt)]
|
||||
constraints += [cp.abs(u[t, 1]) <= 0.5] # steering limit
|
||||
|
||||
cp.Problem(cp.Minimize(cost), constraints).solve()
|
||||
return u[0].value # 매 first control 의 apply
|
||||
```
|
||||
|
||||
## 🤔 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| ADAS L2 | Camera + radar + rule-based |
|
||||
| Robotaxi | Sensor fusion + HD map (Waymo) |
|
||||
| Mass market | Vision-only end-to-end (Tesla) |
|
||||
| Truck (highway) | LiDAR + radar (long-range) |
|
||||
| Simulation | CARLA + photoreal |
|
||||
| Ethics edge case | Hardcoded principle + transparent log |
|
||||
|
||||
**기본값**: Modular for safety-critical. End-to-end for scale.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Robotics]] · [[Computer-Vision]] · [[Embedded-Systems]]
|
||||
- 변형: [[Tesla-FSD]] · [[Waymo]] · [[Mobileye]] · [[Comma-AI]]
|
||||
- 응용: [[SLAM]] · [[BEV-Perception]] · [[End-to-End-Driving]] · [[Behavior-Planning]]
|
||||
- Adjacent: [[Reinforcement-Learning]] · [[Imitation-Learning]] · [[CARLA]] · [[Trolley-Problem]] · [[AI-Safety]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 AV system architecture review. 매 ADAS feature design. 매 simulation scenario. 매 sensor fusion debug.
|
||||
**언제 X**: 매 specific safety certification (ISO 26262 / SOTIF). 매 medical-grade real-time.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Single sensor**: 매 weather / occlusion 의 fail.
|
||||
- **HD map only** (no perception): 매 stale.
|
||||
- **No sim 의 verify**: 매 production 의 first encounter.
|
||||
- **Edge case 의 ignore**: 매 long tail 의 fatal.
|
||||
- **End-to-end 의 verify 의 X**: 매 unexplained behavior.
|
||||
- **No graceful degradation**: 매 sensor fail = 매 crash.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (SAE J3016, Waymo / Tesla papers, ISO 26262).
|
||||
- 신뢰도 A.
|
||||
- Related: [[Tesla-FSD]] · [[Waymo]] · [[SLAM]] · [[End-to-End-Driving]] · [[AI-Safety]].
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — SAE level + stack + 매 Kalman / PointPillars / RRT / MPC code |
|
||||
|
||||
Reference in New Issue
Block a user