reBot 로봇팔 시뮬레이션
Seeed가 공개한 설계 모델 그대로의 로봇팔입니다. 관절을 하나씩 돌려 손끝이 어디로 가는지 보고(순기구학), 손끝 목표를 옮기면 관절 각도가 저절로 계산되는 것(역기구학)을 확인해 보세요.
시뮬레이터 준비 중
끌면 시점이 돌고, 휠로 확대합니다. 바닥 격자 한 칸은 10 cm, 빨강·초록·파랑 화살표는 로봇 좌표의 x(앞)·y(왼쪽)·z(위) 방향입니다.
안에서 일어나는 일
- 물리: MuJoCo 물리 엔진이 브라우저에서 1초에 500번 계산합니다. 모양·관절·무게는 Seeed가 공개한 공식 URDF에서 가져왔습니다.
- 모터: 관절 6개와 그리퍼에 위치 제어 모터가 있고, 실제 reBot처럼 중력 보상이 켜져 있어 팔이 처지지 않습니다.
- 순기구학: 관절 각도 6개를 정하면 손끝 위치가 하나로 정해집니다. 왼쪽 위에 손끝 좌표가 mm로 나옵니다.
- 역기구학: 손끝 목표를 주면 1초에 100번, 손끝이 목표에 가까워지는 쪽으로 관절 각도를 조금씩 고칩니다(자코비안을 이용한 감쇠 최소제곱법).
- 집기: 공식 패키지의 MuJoCo용 손가락 충돌 형상으로 실제 물리 마찰로 블록을 집습니다(붙여 주는 보조 없음). 그리퍼를 블록 양옆에 맞추지 않으면 미끄러집니다.
- 자동 동작: "넣기·빼기" 버튼은 블록의 위치와 놓인 각도를 보고, 여러 출발 자세에서 역기구학을 풀어 가장 정확한 관절 자세를 고른 뒤 관절을 함께 부드럽게 움직입니다.
- 카메라: 위 카메라 영상에서 색 덩어리를 찾고, 바닥 보정판(자홍색 표식 4개)으로 구한 식으로 픽셀을 로봇 좌표로 바꿉니다. 블록 윗면이 3 cm 높아서 생기는 원근 오차는 높이 보정으로 줄입니다.
- 작업 범위: 손목 관절 범위 때문에 그리퍼가 똑바로 아래를 보는 자세는 높이 약 15 cm 아래에서만 됩니다. 닿지 않으면 화면에 알려 줍니다.
이 시뮬레이션을 쓰는 차시
| 차시 | 시뮬레이터 활동 |
|---|---|
| 6 | 브라우저 디지털 트윈: 관절·손끝 조작, 작업 범위 찾기, 블록 집어 옮기기 미션 |
| 2 (NexArm) | 동작 녹화·재생(액션 그룹)으로 블록 분류 순서 만들기 |
| 9–10 · NexArm 8–9 | 카메라 탭: 손-눈 보정 → 블록 찾기 → 카메라로 보고 정리하기, 보정 오차와 집기 성공률 기록 |
| 3–4 · reBot 5 | 코드 탭: 좌표 명령·반복문으로 분류 프로그램 만들기 |
| 12–13 | 녹화 탭: 시연 에피소드 모으기와 데이터 점검(실패 시연 골라내기) |
| 7–8 | 순·역기구학: 관절 각도와 손끝 좌표 표 만들기, 손계산 결과를 시뮬레이터로 확인 |
| 5 (NexArm 5–6) | 같은 원리를 다른 로봇팔에 적용하기 전 연습 |
차시 활동은 엔스크린 제안입니다.
출처와 이용 조건
로봇 모델(URDF·메시)은 Seeed Studio가 공개한 reBot-DevArm(CERN-OHL-W-2.0)에서 가져왔습니다. 화면용 메시는 meshoptimizer로 줄였고, 충돌 형상은 볼록 껍질로 바꿨습니다. 시뮬레이터 코드는 엔스크린이 작성했으며 MuJoCo(Apache-2.0)와 three.js(MIT)를 우리 서버에서 불러옵니다. 모터 강성과 감쇠는 엔스크린이 정한 값이라 실제 로봇과 움직임 속도가 다를 수 있습니다.