XGO-Rider 균형 시뮬레이션
XGO-Rider와 XGO-Rider2는 몸체·다리·바퀴 구조가 같습니다(제어기만 micro:bit / 라즈베리파이). 공개 치수로 만든 단순화 모델로 조종·코스 미션·균형 제어 실험을 해 보세요.
시뮬레이터 준비 중
끌면 시점이 돌고, 휠로 확대합니다. 바닥 격자 한 칸은 10 cm입니다. 카메라는 로봇을 따라갑니다.
안에서 일어나는 일
- 물리: MuJoCo 물리 엔진이 브라우저에서 1초에 500번 계산합니다. 공개 CAD가 없어 공개 사양(135×118×116~158 mm, 600 g, 다리 서보 4.5 kg·cm, 허브 모터 0.1 N·m)으로 엔스크린이 만든 단순화 모델입니다. 다리는 "서보 + 연동 링크"로 바퀴가 몸 바로 아래를 오르내리는 구조로 흉내 냈습니다.
- 안쪽 루프 (기울기 PD): IMU로 잰 기울기와 기울어지는 속도로 바퀴 토크를 정합니다. 기울어진 쪽으로 바퀴를 굴려 무게중심 밑으로 들어갑니다(역진자).
- 바깥 루프 (속도 PI): 원하는 속도와 실제 속도의 차이로 "목표 기울기"를 정합니다. 앞으로 가려면 먼저 앞으로 기울어야 합니다.
- 회전·직진: 좌우 바퀴 토크 차이로 돌고, 방향 유지를 켜면 밀려도 원래 방향으로 돌아옵니다.
- 다리: 키를 바꾸면 다리 관절 각도를 미리 계산한 표에서 찾아 서보에 보냅니다. 롤 보정은 기울어진 쪽 다리를 늘리거나 줄여 몸을 수평으로 맞춥니다.
- 기계 영점: 무게중심이 바퀴 축 바로 위에 오는 기울기를 키마다 계산해 둡니다(실물의 '보정' 단계).
이 시뮬레이션을 쓰는 차시
| 차시 | 시뮬레이터 활동 |
|---|---|
| Rider 1 | 해 보기: 바퀴 달린 두 다리 로봇이 서 있는 원리(역진자), 균형 제어 끄고 켜기 |
| Rider 3 | 키 바꾸기 슬라이더와 낮은 문 미션 |
| Rider 4–5 | 균형 실험실: 기울기 그래프와 "오뚝이처럼 되돌아오기"(밀기 버튼) |
| Rider 6–8 | 코드: 거리·회전 명령으로 사각형·미션 길 달리기 |
| Rider2 4–5 | 코드 "기울기 기록하기": 달릴 때와 멈출 때 기울기 비교 |
| Rider2 6–10 | ① P만 → ② PD → ③ 속도 루프: 2중 루프 PID 이득 실험 |
| Rider2 11 | 키를 바꿔도 균형, 롤 보정 켜고 끄기 |
차시 활동은 엔스크린 제안입니다. 실물 수업 전 연습과 장비가 모자랄 때 대신 쓰는 용도입니다.
출처와 이용 조건
단순화 모델: Luwu·elecfreaks의 공식 3D 모델이 아닙니다. 제조사가 공개한다고 밝힌 구조 STP 파일의 내려받기 위치를 찾지 못해 요청 중이며, 받으면 실물 모양으로 바꿉니다. 실물의 다리 링크 구조·무게 배분과 다를 수 있습니다.
균형 제어기(2중 루프 PID)와 시뮬레이터 코드는 엔스크린이 작성했으며 MuJoCo(Apache-2.0)와 three.js(MIT)를 우리 서버에서 불러옵니다. 이득값은 시뮬레이션용이라 실물 이득과 다릅니다.