--- license: apache-2.0 tags: - robotics - reinforcement-learning - unitree-g1 - locomotion - isaac-lab --- # G1-29DoF PhaseTrack PT18 — 배포 킹 (v0.1.0) Unitree G1 29-DoF 속도추종 보행 정책 (PhaseTrack: 위상 시계 + Bézier 발높이 절차적 보행, 모션 데이터·discriminator 없음). **실기 G1 검증 완료** — clobot 사내용 (private). > ⚠️ **평지 전용 학습**: 이 정책은 **평지(flat terrain)에서만 학습**되었습니다. 지형 관측(높이 > 스캔) 없이 고유수용 감각만 사용하며, 요철·경사·턱은 학습 분포 밖입니다. 실측 참고: 낮은 > 요철/턱(≤6cm)·완경사 지형에 무개조 투입 시 sim 낙상률 4%(easy)~17%(고난도+강외란) — 어느 > 정도 버티지만 보장 없음. 특히 **작은 턱을 사선(비정방향)으로 넘을 때 불안정**이 실기에서 > 관찰됨. 지형 대응 정책은 별도 캠페인(PTR 시리즈, 진행 중)에서 학습. ## 실기 검증 상태 (2026-07-15 기준) | 능력 | 상태 | |---|---| | 전진 / 후진 / 정지 | ✅ 실기 확인 (sim2real DR: CoM·게인·관절영점) | | 회전 (명령 상한 ±0.7 rad/s) | ✅ 실기 확인 — 학습범위(±0.5) 외삽, sim은 1.0까지 검증 | | 우측 yaw 사행 | ✅ heading-hold(명령계층 트림, deploy.yaml)로 실기 억제 확인 | | push 회복 / 정지 회복 | ✅ (sim ±1.0 push, 실기 확인) | **알려진 한계**: 게걸음(lateral) 약함(vy~0.17), 작은 턱 사선 진입 불안정, 사행 근본원인(HW 비대칭) 미해결(트림으로 억제), 제자리 피벗 질감, 정지 미세 jitter. 상세: 코드 저장소 `docs/worklogs/CAMPAIGN_HISTORY_phasetrack.md`의 "PT18 알려진 한계" 섹션. ## 파일 | 경로 | 용도 | |---|---| | `deploy/policy.onnx` | 실기 배포용 (md5 `a7a86c86...`) — C++ 스택 v1 슬롯에 교체 투입 | | `deploy/deploy.yaml` | 배포 파라미터 (게인/heading_hold/ang ±0.7 — **obs 계약의 한 축**) | | `checkpoints/model_23200.pt` | **rsl-rl 체크포인트 = 웜스타트 씨앗** (PT22/23/PTR2/3의 부모). onnx로는 재학습 불가 — 이 파일이 혈통의 원본 | | `config/env.yaml`, `agent.yaml` | 학습 당시 resolved 설정 (재현성) | | `eval/` | sim 검증 영상 + 정량 지표(전진 vx 0.426, 후진 -0.372, lateral 0.166, 낙상 0) + 20s 지속-명령 드리프트 클린 | ## 계약 (배포 시 3자 일치 필수) - **obs 500-dim** = 100-dim × 5-frame history (term-major, oldest-first): `base_ang_vel(3) | projected_gravity(3) | velocity_commands(3) | joint_pos_rel(29) | joint_vel_rel(29) | actions(29) | gait_phase_legs(4)` × 5 - 액션 29 (per-joint scale, deploy.yaml `scale`), 50 Hz - deploy.yaml = 학습 cfg = C++ obs builder 3자 일치 확인 후 배포 ## 계보 - 코드: clobot_rl_lab **git tag v0.1.0** (가중치↔코드 앵커. 이 태그 없이 재현 불가) - 학습: V18 태스크 스크래치 **(평지 타일만 — 지형 없음)**, 23.2k iters에서 조기종료(=최종본, σ 0.120 수렴 확인 후 실기 검증) - 라이선스 혈통: Apache-2.0/BSD-3 (holosoma 기법 참조, NC 데이터 미사용 — 2026-07-07 감사)