KiRoSe: Using Kinematic Data for Efficient Segmentation of Robot Demonstrations
Organizations: University of California, Berkeley · Toyota Research Institute
Abstract
Segmenting robot demonstration data into disjoint temporal and semantic subsegments is valuable for learning, cleaning, retrieval, and analysis. Segmentation is often performed manually in a tedious and error prone process. Multimodal Large Language Models (MLLMs) have the potential for automating this process, but directly ingesting raw multi camera video streams into MLLMs can be costly and can quickly exhaust context windows. In this paper, we introduce KiRoSe (Kinematics for Robot Segmentation), a novel framework that focuses on the companion stream of robot kinematic data. Inspired by the principle of classical entropy coding, such as Huffman coding, where frequently occurring symbols are represented more compactly, we propose Sparse Motion Tokens (SMTs), a discrete kinematic vocabulary designed to compactly represent recurring, temporally localized motion patterns, which we refer to as kinematic events. SMTs are learned by encoding kinematic trajectories with temporal segment supervision and quantizing the resulting features. We use increasingly available robot demonstration subtask annotations to supervise an open language model to interpret the resulting token sequences. Evaluation against human labeled segmentation shows that KiRoSe can substantially outperform baseline segmentation methods in F1 quality and transfers zero shot to unseen robot embodiments and egocentric human motion, while preserving the language models open vocabulary knowledge. Beyond segmentation, KiRoSe tracks task progress on an unseen robot and detects when an action is being reversed.(website: https://berkeleyautomation.github.io/kirose/)
Figures & tables
| Task | Traj. | Hits | Supplied words |
| Omelet | 36 | 17 | pan, egg, mixture, whisk |
| COVID-19 test | 65 | 14 | swab |
| Tomato & eggs | 12 | 11 | pan |
| Flat tire | 13 | 8 | inner (tube), lever |
| Noodles | 9 | 3 | pot, stir |
| Salad | 26 | 2 | toss, dressing |
| Model | Fwd. | Rev. | Rev. (%) |
| ReWiND (MW) | 1% | ||
| ReWiND (OXE) | 4% | ||
| Robometer-4B | 46% | ||
| KiRoSe | 86% |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Input | at 30 Hz, per-episode z-scored |
| Projection | Conv1d( , ) |
| Residual blocks | 7 [Conv1d( , , dilation ) GELU Dropout(0.1) Conv1d( , )] |
| Dilations | 1, 2, 4, 8, 16, 32, 64 (symmetric padding) |
| Output | LayerNorm(256); receptive field 509 samples (17.0 s) |
| Encoder parameters | 2,760,448 |
| Boundary head grid | 0.25 s; box pools of half-width 0.25, 1, 4 s, concatenated (768-d) |
| Grid point | BCE | Contribution | |||
| Interior, already confident | 0 | 0.05 | 0.051 | 0.0025 | 0.0001 |
| Boundary, under-predicted | 1 | 0.30 | 1.204 | 0.49 | 0.59 |
| 0.5 s from a boundary, over-predicted | 0.46 | 0.90 | 1.292 | 0.283 | 0.366 |
| YAM (ABC-130K) | AgiBot G1 | Human hands (Ego-Exo4D) | |
| Pose source | Forward kinematics from 6 joint angles (MJCF chain of the YAM model) | Recorded end-effector position and orientation ( state/end ) | 3D hand keypoints (wrist, MCPs, thumb/index tips) |
| Frame | Per-arm base frame (z up, x forward) | Robot base frame (z up) | World frame, rotated by the smoothed head yaw |
| Central differences of position | Central differences of position | Central differences of 2 Hz low-passed wrist position | |
| From quaternion derivative | From quaternion derivative | From quaternion derivative of fitted palm frame | |
| Normalized gripper aperture (0 closed, 1 open) | Effector position, affinely mapped to and inverted | Thumb-tip–index-tip distance, normalized per trajectory | |
| Native rate | Several hundred Hz | 30 Hz | 30 Hz (dense pseudo-ground truth) |
| Model | AgiBot test tasks | AgiBot held-out task | YAM held-out tasks |
| ReWiND (MW) | / | / | / |
| ReWiND (OXE) | / | / | / |
| Robometer-4B | / | / | / |
| KiRoSe | / | / | / |
| Base model | Qwen3.5-9B, bfloat16, gradient checkpointing |
| LoRA | rank 16, , dropout 0.05; q, k, v, o, gate, up, down projections |
| Trainable | LoRA adapters + 512 new input-embedding and output rows |
| Optimizer | AdamW, lr (constant, no warm-up), weight decay 0.01, grad-norm clip 1.0 |
| Batch | 1 episode per GPU, global batch 9 (3 GPUs, data parallel) |
| Data / epochs | 5,478 YAM training episodes / 1 epoch |
| Compute | 2.2 h on 3 NVIDIA H200 GPUs |