이번 단계 목표: 시즌 1의 10편에서 뼈아프게 배운 순서대로 갑니다 — 영상에 속지 말고 수치부터. 시즌 1의 걸음 지표 도구를 Isaac Lab에 이식해, 05편에서 학습된 정책의 걸음을 학습 직후 바로 실측합니다. 04편에서 적어 둔 예측도 채점합니다.
실행
python -u scripts/06_eval_gait.py --headless --vx 0.5 --record
학습 체크포인트를 로드해 고정 전진 명령(0.5m/s)으로 10초(워밍업 2초 별도) 걷게 하면서 발 접촉·위치·무릎 각도·몸통 상태를 기록합니다. --record를 주면 로봇을 따라가는 추적 카메라 영상도 같이 뽑습니다.
이식하며 달라진 것도 있습니다. 접촉력은 Genesis의 get_links_net_contact_force() 대신 Isaac Lab의 ContactSensor에서, 발 위치는 robot.data.body_pos_w에서 읽습니다. 대신 지표 정의(스윙 검출·클리어런스·보폭)는 시즌 1과 동일하게 유지했습니다. 그래야 시즌 간 비교가 성립하니까요.
결과 — 넘어지진 않지만, 잰걸음에 절뚝임이 있다
| 지표 | 시즌 2 (이번, 내장 환경) | 시즌 1 셔플 | 시즌 1 교정 후 |
|---|---|---|---|
| 걸음 빈도 | 2.8~2.9 Hz | ~8 Hz | 1.25 Hz |
| 보폭 | 13.5 cm | (잔발) | 32 cm |
| 발 들림 (좌/우) | 10.6 / 7.7 cm | 수 mm | 8 cm |
| 접지율 | 50/53% | ~구름 | — |
| 양발 동시 접지 | 3% | — | — |
| 발 간격 | 16.5 cm | — | 15 cm |
| 전진 실측 | 0.39 m/s (−22%) | — | 0.49 m/s (−2%) |
| 몸통 높이 | 0.665 ± 0.005 m | — | — |
영상:
— 추적 카메라 근접 촬영입니다. 지표를 알고 보면 종종거림과 좌우 차이가 눈에 들어옵니다.
판정과 해석입니다.
- 시즌 1의 셔플(8Hz)만큼 나쁘진 않지만, 정상 보행도 아닙니다. 2.85Hz 잰걸음에 보폭 13.5cm — 사람 걸음의 두 배 빈도로 종종거립니다. 내장 보상의
feet_air_time이 셔플은 막아 주지만(스윙 171ms는 채점 기준의 절반 수준), 박자를 강제하는 위상 클록이 없으니 정책은 “빨리 자주 떼는” 쪽으로 수렴했습니다. - 비대칭(절뚝임)도 나타났습니다. 발 들림 좌 10.6 대 우 7.7cm로 37% 차이, 무릎 가동범위도 좌 40~77° 대 우 46~72°입니다. 대칭 보상이 없는 환경의 전형적 증상이에요.
- 명령 추종이 22% 미달입니다(0.39 대 0.5). 보폭이 짧은 잰걸음의 비용이 여기서 드러납니다.
- 좋은 것도 있습니다. 몸통 높이 요동 ±0.5cm로 매우 안정적이고, 측면 이탈 0.04m/s, 양발 동시 접지 3%의 또렷한 교대 보행, 발 간격은 시즌 1과 일치합니다.
예측 채점 — 2전 2승
04편에서 “채점표에 빈칸이 있는 축”을 세 개 적어 뒀었죠. 결과는 이렇습니다.
| 04편의 예측 | 실측 | 판정 |
|---|---|---|
| 빈도가 극단으로 갈 것 (채점 항목 없음) | 2.85Hz 잰걸음 | 적중 |
| 절뚝임이 나올 것 (대칭 항목 없음) | 들림 37% 비대칭 | 적중 |
| 들림이 들쭉날쭉할 것 (목표 없음) | 10.6 대 7.7cm | 적중 |
요약 판정: 내장 환경의 기본 튜닝만으로는 “넘어지지 않고 명령을 대충 따르는 잰걸음” 까지입니다. 시즌 1이 10~13편에서 걸음 채점·대칭 보상으로 해결한 그 문제들이, 도구를 바꿔도 같은 자리에서 기다리고 있었습니다. 보상이 명시하지 않은 품질은 공짜로 얻어지지 않는다는 얘기예요.
여기서 이 시리즈의 방향이 정해집니다. 채점표를 읽고 병리를 미리 맞힐 수 있다면, 그 반대도 되지 않을까? 로봇 제조사가 공개한 채점표를 읽으면 그쪽 걸음도 예측할 수 있을까요? 그 질문이 08편부터의 실험 연작이 됩니다.
개념 박스 — 시즌 간 지표 비교의 조건 이 비교가 성립하는 건 지표 정의를 그대로 이식했기 때문입니다. 스윙 검출(접지→비접지→ 접지), 클리어런스 기준(접지 시 평균 높이 대비), 보폭(착지 x좌표 차이)을 시즌 1과 같은 코드 로직으로 맞췄어요. 도구를 바꿀 때 가장 먼저 옮겨야 하는 것은 로봇도 보상도 아니고 측정입니다. 자가 아니면 개선을 주장할 수 없으니까요.
다음 단계
직진만 재 봤으니, 이번엔 조종해 봅니다. 시즌 1과 같은 16초 시나리오로 Phase B를 결산합니다 → 07. 조종 시나리오