Microduck 시뮬레이션
실제 로봇에 들어가는 신경망 정책이 브라우저 안에서 1초에 50번 오리의 관절 14개를 움직입니다. 설치 없이, 로봇 없이 걷고 앉고 공을 차 보세요.
바닥을 클릭하면 그 자리로 걸어갑니다. 끌면 시점이 돌고, 휠로 확대합니다. 화면이 느리면 브라우저 창을 줄여 보세요. 시뮬레이션 %가 100에 가까우면 실제 시간과 같은 속도입니다.
신경망이 내는 답 (관절 14개)
막대는 정책이 매 순간 내는 출력입니다. 기본 자세에서 각 관절을 얼마나 더 굽힐지(오른쪽 +, 왼쪽 −)를 뜻합니다. 걷기·앉기·공차기마다 전혀 다른 신경망이 같은 14칸을 채웁니다.
안에서 일어나는 일
- 물리: MuJoCo 물리 엔진이 웹어셈블리로 브라우저에서 돕니다. 로봇 모델은 실제 로봇과 같은 MJCF 파일에서 만들었습니다.
- 감각 61개: 몸의 회전 속도 3, 중력 방향 3, 관절 각도 14, 관절 속도 14, 바로 전 출력 14, 명령(가고 싶은 속도·방향) 13.
- 판단: 학습된 신경망(61 → 512 → 256 → 128 → 14)이 관절 14개의 목표 각도를 냅니다. 1초에 50번 반복합니다.
- 동작마다 다른 신경망: 걷기, 앉기, 공차기, 구르기는 각각 따로 강화학습한 정책입니다. 버튼을 누르면 정책이 바뀝니다.
- 같은 정책, 다른 몸: 이 정책들은 실제 Microduck에도 그대로 올라갑니다. 시뮬레이션과 실제가 어디서 다르게 움직이는지가 수업 주제가 됩니다(sim2real).
이 시뮬레이션을 쓰는 차시
| 차시 | 단원 | 시뮬레이터 활동 |
|---|---|---|
| 2 | 일곱 가지 동작은 모두 신경망 | 버튼마다 바뀌는 동작이 각각 다른 정책이라는 것, 막대 모양이 동작마다 다르다는 것 확인하기 |
| 4–5 | 보상으로 배우는 AI | 바닥 클릭으로 목표까지 걸어가기, 넘어지는 조건(공에 걸림, 급회전) 찾기 |
| 6–7 | 디지털 트윈 | 같은 동작을 시뮬레이션과 실제 로봇에서 해 보고 다른 점 기록하기 |
| 13–14 | 오리 미니 경기 | 로봇 없이 공차기 작전 연습 |
| 15–16 | 새 동작 제안 발표 | 발표 때 기존 동작 시연 |
로봇이 도착하기 전이나 로봇 수가 모자랄 때 학생 1인 1화면으로 같은 활동을 할 수 있습니다. 차시 활동은 엔스크린 제안입니다.
로봇 모델(MJCF)과 학습된 정책은 Pollen Robotics가 Apache-2.0으로 공개한 microduck_rl과 microduck-policies에서 가져왔고, 화면용 3D 모양은 가볍게 줄였습니다. 시뮬레이터 코드는 엔스크린이 새로 작성했으며 물리 엔진 MuJoCo(Apache-2.0)와 three.js(MIT)를 우리 서버에서 불러옵니다. 외부 서버나 다른 접속자와 연결하지 않습니다.
실제 로봇 학습에 쓰인 서보 모델(BAM) 대신 MuJoCo 기본 위치 제어를 쓰므로 실제 로봇·공식 학습 환경과 걸음이 조금 다를 수 있습니다. 3D 모델 선택의 "Pollen 공식 GLB"는 Pollen 샌드박스의 모델 파일로, 사용 허락을 받기 전까지 내부 검토용입니다. Pollen 공식 샌드박스는 여기에서 볼 수 있습니다(고사양, 다른 접속자의 오리가 함께 보임).