
Cuts, playback speed, retries and hidden teleoperation all change what a robot demo proves. How to read one critically, with the trial counts real papers report.
How to read a robot demo video
- •A demo video is a sample. The number that matters is not what you saw, it is how many attempts it was drawn from, and that number is almost never in the video.
- •A policy that works 20 percent of the time still gives you at least one clean take in 10 attempts with 89 percent probability. One good take is nearly free.
- •Published papers report between 5 and 50 trials per task. Five trials per task means the reported success rate can only be 0, 20, 40, 60, 80 or 100 percent.
- •Cuts, speed changes and off-camera resets are the three edits that do the most work. All three are detectable, two of them with ffprobe.
- •The strongest evidence a demo can carry is an uncut single take, at real time, with the trial count and the initial-condition protocol stated on screen.
- •AY-Robots does not audit videos. What it does give you is the underlying benchmark numbers with their sources, and a way to run the same policy yourself.
A demo video is a sample of size one
A robot demo video is evidence. It is just very weak evidence, and it is weak in a specific, measurable way. What you are shown is one execution of a task. What you want to know is the distribution that execution was drawn from. Those two things are related by a number, the number of attempts, and that number is almost never on screen.
This is not an accusation of dishonesty. Recording a clean take is a normal part of communicating research, and the same clip can be an honest illustration or a misleading claim depending entirely on what is said around it. The problem is that the surrounding information is usually missing, and the viewer fills the gap with an optimistic assumption. This article is about closing that gap: what to look for in the footage, what the policy papers actually report, and what you can verify yourself in about ten minutes.
| What you see | What you cannot see | Why it changes the conclusion |
|---|---|---|
| The robot completes the task | How many attempts preceded this one | One success out of twenty is a different claim from twenty out of twenty |
| Smooth, continuous motion | Whether the clip is one take or several | A cut between grasp and lift can hide a regrasp, a reset, or a different run |
| The robot moving at a plausible pace | The playback speed | Manipulation policies on this class of hardware run at 20 to 485 ms per action step; speed is the cheapest edit there is |
| A tidy scene | Who arranged it, and how precisely | Matched initial conditions are the difference between a comparison and an anecdote |
| An arm operating apparently on its own | Whether a human is in the loop | Teleoperated footage looks identical to autonomous footage from the outside |
| One task | Performance on the other tasks | Papers report per-task tables; videos show the best row |
The arithmetic of a lucky take
Start with the part that needs no domain knowledge. If a policy succeeds with probability p on an independent attempt, the probability of getting at least one success in m attempts is 1 minus (1 minus p) to the power m. Put realistic numbers in and the result is uncomfortable.
from math import sqrt
def at_least_one(p, m):
return 1 - (1 - p) ** m
def wilson(k, n, z=1.96):
"""95% confidence interval for a success rate of k out of n."""
p = k / n
d = 1 + z * z / n
centre = (p + z * z / (2 * n)) / d
half = z * sqrt(p * (1 - p) / n + z * z / (4 * n * n)) / d
return max(0.0, centre - half), min(1.0, centre + half)
for p in (0.2, 0.3, 0.5):
print(p, [round(at_least_one(p, m), 2) for m in (5, 10, 20)])
for k, n in ((4, 5), (9, 10), (20, 25), (45, 50), (170, 200)):
lo, hi = wilson(k, n)
print(f"{k}/{n} = {100 * k / n:.0f}% 95% CI {100 * lo:.0f}-{100 * hi:.0f}%")The first loop prints the numbers that should make you cautious. A policy with a true success rate of 20 percent produces at least one clean take in 10 attempts 89 percent of the time. At 30 percent it is 97 percent. Filming twenty attempts and keeping one is not fraud, it is an afternoon. The cost of producing a convincing video is close to zero even for a policy that fails four times out of five.
The second loop prints the interval you should mentally attach to any reported success rate. This is the number that decides whether two policies in a comparison are actually different.
| Reported result | Success rate | 95 percent confidence interval | Interval width |
|---|---|---|---|
| 4 of 5 trials | 80 percent | 38 to 96 percent | 59 points |
| 9 of 10 trials | 90 percent | 60 to 98 percent | 39 points |
| 8 of 10 trials | 80 percent | 49 to 94 percent | 45 points |
| 20 of 25 trials | 80 percent | 61 to 91 percent | 30 points |
| 45 of 50 trials | 90 percent | 79 to 96 percent | 17 points |
| 170 of 200 trials | 85 percent | 79 to 89 percent | 10 points |
The OpenVLA paper evaluates each method on the Google robot with 12 tasks at 5 trials each, 60 rollouts total. With 5 trials, the only success rates a task can report are 0, 20, 40, 60, 80 and 100 percent. A one-trial difference between two policies moves the number by 20 points and means almost nothing. OpenVLA is careful about this and runs everything as A/B evaluations with matched initial robot and object states, which is exactly the right mitigation. Many papers that quote similar trial counts do not.
None of this makes small evaluations useless. It makes single numbers from small evaluations uninformative, which is a different and more actionable problem. The fix that the field has converged on is not more trials for their own sake, it is better metrics and matched conditions. Vision-language-action models in particular tend to fail in graded ways rather than binary ones, which is why partial-credit scoring has started to replace binary success.

What the papers actually report
Before criticising a video, it helps to know what the primary literature commits to. These are the evaluation protocols as stated in the papers, not as summarised by press coverage. They vary by more than an order of magnitude.
| Work | Real-world protocol | Simulation protocol | Notable detail |
|---|---|---|---|
| ACT / ALOHA (Zhao et al., arXiv 2304.13705, Apr 2023) | 1 seed, 25 evaluations per task | 3 seeds, 50 policy evaluations each | The real-world numbers come from a single training seed |
| Diffusion Policy (Chi et al., arXiv 2303.04137) | not the main protocol | 3 seeds x 50 environment initialisations, averaged over the last 10 checkpoints, about 1500 experiments | Explicitly moves away from prior work that reported the best-performing checkpoint |
| OpenVLA (arXiv 2406.09246) | 170 rollouts on BridgeData V2 (17 tasks x 10 trials); 60 on the Google robot (12 tasks x 5 trials) | - | All evaluations run as A/B with the same initial robot and object states |
| Pi0.5 (arXiv 2504.16054) | 10 evaluations per task, episodes spanning multiple minutes | - | Scored as percent of points on a rubric, not binary success |
| SmolVLA (arXiv 2506.01844) | 10 trials per task, 5 cube positions on the pick-and-place task | 10 trials per task on LIBERO and Meta-World | Trials scored 1 only if the task is fully completed |
| Large Behavior Models (TRI, arXiv 2507.05331, Jul 2025) | 50 rollouts per task per policy per condition, nearly 2700 real-world rollouts in total | 200 rollouts per task per policy per condition | Blind evaluators, randomised policy order, initial conditions matched with a camera overlay |
| RoboArena (arXiv 2506.18123) | over 600 pairwise episodes across 7 institutions on DROID hardware | - | Double blind; evaluators receive only server IP addresses and score progress from 0 to 100 |
The gap between the top and the bottom of that table is the whole story. A 25-trial single-seed result and a 2700-rollout blind randomised study are both published, both peer-reviewed in some form, and both get turned into a 30-second video that looks the same. The video is not where the difference lives.
Every model in this space has a cheap offline metric: replay a recorded episode, ask the policy what it would have done, and compare against the human action. NVIDIA ships this as gr00t/eval/open_loop_eval.py in Isaac-GR00T. It is genuinely useful for catching a broken data pipeline, and it is genuinely bad at predicting whether the arm will finish the task, because it never lets the policy's own errors compound. A low open-loop error with a failing closed-loop rollout is one of the most common findings in practice, and it has its own failure-mode page.
# Terminal 1: serve the policy
uv run python gr00t/eval/run_gr00t_server.py \
--model-path nvidia/GR00T-N1.7-3B \
--embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT \
--device cuda:0
# Terminal 2: open-loop evaluation against recorded trajectories
uv run python gr00t/eval/open_loop_eval.py \
--dataset-path demo_data/droid_sample \
--embodiment-tag OXE_DROID_RELATIVE_EEF_RELATIVE_JOINT \
--host 127.0.0.1 \
--port 5555 \
--traj-ids 1 2 \
--execution-horizon 8Five edits that change what you see
1. Cuts
Evan Ackerman, who has written the IEEE Robotics and Automation Society guidance on robot videos, puts it plainly: he assumes multiple cuts means multiple takes. That is the correct prior. A cut between robot approaches object and robot lifts object removes exactly the part where these policies fail most often.
You can count the cuts without watching frame by frame. ffmpeg's scene-change filter reports every frame where the visual content jumps, and ffprobe tells you the real duration and frame rate.
# duration, declared frame rate and frame count
ffprobe -v error -select_streams v:0 \
-show_entries stream=r_frame_rate,avg_frame_rate,nb_frames \
-show_entries format=duration \
-of default=noprint_wrappers=1 demo.mp4
# list every hard cut (scene change above the threshold)
ffmpeg -hide_banner -nostats -i demo.mp4 \
-filter:v "select='gt(scene,0.3)',showinfo" \
-f null - 2>&1 | grep pts_timeA high cut count is not proof of anything on its own. A promotional edit is allowed to have cuts. What matters is whether the cuts fall inside a single claimed execution. Ackerman's advice to producers is to show one uninterrupted take first and only then cut to other angles, and that is exactly the structure worth looking for.
2. Speed
Playback speed is the cheapest edit and the hardest to spot by eye, because most viewers have no calibrated sense of how fast a robot arm should move. The relevant number is the control loop. On the five policies AY-Robots trains, a single action step costs between 20 ms and 485 ms.
| Policy | Inference per action step | Rough action steps per second | Where the time goes |
|---|---|---|---|
| ACT | 20 ms | about 50 | Small transformer, roughly 80 M parameters, trained from scratch |
| GR00T N1.7 | 152 ms | about 6.5 | Roughly 3 B parameter VLA with a diffusion action head |
| GR00T N1.5 | 165 ms | about 6 | Predecessor of N1.7, same size class |
| SmolVLA | 245 ms | about 4 | Compact VLA, roughly 450 M parameters |
| Pi0.5 | 485 ms | about 2 | Flow-matching VLA on a PaliGemma backbone |
Those figures come from the AY-Robots policy comparison. Read them with one correction in mind: all of these models use action chunking, so a single forward pass emits a chunk of future actions that the robot plays out while the next chunk is computed. That is why a Pi0.5 rollout does not look like two twitches per second. It also means raw per-step latency alone cannot tell you whether a video was sped up.
The honest way to settle it is instrumentation rather than inference. LeRobot's lerobot-rollout prints a cadence report at the end of every run: effective control frequency against the target, how many cycles blew the budget, and where the time went across observe, process, infer, send and record. If a demo is accompanied by that block, the speed question is answered. If it is not, and the video has no on-screen speed label, treat the pace as unknown.
Physical Intelligence's pi0 launch post says of its laundry-folding clip that "The video is uncut, from a single policy operating fully autonomously". The pi0.5 post repeats, on every experiment, that "All experiments were done in homes that were not in the training data." Neither sentence is long. Both remove an entire category of doubt. Their absence is informative.
3. Retries
A retry inside a take is not a problem, it is often the most interesting thing in the clip. Recovery behaviour is a real capability and a policy that regrasps after a slip is better than one that does not. The problem is retries between takes, presented as one. This is the failure mode the Toyota Research Institute large behavior model study designs against by running policies in randomised bundles: each bundle covers one initial condition, every policy in the comparison gets that condition, and the order is shuffled so that drift in lighting or object wear does not favour whoever went first.
There is a subtler version. The University of Pennsylvania GRASP lab ran over 300 trials of pi0 in the wild and then published six clips they describe, in their own words, as cherry-picked rollouts that highlight the model's strengths. That is fine, because they say so, and because they also publish the failure taxonomy: out-of-distribution objects, spatial reasoning errors on height, freezing mid-task, collisions with unfamiliar appliances. They call the whole exercise a vibe check rather than a benchmark. Selection plus disclosure is honest. Selection alone is not.
4. The reset you do not see
Between two takes, someone puts the objects back. How precisely they do that is one of the largest and least discussed sources of variance in robot evaluation. The TRI study handles it by giving the human resetter a camera overlay of the desired initial scene and asking them to match it. RoboArena requires evaluators to closely match initial conditions within an A/B pair while deliberately allowing variation between pairs.
Why this matters more than it sounds: The Colosseum benchmark varies 20 manipulation tasks along 14 axes of environmental perturbation, things like object colour, texture, size, lighting, distractors and camera pose. A single perturbation cuts success rates by 30 to 50 percent. Combined perturbations cut them by 75 percent or more. A demo filmed in the exact scene the data was collected in is measuring something close to the training distribution, which is a much easier problem than the one the video appears to claim. This is common enough on small custom datasets that it has a dedicated failure page.
If your evaluation scene is the same table, the same lighting and the same object positions as your recorded LeRobot dataset, a policy can score well by memorising the trajectory rather than by responding to what it sees. The tell is that blanking or occluding a camera barely changes the motion. Before you believe your own demo, move the object 10 cm, change the light, and run it again. If the success rate collapses, you have measured the training set. Related pages: policy only works in one setup and policy freezes mid-motion.
5. Who is driving
Autonomous footage and teleoperated footage are visually identical from outside the robot. This is not hypothetical. When 1X demonstrated its NEO home humanoid in October 2025, the complex portions of the demo were run by remote human operators, and the company was open that teleoperation is part of the product plan rather than a temporary crutch. The IEEE RAS guidance asks producers to state on the video itself how the robot is being controlled, ranging over human in the loop, human supervised, scripted actions, partial autonomy and full autonomy, and to put that text on the footage rather than in the description where it will be stripped by every repost.
For a small arm this question is less loaded but still worth asking, because leader-follower teleoperation produces motion that is smoother and more decisive than most trained policies. If a clip of an SO-100 looks better than everything else you have seen from that hardware class, teleoperation is the first hypothesis, not the last.
- Existence: the system did this at least once, on real hardware
- Qualitative behaviour: how the motion is shaped, whether it looks jerky, whether it recovers from a slip
- Task difficulty: you can see the clearances, the deformable objects, the occlusions
- Hardware claims: the arm, the gripper, the cameras and their placement are visible
- Failure disclosure, when the video actually shows the failures alongside the successes
- Success rate: a single clip carries no information about the denominator
- Reliability over time: nothing tells you whether attempt 40 looks like attempt 1
- Generalisation: the scene shown is usually the scene the data came from
- Comparison between two systems: different scenes, objects and resets make side-by-side clips incomparable
- Autonomy level, unless it is stated on screen
- Real-time speed, unless it is stated on screen or the cadence log is published

Run the demo yourself
The fastest way to stop arguing about a video is to reproduce the number. For anything built on imitation learning with an open checkpoint, that is a few commands, and the result is worth more than any amount of frame analysis. Here is the protocol, borrowed from the studies above and cut down to what one person with one arm can actually run in an afternoon.
- 1Fix the initial conditions before you start
Photograph the scene you will reset to and keep the picture open on a second screen. This is the camera-overlay trick from the TRI study, done cheaply. Write down object positions in centimetres from a table edge so a second person can reproduce them.
- 2Decide the trial count in advance
Twenty trials per condition is the practical floor for a claim about one policy: it gets a 90 percent observed rate down to roughly a 20 point interval. Fifty is what the TRI study uses per task per policy per condition. Decide before you look at the results, otherwise you will stop at a flattering moment.
- 3Run the rollouts and log the cadence
Use the same command every time and let it print its timing report. The cadence block is your proof that the run was real time.
bashlerobot-rollout \ --strategy.type=base \ --policy.path=${HF_USER}/act_policy \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \ --display_data=true \ --task="put the brick in the box" \ --duration=60 - 4Score with partial credit, not just success or failure
Record a progress score from 0 to 100 alongside the binary outcome, the way RoboArena does. Recent work on sequential testing (arXiv 2603.13616, March 2026) finds that fine-grained progress separates competing policies faster than binary success, cutting evaluation burden by up to 70 percent against standard batch methods.
- 5Repeat under one perturbation
Move the object 10 cm, or change the lighting, and run 20 more. The Colosseum result says to expect a 30 to 50 percent relative drop from a single perturbation. If your drop is much larger, you have a generalisation problem rather than a capability.
- 6Publish the denominator
Whatever you release, put the trial count, the autonomy level and the playback speed on the video itself. That single caption is the difference between a demo and a claim.
bashffmpeg -i raw.mp4 -vf \ "drawtext=text='18/20 trials, autonomous, 1x speed':\ x=20:y=h-60:fontsize=28:fontcolor=white:box=1:boxcolor=black@0.5" \ -c:a copy demo.mp4
You want to check whether a published policy really does what its video shows. Everything you need is open, and the bill is your own time plus a GPU.
- Find the paper behind the video and read the evaluation appendix, not the abstract. Look for the trial count per task, the number of training seeds, and whether initial conditions were matched between policies.
- Download the released checkpoint. Note that some models have no released base checkpoint for your embodiment, so a fine-tune is the only way to reproduce anything.
- Convert your dataset to the format the trainer wants. LeRobot v3.0 datasets crash the GR00T loader and have to be converted down to v2.1, which is its own afternoon.
- Rent a GPU. GR00T N1.7, GR00T N1.5 and Pi0.5 need an A100 80 GB or H100 80 GB. SmolVLA and ACT fit on an RTX 4090 or any 24 GB card.
- Run the fine-tune, serve the checkpoint, connect the arm, and run at least 20 matched-condition rollouts per condition.
- Do the statistics yourself. Wilson intervals for binary success, or the sequential procedures from arXiv 2405.05439 and arXiv 2603.13616 if you want to stop early with a guarantee.
GR00T's fine-tuning entry point, launch_finetune.py in Isaac-GR00T, is a tyro CLI that exposes no seed argument. That means GR00T fine-tuning runs are not bit-for-bit reproducible, and two runs from the same data can land at different points. lerobot's default seed is 1000, so ACT, SmolVLA and Pi0.5 runs through lerobot are reproducible in a way GR00T runs are not. If you are comparing your reproduction against a paper's number, this is a real part of the gap.
The platform does not verify videos and does not claim to. What it removes is the friction between watching a claim and testing it.
- Open the arena: 85 VLA models with 332 benchmark results, and every value linked to the paper or model card it came from, so you can go and read the trial count in the source.
- Check the policy pages for the numbers a video will not give you: parameter count, required GPU tier, inference latency per action step, and the minimum episode count before the model is useful at all.
- Use a head-to-head page such as GR00T N1.7 against Pi0.5 when a video implies one model beats another.
- Record your own dataset with the desktop client, or start from a public one in the dataset directory.
- Train from a form on the training page. The backend rents a GPU on the spot market by required VRAM and writes checkpoints to object storage. An A100 or H100 run is 3 to 6 hours at 1.20 to 2.00 USD per hour, roughly 4 to 12 USD. A 4090-class run is 2 to 5 hours at 0.30 to 0.60 USD per hour, roughly 1 to 3 USD.
- Run the trained policy back on the arm and count your own successes.
/api/inference/podprovisions a pod that serves the policy, and the pod destroys itself after an idle period, so a forgotten evaluation does not bill silently.
If you want to see what an SO-100 actually looks like under control before judging anyone's footage, the live page streams a physical arm you can drive from the browser with no account, queue-based. It is the cheapest calibration available for your own sense of how fast these arms move.
Where this platform helps, and where it does not
Being specific about the limits is more useful than a pitch. AY-Robots can shorten the path from a claim to your own measurement. It cannot tell you whether someone else's video was edited.
- It does not analyse videos, detect cuts, or estimate playback speed. The ffprobe commands above are the whole toolkit for that, and they are free.
- It does not verify third-party benchmark claims. The arena links each number to its source; reading the source is still your job.
- It cannot make a remote evaluation as valid as a local one. Inference has to sit next to the servos for fast tasks. With a control loop of 20 to 485 ms per action step, adding public-internet round trips turns a working policy into a hesitant one. Remote inference is workable for slow pick-and-place and unsuitable for fast reactive motion, and a video recorded over a fast local link will not reproduce over a slow remote one.
- It does help with the parts that are pure friction: renting the right GPU tier, converting dataset versions, serving a checkpoint, and getting a policy back onto an arm so you can count rollouts instead of arguing about frames.
- The same operations are available from a terminal via the CLI and to agents via the MCP server, which is what you want if you are scripting a twenty-rollout evaluation rather than clicking through it.

85 models, 332 benchmark results, every number linked to its source
Instead of ranking policies by whose demo video looked best, read the benchmark table where each value carries a link to the paper or model card it came from. Sort it, filter it, and go check the trial counts yourself.
Open the arenaA checklist you can paste into a review
Six questions. If a video answers all six, it is doing its job. If it answers none, it is a moodboard.
- How many attempts? Give the numerator and the denominator, per task, and say whether the shown clip is representative or selected.
- Autonomous, supervised, or teleoperated? State it on the footage, not in the description.
- What playback speed? Real time, or the multiplier, on screen. Publish the cadence log if you have one.
- One take or several? If several, say so, and show one uninterrupted take first.
- Who set the scene, and how precisely? Matched initial conditions, or free arrangement, and whether the evaluator knew which policy was running.
- What happens one perturbation away? Move the object, change the light, and report that number too.
The interesting consequence of taking this seriously is that it gets easier to be impressed by the right things. A 40 percent success rate on a genuinely hard task, stated openly with 25 trials behind it and a failure reel attached, is a much stronger result than a flawless clip with no denominator. Once you have run your own twenty rollouts on a fine-tuned ACT or SmolVLA policy and watched the number come out lower than you hoped, other people's honest numbers start to read as competence rather than weakness.
If you want the practical route rather than the critical one, the run your first policy walkthrough and the dataset recording tutorial cover the mechanics, and the data collection guide covers why most demos that fail were doomed at recording time rather than at training time. The SO-100 complete guide is the starting point if you do not have an arm yet.
Is a sped-up robot demo video dishonest?▾
Not by itself. Speeding up footage is a normal editing choice, and a five-minute pick-and-place task is tedious to watch in full. It becomes dishonest when the multiplier is not shown, because viewers calibrate their impression of capability partly on speed. The IEEE RAS guidance on robot videos asks producers to identify on the video itself whether it has been sped up or slowed down. A label in the YouTube description does not survive the first repost.
How many trials do I need before I can claim a success rate?▾
It depends on the width you can live with. At 20 trials, an observed 90 percent lands in a roughly 20 point interval. At 50 trials it is about 17 points wide for 45 successes. At 5 trials the interval for 4 successes runs from 38 to 96 percent, which is not a claim. Twenty per condition is a reasonable floor for one policy; the Toyota Research Institute large behavior model study used 50 real-world rollouts per task per policy per condition and nearly 2700 rollouts in total.
Can I tell from the video whether the robot was teleoperated?▾
Usually not, and that is the core problem. Teleoperated motion tends to be smoother, faster and more decisive than a trained policy on the same hardware, which is a hint rather than a test. The only reliable answer is disclosure. If a clip of a low-cost arm looks dramatically better than everything else you have seen from that hardware class, treat leader-follower teleoperation as the leading hypothesis until stated otherwise.
Why do open-loop metrics look good when the robot still fails?▾
Open-loop evaluation replays a recorded episode and compares the policy's predicted action against the human action at each step. The policy never has to live with its own mistakes, so small errors never compound into the drift that actually breaks a rollout. It is a good pipeline check and a poor capability check. Judge a policy on closed-loop rollouts on hardware, and use open-loop error only to catch a broken data path.
Do benchmark numbers solve the problem that videos have?▾
They shift it rather than solve it. Benchmark results still depend on trial counts, scene setup and whether the evaluator knew which policy was running. What they add is a denominator and a written protocol, which is enough to argue about. The arena on this site keeps every one of its 332 results linked to the paper or model card it came from precisely so the protocol stays one click away.
What is the single most useful thing to add to my own demo video?▾
A caption on the footage reading something like 18/20 trials, autonomous, 1x speed. It takes one ffmpeg drawtext filter, it answers the three questions viewers cannot otherwise resolve, and it makes the video more persuasive rather than less, because a stated denominator is a signal that you counted.
Sources
- Evan Ackerman, Tips for Making a Good Robot Video, IEEE Robotics and Automation Society
- Evan Ackerman, That Awesome Robot Demo Could Have a Human in the Loop, IEEE Spectrum, 23 January 2024
- TRI LBM Team, A Careful Examination of Large Behavior Models for Multitask Dexterous Manipulation (arXiv 2507.05331, July 2025)
- Atreya et al., RoboArena: Distributed Real-World Evaluation of Generalist Robot Policies (arXiv 2506.18123)
- Vincent et al., How Generalizable Is My Behavior Cloning Policy? A Statistical Approach to Trustworthy Performance Evaluation (arXiv 2405.05439)
- Snyder et al., Beyond Binary Success: Sample-Efficient and Statistically Rigorous Robot Policy Comparison (arXiv 2603.13616, March 2026)
- Pumacay et al., THE COLOSSEUM: A Benchmark for Evaluating Generalization for Robotic Manipulation (arXiv 2402.08191)
- Zhou et al., AutoEval: Autonomous Evaluation of Generalist Robot Manipulation Policies in the Real World (arXiv 2503.24278)
- Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model (arXiv 2406.09246), evaluation protocol in Appendix B
- Zhao et al., Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, the ACT and ALOHA paper (arXiv 2304.13705)
- Chi et al., Diffusion Policy: Visuomotor Policy Learning via Action Diffusion (arXiv 2303.04137), checkpoint-selection methodology
- Physical Intelligence, pi0.5: a Vision-Language-Action Model with Open-World Generalization (arXiv 2504.16054)
- Shukor et al., SmolVLA: A vision-language-action model for affordable and efficient robotics (arXiv 2506.01844)
- UPenn GRASP PAL Lab, Evaluating pi0 in the Wild: Strengths, Problems, and the Future of Generalist Robot Policies
- LeRobot documentation: Policy Deployment with lerobot-rollout, strategies and cadence reporting
- NVIDIA Isaac-GR00T: open-loop evaluation, policy server and fine-tuning entry points
- The Robot Report: Teleop, not autonomy, is the path for 1X's Neo humanoid
- Physical Intelligence blog: pi0, including the uncut single-policy disclosure on the laundry video
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started