尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
웹캠으로 보여 준 시범만으로 시뮬레이션 로봇팔(SO-101)을 가르치고, 웹캠의 깊이 오차가 모방 학습 성공률을 얼마나 깎아 먹는지 재는 프로젝트. Teaching a simulated SO-101 arm from webcam hand demonstrations, and measuring how monocular depth error affects imitation-learning success. 진행 중 (1단계: 웹캠 → 시뮬레이션 SO-101 조종). 개발 중이라 아직 라이선스를 정하지 않았다(모든 권리 보유: 코드를 볼 수는 있지만 복사·수정·재배포는 허락하지 않는다). 프로젝트가 끝나면 정한다. third_party/ 안의 SO-101 모델과 내려받아 쓰는 모델은 각자의 라이선스(Apache-2.0)를 따른다.查看完整 README ↗
웹캠 한 대로 보여 준 시범으로 시뮬레이션 로봇팔(SO-101)을 가르치고, 웹캠의 깊이 오차가 모방 학습 결과에 무엇을 하는지 잰 프로젝트.
Teaching a simulated SO-101 arm from webcam hand demonstrations, and measuring what monocular depth error does to imitation learning.
보통 SO-100/101 로봇팔은 조종용 팔을 하나 더 두고 시범을 보여 가르친다. 노트북 웹캠만으로 손을 추적해 시범을 모으면 장비는 싸지만, 한 대의 카메라는 손까지의 거리(깊이)를 손 크기로 짐작해야 해서 틀린다. 이 깊이 오차가 학습한 로봇의 성공률을 얼마나 깎는지, 보정하면 얼마나 돌아오는지를 잰다.
웹캠 조종 → 시뮬레이션 → ACT 학습 파이프라인 자체는 이미 있었다(예: handrobot). 찾은 범위에서(2026-10-03 인용 487편 추적, 2026-10-07 재확인) 단안 카메라 조종이 조종 성능에서 손해라는 비교(AnyTeleop, TeleOpBench)가 있었다. 단안 영상으로 추정한 시범이 학습 성공률을 깎는다는 결과도 수술 로봇 분야에 있었다(SurgiPose, IROS 2025, 깊이 방향 오차가 가장 큼). 하지만 웹캠 손 조종 시범에서 깊이 오차의 몫을 통제된 비교로 떼어 내고, 보정 효과를 다른 과제로 재현해 본 연구는 찾지 못했다 — docs/00-research.md, docs/07-related-work-v2.md.
과제: 3 cm 큐브를 집어 표시된 목표 위에 내려놓기(MuJoCo, SO-101). 시범용 배치 50개와 평가용 배치 100개는 고정. 정책은 LeRobot ACT 기본값.
| 조건 | 시범 | 깊이 |
|---|---|---|
| ① | 스크립트(정답 위치를 아는 프로그램) | — |
| ② | 사람, 웹캠 | MediaPipe 손 크기로 추정 (오차 그대로) |
| ③ | 사람, 웹캠 | ② + 손 자세 특징으로 치우침 보정 (CPU 실시간) |
| ④ / ④0 | 가상 조작자(②·③과 같은 조종 코드) | 실측 깊이 오차 주입 / 오차 없음 |
| ⑤ | 사람, 웹캠 + 손목 인쇄 마커 | 마커로 측정 (자세에 따른 오차 거의 없음) |
재현 과제(쌓기): 빨간 큐브를 초록 받침 블록(4 cm) 위에 올리기. ①·②·③만, ②·③ 시범 50개씩. 녹화 전에 시드 수·검정·판정 기준을 고정했다(docs/13-stacking-plan.md).
시범 녹화: 시범자 1이 270개(옮기기 ② 70·③ 50·⑤ 50, 쌓기 ②·③ 100), 시범자 2가 옮기기 ②·③ 20번씩, 녹화 중 조건은 화면에 표시하지 않음, 연습 효과를 상쇄하려고 블록 단위로 번갈아 녹화. 웹캠 영상은 저장하지 않고, 데이터셋 이미지는 기록된 숫자로 다시 그린 시뮬레이션 카메라 화면뿐이다.
연구 질문에 대한 답
처음 보는 평가 배치 100개 중 성공, 10만 스텝 학습(②·③ 시드 5개, 나머지 3개 평균):
| ④0 가상, 오차 없음 | ① 스크립트 | ④ 가상 + 오차 | ⑤ 웹캠 + 마커 | ③ 웹캠 + 보정 | ② 웹캠 |
|---|---|---|---|---|---|
| 96.7 | 92.7 | 89.3 | 85.3 | 84.4 | 76.6 |
한계: 시범자 2명(오른손), 과제 2개(옮기기, 쌓기는 보정 효과 재현용), 시뮬레이션만.
uv 설치 후 (Python 3.12, .python-version):
uv run python scripts/teleop.py # 웹캠으로 조종해 보기 (영상 저장 안 함)
uv run python scripts/teleop.py --depth-correction # 조건 ③ 깊이 보정 켜기
uv run python scripts/record_demos.py # 시범 녹화 (조건 ②·③ 번갈아, 이어 하기 지원)
uv run python scripts/build_dataset.py scripted --name cond1_scripted # 조건 ① 데이터셋
uv run python scripts/eval_policy.py <Hub 모델 또는 로컬 폴더> --n 100 # 정책 평가
학습은 GPU 대여 서버에서 runpod/run_m9.sh(학습 + 평가 + 결과 업로드, 할 일 목록 runpod/jobs_*.txt). 분석: scripts/analyze_m9.py, scripts/analyze_action_divergence.py, scripts/probe_policy_grasp.py.
| 폴더 | 내용 |
|---|---|
src/webcam_teach_robot/ | 손 추적, 역기구학, 조종 처리, 깊이 보정, 손목 마커, 가상 조작자, 과제 장면, 데이터셋 |
scripts/ | 측정·조종·녹화·데이터셋·평가·분석 |
measurements/ | 깊이 측정·조종·시범 녹화 기록 (숫자만) |
experiments/ | 배치 목록, 평가 결과, 분석 요약 |
docs/ | 단계별 기록 |
measurements/, experiments/)과 Hugging Face Hub 데이터셋은 CC BY 4.0이다(LICENSE-DATA.md). 웹캠 영상이나 사람 이미지는 없고, 숫자와 그 숫자로 다시 그린 시뮬레이션 화면뿐이다.third_party/ 안의 SO-101 모델과 내려받아 쓰는 손 추적 모델은 각자의 라이선스(Apache-2.0)를 따른다.공개 데이터셋 (Hub, kheechan04/webcam-teach-robot-<이름>): cond1-scripted, cond2-webcam, cond3-webcam-corrected, cond4-depth-error, cond4z-no-error, cond4h-error-half, cond4d-error-double, cond5-webcam-marker, cond2-p2, cond3-p2, stack1-scripted, stack2-webcam, stack3-webcam-corrected, 평가 결과·서버 기록 m9-results.
robotstudio_so101 (Apache-2.0). 받은 커밋과 라이선스 파일은 third_party/README.md.hand_landmarker.task (Apache-2.0, 모델 카드에 명시). 실행 시 자동으로 내려받고 저장소에는 넣지 않는다.