Unitree G1 휴머노이드 보행 시뮬레이션
Unitree가 공개한 강화학습 보행 정책(unitree_rl_gym)이 G1 휴머노이드를 두 발로 걷게 합니다. 방향키로 걷고 Q·E로 옆걸음해 슬라럼과 좁은 통로를 지나 보고, "AI 들여다보기"에서 신경망이 두 다리 12개 관절을 어떻게 움직이는지, 정책을 끄면 어떻게 되는지 실험하세요.
끌면 시점이 돌고, 휠로 확대합니다. 바닥 격자 한 칸은 50 cm입니다. 카메라는 로봇을 따라갑니다. 다리 12개만 움직이고 팔·허리는 고정된 12자유도 모델입니다.
안에서 일어나는 일
- 물리: MuJoCo 물리 엔진이 브라우저에서 1초에 500번 계산합니다. 로봇 모델은 Unitree가 공개한 G1 12자유도 모델(키 약 1.3 m, 시뮬레이션 질량 32 kg)이며, 다리 12개 관절이 움직이고 팔·허리는 고정입니다.
- 보행 정책: Unitree가 Isaac Gym(legged_gym)에서 수천 대의 G1을 동시에 넘어지게 하며 "명령한 속도로 넘어지지 않고 걷기"를 학습시킨 신경망입니다. LSTM(기억이 있는 신경망) 64칸 + 행동 신경망(64 → 32 → 12)이 1초에 50번 다리 목표 각도를 정합니다.
- 걸음 박자: 0.8초 주기의 박자 신호(sin·cos)를 함께 넣어 왼발·오른발을 번갈아 딛게 합니다. 명령이 0이어도 제자리걸음으로 균형을 잡습니다.
- 관절 제어: 관절 모터는 목표 각도를 스프링·댐퍼(PD)처럼 따라갑니다. 정책을 끄면 같은 PD가 기본 자세만 붙잡아 두 발로 버티지 못합니다.
- 방향 유지·거리 명령: 회전 명령이 없을 때 처음 방향으로 되돌리고, 거리·옆걸음 명령 중 다른 방향으로 흐르지 않게 보정합니다(엔스크린 추가).
이 시뮬레이션을 쓰는 차시
| 차시 | 시뮬레이터 활동 |
|---|---|
| 1 | 해 보기: 두 발 걷기 관찰(제자리걸음·박자), 밀어 보고 균형 회복 보기 |
| 2 | AI 들여다보기: 명령과 실제 속도 그래프, 두 다리 관절 출력 읽기 |
| 3 | 정책 끄기 실험과 강화학습의 보상·시행착오, 사족 보행(Go2)과 이족 보행 비교 |
| 4–5 | 코드: 거리·회전·옆걸음 명령으로 슬라럼·옆걸음 통로 미션 |
| 6 | unitree_rl_gym 파이썬 도구로 같은 정책을 PC에서 실행해 보기(심화), 실물 G1 EDU 비교 |
차시 활동은 엔스크린 제안입니다. 실물 수업 전 연습과 장비가 모자랄 때 대신 쓰는 용도입니다.
로봇 모델과 보행 정책은 Unitree Robotics가 공개한 unitree_rl_gym(BSD-3-Clause, © Unitree Robotics)의 G1 12자유도 모델(g1_12dof)과 사전학습 정책(deploy/pre_train/g1/motion.pt)입니다. 정책은 공식 MuJoCo 실행 코드(deploy_mujoco.py)와 같은 관측·이득으로 계산하며, 엔스크린이 PyTorch 없이 브라우저에서 돌도록 가중치를 옮겼습니다.
화면용 메시는 원본 STL을 가볍게 줄였고, 충돌은 공식 모델과 같은 발바닥 접촉점에 발 상자를 더해 기본 도형으로 바꿨습니다(공식 모델과 걸음 결과가 같음을 확인). 코스·방향 유지·미션·코드 명령은 엔스크린이 작성했으며 MuJoCo(Apache-2.0)와 three.js(MIT)를 우리 서버에서 불러옵니다. Unitree·G1은 Unitree Robotics의 상표이며, 이 시뮬레이터는 Unitree와 관계가 없습니다.