Chapter 8: 텔레오퍼레이션과 첫 학습 정책 — Leader–Follower 루프 만들기
개요
Teleoperation은 controller pose를 robot에 그대로 stream하는 일이 아니다. Device sample과 clock/tracking status를 bounded command로 바꾸고 robot/task feedback을 operator에게 돌려주는 closed loop다. Frame, scale, clutch, workspace, filter, IK, retargeting, rate, collision, ownership과 stale-input watchdog를 명시해야 한다. Mechanical leader는 mapping ambiguity를 줄이고 VR/optical은 유연하지만 calibration과 tracking loss를 추가한다.
동시에 이 loop는 data production system이다. Camera, operator input, sent action, robot state, calibration, intervention, reset과 outcome이 재구성 가능한 timeline을 가져야 demonstration이 학습에 쓸 수 있다. 가장 작은 학습 exercise는 simple pick/place demonstration을 기록하고 behavior-cloning baseline을 train한 뒤 simulation과 supervised hardware에서 반복 평가하는 것이다. Full RL/VLA/world model은 #S12/#S13으로 넘긴다.
이 장을 읽고 나면... - complete leader–follower packet/feedback loop를 그리고 검증할 수 있다. - VR, Vive, optical hand, glove, joystick, mechanical leader의 failure를 비교할 수 있다. - Human joint angle을 복사하지 않고 gripper/dexterous hand를 retarget할 수 있다. - Intervention/failure가 포함된 synchronized episode를 만들 수 있다. - Separated data와 repeated evaluation을 쓰는 작은 behavior cloning을 수행할 수 있다.
1. Device를 연결하기 전에 contract를 쓴다
Leader-follower loop는 frame, scale, clutch, workspace constraint, filtering, IK/retargeting, rate, watchdog와 stale-input behavior를 정의해야 한다 [1] [2] [3]. Command owner, unit, stamp, tracking confidence, stop와 feedback도 넣는다. Unknown이 있으면 follower는 simulation에 둔다.
Path는 device sample→clock/status→calibrated operator frame→clutch/zero→scale→workspace projection→IK/retarget→limits/collision→follower command→robot/task feedback이다. Clutch는 follower reference를 freeze하며 operator가 recenter하게 한다. Reengage에서 pose jump가 없어야 한다.
| Boundary | 필수 field | PASS | Failure behavior |
|---|---|---|---|
| Device | pose/joints, stamp, valid | latency/log | invalid→authority revoke |
| Mapping | frame, hand, scale, clutch | axis/recenter | hold/stop no jump |
| IK/retarget | model, seed, constraints | reach/singular sweep | scale/reject/retreat |
| Limits | workspace/rate/collision | boundary injection | saturate then stop |
| Command | owner/rate/timeout | drop/freeze test | approved zero/hold |
| Feedback | state/latency | expected response | degraded mode 표시 |
그림 8.1 — Timestamp·frame·clutch·watchdog를 포함한 leader–follower closed loop. IK/Servo와 collision scaling은 safety-rated stop이 아니다. 원본 개념도.
2. 과제와 observability로 device를 고른다
VR/OpenXR controller는 6-DoF pose, button과 natural clutch를 주지만 runtime frame, recenter, loss와 latency를 검증한다 [2]. Vive tracker는 prop/tool proxy에 좋지만 base-station visibility와 tracker-to-tool extrinsic이 필요하다. Leap 계열 optical hand는 worn hardware가 적지만 occlusion, scale, self-contact, rotated calibration failure가 있다 [10].
Glove는 finger state가 풍부하지만 fit, drift, environment, calibration, SDK와 force feedback 부재를 본다. Joystick/SpaceMouse는 low-dimensional이지만 clutch/rate control이 명확해 first Cartesian leader로 좋다. SO-101/OpenArm mechanical leader는 matching follower에서 joint correspondence와 proprioception이 투명하지만 embodiment-specific이고 공간, calibration과 physical bump를 요구한다 [14] [15].
Optical tracking은 낮은 hardware burden과 occlusion/calibration risk를 교환하고, mechanical leader는 embodiment specificity와 correspondence/proprioception을 교환한다 [9] [10] [11] [12]. Universal best는 없다. Task intent를 보존하면서 validity signal이 있는 가장 작은 input space를 고른다.
| Device | 첫 사용 | Risk | 필수 control |
|---|---|---|---|
| Joystick | arm velocity | indirect mapping | deadman/clutch/rate |
| VR | 6-DoF pose | frame/loss | validity/scale/workspace |
| Vive | rigid proxy | occlusion/extrinsic | mount calibration |
| Optical hand | quick pose | occlusion/jitter | confidence/watchdog |
| Glove | fingers | fit/drift | per-user calibration |
| Mechanical | matching data | embodiment/space | joint calibration/stops |
3. Time, frame, scale와 latency를 calibrate한다
Tracking space에서 robot base로 transform을 several pose로 맞춘다. Handedness, quaternion, meter와 tool approach axis를 확인하고 device/mount/operator/robot revision을 저장한다. Recenter마다 mapping epoch가 바뀐다.
Acquisition, transport 후, mapping 후, command send와 follower state에 stamp를 남긴다. Median뿐 아니라 tail latency/jitter를 본다. Raw/filtered signal을 저장해 filter delay를 분리한다. Translation/rotation scale을 따로 정하고 workspace boundary saturation을 operator가 알게 한다.
Tracking loss는 last pose를 replay하지 말고 tested watchdog를 통해 motion authority를 revoke해야 한다 [2] [1]. Maximum age, confidence, missed count와 recovery를 정한다. Occlusion, unplug, crash, frozen stamp, repeated packet과 network loss를 simulation에서 inject한다. Fresh valid sample, clutch reset, operator acknowledgment 뒤에만 recover한다.
증거가 남는 calibration rehearsal
Calibration을 GUI에서 버튼 한 번 누르는 절차로 생각하지 않는다. Robot은 고정하고 tracked leader pose와 mapped marker만 표시한다. Neutral pose 하나, device의 각 축으로 분리한 translation, 각 축을 중심으로 한 rotation을 차례로 기록한다. Mapping 결과를 보여 주기 전에 두 번째 사람이 robot base 기준으로 어느 방향이 나와야 하는지 말하게 한다. 이 간단한 blind check는 swapped axis, sign error, degree/radian 혼동, meter/millimeter 혼동과 한 pose에서만 그럴듯한 tool frame을 찾는다. Device recenter 뒤와 process restart 뒤에도 같은 set을 반복한다. Transform matrix, residual error, device serial, mount revision, operator profile, timestamp와 software version을 묶어 하나의 calibration record로 보존한다.
Hand–eye 관계가 있는 optical device라면 working volume 전체에서 sample을 모은다. 한 평면 또는 한 orientation에서만 맞춘 transform은 table 반대쪽에서 오차가 커질 수 있다. Static point의 position/orientation residual뿐 아니라 여러 위치를 왕복했을 때의 repeatability를 본다. Glove는 operator별 neutral/open/close pose와 fingertip reach를 저장하고, mechanical leader는 zero offset, encoder direction, joint range와 follower 대응 관절을 확인한다. Gripper는 fully open/closed width를 실제 물체 없이 먼저 맞춘다. 이 calibration artifact가 바뀌면 같은 dataset session을 이어 붙이지 말고 새 epoch를 연다.
그다음 dynamic loop를 측정한다. Leader에서 눈에 보이거나 log로 구분되는 step motion을 만들고 acquisition, mapped target, sent command와 follower state timestamp를 비교한다. Stationary segment와 representative motion segment 각각에서 median, 95th/99th percentile age, jitter, packet gap과 effective command frequency를 보고한다. Camera stream, visualization과 recording을 모두 켠 상태에서도 반복한다. Encoding 또는 rendering이 CPU/GPU와 network를 점유하면 빈 화면에서의 latency 값은 실제 experiment를 대표하지 않는다. 서로 다른 computer clock을 쓴다면 synchronization method와 uncertainty도 저장한다. 어느 clock인지 모르는 timestamp는 timing evidence가 아니다.
마지막은 authority drill이다. Simulation에서 천천히 움직이는 동안 clutch release, tracker occlusion/disconnect, frozen timestamp, repeated sequence number, leader process restart와 network interruption을 하나씩 만든다. 각 injection에 대해 ACTIVE → DEGRADED/HOLD → REVOKED 같은 expected state, 허용된 follower output, operator indication과 복귀에 필요한 explicit action을 표로 미리 쓴다. Fresh valid sample이 왔다고 즉시 재시작하지 않는다. Clutch reset, operator acknowledgment와 새로운 relative origin 뒤에만 authority를 돌려준다. Observed transition이 표와 일치하고 pose jump가 없어야 hardware gate를 통과한다.
| Calibration rehearsal | 남길 artifact | NO-GO 신호 |
|---|---|---|
| Known-axis/rotation | raw pose, transform, expected/observed axis | sign·unit·handedness 불명 |
| Workspace sample | residual과 repeatability map | 한 구역에서 error 급증 |
| Dynamic timing | p50/p95/p99 age, jitter, gap | tail 또는 clock 불명 |
| Recenter/restart | mapping epoch와 before/after trace | reengage pose jump |
| Loss injection | state transition과 command trace | stale pose가 authority 유지 |
4. Arm motion을 IK로 제한한다
Pose teleop은 incremental target IK를, velocity teleop은 differential IK를 쓸 수 있다. 둘 다 current state, TCP, limit, collision, singularity와 controller compatibility가 필요하다. Distant pre-grasp는 global plan, bounded adjustment는 local teleop가 맞다.
Differential IK가 responsive teleoperation에서 안전하려면 singularity, joint limit, collision과 discrete-time amplification이 bounded되어야 한다 [4] [5] [1]. Damping/scaling은 amplification을 줄이지 authorization이 아니다. Margin이 끝나면 stop/retreat한다. Sampled feedback delay도 시험한다.
Forbidden hard region, scale-down soft region, normal operating region을 joint/Cartesian에 둔다. Timeout은 measured jitter와 맞되 dangerous accumulation보다 짧아야 한다. Follower interface owner는 하나다.
5. Gripper와 dexterous hand retargeting은 다르다
Parallel gripper는 trigger, pinch distance 또는 leader width 하나를 normalized opening으로 map한다. Open/closed calibration, deadband, force/speed, detection과 stale behavior를 정한다. Arm clutch가 풀렸을 때 finger가 계속 닫히지 않게 한다.
Dexterous hand는 human morphology와 coupling이 다르다. Fingertip position, pairwise distance, palm, aperture, contact intent 또는 synergy 중 task feature를 고른다.
Hand retargeting은 morphology 사이 human joint angle을 맹목적으로 복사하지 말고 task-space 또는 fingertip feasibility를 optimize해야 한다 [6] [7] [8]. Limit, collision, coupling, reach, smoothness와 task weight를 넣고 human input과 realized target을 모두 log한다.
DexUMI는 두 dexterous hand platform에서 평균 86 percent success를 보고하지만 embodiment-specific exoskeleton과 visual adaptation에 의존한다 [12]. Universal transfer가 아니라 careful interface의 근거다. Terry 글은 한국어와 영어다.
ExoStart의 일곱 50-episode task에서 real-student success는 56, 50, 54, 94, 62, 56, 2 percent이며 50 percent를 초과한 task는 다섯 개뿐이다. 또한 control-rate와 contact-model mismatch를 드러낸다 [13]. Nut Unscrew는 정확히 50 percent이고 Bulb Install은 2 percent이며, 논문은 Bulb Install 실패를 MuJoCo soft-contact penetration exploit과 연결한다. 이 mismatch를 commissioning log가 보존해야 한다. Terry 글은 한국어와 영어다.
그림 8.2 — Human-hand demonstration에서 dexterous robot-hand execution으로 옮기는 DexUMI 개요. 출처: Xu et al., 2025, Figure 1.
6. Simulation-first acceptance
- Follower 없이 recorded device stamp/validity를 replay한다.
- Marker를 움직여 axis, scale, clutch, recenter, loss를 본다.
- Kinematic robot에서 workspace/singularity를 sweep한다.
- Physics/collision과 delay, jitter, drop, occlusion, crash를 추가한다.
- Gripper/hand stale/saturation을 별도 시험한다.
- Real robot read-only state/interface를 비교한다.
- Observer/deadman 아래 reduced axis 하나를 실행한다.
- Free-space pose, gripper, light object 순으로 간다.
| Gate | PASS | NO-GO |
|---|---|---|
| Device | valid/stale와 tail latency | frozen pose valid |
| Mapping | axis/clutch/recenter 반복 | jump/handedness error |
| IK | limit/collision/singular behavior | infeasible/unbounded |
| Watchdog | loss가 authority revoke | last command 지속 |
| Real free | reduced tracking | unknown stop/scaling |
| Object | grasp/release/recovery | pinch/drop unknown |
7. Demonstration을 episode로 만든다
Synchronized episode는 observation, action, robot state, timing, calibration version, intervention, reset과 failure reason을 보존해야 한다 [16] [17] [19]. Raw device, mapped target, sent action, follower state, camera/tactile/force, clutch/watchdog, phase/outcome, manifest와 drop counter를 저장한다.
Failure를 삭제하지 말고 tracking loss, infeasible retarget, collision scaling, miss, slip, perception, operator abort, protective stop, ambiguous로 onset/cause를 label한다. Initial training에서 빼더라도 analysis split에 둔다. Intervention은 deployment supervision이 필요한 위치를 보여 준다.
Frame이 아니라 episode와 object/scene 조건으로 split한다. Near-duplicate segment leakage를 막고 action/observation distribution, duration, success, intervention, saturation, missing data, calibration epoch를 확인한다.
| Field | 이유 |
|---|---|
| Raw/mapped/sent action | operator/retarget/controller error 분리 |
| Multiple stamps | age/alignment/latency |
| Calibration/manifest | geometry/semantics 혼합 방지 |
| Clutch/watchdog/intervention | intentional hold와 failure 구분 |
| Phase/outcome/reason | balanced evaluation/recovery |
수집량을 늘리기 전에 episode를 직접 재생한다
처음 다섯 episode를 검토하기 전에는 쉰 개를 모으지 않는다. Contact event 하나를 골라 fingers가 접근하는 camera frame, operator raw input, mapped target, actually sent command, measured joint/gripper response와 force/tactile change를 하나의 timeline에서 재구성한다. 같은 physical event가 stream마다 합리적인 순서로 나타나는지 본다. Clutch interval은 missing action이나 accidental zero가 아니라 intentional state로 표현되어야 한다. Video 옆에 sample age, action saturation, IK feasibility와 collision scaling reason을 같이 plot한다. 눈으로는 성공한 episode도 delayed command나 constant clipping을 학습시킬 수 있다.
Session마다 한 장짜리 collection report를 만든다. Attempted/retained episode 수, success, operator intervention, watchdog event, protective stop, calibration epoch, object/lighting condition, missing stream, maximum timestamp gap과 exclusion reason을 담는다. Main collection 전에 schema를 freeze한다. Field name, unit, image encoding 또는 action convention이 바뀌면 schema version을 올리고 converter를 만들거나 dataset을 분리한다. 조용히 섞으면 later regression이 data, mapping, controller와 model 중 어디에서 왔는지 알 수 없다.
Demonstration quality는 성공률 하나가 아니다. Workspace coverage, approach direction, object pose, grasp aperture, action magnitude와 recovery motion의 분포를 본다. Operator가 어려운 state를 항상 reset해 버리면 policy는 그 state에서 돌아오는 법을 보지 못한다. 반대로 위험한 recovery를 억지로 수집하지 않는다. Safe simulation에서 recovery example을 만들고 real dataset에는 intervention boundary를 명확히 label한다. Train/eval split 뒤에도 object와 calibration epoch별 count가 충분한지 확인한다.
| Episode QA 질문 | 확인할 evidence | 조치 |
|---|---|---|
| Stream이 같은 사건을 가리키는가 | frame/action/state alignment | offset 수정 후 재수집 |
| Mapping이 계속 clipping되는가 | saturation/IK reason histogram | scale/workspace 재설계 |
| Failure가 사라졌는가 | abort/intervention raw log | analysis split에 복원 |
| Split이 독립적인가 | episode/object/session ID | adjacent frame leakage 제거 |
| Session 의미가 같은가 | schema/calibration version | convert 또는 분리 |
8. 가장 작은 learned-policy exercise
Light object 하나, fixed start, camera 하나, gripper action과 short pick/place를 정한다. Stable calibration에서 successful demonstration과 labeled failure를 모은다. LeRobot/robomimic-style offline workflow로 simple behavior cloning을 train한다 [19] [18]. 목표는 data→training→checkpoint→evaluation contract 검증이다.
Training, validation, untouched evaluation episode를 seed/object placement로 나눈다. Preprocess, normalization, architecture, seed, steps, checkpoint, code/data hash를 저장한다. Offline predicted action과 simulation을 본 뒤 clipping, workspace/collision filter, stale rejection, rate limit과 human-held enable을 추가한다.
Diffusion Policy의 46.9 percent relative average benchmark improvement는 새 robot/dataset의 guarantee가 아니다 [20]. Strong model도 wrong frame, mixed calibration, stale image와 unsafe wrapper를 고치지 못한다. Terry 글은 한국어와 영어다.
첫 learned policy는 one successful rollout이 아니라 separated episode, seed, checkpoint와 repeated evaluation을 써야 한다 [18] [19] [20]. Attempt, confidence, intervention, scaling, abort, damage, latency와 failure를 보고한다.
| Stage | Authority | Promotion |
|---|---|---|
| Offline | 없음 | held-out/action sane |
| Simulation | sim | repeated seed/no violation |
| Shadow | real observation/no command | operator와 prediction 비교 |
| Supervised | human enable | bounded command/stop |
| Repeated | fixed scope | predeclared attempts/report |
이는 #S12/#S13 handoff다. RL, VLA, world model, larger data와 autonomy는 별도 evidence가 필요하다.
재현 가능한 first exercise 기록
Training 전에 compact experiment card를 쓴다. Task success predicate, allowed start region, object set, camera/robot calibration ID, observation/action field, control frequency, episode split rule, input horizon과 prohibited deployment condition을 명시한다. “Pick/place 성공” 대신 object가 source zone을 떠나 target zone 안에서 일정 시간 정지하고 robot이 contact를 해제했다는 식으로 판정 규칙을 만든다. Validation은 checkpoint를 선택할 때만 쓰고 untouched evaluation은 선택이 끝난 뒤 연다. Simulation attempt 수와 distinct reset seed 수도 미리 정한다.
Diagnosis에는 세 baseline을 비교한다. 첫째, recorded action을 같은 simulated reset에서 replay한다. 실패하면 environment state, reset determinism 또는 action convention을 먼저 의심한다. 둘째, BC prediction을 open loop 또는 shadow mode로 내되 authority를 주지 않고 operator action과 비교한다. 여기서 divergence가 크면 observation/action alignment, normalization 또는 model 문제다. 셋째, prediction을 teleoperation과 동일한 workspace, collision, rate, stale-observation wrapper를 통해 closed loop simulation에서 실행한다. Wrapper가 계속 clip하면 model이 좋아 보이는 video보다 distribution/scaling mismatch를 먼저 해결한다.
첫 real attempt는 evaluation이 아니라 commissioning gate다. 한 명은 enable을 누르고 다른 observer는 independent stop과 cell boundary를 지킨다. Low speed/force, light object, single attempt, known reset에서 시작하고 예상하지 못한 motion, missing observation, wrapper saturation 또는 operator uncertainty가 있으면 즉시 Chapter 7 gate로 돌아간다. Success video만 남기지 말고 zero-success outcome도 checkpoint, seed, latency와 failure reason과 함께 기록한다. 이 exercise의 목적은 높은 숫자가 아니라 trustworthy data→training→evaluation pipeline이다.
| Exercise 단계 | 질문 | Promotion evidence |
|---|---|---|
| Data freeze | schema와 split이 고정됐나 | manifest/hash/audit report |
| Train | run을 다시 만들 수 있나 | config/seed/checkpoint/log |
| Offline/shadow | action이 합리적인가 | held-out trace/operator compare |
| Closed-loop sim | wrapper violation이 없는가 | repeated seed/failure table |
| Supervised real | stop과 authority가 명확한가 | preflight/observer/attempt log |
그림 8.3 — Episode에서 behavior cloning과 반복 평가로 가는 evidence gate. LeRobot episode 수는 current guidance이지 보편적 threshold가 아니다. 원본 개념도.
9. Failure와 recovery
| 증상 | Layer | Evidence | Next test |
|---|---|---|---|
| clutch jump | mapping | raw/mapped/edge | marker recenter |
| lag/overshoot | timing/filter | end-to-end latency | low-rate sim |
| arm freeze | IK/limit | scale/margin | sim retreat |
| odd fingers | retarget | fingertip error/coupling | static pose suite |
| loss 후 motion | watchdog | valid/stamp/command | real block, loss inject |
| policy fail | split/schema | leakage/calibration | split rebuild |
| one rollout only | evaluation | seeds/failures | repeated trials |
Unexpected real event에서는 authority revoke, log 보존, 새 attempt ID와 Chapter 7 deterministic gate rollback을 한다. Tracking/policy failure는 auto restart하지 않는다.
10. Bounded Codex prompt
Device API, robot description, Servo/controller config와 official docs를 read-only로 읽어라.
Frame, unit, stamp, validity, clutch, scale, workspace, IK/retarget, limits, owner, rate,
watchdog, feedback, stop/recovery contract를 만들고 unknown과 fake test를 표시하라.
Hardware 연결/수정/enable을 하지 말라.
Simulator에서 axis, recenter/clutch, singularity, joint/workspace, collision scaling,
delay/reorder/freeze, tracking loss, crash, timeout을 test하라. Real IP/plugin/enable,
limit bypass, auto restart 금지. Failure artifact가 reviewable하면 완료다.
Episode dataset의 stamp, schema, calibration epoch, raw/mapped/sent action, missing sample,
intervention/failure, episode split, duplicate leakage와 distribution을 감사하라. Blocker와
minimal behavior-cloning/evaluation plan을 반환하고 deployment-ready라 주장하지 말라.
11. 근거 등급, 논쟁점과 한계
Device/LeRobot/MoveIt은 official documentation, IK·teleoperation·retargeting·imitation은 primary paper를 썼다. Product interface는 independent latency/ergonomics ranking이 아니다. Success rate는 platform/task/data/evaluation에 묶인다.
Optical 대 mechanical leader는 조건부다. Optical은 flexible하지만 occlusion/calibration에 약하고 mechanical은 correspondence가 좋지만 embodiment-specific이다. Gripper에는 scalar가 충분하고 dexterous task만 complex interface를 정당화한다.
Teleop data가 자동 policy-ready는 아니다. Correction, latency, clutch와 task selection이 distribution을 편향한다. Behavior cloning은 demonstration 밖에서 error가 누적된다 [21]. Intervention/on-policy data는 다음 연구 scope다.
한계: version은 2026-07-14 이후 바뀐다. Generic latency/watchdog threshold는 없다. Haptic feedback은 보장되지 않는다. Simulation은 fatigue/contact를 검증하지 않는다. Full RL/VLA/world model은 범위 밖이고 local safety review가 authoritative다.
제조 셀 적용 체크포인트
VR pick cell은 free-space arm부터 승인한다. Tracker-base calibration, clutch, scale, workspace, Servo limit, watchdog, observer와 stop을 고정한다. Gripper는 separate test 뒤, light object는 그 뒤다. episode_id, device/calibration, raw/mapped/sent action, stamps, validity, clutch, IK/scale reason, follower, camera, gripper, intervention, safety/fault, phase/outcome을 log한다.
| Gate | PASS | Owner |
|---|---|---|
| Device/time | loss/latency-tail | teleop |
| Frame/map | axis/recenter calibration | calibration |
| IK/limits | workspace/singular/collision | controls |
| Watchdog | frozen/lost revoke | integration |
| Dataset | synchronized/split audit | data |
| Policy | repeated gated evaluation | learning |
| Real | human enable/independent stop | safety |
다음에 배울 것
Loop와 first policy가 auditable해졌다. Chapter 9는 custom URDF의 kinematic calibration, TCP/camera alignment, dynamics/actuator identification, contact validation과 sim-to-real error budget을 다룬다. Teleop data 품질은 model/calibration보다 좋을 수 없다.
Tested tracking-loss stop, no-jump clutch, reproducible episode와 repeated simulation evaluation이 없으면 넘어가지 않는다. Attractive rollout 하나는 complete loop가 아니다.
주석이 있는 연구 경로
아래 자료는 leader–follower interface와 policy-quality data를 더 깊이 확인하기 위한 경로다. 성공률을 빌려오는 목록이 아니라, 어떤 가정·interface·실험을 원문에서 비교해야 하는지에 따라 묶었다. 각 결과는 해당 platform과 protocol에 한정해 읽는다.
참고문헌
- MoveIt (2025). Servo Tutorial. Official docs.
- Khronos (2024). OpenXR 1.1. Specification.
- Foote, T. (2013). tf. DOI: 10.1109/TePRA.2013.6556373.
- Whitney, D. (1969). Resolved Motion Rate Control. DOI: 10.1109/TMMS.1969.299896.
- Nakamura, Y., & Hanafusa, H. (1986). Singularity-Robust IK. DOI: 10.1115/1.3143764. [Nakamura & Hanafusa, 1986]
- Qin, Y., et al. (2023). AnyTeleop. DOI: 10.15607/RSS.2023.XIX.015.
- NVIDIA (2025). SPIDER. arXiv:2511.09484.
- Lee, et al. (2026). DexTwist. arXiv:2605.12182.
- Ding, et al. (2024). Bunny-VisionPro. arXiv:2407.03162.
- Ultraleap (2024). Calibration Notice. Official notice.
- Fang, et al. (2025). DEXOP. arXiv:2509.04441.
- Xu, M., et al. (2025). DexUMI. PMLR.
- Si, et al. (2025). ExoStart. arXiv:2506.11775.
- Hugging Face (2025). SO-101. Official docs.
- OpenArm (2026). OpenArm. Official docs.
- Hugging Face (2026a). Teleop Processors. Official docs.
- Hugging Face (2026b). HIL Collection. Official docs.
- Hugging Face (2026c). Bring Policies. Official docs.
- Mandlekar, A., et al. (2021). robomimic. arXiv:2108.03298.
- Chi, C., et al. (2023). Diffusion Policy. arXiv:2303.04137.
- Argall, B., et al. (2009). Robot Learning from Demonstration. DOI: 10.1016/j.robot.2008.10.024.