The same motion makes the same tokens. Recurring kinematic events, such as a bimanual lift, a handover, a pick or a place, map to recurring codes across tasks and objects.
From motion to tokens. ① End-effector kinematics (14 channels at 30 Hz). ② A dilated temporal convolution encoder: each layer doubles its dilation, so one output feature sees seconds of motion around it (highlighted). ③ During training only, a head on these features predicts where annotated subtasks change (focal loss on soft targets around each boundary); afterwards the head is dropped and the encoder is frozen. ④ Features are pooled to 2 per second and snapped to the nearest of 512 k-means centroids. ⑤ The resulting token stream, plus the task instruction, is what the Qwen3.5-9B reader sees. Illustration: 3 layers with kernel 3; the real encoder has 7 blocks with kernel 5 and dilations 1–64 (17 s receptive field, 2.76M parameters).
Figure 1. Recurring motion, recurring tokens. Each panel shows one kinematic event in two YAM episodes from different tasks (A, B). Sparse Motion Tokens appear in sync with the robot (2 per second, from a 512-code vocabulary) on a shared time axis. As soon as a panel’s two clips end, lines join the tokens the two rows share in the same order (their longest common subsequence), and the shared sequence is spelled out: a single-arm pick-up is 438 → 456 → 445 → 431 → 296 in both tasks, and a single-arm place is 126 → 308 → 443 → 48 → 208. Pairs are chosen examples; across all held-out segments, clips of the same motion category share about twice as many codes as clips of different categories. A GIF version is at static/media/smt_motion.gif.
KiRoSe has two stages. A kinematic encoder is trained with subtask-transition supervision, and its features are pooled and quantized into Sparse Motion Tokens. The tokenizer is then frozen while a pretrained language model learns to read the tokens and write segments.
Every embodiment is mapped to the same 14 channels at 30 Hz: per arm or hand, linear velocity, angular velocity and gripper opening rate. For robots these come from end-effector motion and gripper aperture; for human hands, from wrist motion, palm orientation and thumb–index separation.
Residual temporal convolutions map the stream to contextual features. During training, an auxiliary head predicts a transition probability at every step against soft targets centred on annotated subtask boundaries, with a focal binary cross-entropy loss. The head is discarded afterwards; the 2.76M-parameter encoder is kept.
Encoder features are pooled on a uniform grid and assigned to the nearest of K = 512 k-means centroids fitted on training trajectories only. Token positions do not depend on annotated or predicted boundaries; supervision shapes what the features encode, not where tokens fall.
Qwen3.5-9B receives 512 new vocabulary entries, <k0> to <k511>, plus textual time markers every second and the task instruction. LoRA adaptation trains it to emit the reference segmentation as JSON with start time, end time and a description per segment. The tokenizer stays frozen, so the model learns to read the motion vocabulary rather than reshape it.
All trainable components see only the YAM bimanual robot in ABC-130K. AgiBot G1 and Ego-Exo4D human hands are evaluated without any target-embodiment training, with fewer boundaries per minute and less verb overlap than YAM.
| Dataset | Embodiment | Purpose | Episodes | Tasks | Duration (s) | Segments / ep. | Boundaries / min | Verbs (% in train) |
|---|---|---|---|---|---|---|---|---|
| ABC-130K | YAM | Training | 5,478 | 140 | 173.3 ± 66.5 | 26.6 ± 15.0 | 9.2 | 83 (100%) |
| ABC-130K | YAM | Held-out test | 200 | 10 | 154.6 ± 57.6 | 24.3 ± 13.4 | 9.4 | 24 (99%) |
| AgiBot World | AgiBot G1 | Cross-embodiment, test | 1,199 | 16 | 58.0 ± 23.3 | 7.4 ± 3.3 | 7.6 | 17 (73%) |
| AgiBot World | AgiBot G1 | Cross-embodiment, held-out tasks | 2,653 | 3 | 94.4 ± 31.1 | 10.8 ± 3.1 | 6.9 | 12 (61%) |
| Ego-Exo4D | Human hands | Transfer to human | 193 | 12 | 81.4 ± 53.5 | 10.1 ± 5.9 | 7.4 | 69 (35%) |
Every kinematic tokenizer is paired with the same LoRA-adapted Qwen3.5-9B reader. Boundary F1 matches predicted and reference boundaries within a tolerance; Grounded F1 also requires the action description to agree.
| Method | Boundary F1 | Grounded F1 | |||
|---|---|---|---|---|---|
| ±0.5 s | ±1 s | ±2 s | Lex. | Emb. | |
| Qwen3.5-9B zero-shot (video) | 0.09 | 0.16 | 0.22 | 0.05 | 0.07 |
| FAST | 0.22 | 0.42 | 0.50 | 0.12 | 0.17 |
| OAT | 0.22 | 0.41 | 0.51 | 0.14 | 0.20 |
| MotionGPT | 0.23 | 0.41 | 0.50 | 0.13 | 0.16 |
| KiRoSe: Latent + MLP | 0.44 | 0.52 | 0.56 | – | – |
| KiRoSe: SMT codes + MLP | 0.38 | 0.45 | 0.49 | – | – |
| KiRoSe | 0.48 | 0.63 | 0.71 | 0.43 | 0.49 |
FAST, OAT and MotionGPT use their native 32-D joint-state input and a slightly larger training set, so the comparison is between complete tokenizer interfaces.
The released checkpoint (sy-xie/KiRoSe-Reader) is a retrain on the same split with the location boilerplate removed from the training descriptions: the ABC-130K phrase "the center of the board" tags 38% of segments regardless of arm position. Its Boundary F1 is 0.48 / 0.65 / 0.72 on the held-out YAM tasks and 0.40 / 0.62 / 0.76 on all 3,852 AgiBot episodes, and it names a location only when the task implies one. The video examples below come from this checkpoint; the tables on this page report the paper model.
The encoder, codebook and reader are trained on YAM only. On AgiBot G1 and human hands they run zero-shot through the shared end-effector representation.
Pick an episode and press play. The lanes follow the video: the human annotation, KiRoSe reading kinematics only, and Qwen3.5-9B reading the video and instruction zero-shot. Click the timeline to jump.
Robot episodes are the paper's appendix examples followed by more chosen with the same rule: per task, the episode whose KiRoSe score is closest to that task's median. Videos play at the recorded 5 fps.
A useful progress signal should rise while an action is executed and fall when it is undone. We play one AgiBot subtask backwards in place (video reversed, kinematic velocities negated) and check whether predicted progress follows.
| Model | Fwd. ρ ↑ | Rev. ρ ↓ | Rev. ρ < 0 ↑ |
|---|---|---|---|
| ReWiND (MetaWorld) | +0.88 | +0.88 | 1% |
| ReWiND (Open-X) | +0.65 | +0.63 | 4% |
| Robometer-4B | +0.71 | +0.06 | 46% |
| KiRoSe | +0.51 | −0.68 | 86% |
KiRoSe shows that a robot's own end-effector kinematics are enough to segment its demonstrations. Compressed into two Sparse Motion Tokens per second, kinematics locate subtask boundaries better than a zero-shot video model, and transition supervision raises Boundary F1 ±1 s from about 0.42 to 0.63. Because the tokens live in a shared end-effector space, a model trained only on YAM keeps most of its boundary accuracy on AgiBot G1 and runs on human hands, while its open-vocabulary reader writes task words it never saw in training. Motion supplies the action and vision the object: KiRoSe leads GPT-6 Astra on action-level Grounded F1 and trails it where descriptions need object names. The same frozen encoder also tells forward execution from an action being undone, which video reward models miss, all at a small fraction of the cost of video-based segmentation.
@misc{kirose2026,
title = {KiRoSe: Using Kinematic Data for Efficient Segmentation of Robot Demonstrations},
author = {Xie, Shuangyu and Chen, Kaiyuan and Irshad, Muhammad Zubair and Cheng, Richard and Zakharov, Sergey and Goldberg, Ken},
year = {2026}
}