NexArm 로봇팔 시뮬레이션
5축 NexArm 로봇팔입니다. 관절을 하나씩 돌려 손끝이 어디로 가는지 보고(순기구학), 손끝 목표를 옮기면 관절 각도가 저절로 계산되는 것(역기구학)을 확인해 보세요.
시뮬레이터 준비 중
끌면 시점이 돌고, 휠로 확대합니다. 바닥 격자 한 칸은 10 cm, 빨강·초록·파랑 화살표는 로봇 좌표의 x(앞)·y(왼쪽)·z(위) 방향입니다.
안에서 일어나는 일
- 물리: MuJoCo 물리 엔진이 브라우저에서 1초에 500번 계산합니다. 관절 5개(밑동·어깨·팔꿈치·손목 굽힘·손목 비틀기)와 랙·피니언 그리퍼에 위치 제어 모터가 있습니다.
- 중력 보상: 실물 서보가 자세를 꽉 잡는 것처럼 팔이 처지지 않게 했습니다.
- 순기구학: 관절 각도 5개를 정하면 손끝 위치가 하나로 정해집니다. 왼쪽 위에 손끝 좌표가 mm로 나옵니다.
- 역기구학: 손끝 목표를 주면 1초에 100번, 손끝이 목표에 가까워지는 쪽으로 관절 각도를 조금씩 고칩니다(자코비안을 이용한 감쇠 최소제곱법). 관절이 5개라 "아래 보기"와 손 방향을 함께 맞추는 데 손목 비틀기를 씁니다.
- 집기: 두 손가락이 함께 움직이는 평행 그리퍼(최대 51 mm)로, 붙여 주는 보조 없이 실제 마찰로 블록을 집습니다.
- 카메라: 위 카메라 영상에서 색 덩어리를 찾고, 바닥 보정판(자홍색 표식 4개)으로 구한 식으로 픽셀을 로봇 좌표로 바꿉니다(실물은 K230 비전 모듈).
- 작업 범위: 손목이 길어 그리퍼를 똑바로 세운 자세는 밑동에서 약 30 cm, 높이 약 10 cm 안쪽에서만 됩니다. 닿지 않으면 화면에 알려 줍니다.
이 시뮬레이션을 쓰는 차시
| 차시 | 시뮬레이터 활동 |
|---|---|
| 2 | 녹화 탭: 동작 녹화·재생(액션 그룹)으로 블록 옮기는 순서 만들기 |
| 5–6 | 직접 조작 탭: 관절 각도와 손끝 좌표 표 만들기, 손계산 결과를 시뮬레이터로 확인 |
| 8–9 | 카메라 탭: 손-눈 보정 → 블록 찾기 → 색별 분류, 보정 오차와 성공률 기록 |
| 11–12 | 코드 탭: 좌표 명령·반복문으로 집기·쌓기 프로그램 만들기 |
| 14–16 | 녹화 탭: 시연 에피소드 모으기와 데이터 점검(실패 시연 골라내기) |
차시 활동은 엔스크린 제안입니다. 실물 수업 전 연습과 장비가 모자랄 때 대신 쓰는 용도입니다.
출처와 이용 조건
로봇 모델(MuJoCo 모델·메시)은 개인 공개 저장소 tylerchu306/arm-manipulation에서 가져왔습니다. 화면용 메시는 meshoptimizer로 줄였고, 충돌 형상은 볼록 껍질(팔)과 상자(손가락)로 바꿨으며, 좌표를 밑동 기준으로 옮겼습니다. Hiwonder 공식 모델은 Hiwonder/NexArm에 있습니다. 시뮬레이터 코드는 엔스크린이 작성했으며 MuJoCo(Apache-2.0)와 three.js(MIT)를 우리 서버에서 불러옵니다. 모터 강성·질량은 추정값이라 실제 로봇과 움직임 속도가 다를 수 있습니다.
허락 전 내부 검토: 모델 저장소에 라이선스와 메시 출처 표시가 없습니다. 외부 공개 전에 작성자와 Hiwonder에 확인하거나, 공식 모델로 다시 구성합니다.