물리 시뮬레이터 Genesis 위에서 휴머노이드 로봇 Unitree G1을 걷게 만들고, 그 걸음이 진짜인지 끝까지 의심해 본 기록입니다. 설치부터 시작해 강화학습, 조종, 외란 회복, 계단 오르기까지 순서대로 따라올 수 있게 썼습니다.
번호순으로 읽는 것을 권합니다. 앞 글의 결과를 뒤 글이 이어받는 구조라서, 중간부터 읽으면 “이 체크포인트는 어디서 났지?” 하는 대목이 나옵니다. 다만 연구 노트는 언제 읽어도 괜찮습니다.
이 시리즈의 시즌 2는 같은 로봇, 같은 목표를 NVIDIA Isaac Sim과 Isaac Lab으로 다시 하면서 도구를 바꿔야만 보이는 것을 봅니다. 목차는 Isaac Lab으로 휴머노이드 강화학습에 따로 있습니다.
5부(시즌 3)부터는 과제가 바뀝니다. 휴머노이드 걷기가 아니라 로봇 팔의 언어 지시 픽앤플레이스이고, 강화학습이 아니라 모방학습입니다. 앞부분과 독립적으로 읽을 수 있지만, 실험을 의심하는 방식은 그대로 이어집니다.
들어가며
- 서문. 이 시리즈의 AI는 어디에 있는가 — 이 시리즈를 읽으면 무엇을 할 수 있게 되는지, 그리고 AI와 함께 일한다는 게 실제로 어떤 모습인지.
1부. 시뮬레이터에 로봇 세우기
물리 엔진을 처음 켜고, 로봇을 불러오고, 손으로 움직여 봅니다.
- 00. 환경 구축 — Genesis 설치하고 첫 시뮬레이션 돌리기 — Genesis를 설치하고 큐브 하나를 떨어뜨려 봅니다. 모든 것의 시작.
- 01. Genesis 기본 개념 — 용어부터 정리하고 가기 — 강체, 관절, 자유도, 타임스텝 — 용어부터 정리하고 갑니다.
- 02. 휴머노이드 불러오기 — Unitree G1을 무대에 세우기 — Unitree G1을 URDF로 불러와 무대에 세웁니다.
- 03. PD 제어로 자세 유지 — 넘어지는 로봇 세워두기 — 가만히 서 있는 것도 제어입니다. PD 제어로 넘어지지 않게 붙잡기.
- 04. 모션 제어 — 스쿼트하고 손 흔들기 — 스쿼트하고 손 흔들기 — 관절 목표값을 시간에 따라 바꿔 보기.
- 05. 보행 도전 — 손으로 짠 걷기는 왜 어려운가 — 손으로 짠 걷기는 왜 실패하는가. 강화학습이 필요해지는 순간.
2부. 강화학습으로 걷기
4096대의 로봇을 동시에 굴려 걷는 법을 학습시킵니다.
- 06. RL 보행 학습 — G1에게 걷는 법을 ‘학습’시키기 — PPO로 G1에게 걷기를 가르칩니다. 보상 설계와 병렬 학습의 첫 경험.
- 07. 영상 렌더링 — 결과를 블로그에 올리기 — 헤드리스 서버에서 학습 결과를 영상으로 뽑아내기.
3부. 조종과 강건함
걷기만 하는 로봇에 조종기를 달고, 밀어도 안 넘어지게 만듭니다.
- 08. 방향 전환 — 걷는 로봇에 ‘조종기’ 달기 — 속도와 회전 명령을 따르게 만들기. 명령을 흔들어야 명령을 듣는다.
- 09. 외란 회복 — 밀어도 안 넘어지는 로봇 — 학습 중에 밀어 버리기 — 도메인 랜덤화로 강건함 얻기.
- 10. 제대로 된 걸음 — “그런데 저거, 진짜 걷는 거 맞아?” — “그런데 저거, 진짜 걷는 거 맞아?” 8Hz 종종걸음의 정체를 파헤칩니다.
- 11. 걸음과 강건함 — 두 마리 토끼 — 제대로 된 걸음과 넘어지지 않기, 두 마리 토끼를 함께 잡기.
- 12. 절뚝임 교정 — 대칭과 토크, 마지막 두 구멍 — 대칭 보상과 토크 페널티로 절뚝임을 잡는 과정.
- 13. 회전 게이트와 진짜 8cm — 남은 오차 청소 — 회전할 때만 대칭을 풀어 주는 게이트, 그리고 진짜 8cm 발 들림.
4부. 더 어려운 과제로
팔, 거친 땅, 빠른 속도, 그리고 계단.
- 14. 팔 스윙 — 상체를 정책에게 넘기다 — 상체를 정책에 맡기자 사람과 같은 위상의 팔 흔들기가 저절로 나타났습니다.
- 15. 거친 지형 — 평지를 벗어나다 — 평지를 벗어나기. 지형 설정에서 만난 함정과 복구.
- 16. 빠른 보행 — 속도를 올리면 팔은 커질까 — 속도를 올리면 팔 스윙도 커질까 — 사람과 같은 경향의 확인.
- 17. 계단 오르기 — “저거 계단 맞아?”가 구한 실험 — “저거 계단 맞아?”라는 한마디가 가짜 성공을 잡아낸 이야기.
- 18. 계단의 한계 — 눈 감은 로봇은 몇 cm까지 오를 수 있나 — 눈 감은 로봇은 몇 cm까지 오를 수 있나. 커리큘럼으로 한계 밀어내기.
연구 노트
개별 과제가 아니라 ‘왜 그런가’를 파고든 글들입니다.
- 연구 노트 R01. 보상은 빈틈을 찾는다 — 우리 로봇은 왜 ‘가짜 걸음’을 배웠나 — 교정 보상이 없으면 왜 이상한 동작을 배우는가 — 보상 해킹의 해부.
- 연구 노트 R02. 성공을 의심하는 세 가지 방법 — 한계 실측·씨드·반복 — 한계 실측, 씨드 재현, 반복 시험 — 성공을 의심하는 세 가지 방법.
- 연구 노트 R03. 능력의 경계 지도 — 안 재본 것, 교차한 것, 흔들어 본 것 — 무엇을 할 수 있고 무엇을 못 하는지, 경계를 지도로 그리기.
5부. 시즌 3 — 언어로 시키는 로봇
걷기에서 팔로, 강화학습에서 모방학습으로. 카메라와 문장으로 로봇을 움직입니다.
- 19. 언어로 시키는 로봇 — 데이터 공장을 차리고, 보기 좋게 실패했습니다 — 데이터 공장을 차리고 첫 정책을 학습시켰더니 loss는 100배 떨어지고 성공률은 0.
- 20. 세 번 기각당한 가설 — “안 본다”에서 “봐도 못 읽는다”까지 — 데이터도, 모델 개방도, 카메라도 아니었다. 정책이 무엇을 보지 않기로 했는가.
- 21. 눈을 붙이다 — 평균은 멀쩡한데 꼬리가 망치고 있었습니다 — 지각을 만들어 붙이고, 학습 라벨의 꼬리를 잘라 오라클급에 도달하기까지.
곁다리와 마무리
- 도중에 만난 것들 — 계획에 없던 발견·사고·선물 일지 — 계획에 없던 발견, 사고, 뜻밖의 선물을 모은 일지.
- 로드맵 — 다음에 해볼 수 있는 것들 — 이 시리즈가 다 하지 못한 것들, 다음에 해볼 수 있는 것들.
- 부록. AI와 함께 따라 하기 — 시키는 법, 되묻는 법 — AI에게 무엇을 어떻게 시키고, 어디서 되물어야 하는가.
- 번외. 넉 달 묵은 버전을 45분 만에 올린 이야기 — 넉 달 묵은 엔진 버전을 45분 만에 올린 이야기(와 반성문).