이번 단계 목표: 드디어 학습 버튼입니다. 내장 환경
Isaac-Velocity-Flat-G1-v0을 RSL-RL PPO로 학습시키고, 시즌 1의 “10분 만에 걷기”와 학습 시간·자원·결과를 정면 비교합니다. 그리고 성공했다고 믿지 않는 연습을 합니다.
실행
# 학습 (4096 환경, 1500 iteration)
python -u <IsaacLab>/scripts/reinforcement_learning/rsl_rl/train.py \
--task Isaac-Velocity-Flat-G1-v0 --num_envs 4096 --headless --max_iterations 1500
# 학습 곡선 그리기 (콘솔 로그 파싱)
python scripts/05_plot_curve.py <학습 로그>
# 결과 재생 + 영상 (Play 환경: 랜덤화 꺼짐, 소수 환경)
python -u <IsaacLab>/scripts/reinforcement_learning/rsl_rl/play.py \
--task Isaac-Velocity-Flat-G1-Play-v0 --num_envs 9 --headless --video --video_length 400
체크포인트와 텐서보드 로그는 logs/rsl_rl/g1_flat/<타임스탬프>/에 쌓입니다. 시즌 1과 같은 rsl_rl 계열이라 구조도 같아요(model_<번호>.pt).
결과 — 49분 만에 걷기 (그리고 ‘안 넘어지기’는 5분 만에)

| 항목 | 시즌 1 (Genesis) | 시즌 2 (Isaac Lab) |
|---|---|---|
| 학습 시간 | 1000 iter ≈ 10분 | 1500 iter = 49분 18초 |
| 반복당 시간 | ~0.6초 | ~2.0초 |
| 환경 수 / rollout | 4096 / 24 | 4096 / 24 (동일) |
| 표본 처리량 | ~16만 step/s | ~4.9만 step/s |
| VRAM | (16GB 내 여유) | 5.5GB / 16GB |
| 최종 보상 / 에피소드 길이 | — | 28.3 / 991(만기 1000) |
| 정책이 제어한 관절 | 12 | 37 |
영상:
— 랜덤화를 끈 Play 환경에서 9대가 각자의 명령(초록 화살표)을 따라 걷습니다.
읽어낼 것 셋입니다.
- 곡선에 이야기가 셋 있습니다. ① 초반 130 iter 부근까지 보상이 −10까지 파입니다. 벌점(자세·토크·넘어짐 −200)만 쌓이는 “맞으면서 배우는” 구간이죠. ② 그 직후 에피소드 길이가 수직으로 1000에 붙습니다 — “안 넘어지기”는 150 iter, 즉 5분 만에 해결됩니다. ③ 나머지 44분은 전부 명령 추종과 효율(벌점 절감)을 다듬는 긴 꼬리입니다. 시즌 1의 곡선과 정확히 같은 3막 구조예요.
- 속도 차이는 5배지만 조건이 다릅니다. 반복당 2.0초 대 0.6초의 차이에는 엔진 차이만이 아니라 37관절(대 12) + 접촉 센서 전신 추적 + 보상 16항목 + 관측 노이즈가 들어 있습니다. 같은 조건 비교는 아니고, “같은 문제를 그 도구의 표준 방식으로 풀 때의 체감”입니다. 참고로 CPU governor가 powersave였으니 이 수치는 보수적입니다.
- VRAM 5.5GB — 16GB의 3분의 1입니다. 나중에 높이맵 관측(관측 310차원)을 얹어도 여유가 있겠다는 청신호입니다.
아직 모르는 것 — 06편의 숙제
시즌 1의 뼈아픈 교훈(10편: “그거 진짜 걷는 거 맞아?”)을 잊지 않았습니다. 보상 28.3과 만기 생존은 “넘어지지 않고 명령을 따른다”는 뜻이지 “잘 걷는다”는 뜻이 아닙니다.
04편에서 본 대로 이 환경에는 위상 클록도 대칭 보상도 없습니다. 그래서 걸음 빈도·보폭· 발 들림·대칭성을 시즌 1의 지표 도구로 실측하기 전까지는 걸음 품질을 판정하지 않기로 합니다. 영상은 꽤 그럴듯해 보이지만, 그럴듯함은 증거가 아니니까요.
막힌 점 — 내장 play.py도 종료에서 한참 걸립니다 우리 스크립트는 00편의 처방(STOP 콜백 해제)으로 몇 초 만에 닫히지만, 내장
play.py는 그 처방이 없어 영상 저장 후 종료까지 수 분을 소모했습니다. 영상 파일은 종료 전에 이미 저장되므로 실해는 없지만, 우리 평가 스크립트(06편)는 자체 종료 경로를 씁니다.
다음 단계
이제 자를 들 차례입니다. 시즌 1의 걸음 지표 도구를 이식해 이 정책이 정말 걷는지 재 봅니다 → 06. 걸음 품질 측정