2D 환경에서 자율주행 에이전트를 학습시키는 연구·교육용 프로젝트. Plan은 고전 알고리즘(A*)에 외주를 주고, AI는 "주어진 경로 위에서의 안전·효율적 주행" 과 "단위 스킬(주차, 차선변경 등) 수행" 에 집중합니다.
- 2D 시뮬레이션 환경에서 자율주행 에이전트를 학습시킨다 (3D 미사용).
- 차량은 실제 운전과 동일한 연속 제어를 받는다:
- 조향 각가속도:
[-1, +1] - 엑셀:
[0, 1] - 브레이크:
[0, 1]
- 조향 각가속도:
- 차량은 1인칭 시점(raycast 센서) 으로 주변을 인지한다.
- 학습된 에이전트는 World Model을 내장하여 자신의 위치와 미래 상황을 시뮬레이션할 수 있다.
- 출발지 → 목적지 도달에 대해 보상을 극대화한다.
┌────────────────────────────────────────────────────┐
│ Mission Layer : 사람이 (start, goal) 지정 │
├────────────────────────────────────────────────────┤
│ Plan Layer : A* / RRT (외주, 학습 제외) │
├────────────────────────────────────────────────────┤
│ Skill Layer : 차선변경/주차/추월 (학습) │
├────────────────────────────────────────────────────┤
│ Control Layer : 핸들/엑셀/브레이크 (학습 메인) │
└────────────────────────────────────────────────────┘
자세한 내용은 ARCHITECTURE.md 참조.
- Python 3.10+
- Windows 10/11 (PowerShell) 또는 Linux/macOS
- GPU 권장 (CUDA 11.8+) — World Model 학습 시 필수
# 가상환경 생성
python -m venv .venv
.\.venv\Scripts\Activate.ps1 # Windows PowerShell
# source .venv/bin/activate # Linux/macOS
# 의존성 설치
pip install -r requirements.txt
# (선택) 개발 의존성
pip install -r requirements-dev.txtpython scripts/play_human.py --scenario lane_follow방향키 또는 WASD로 조작. 운전 데이터는 data/trajectories/ 에 자동 저장됩니다.
python scripts/train.py --config configs/training/ppo_lane_follow.yamlpython scripts/evaluate.py --checkpoint runs/lane_follow_ppo/best.ptautonomous-driving-2d/
├── README.md ← 본 파일
├── PLAN.md ← 단계별 마일스톤
├── ARCHITECTURE.md ← 시스템 구조 상세
├── CLAUDE.md ← Claude Code 작업 컨텍스트
├── src/
│ ├── env/ ← 시뮬레이션 환경
│ ├── planner/ ← Plan Layer (외주 알고리즘)
│ ├── agent/ ← Skill + Control + World Model
│ ├── training/ ← 학습 루프
│ └── visualization/ ← 렌더링, 디버깅 시각화
├── configs/ ← YAML 설정 파일
├── data/ ← 사람 운전 데이터 (BC용)
├── notebooks/ ← 실험·분석
├── tests/ ← 단위/통합 테스트
└── scripts/ ← CLI 진입점
| 스킬 | 난도 | World Model 활용도 |
|---|---|---|
| 차선 유지 (Lane Following) | ★ | 낮음 |
| 속도 제어 (Cruise Control) | ★ | 중간 |
| 차선 변경 (Lane Change) | ★★ | 높음 |
| 추월 (Overtaking) | ★★★ | 높음 |
| 합류 (Merging) | ★★★ | 높음 |
| 교차로 통과 (Intersection) | ★★★ | 중간 |
| 평행 주차 (Parallel Parking) | ★★★★ | 매우 높음 |
| 직각 주차 (Perpendicular Parking) | ★★★ | 높음 |
각 스킬은 독립적으로 학습 가능하며, 추후 메타 컨트롤러가 어떤 스킬을 언제 호출할지 결정합니다.
내부 학습/연구용 프로젝트.