Vial sortPrevious work

Data

Five cameras watched a person move a vial with a leader arm. There are two training sets: the first 100 demonstrations, and 220 that keep 70 of those and add 150 recorded so the destination can only come from the command. Both sets and every robot recording are public on Hugging Face in the LeRobot format.

The two training sets side by side
100 demonstrations220 demonstrations
Recorded14 October 202670 of the 100, then 51 on 28 October and 99 on 3 November
HowTwenty runs of five, one destination per runOne layout recorded three times, to three different destinations
Moves32 moves, none inside one rack48 moves, 51 demonstrations inside one rack
Size100 episodes, 58,650 frames, 33 min220 episodes, 141,735 frames, 79 min
TrainedThe October modelsThe November models (Plain Bagel, Mango Pudding)
On Hugging Facevial-sort-slots-100vial-sort-slots-220

Five cameras

One instant of one demonstration, seen by each camera. All five are recorded at 30 frames a second.

  • Overhead: The only high-angle view. It sees both racks, the bin and the arm at once, with no people in it.Overhead top_downThe only high-angle view. It sees both racks, the bin and the arm at once, with no people in it.
  • Across the table: High, across the table. The operator is in view in every frame, on purpose: someone usually stands there during a rollout too.Across the table left_topHigh, across the table. The operator is in view in every frame, on purpose: someone usually stands there during a rollout too.
  • Near eye level: Near table level, the colour stream of a RealSense camera. The vials look largest here and which holes hold a vial can be read.Near eye level left_bottomNear table level, the colour stream of a RealSense camera. The vials look largest here and which holes hold a vial can be read.
  • From the side: A wide view of the workspace from the other side. A person is in view some of the time.From the side rightA wide view of the workspace from the other side. A person is in view some of the time.
  • On the gripper: Close up, mounted on the gripper. The vial fills the frame during a grasp.On the gripper wristClose up, mounted on the gripper. The vial fills the frame during a grasp.
One demonstration, seen by all five cameras at once. A person drives the leader arm; the follower copies it. The large view is the overhead camera; the four small ones are, from the top left, across the table, near eye level, from the side and the wrist.

The 100 demonstrations

100 demonstrations, 58,650 frames, about 33 minutes. Each is one move: take the vial from one slot and put it in another slot or the bin. The set is sari-abdan/vial-sort-slots-100, and any episode can be watched in the browser.

Every move that was recorded

Rows are the slot the vial started in, columns where it was put, and each number is how many demonstrations there are of that move. Held-out slots are hatched: they were never recorded, so a model can be tested on them. Every cross-rack move between the other slots, and every slot to the bin, is there.

Demonstrations for every source slot (rows) and destination (columns). Slots 2 and 5 as a source, and 2, 4 and 5 as a destination, were held out.
Destination: left rackright rackbin
Source12 (held out)34 (held out)5 (held out)612 (held out)34 (held out)5 (held out)6Σ
L1244313
L2 (held out)0
L3343313
L4244313
L5 (held out)0
L6334313
R1332311
R2 (held out)0
R3423413
R4423312
R5 (held out)0
R6432312
Σ15101010151525100
  • Demonstrations of that move:
  • 1
  • 2
  • 3
  • 4 or more
  • held out on purpose, never recorded
  • same-rack move, not recorded

32 different moves; 75 go from one rack to the other and 25 to the bin. No move stays inside a rack. Slots 2 and 5 are never a source, and slots 2, 4 and 5 are never a destination (slot 4 is only ever a source).

The 220 demonstrations

220 demonstrations, 141,735 frames, about 79 minutes, the same five cameras. With the 100, every run of five had one destination and was recorded in one sitting, so the pictures gave the destination away and the models learned to read it there. In the 150 new demonstrations one layout is recorded three times in a row with three different destinations, so only the command can tell them apart. The set is sari-abdan/vial-sort-slots-220, and any episode can be watched in the browser.

Every move that was recorded

Laid out like the matrix above, now with moves inside one rack: 51 of the 220. The held-out slots are the same, and so is one gap: no demonstration goes from L1 to L6.

Demonstrations for every source slot (rows) and destination (columns). Slots 2 and 5 as a source, and 2, 4 and 5 as a destination, were held out.
Destination: left rackright rackbin
Source12 (held out)34 (held out)5 (held out)612 (held out)34 (held out)5 (held out)6Σ
L1494326
L2 (held out)0
L3534725
L4475426
L5 (held out)0
L6644424
R1566630
R2 (held out)0
R3756428
R4943731
R5 (held out)0
R6684630
Σ37312527322741220
  • Demonstrations of that move:
  • 1
  • 2
  • 3
  • 4 or more
  • held out on purpose, never recorded
  • same-rack move, not recorded

48 different moves; 41 go to the bin and 51 stay inside one rack. Every source slot has 24 to 31 demonstrations.

Where they come from

PartRecordedEpisodesFramesAlso published alone
The first 70 of the 100 (runs 15 to 20 were too dark and were dropped)14 October7044,322vial-sort-slots-100
Three destinations per layout, first sitting28 Oct 20265136,420vial-sort-contrast-51
Three destinations per layout, second sitting, with the RealSense depth stream as well3 Nov 20269960,993vial-sort-contrast-99-depth

The training set leaves the depth stream out: the November models see the five colour cameras only. The across-the-table camera sits slightly differently in the first 70 than in the later 150, and it was knocked again on 4 November; see the note of 9 November.

How it was recorded

  • One afternoon, 14 October: twenty runs of five demonstrations. Each run has one destination and was recorded in one sitting.
  • For a rack destination the vial always starts in the other rack.
  • Three vial colours, red, cyan and dark green. In 95 of the 100 scenes a second vial of the target’s colour stands on the source rack, so colour never identifies the vial to move; the 5 exceptions are the first run.
  • The bin was moved to a new spot every ten demonstrations, with small nudges in between, and the first frame of every demonstration is saved so each spot is on record.
  • The room got darker through the afternoon. The side cameras are almost black in demonstrations 75 to 99; the overhead camera stays readable.
  • The arm is homed before every demonstration, and at the start the operator leans over the robot, so the person is in the wrist and across-the-table views.
  • The wrist camera dropped off the bus three times (demonstrations 47, 53 and 60). Those three were recorded again.

Left and right

Left and right are read from the follower arm: the left rack is the rack to the left of the arm, which is the top rack in the overhead view, and the right rack is the bottom one. The bin sits between them. Slot 1 is the one nearest the arm. In August the left rack was the one on the left of the side camera.

How the commands were written

A command names the vial by its position and never by its colour: “Move the vial from position 3 of the right rack to slot 6 of the left rack.” Addressing the source slot keeps the instruction unambiguous even when two vials share a colour. Choosing which vial to move, the step from a colour to a position, is left to the person who types the command.

The recording tool takes one label per run, but the source changes in every demonstration of a run. So each run was recorded with its destination only. Afterwards one script read the recording sheet, which says which slot held the target and where it went, and rewrote every demonstration’s command once. The video was not touched and nothing was recorded again.

Each wording is one draw from independent pools: 6 verbs, 4 object nouns, 5 ways to say a slot, 4 ways to say a rack, 5 ways to say the bin and 4 sentence forms. Multiplied out that is 6 × 4 × (5 × 4) × (5 × 4) × 4 = 38,400, about 3.8 × 10⁴, wordings of one rack-to-rack move, and 9,600 for a move to the bin.

The draw is not random: the k-th demonstration of a move gets the k-th combination, so repeated demonstrations of one move are phrased differently. The result is 100 different wordings across 32 moves, with at most 4 wordings of any one move.

The wording pools

The same six colours mark the parts of the example wordings below.

PartFormsValues
Verb6Move, Take, Transfer, Bring, Relocate, Carry
Object4the vial, the tube, the test tube, the sample tube
Slot5for slot 3: position 3, slot 3, the third slot, hole 3, spot 3
Rack4the left rack, the rack on the left, the left-side rack, the left tube rack (and the same for the right)
Bin5the bin, the trash, the waste bin, the trash can, the rubbish bin
Sentence form4… from S to D; … in S to D; … from S over to D; … at S to / into D

The recorded wordings of one move

The move R3 → L6 has 3 demonstrations. These are their commands, exactly as they are stored in the set:

  • “Move the vial from position 3 of the right rack to slot 6 of the left rack.”
  • “Take the vial in slot 3 of the right rack to the sixth slot of the left rack.”
  • “Transfer the tube from the third slot of the rack on the right over to hole 6 of the left rack.”

Robot recordings

Autonomous sessions from October, one episode per rollout, uploaded with every camera the model saw. A rollout is one autonomous attempt at one command. The results score every session, including the ones not uploaded.

RecordingModelUploadedRolloutsMinutesCameras recorded
rollout_flux_010000_ema_20261007_130022–7 Oct 202651Overhead: not seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_pi05_007000_20261016_123138–16 Oct 202654Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_132700–19 Oct 202653Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000500_20261019_181054–19 Oct 2026107Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261021_152902–21 Oct 202654Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000250_20261019_171956Pretzel One23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000250_20261019_172115Pretzel One23 Oct 202631Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000500_20261019_184506Pretzel Two23 Oct 202611Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000500_20261019_184850Pretzel Two23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_000500_20261019_185110Pretzel Two23 Oct 202642Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_007000_20261016_122204Spicy Chicken23 Oct 202632Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_009000_20261019_152150Spicy Chicken23 Oct 202632Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_010000_20261021_152132Mango Rice23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_010000_20261021_154053Mango Rice23 Oct 202622Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_130903Spicy Chicken23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_132219Spicy Chicken23 Oct 202622Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_145507Spicy Chicken23 Oct 202644Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_161834Spicy Chicken23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_162034Spicy Chicken23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261019_162401Spicy Chicken23 Oct 202611Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261021_151423Mango Rice23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261021_151614Mango Rice23 Oct 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_012000_20261021_151748Mango Rice23 Oct 202611Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_flux_010000_20261016_121043Crispy Falafel23 Oct 202621Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_20261016_121628Crispy Falafel23 Oct 202610Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_20261016_121859Crispy Falafel23 Oct 202610Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_20261016_171857Crispy Falafel23 Oct 202621Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_20261016_172310Crispy Falafel23 Oct 202620Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_20261016_172502Crispy Falafel23 Oct 202610Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_ema_20261007_125223Sweet Corn23 Oct 202610Overhead: not seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_ema_20261007_125402Sweet Corn23 Oct 202610Overhead: not seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_010000_ema_20261007_132958Sweet Corn23 Oct 202621Overhead: not seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_020000_20261019_152707Crispy Falafel23 Oct 202630Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_026000_20261019_153054Crispy Falafel23 Oct 202610Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_026000_ema_20261019_155347Crispy Falafel23 Oct 202611Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_030000_20261019_124848Crispy Falafel23 Oct 202621Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_030000_20261019_130542Crispy Falafel23 Oct 202621Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_flux_030000_ema_20261019_130024Crispy Falafel23 Oct 202631Overhead: seenAcross the table: not seenNear eye level: not seenFrom the side: not seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_181333–4 Nov 202654Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_183519–4 Nov 202652Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_184657–4 Nov 20262011Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_q37_20261104_194652–4 Nov 2026106Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261108_235520–8 Nov 202652Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261109_000645–8 Nov 20262513Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261109_005131–9 Nov 20263514Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_181219Mango Lassi10 Nov 202675Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_182424Mango Lassi10 Nov 202620Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_182814Mango Lassi10 Nov 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_182948Mango Lassi10 Nov 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_183143Mango Lassi10 Nov 202610Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_183350Mango Lassi10 Nov 202652Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_184034Mango Lassi10 Nov 202621Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_20261104_184550Mango Lassi10 Nov 20262112Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_q37_20261104_194544Mango Sorbet10 Nov 2026116Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_q37g_20261104_201621Mango Chutney10 Nov 202642Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_004000_q37g_20261104_233013Mango Chutney10 Nov 202632Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261108_235412Mango Pudding10 Nov 202684Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261109_000538Mango Pudding10 Nov 20262914Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch
rollout_pi05_016000_20261109_005026Plain Bagel10 Nov 20263714Overhead: seenAcross the table: seenNear eye level: seenFrom the side: seenOn the gripper: seenwatch

Filled chips are the cameras stored in that recording. The August datasets, versions 1 to 5, are under previous work.