Chapter 4: 학습의 원료를 만든다 — Teleoperation과 Dataset Engineering
개요
Chapter 3의 접촉 제어기는 제한된 pose, velocity, force reference를 받아 로봇과 환경 사이의 상호작용을 안정화했습니다. 이제 사람 operator가 그 reference를 어떻게 만들었는지, 카메라가 실제로 어느 시각의 장면을 보았는지, 어떤 command가 safety projection을 통과해 robot에 전달됐는지를 학습 가능한 기록으로 바꿉니다. 좋은 dataset은 성공 영상 모음이 아닙니다. 실행을 다시 설명하고, 실패를 재현하며, 새 정책의 입력과 출력을 감사할 수 있는 versioned execution record입니다.
episode 수만 늘리면 서로 다른 calibration, 느려진 camera, operator별 습관, intervention 직전의 위험 상태가 한 폴더 안에서 섞일 수 있습니다. 그런 dataset으로 학습한 policy가 실패하면 원인이 model인지, action mapping인지, clock drift인지 분리하기 어렵습니다. 이 장의 목표는 더 많은 시범보다 먼저 같은 의미를 가진 시범을 만드는 것입니다.
근거 상태 주의: LeRobotDataset v3의 Parquet·video·metadata 분리와 processor 구조는 2026-07-15에 확인한 공식 문서의 현재 동작입니다 [18] [19]. calibration epoch, raw/mapped/sent action, clock uncertainty, protective stop, reset reason, causal split, replay verdict를 한 schema로 묶는 것은 이 책의 공학적 합성입니다. 특정 robot의 port, device ID, command, control rate, safety limit는 여기서 권고하지 않습니다. main 문서는 바뀔 수 있으므로 실제 구현은 검증한 release 또는 commit을 고정해야 합니다.
이 장을 읽고 나면... - operator, teleoperator device, mapper, safety supervisor, robot controller, camera의 interface와 authority를 분리할 수 있습니다. - raw action, mapped action, sent action을 구분하고 unit·sign·frame·saturation을 왕복 시험할 수 있습니다. - event time, arrival time, clock uncertainty와 calibration epoch를 episode에 남길 수 있습니다. - intervention, watchdog, protective stop, reset, failure를 학습 label과 안전 사건으로 동시에 보존할 수 있습니다. - object·scene·operator·calibration 단위 split과 replay QA를 통과한 dataset release를 만들 수 있습니다.
실험 질문은 다음과 같습니다. 한 명의 operator가 wrist camera와 scene camera를 보며 6/7-DoF arm과 parallel gripper로 peg-like insertion을 시범 보일 때, 나중에 ACT가 “사람이 의도한 동작”과 “실제로 robot에 전달된 동작”을 혼동하지 않도록 어떤 episode record와 release gate가 필요한가?
1. Teleoperation을 command가 아니라 닫힌 interface로 본다
텔레오퍼레이션(원격조작)은 leader arm이나 SpaceMouse 값을 joint command로 복사하는 한 줄짜리 변환이 아닙니다. 사람은 camera와 force cue를 보고 입력을 만들고, mapper는 이를 robot embodiment에 맞추며, feasibility와 safety 계층은 실행 가능한 범위로 제한하고, controller는 그 결과를 일정한 deadline 안에서 소비합니다. network, display, camera exposure, retargeting, controller가 모두 loop의 동특성을 바꿉니다. 고전 teleoperation 문헌이 delay와 stability를 독립적인 설계 문제로 다룬 이유도 여기에 있습니다 [4] [5].
이 장에서 operator는 의도 제공자, teleoperator device는 측정 장치, mapper는 표현 변환기, safety supervisor는 motion authority 제한자, robot controller는 실행자입니다. recorder는 이들 중 어느 것도 대신하지 않습니다. recorder의 임무는 각 경계를 통과한 값과 결정을 같은 episode timeline 위에 남기는 것입니다.
operator intent
↓
teleoperator raw sample ── device clock, clutch, mode
↓
mapping / retargeting ─── frame, scale, unit, sign, filter
↓
constraint projection ─── joint/workspace/rate/collision/force gate
↓
sent action ───────────── owner, deadline, sequence, validity
↓
vendor or real-time controller → robot → cameras / proprioception / force
↑ │
└──────────── display and feedback ──────┘
independent safety supervisor:
watchdog · protective stop · E-stop · authority transition
recorder:
every boundary value + event time + arrival time + provenance
1.1 먼저 owner–rate–deadline–failure matrix를 만든다
한 stream에 fps: 30을 쓰는 것으로 시간 계약이 끝나지 않습니다. camera가 30 Hz여도 exposure midpoint, driver delivery, decode 완료 시각은 다릅니다. teleoperator가 100 Hz로 sample을 만들고 command sender가 50 Hz로 downsample할 수도 있습니다. vendor controller는 더 빠른 inner loop를 자체 clock으로 돌릴 수 있습니다. 따라서 dataset 설계 전에 다음 표를 실제 cell 값으로 채웁니다.
| 경계 | 소유자와 출력 | 시간 기록 | deadline 위반 시 | dataset에 남길 값 |
|---|---|---|---|---|
| operator → device | 사람; raw axes·button·clutch | device event time, host arrival time | 입력 hold 또는 authority 해제 | raw sample, mode, clutch, sequence |
| device → mapper | teleop process; mapped pose/joint delta | mapping start/end, config hash | sample drop, stale 표시 | raw/mapped pair, frame, unit, scale |
| mapper → safety | mapper; proposed command | proposal stamp, validity horizon | reject 또는 bounded hold | proposed action, reject reason |
| safety → controller | supervisor; sent action | send/ack time, deadline | safe hold, controlled stop | sent action, projection delta, authority |
| sensor → recorder | camera/robot driver; observation | sensor event time, arrival time | episode quality flag | value/frame ID, clock domain, uncertainty |
| controller → robot | vendor/RT owner; setpoint | controller clock if exposed | vendor-defined fault path | mode, status, watchdog, stop code |
rate는 목표값과 실측 분포를 함께 기록합니다. 평균만으로는 burst와 긴 tail을 숨깁니다. 최소한 inter-arrival time의 median, 높은 percentile, 최대 gap, drop·duplicate·reorder 수를 episode별로 냅니다. 이 값은 policy 성능 수치가 아니라 dataset 건강 지표입니다.
1.2 capture interface는 embodiment 선택이다
single-arm + parallel-gripper의 beginner runbook에서는 이미 commissioning한 leader–follower 장치나 제한된 Cartesian input이 기본 후보입니다. UMI는 handheld interface를 통해 in-the-wild 시범 수집과 embodiment 연결을 탐구하고 [7], AnyTeleop은 vision 기반 arm–hand retargeting 문제를 다루며 [6], DexCap과 FastUMI는 portable capture의 다른 설계점을 제시합니다 [10] [11]. Bunny-VisionPro, DOGlove, DexUMI는 bimanual, dexterous, haptic 또는 exoskeleton branch를 보여줍니다 [12] [15] [16].
하지만 이 이름들은 성능 순위가 아닙니다. 아래 표는 이 책의 scope decision이며, source packet의 장비 간 일반 우열은 아직 exact primary locator로 검증되지 않았습니다. 따라서 portable·dexterous·bimanual·haptic system이 서로 바꿔 쓸 수 없다는 문장은 platform claim이 아니라, action dimension과 feedback channel이 달라지면 schema도 달라진다는 인터페이스 규칙으로 읽어야 합니다.
| capture branch | 얻는 신호 | 추가해야 할 계약 | S12 기본값인가 |
|---|---|---|---|
| leader–follower arm | joint pose, gripper state, clutch | joint correspondence, zero, scale, force backdrive | 예, 이미 commissioning된 경우 |
| Cartesian 6-DoF device | pose/twist increment, buttons | reference frame, clutch, scale, singularity/workspace behavior | 제한된 free-space 시범의 후보 |
| handheld/mobile interface | device pose, onboard video | localization quality, camera–tool relation, retargeting | portable collection 비교 branch |
| vision/XR hand tracking | hand/arm keypoints | occlusion, anthropomorphic retargeting, collision, latency | bimanual/dexterous advanced branch |
| haptic glove/exoskeleton | joint/force cue | force calibration, fit, feedback stability, hand-specific mapping | 다지·촉각 연구 branch |
장비를 고를 때 “자연스럽다”는 인상보다 네 가지 artifact를 요구합니다. 첫째, input–robot correspondence 표. 둘째, clutch와 mode transition state machine. 셋째, saturation 직전과 이후를 포함한 왕복 시험. 넷째, 10분 이상 수집 중 clock·thermal·network drift log입니다. 이 네 가지가 없으면 operator 숙련도가 mapping 오류를 가릴 수 있습니다.
2. raw, mapped, sent action을 분리한다
학습용 action 하나만 저장하면 가장 중요한 원인 변수가 사라집니다. operator가 낸 raw 값, embodiment mapper가 바꾼 mapped 값, safety와 controller interface를 통과한 sent 값은 서로 다를 수 있습니다. 특히 workspace projection, velocity clamp, collision stop, clutch, smoothing이 개입하면 “사람이 무엇을 하려 했는가”와 “robot이 무엇을 실행했는가”는 같은 target이 아닙니다.
2.1 세 action의 의미
action.raw: device coordinate에서 읽은 원본. axis, button, clutch, tracking confidence와 device sequence를 포함합니다.action.mapped: robot joint 또는 Cartesian frame으로 변환한 proposal. unit, sign, reference frame, scale, filter, mapper version을 포함합니다.action.sent: constraint projection과 rate limiting 뒤 controller에 보낸 command. controller mode, validity, projection delta, reject reason을 포함합니다.state.measured: 같은 시점이라고 가정하지 않은 robot feedback. position, velocity, effort, gripper, status와 event time을 포함합니다.
LeRobot의 현재 processor 문서는 robot hardware value, model-compatible transition, robot action 사이의 변환을 pipeline으로 나눕니다 [19]. 공식 문서가 이 분리를 설명한다는 점은 검증됐지만, unit·sign·saturation·round-trip test는 S12가 추가한 validation requirement입니다. custom processor가 있다는 사실만으로 의미가 맞는 것은 아닙니다.
processor마다 다음 네 시험을 독립적으로 수행합니다.
- unit test: degree/radian, meter/millimeter, normalized/physical range를 golden vector로 확인합니다.
- sign and ordering test: 한 축씩 양의 작은 입력을 주고 기대 joint 또는 Cartesian 방향만 바뀌는지 봅니다.
- saturation test: limit 안·경계·밖 입력에서 mapped와 sent 차이, reject code가 예상대로 남는지 확인합니다.
- round-trip test: 허용 범위에서 encode–decode 또는 forward–inverse mapping 오차를 측정하고 비가역 구간을 표시합니다.
실제 hardware를 움직일 필요는 없습니다. 첫 단계는 recorded sample과 simulator/stub controller로 수행합니다. hardware 확인은 reduced range, low speed, clear workspace, spotter, 독립 stop path를 가진 별도 gate입니다.
2.2 episode schema는 tensor보다 의미를 먼저 고정한다
재사용 가능한 episode schema는 observation/action semantics, timestamp, calibration identity, reset, failure, intervention, replay status를 frame tensor와 함께 보존해야 합니다. 다만 이것은 UMI, DROID와 LeRobot 공식 문서에서 확인한 요소 위에 S12 provenance를 더한 합성이지, 어느 한 source가 이 전체 schema를 표준으로 규정했다는 뜻은 아닙니다 [7] [8] [19] [20].
다음은 최소 logical schema입니다. storage format과 column name은 tool version에 맞춰 바꿀 수 있지만 의미와 provenance는 버리지 않습니다.
| namespace | 필수 예 | 왜 필요한가 |
|---|---|---|
episode |
UUID, task version, start/end, termination, reset reason | episode 경계와 반복 조건을 복원 |
observation |
joint state, gripper, wrist/scene frame ID, optional force | policy가 실제로 본 조건 정의 |
action |
raw, mapped, sent, projection delta, controller mode | intent–mapping–execution 차이 진단 |
time |
event, arrival, clock domain, offset estimate, uncertainty | sensor/action alignment의 신뢰도 표현 |
calibration |
robot, teleop, camera, hand–eye, epoch, config hash | 좌표 의미와 drift 시점 추적 |
authority |
human/policy/safety owner, intervention phase, handoff reason | 누가 command를 냈는지 분리 |
safety |
watchdog, protective stop, E-stop, collision/force gate | 실패와 안전 사건을 성공 label에서 분리 |
quality |
missing/drop/reorder, replay verdict, quarantine reason | train admission 결정의 근거 |
provenance |
code commit, dependency lock, dataset parent, recorder host | release 재현과 lineage 감사 |
task는 자연어 한 줄만 두지 않습니다. object family와 instance, fixture version, initial-state bin, target tolerance, allowed contact, termination rule을 versioned task card로 연결합니다. 자연어 instruction은 사람이 읽는 label이고, 물리적 성공 조건은 별도 evaluator가 계산합니다.
2.3 image와 tactile을 “동시에 측정됐다”고 쓰지 않는다
두 sensor가 같은 host에 꽂혀 있어도 같은 시각을 본 것은 아닙니다. camera exposure, USB buffering, compression, decode, middleware delivery가 각각 지연을 추가합니다. force sensor와 joint state도 별도 clock domain일 수 있습니다. 따라서 sample row의 한 index로 동시성을 암시하지 않고 각 measurement에 event time과 arrival time을 둡니다.
정렬 기준 시각 t에서 stream i의 선택 sample을 s_i라고 하면, 단순 nearest-neighbor alignment뿐 아니라 age와 uncertainty를 함께 냅니다.
$$
\Delta t_i = t - t^{event}_i, \qquad
u_i = u^{clock}_i + u^{exposure}_i + u^{transport}_i
$$
여기서 u_i는 완전한 확률 모델일 필요는 없습니다. 측정 또는 보수적 bound의 provenance가 있는 값이면 됩니다. 중요한 것은 “aligned=true”라는 boolean 하나로 clock uncertainty를 숨기지 않는 것입니다. policy input window를 만들 때 max age와 uncertainty를 넘은 stream은 padding/missing mask로 표시하거나 episode를 quarantine합니다.
3. calibration을 파일이 아니라 epoch로 관리한다
camera extrinsic, leader–follower zero, gripper range, joint offset, tool transform은 한번 만들고 잊는 상수가 아닙니다. camera mount를 다시 조이거나 tool을 교체하고, robot homing과 leader zero가 바뀌면 같은 숫자의 action과 pixel이 다른 물리 상태를 뜻합니다. dataset은 calibration file 경로보다 calibration epoch을 참조해야 합니다.
epoch record에는 calibration 대상, algorithm/version, input sample set hash, 결과 parameter와 covariance 또는 residual summary, 검증 pose, 작업자, 시각, 적용 시작/종료 episode가 들어갑니다. uncertainty-aware hand–eye calibration과 multi-camera workcell 연구는 calibration uncertainty와 공동 geometry를 별도 문제로 다룰 필요를 보여주지만 [13] [7], 이 장은 특정 algorithm의 정확도 우위를 주장하지 않습니다. 실제 선택은 해당 원문의 조건과 local validation으로 결정합니다.
3.1 drift gate
매 collection block 시작과 종료에 짧은 drift probe를 넣습니다. 예를 들어 robot이 접근 가능한 세 개 이상의 검증 pose에서 scene/wrist camera의 fiducial reprojection, tool center offset, leader–follower correspondence를 측정합니다. 시작 probe는 통과했지만 종료 probe가 실패했다면 전체 block을 즉시 삭제하지 않습니다. episode time과 drift trend로 영향 범위를 quarantine하고 재검토합니다.
권장 verdict는 pass, conditional, quarantine, reject 네 단계입니다.
pass: clock, calibration, schema, replay가 모두 release threshold 안입니다.conditional: 일부 modality가 빠졌지만 해당 modality를 쓰지 않는 실험에는 사용할 수 있습니다.quarantine: 원인을 확인하거나 재정렬할 때까지 training loader에서 제외합니다.reject: 의미를 복원할 수 없거나 safety/provenance가 손실됐습니다.
dataset version은 원본을 덮어쓰지 않습니다. v1.1에서 calibration correction을 적용했다면 parent version, transform, 적용 episode 목록, before/after validation을 남깁니다. image를 재인코딩하거나 action을 재계산해도 raw source와 lineage는 유지합니다.
4. intervention, failure, reset을 보존한다
성공 시범만 남기면 policy가 성공 궤적 근처만 보게 됩니다. 그러나 실패를 무조건 train set에 넣으면 잘못된 action을 정답으로 학습할 수 있습니다. 해결책은 삭제와 혼합 사이의 이분법이 아니라 authority와 intent를 label하고 admission rule을 분리하는 것입니다.
4.1 intervention은 episode를 끊지 않아도 authority를 바꾼다
현재 LeRobot HIL 문서는 autonomous segment와 human recovery/correction이 한 episode 안에서 번갈아 기록될 수 있는 workflow를 설명합니다 [20]. DAgger는 learner가 방문한 state에서 expert label을 모으는 순차적 imitation 문제를 정식화합니다 [2]. 그러므로 intervention segment는 autonomous policy segment와 구별돼야 evaluation과 retraining에서 authority가 조용히 섞이지 않습니다.
최소 state machine은 다음과 같습니다.
HUMAN_DEMO
POLICY_AUTONOMOUS
INTERVENTION_REQUESTED
HUMAN_RECOVERY
HUMAN_CORRECTION
RETURN_PENDING
SAFE_HOLD
PROTECTIVE_STOP
EPISODE_TERMINATED
RESET_IN_PROGRESS
transition마다 from, to, requester, approver, reason, event time, sent-action sequence를 기록합니다. 사람이 joystick을 만졌다는 사실만으로 intervention을 정의하지 않습니다. command authority가 실제로 바뀐 시각과 controller가 새 owner의 command를 받아들인 시각이 필요합니다. INTERVENTION_REQUESTED와 HUMAN_RECOVERY 사이에 policy action이 몇 개 더 전송됐는지도 audit해야 합니다.
4.2 watchdog, protective stop, E-stop은 서로 다른 사건이다
failure=true 하나로 합치면 진단 순서가 사라집니다.
- watchdog event: expected heartbeat 또는 fresh command가 deadline 안에 오지 않았습니다. 원인은 network, process stall, clock, queue일 수 있습니다.
- constraint rejection: command가 joint/workspace/rate/collision/force gate를 통과하지 못했습니다. policy 실패와 mapping 오류를 구분합니다.
- protective stop: robot safety system이 정의된 보호 동작을 수행했습니다. vendor code와 recovery requirement를 보존합니다.
- E-stop: 사람 또는 독립 회로가 emergency authority를 행사했습니다. 학습 label보다 먼저 safety incident 절차를 따릅니다.
- task failure: safety fault 없이 task criterion을 만족하지 못했습니다. grasp miss, insertion jam, timeout 같은 taxonomy가 필요합니다.
reset도 data입니다. 사람이 object를 어느 pose로 되돌렸는지, fixture를 정렬했는지, robot을 home으로 보냈는지, protective stop을 해제했는지에 따라 다음 episode의 initial distribution이 달라집니다. reset_policy_version, reset_actor, initial_state_bin, reset_duration, manual_adjustment를 남깁니다. 자동 reset이 없는 cell에서 episode 수만 비교하면 수집 비용과 distribution을 동시에 왜곡할 수 있습니다.
4.3 worked episode trace
다음 trace는 tabletop insertion 한 episode를 frame tensor가 아니라 사건과 경계로 읽는 예입니다. 시간은 설명용 상대값이며 hardware default가 아닙니다.
| 상대 시각 | 관측과 action | authority / event | QA 해석 |
|---|---|---|---|
| 0.000 s | task card와 calibration epoch C17 로드 |
HUMAN_DEMO |
config·clock probe 통과 후 시작 |
| 2.410 s | wrist frame event; raw clutch on | human | image arrival 지연과 exposure uncertainty 보존 |
| 2.424 s | mapped Cartesian delta 생성 | mapper | frame=base, scale hash, raw link 기록 |
| 2.428 s | workspace clamp 뒤 sent delta 축소 | safety | projection delta는 학습 가능한 차이이지 삭제 대상 아님 |
| 5.870 s | insertion 중 force gate reject | safety | task failure 전조; proposed와 sent를 모두 보존 |
| 5.884 s | intervention request | policy→human | handoff latency 측정 시작 |
| 5.932 s | controller가 human action 수락 | human recovery | 중간 policy action sequence를 audit |
| 7.140 s | peg를 free-space safe pose로 회복 | human correction | recovery와 correction phase 분리 |
| 9.600 s | insertion 성공 criterion 충족 | evaluator | 성공이지만 intervention 포함 episode |
| 11.200 s | operator가 fixture를 수동 reset | reset actor | 다음 initial state에 manual adjustment 표시 |
이 episode를 policy-only 성공으로 세면 안 됩니다. 그렇다고 버릴 필요도 없습니다. autonomous evaluation에서는 intervention success와 unassisted success를 분리하고, training에서는 sent action target, human correction target, rejected policy proposal을 서로 다른 mask와 objective로 취급합니다. Chapter 5에서 BC와 ACT를 비교할 때 이 authority mask가 covariate shift 분석의 출발점이 됩니다.
5. LeRobotDataset을 저장 형식이 아니라 학습 계약으로 쓴다
사용자가 제공한 “Robot Learning: A Tutorial”은 LeRobotDataset의 tabular/video/metadata 분리, relative timestamp window, padding, batching을 따라가기 좋은 teaching map입니다 [17]. 그러나 이 tutorial은 2025년 v1이며 method와 API의 유일한 근거가 아닙니다. runnable call과 data format은 현재 공식 문서를 우선하고 tested release 또는 commit을 고정합니다.
2026-07-15에 확인한 공식 LeRobotDataset v3 문서는 low-dimensional signal과 timestamp를 Parquet에, visual stream을 MP4 shard에, schema·FPS·statistics·task·episode offset을 metadata에 두는 설계를 설명합니다 [18]. episode별 view가 파일 경계가 아니라 metadata로 재구성될 수 있다는 점이 중요합니다. “episode 폴더 하나가 손상되지 않았으니 안전하다”는 가정을 할 수 없기 때문입니다.
5.1 S12 logical schema를 LeRobot에 매핑한다
| S12 의미 | LeRobot v3 쪽 배치 | 추가 구현과 검증 |
|---|---|---|
| joint/gripper/action/timestamp | frame-level Parquet feature | raw/mapped/sent namespace와 unit contract |
| wrist/scene images | camera별 MP4 shard | exposure/event time, dropped frame, calibration epoch |
| task description | task metadata와 ID | physical criterion이 있는 versioned task card |
| episode boundary/length | episode metadata와 offsets | termination, reset, failure, authority summary |
| feature statistics | metadata stats | split별 계산, train-only fit, physical-range audit |
| temporal window | relative timestamp query | max age, clock uncertainty, padding/missing mask |
| dataset lineage | codebase/version metadata + external manifest | parent version, commit, lockfile, recorder config hash |
LeRobot가 제공하지 않거나 현재 문서에서 보장하지 않는 field는 sidecar manifest나 namespaced feature로 추가할 수 있습니다. 중요한 것은 upstream schema와 충돌하지 않는 명명, loader round-trip, export 후 보존 시험입니다. custom column을 썼다면 create → save → reload → sample window → batch → export → reload 경로에서 value, dtype, shape, timestamp, mask가 유지되는지 검사합니다.
5.2 window와 padding은 의미를 바꿀 수 있다
policy가 시각 t에서 과거 observation과 미래 action chunk를 요청할 때 relative timestamps를 사용하면 편리합니다. 그러나 requested sample이 episode 밖으로 나갈 때 padding이 들어갑니다. padding mask를 잃으면 “episode 시작 전 robot이 같은 pose에 오래 있었다”는 가짜 history가 생길 수 있습니다. camera frame repeat도 정지 장면과 dropped frame을 혼동하게 합니다.
따라서 batch QA는 shape만 보지 않습니다.
- window의 실제 event-time span과 요청 span을 비교합니다.
- padding, missing, repeated, interpolated sample을 서로 다른 mask로 둡니다.
- observation interpolation과 action hold의 규칙을 분리합니다.
- train normalization statistics는 train split에서만 계산하고 validation/test를 섞지 않습니다.
- physical min/max와 normalized outlier를 함께 보여 unit 오류를 찾습니다.
- video decode index와 tabular frame index의 drift를 긴 episode에서 확인합니다.
6. split은 frame 비율이 아니라 일반화 질문이다
random frame split은 같은 episode의 인접 image, 같은 operator의 미세 습관, 같은 object texture, 같은 calibration epoch를 train과 test 양쪽에 넣을 수 있습니다. 그러면 test metric이 독립적인 generalization을 묻지 않습니다. 그러나 현재 Chapter 4 claim ledger는 이 전체 causal leakage 주장에 대해 exact section/table locator를 아직 갖고 있지 않습니다. 따라서 다음은 RoboMimic, DROID, UMI의 성능 결과를 일반화한 사실 주장이 아니라, S12가 채택한 평가 설계 규칙입니다 [3] [8] [7]. fact checker가 원문 locator를 보강하기 전에는 “이 split이 성능을 얼마만큼 낮춘다” 같은 수치를 붙이지 않습니다.
먼저 질문을 씁니다. “새 object instance인가?”, “같은 object지만 새 pose인가?”, “새 scene lighting인가?”, “새 operator인가?”, “새 calibration epoch인가?”, “새 robot인가?” 질문마다 split unit이 달라집니다.
| 평가 질문 | holdout unit | 금지할 leakage | 함께 보고할 조건 |
|---|---|---|---|
| 같은 setup 재현 | episode/run | 인접 frame 공유 | 같은 object·operator·epoch임을 명시 |
| 새 object instance | object ID | 같은 instance의 다른 pose | category와 geometry distance |
| 새 scene | scene/camera setup | background·camera epoch 공유 | lighting, camera, fixture version |
| 새 operator | operator ID | operator session 일부 공유 | training operator 수와 interface |
| calibration robustness | calibration epoch | correction parameter 공유 | residual/uncertainty와 drift |
| cross-embodiment | robot/interface ID | mapped action을 공통인 것처럼 취급 | kinematics, action space, controller |
한 dataset release에 여러 official split manifest를 둘 수 있습니다. split_in_domain, split_new_object, split_new_operator처럼 질문을 이름에 넣습니다. episode UUID 목록과 생성 query hash를 고정하고, model training job이 임의로 frame split을 다시 만들지 못하게 합니다.
대형 dataset도 local meaning을 자동으로 보장하지 않습니다. DROID는 다양한 real-world manipulation data를 수집하는 scale과 heterogeneity 문제를 전면에 놓고 [8], RH20T는 다양한 robot·viewpoint·skill의 synchronized multimodal data를 다룹니다 [9]. 이런 corpus는 유용한 설계 참고지만, 우리 cell의 action unit, calibration, reset, force gate가 같다는 뜻은 아닙니다. 외부 dataset을 합칠 때는 native, converted, mapped, unknown provenance를 나누고, 변환 불가능한 field를 조용히 zero로 채우지 않습니다.
7. replay QA가 training admission을 결정한다
schema validator가 통과해도 episode가 유효한 시범이라는 뜻은 아닙니다. replay QA는 raw record에서 observation/action/event를 시간 순서로 읽어, robot을 움직이지 않는 offline replay, simulator 또는 kinematic twin의 shadow replay, 제한된 controller stub의 interface replay로 나눕니다.
7.1 세 단계 replay
- offline replay: image, state, action, authority, safety event를 같은 timeline에 그립니다. drop, reorder, clock jump, NaN, shape change, impossible velocity를 찾습니다.
- kinematic/shadow replay:
sent action을 robot model과 collision scene에 넣어 joint/workspace limit, discontinuity, mode transition을 검사합니다. contact outcome 재현을 주장하지 않습니다. - interface replay: hardware 대신 stub 또는 read-only interface에 command packet을 흘려 serialization, unit, sequence, deadline, stale rejection을 확인합니다.
실제 robot replay는 dataset QA의 기본 단계가 아닙니다. 꼭 필요하다면 별도 risk assessment와 reduced-energy hardware protocol을 거친 bounded validation입니다. recorded command를 그대로 재전송하는 명령을 책이나 Codex prompt의 기본값으로 제공하지 않습니다.
7.2 failure symptom과 진단 순서
| 증상 | 먼저 확인 | 다음 확인 | 성급히 결론 내리지 말 것 |
|---|---|---|---|
| image와 gripper 접촉이 어긋남 | event/arrival time, exposure | decode index, clock offset | policy가 vision을 못 배웠다 |
| action이 반대 방향 | raw→mapped sign/order | frame transform, calibration epoch | operator가 잘못 시범했다 |
| velocity spike | duplicate/drop과 \Delta t | interpolation, unit, clamp | robot dynamics 문제다 |
| success인데 stop event 존재 | authority/safety timeline | evaluator criterion과 termination | 성공 episode이니 안전하다 |
| validation만 매우 좋음 | split manifest와 UUID overlap | object/operator/epoch leakage | architecture가 우수하다 |
| replay pose drift | sent vs measured action | timestamp, controller mode, calibration | simulator fidelity만 부족하다 |
| HIL data로 성능 악화 | intervention phase와 target mask | recovery/correction 비율, stale handoff | intervention data는 해롭다 |
진단은 schema → time → calibration → mapping → authority → safety → task label → model 순서로 진행합니다. model hyperparameter부터 바꾸면 upstream corruption을 학습률 문제로 위장할 수 있습니다.
7.3 release manifest와 metric checklist
release candidate마다 다음 artifact를 한 묶음으로 보존합니다.
- dataset semantic version, immutable episode UUID list, parent lineage;
- task card, observation/action dictionary, unit·frame·shape·range;
- robot/teleoperator/camera calibration epoch manifest;
- code commit, dependency lock, LeRobot tested release/commit, recorder config hash;
- stream rate, age, jitter, drop, duplicate, reorder, clock-uncertainty summary;
- raw–mapped–sent projection and saturation statistics;
- authority duration, intervention count/latency, watchdog/protective-stop/E-stop count;
- task success, unassisted success, intervention-assisted success, termination/failure taxonomy;
- reset actor, duration, reason, initial-state distribution;
- split manifests, overlap audit, train-only normalization stats;
- offline/shadow/interface replay report와 pass/conditional/quarantine/reject verdict.
episode count와 총 시간은 이 목록의 일부일 뿐입니다. coverage는 object, pose, scene, operator, calibration epoch, failure/recovery cell을 교차한 matrix로 봅니다. 빈 cell이 많다면 “10시간 수집”보다 “어떤 조건을 보지 못했는가”가 다음 collection plan을 결정합니다.
8. 최소 재현 workflow와 승격 gate
다음 workflow는 command recipe가 아니라 artifact 순서입니다.
Gate A — interface contract
robot을 움직이지 않고 owner–rate–deadline–failure matrix, action dictionary, clock-domain map, calibration registry를 완성합니다. golden raw sample을 processor에 넣어 mapped/sent expected value를 비교합니다. 통과 조건은 unit·sign·ordering·frame·saturation·round-trip test가 모두 versioned log에 남는 것입니다.
Gate B — dry capture
camera와 recorder를 켜되 actuator authority를 주지 않습니다. clutch, mode, intervention, watchdog simulation event를 넣고 timeline을 재생합니다. 통과 조건은 event/arrival time, sequence, drop/reorder, authority transition을 episode에서 복원할 수 있는 것입니다.
Gate C — bounded teleoperation
검증된 #S11 cell에서 reduced workspace와 speed, clear fixture, spotter, independent stop path로 소수 episode를 수집합니다. contact는 Chapter 3의 force/impedance envelope 안에서만 허용합니다. 통과 조건은 sent command와 measured state, safety event가 연속적으로 연결되고 종료 drift probe가 threshold 안인 것입니다.
Gate D — replay and split
offline/shadow/interface replay를 수행하고 causal split manifest를 만듭니다. failure와 intervention episode를 지우지 말고 quarantine/admission rule을 적용합니다. 통과 조건은 overlap audit 0건, train-only stats, replay verdict와 exclusion reason이 있는 것입니다.
Gate E — dataset release candidate
immutable version과 lineage를 만들고 한 episode window와 한 batch를 save/reload/export round-trip합니다. 통과 조건은 값·dtype·shape·timestamp·mask·task·episode boundary가 유지되고, independent reviewer가 manifest로 sample 하나를 추적할 수 있는 것입니다.
9. 범위가 닫힌 Codex prompt
아래 prompt는 schema와 validator를 구현하도록 요청합니다. robot command 전송이나 hardware motion은 범위 밖입니다.
Goal
Build a versioned episode-schema package and offline QA CLI for one tabletop
insertion dataset. Preserve raw, mapped, and sent actions; event and arrival
times; calibration epochs; authority transitions; safety events; resets; and
replay verdicts.
Context
- Input: five captured dry-run episodes plus the task card and calibration manifest.
- Target storage: the pinned LeRobotDataset release/commit recorded in the lockfile.
- Robot motion and command transmission are explicitly out of scope.
제약
- missing value를 발명하거나 unknown modality를 조용히 zero-fill하지 않는다.
- raw record는 immutable로 유지하고 derived data는 새 dataset version에 기록한다.
- S12 전용 field를 namespace로 분리하고 save/load/export 왕복에서도 보존한다.
- clock uncertainty, padding, missing, repeated, interpolated sample은
서로 다른 field 또는 mask로 표현한다.
- split manifest는 episode/object/scene/operator/calibration 단위로만 만든다.
- robot, vendor controller, teleoperator device에는 연결하지 않는다.
완료 조건
- JSON/schema validation이 unit, frame, shape, range, enum, lineage를 모두 검사한다.
- golden test가 unit, sign, ordering, saturation, processor round trip을 검증한다.
- CLI가 drop, reorder, stale age, clock jump, projection delta,
authority transition, safety event, reset/failure distribution을 보고한다.
- Save → reload → temporal window → batch → export → reload 뒤에도 검사 대상 field가 유지된다.
- HTML/Markdown replay report와 immutable split manifest가 생성된다.
- error class마다 의도적으로 손상한 episode 하나가 반드시 test를 실패시킨다.
Safety
- Use fixtures, recorded data, and stubs only.
- Refuse any code path that calls send_action, enables actuators, changes safety
limits, clears a protective stop, or performs hardware calibration.
- Print the pinned dependency and dataset versions in every report.
이 prompt의 결과를 바로 training에 쓰지 않습니다. 먼저 reviewer가 schema diff, test fixtures, corrupted-case detection, lineage를 확인합니다. current official LeRobot docs의 예제는 API를 이해하는 참고이며, local hardware authorization이나 안전 기본값이 아닙니다 [21].
10. 근거 층위와 남은 질문
이 장은 서로 다른 종류의 근거를 섞지 않습니다.
- 원 논문: learning from demonstration의 문제 구조, DAgger의 learner-visited-state correction, UMI·DROID 등 특정 capture/dataset 설계를 이해하는 근거입니다 [1] [2] [7] [8]. 다른 robot에 같은 결과가 난다는 보장은 아닙니다.
- 공식 현재 문서: LeRobotDataset v3 storage와 processor/HIL workflow의 현재 interface를 확인하는 근거입니다 [18] [19] [20].
main은 mutable하므로 release 전에 다시 확인합니다. - tutorial: data-to-policy 흐름을 가르치는 map입니다 [17]. tutorial이 요약한 ACT, diffusion, RL 수치와 API를 대신 검증하지 않습니다.
- S12 공학적 합성: calibration epoch, raw/mapped/sent lineage, clock uncertainty, causal split, replay admission입니다. 이는 local validation을 위한 설계안이지 국제 표준이나 검증된 benchmark 결론이 아닙니다.
아직 해결되지 않은 질문도 남습니다. clock uncertainty를 training loss나 attention mask에 어떻게 반영해야 하는가? human recovery를 expert target으로 쓸 구간과 “위험 상태에서 빠져나오기” auxiliary objective로 쓸 구간을 어떻게 나눌 것인가? 동일 task라도 operator style을 diversity로 보존할지 noise로 정규화할지 어떻게 결정할 것인가? force/tactile stream이 느리거나 빠질 때 visual-only episode를 conditional subset으로 유지할 수 있는가? privacy와 운영 정보가 담긴 video를 공개 release와 내부 audit trail로 어떻게 분리할 것인가?
RoboMimic은 demonstration data, observation과 algorithm choice를 체계적으로 비교하는 benchmark 관점을 제공하지만 [3], ordinary single-arm cell의 leakage와 replay QA에 대한 직접 근거는 exotic capture system 연구보다 여전히 얇습니다. 그러므로 이 장의 엄격한 provenance는 “완성된 모범답안”이 아니라, 다음 model 실험이 data bug를 성능으로 착각하지 않게 만드는 방어선입니다.
제조 셀 적용 체크포인트
tabletop assembly cell의 담당자는 training 전에 다음 질문에 답해야 합니다.
| 영역 | 결정 | 제출 artifact | 승격 거부 조건 |
|---|---|---|---|
| task | success, allowed contact, termination, reset | versioned task card | evaluator와 operator 판단이 모순 |
| interface | owner, raw/mapped/sent action, mode | action dictionary와 matrix | unit/frame/authority가 불명확 |
| time | clock domains, event/arrival, max age | sync probe와 jitter report | unexplained jump·long gap |
| calibration | robot/teleop/camera epoch | registry와 drift probes | episode가 epoch에 연결되지 않음 |
| safety | watchdog, projection, stop taxonomy | event timeline과 code map | stop 사건이 success에 숨음 |
| data | schema, lineage, masks, storage pin | release manifest | silent fill 또는 raw overwrite |
| split | 평가할 generalization unit | immutable UUID manifests | frame overlap 또는 query 미보존 |
| QA | offline/shadow/interface replay | verdict와 exclusion reasons | corrupted fixture를 validator가 놓침 |
최종 승인자는 dataset collector 혼자가 아닙니다. robot/controller owner는 action과 safety field를, perception/calibration owner는 camera·epoch를, ML owner는 window·mask·split을, cell safety owner는 authority와 stop 사건을 각각 서명합니다. 책임을 한 사람에게 합치면 provenance 누락이 collection 속도에 가려집니다.
다음에 배울 것
Chapter 5는 이 dataset에서 가장 단순한 learned baseline인 behavior cloning을 만들고, action chunking과 temporal aggregation을 사용하는 ACT로 확장합니다. 그때 observation horizon과 chunk size를 고르기 전에 이 장의 event time, padding mask, authority label, sent-action target을 먼저 고정해야 합니다. 그렇지 않으면 ACT가 긴 시간 구조를 학습한 것인지, misalignment와 intervention 혼합을 평균 낸 것인지 알 수 없습니다.
Chapter 3의 contact envelope도 그대로 남습니다. 학습 policy가 내는 action은 이 장의 mapped proposal이고, 실제 robot에 나가는 sent action은 constraint와 contact controller 아래에 있습니다. VLA와 generalist dataset의 규모·cross-embodiment adaptation은 #S13 범위입니다. #S12에서는 어떤 상위 policy가 오더라도 읽을 수 있는 observation/action contract와 거부할 수 있는 safety boundary까지만 완성합니다.
참고문헌
- Argall, B. D., Chernova, S., Veloso, M., & Browning, B. (2009). A Framework for Learning from Demonstration. Robotics and Autonomous Systems. DOI: 10.1016/j.robot.2008.10.024.
- Ross, S., Gordon, G., & Bagnell, J. A. (2011). A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning. AISTATS.
- Mandlekar, A., et al. (2021). RoboMimic: A Benchmark for Robot Learning from Demonstration. CoRL. arXiv:2108.03298.
- Niemeyer, G., & Slotine, J.-J. E. (1991). Stable Adaptive Teleoperation. IEEE Journal of Oceanic Engineering. DOI: 10.1109/48.64895.
- Lawrence, D. A. (1993). Stability and Transparency in Bilateral Teleoperation. IEEE Transactions on Robotics and Automation. DOI: 10.1109/70.258054.
- Qin, Y., et al. (2023). AnyTeleop: A General Vision-Based Dexterous Robot Arm-Hand Teleoperation System. Robotics: Science and Systems. DOI: 10.15607/RSS.2023.XIX.015.
- Ha, H., et al. (2024). Universal Manipulation Interface: In-The-Wild Robot Teaching Without In-The-Wild Robots. RSS. arXiv:2402.10329.
- Khazatsky, A., et al. (2024). DROID: A Large-Scale In-the-Wild Robot Manipulation Dataset. RSS. arXiv:2403.12945.
- Shen, L., et al. (2024). RH20T: A Comprehensive Robotic Dataset for Learning Diverse Skills in One-Shot. ICRA. DOI: 10.1109/ICRA57147.2024.10611615.
- Wang, C., et al. (2024). DexCap: Scalable and Portable Mocap Data Collection System for Dexterous Manipulation. RSS. arXiv:2403.07788.
- Wu, Z., et al. (2024). FastUMI: A Scalable and Hardware-Independent Universal Manipulation Interface with Dataset. arXiv:2409.19499.
- Ding, R., et al. (2024). Bunny-VisionPro: Real-Time Bimanual Dexterous Teleoperation for Imitation Learning. arXiv:2407.03162.
- Ulrich, M., & Hillemann, M. (2024). Uncertainty-Aware Hand–Eye Calibration. IEEE Transactions on Robotics. DOI: 10.1109/TRO.2023.3330609.
- Allegro, D., Terreran, M., & Ghidoni, S. (2024). Multi-Camera Hand-Eye Calibration for Human-Robot Collaboration in Industrial Robotic Workcells. arXiv:2406.11392.
- Fang, H.-C., et al. (2025). DOGlove: Dexterous Manipulation with a Low-Cost Open-Source Haptic Force Feedback Glove. RSS.
- Xu, M., et al. (2025). DexUMI: Using Human Hand as the Universal Manipulation Interface for Dexterous Manipulation. CoRL, PMLR 305. DOI: 10.48550/arXiv.2505.21864.
- Capuano, F., Pascal, C., Zouitine, A., Wolf, T., & Aractingi, M. (2025). Robot Learning: A Tutorial. arXiv:2510.12403v1. DOI: 10.48550/arXiv.2510.12403.
- Hugging Face (2026a). LeRobotDataset v3.0. Official LeRobot documentation, accessed 2026-07-15.
- Hugging Face (2026b). Processors for Robots and Teleoperators. Official LeRobot documentation, accessed 2026-07-15.
- Hugging Face (2026c). Human-In-the-Loop Data Collection. Official LeRobot documentation, accessed 2026-07-15.
- Hugging Face (2026d). Getting Started with Real-World Robots. Official LeRobot documentation, accessed 2026-07-15.
- David J. Montana (1988). The Kinematics of Contact and Grasp. Annotated primary reading. canonical URL. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Singularity, joint limits, collision, scaling, and discrete-time behavior still require explicit handling.
- Roger Y. Tsai & Reimar K. Lenz (1989). Position and Orientation Calibration of a Robot Camera as a Pan-Tilt Unit. Annotated primary reading. DOI: 10.1109/70.34770. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Decoupled estimation propagates rotation error into translation and is sensitive to degenerate motions and robot kinematic error.
- Bruno Siciliano & Jean-Jacques Slotine (1991). A General Framework for Managing Multiple Tasks in Highly Redundant Robotic Systems. Annotated primary reading. DOI: 10.1109/icar.1991.240390. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Singularity, joint limits, collision, scaling, and discrete-time behavior still require explicit handling.
- Frank C. Park & Bryan J. Martin (1994). Robot Sensor Calibration: Solving AX=XB on the Euclidean Group. Annotated primary reading. DOI: 10.1109/70.326576. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Still assumes consistent robot poses and a rigid camera mount; timing offsets and target-detection bias are separate errors.
- Konstantinos Daniilidis (1999). Hand-Eye Calibration Using Dual Quaternions. Annotated primary reading. DOI: 10.1177/02783649922066213. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Algebraic least squares still needs nonlinear refinement and uncertainty checks under realistic noise.
- Zhengyou Zhang (2000). A Flexible New Technique for Camera Calibration. Annotated primary reading. DOI: 10.1109/34.888718. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Low reprojection error can coexist with poor coverage, target nonplanarity, rolling shutter, depth bias, or extrapolation outside the calibrated volume.
- Sudeep Dasari et al. (2019). RoboNet: Large-Scale Multi-Robot Learning. Annotated primary reading. canonical URL. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Dataset coverage, action semantics, covariate shift, horizon, and recovery policy limit transfer.
- Ankur Handa et al. (2020). DexPilot: Vision-Based Teleoperation of Dexterous Robotic Hand-Arm System. Annotated primary reading. arXiv:1910.03135. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Delay, sampling, saturation, filtering, environment stiffness, and hardware interfaces bound the reported behavior.
- Catie Cuan et al. (2024). Leveraging Haptic Feedback to Improve Data Quality and Quantity for Deep Imitation Learning Models. Annotated primary reading. arXiv:2211.03020. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Carolina Higuera et al. (2024). Sparsh: Self-Supervised Touch Representations for Vision-Based Tactile Sensing. Annotated primary reading. arXiv:2410.24090. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Liu et al. (2024). Unified Calibration of Hand–Eye, Kinematic Parameters, and TCP. Annotated primary reading. DOI: 10.1108/ria-06-2023-0076. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Requires laser-tracker-grade measurements
- Zilin Si et al. (2024). DiffTactile: A Physics-based Differentiable Tactile Simulator for Contact-Rich Robotic Manipulation. Annotated primary reading. arXiv:2403.08716. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Various (2024). TacEx: GelSight Tactile Simulation in Isaac Sim. Annotated primary reading. arXiv:2411.04776. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Yunlong Dong et al. (2025). GEX: Democratizing Dexterity with Fully-Actuated Dexterous Hand and Exoskeleton Glove. Annotated primary reading. arXiv:2506.04982. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Three fingers do not cover five-finger tasks
- S. Satsevich et al. (2025). Prometheus: Universal, Open-Source Mocap-Based Teleoperation System with Force Feedback for Dataset Collection in Robot Learning. Annotated primary reading. arXiv:2510.01023. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Ruoshi Wen et al. (2025). Dexterous Teleoperation of 20-DoF ByteDexter Hand via Human Motion Retargeting. Annotated primary reading. arXiv:2507.03227. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Report does not establish generalization outside its hand and task set
- Xitong Chen et al. (2026). DexViTac: Collecting Human Visuo-Tactile-Kinematic Demonstrations for Contact-Rich Dexterous Manipulation. Annotated primary reading. arXiv:2603.17851. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Platform, task, dataset, and evaluation assumptions must be checked in the primary paper before transferring a result.
- Dongmyoung Lee et al. (2026). DexTwist: Functional Twist Retargeting for Mixed-Reality Dexterous Teleoperation. Annotated primary reading. arXiv:2605.12182. — 역할: teleoperation·dataset·calibration provenance를 설계하는 1차 읽기. 한계: Designed around twist tasks rather than general dexterity
- Zhang et al. (2024). Multi-Camera Hand–Eye Calibration for Industrial Robotic Workcells. Annotated primary reading. arXiv:2406.11392. — 역할: 다중 카메라가 작업공간 보정의 관측 가능성과 커버리지를 어떻게 늘리는지 확인한다. 한계: 카메라 수가 늘면 동기화·타깃 가시성·외부 파라미터 드리프트 검증 부담도 커진다.