The AY-Robots arena leaderboard: a sortable table of 85 vision-language-action models with 332 benchmark results, each value linked to its source paper or model card
evaluationvlabenchmarkingmethodologypolicy-rollout

What a Good Robot Demo Video Shows, and What It Hides

AY-Robots ResearchAugust 23, 202623 min read

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 seeWhat you cannot seeWhy it changes the conclusion
The robot completes the taskHow many attempts preceded this oneOne success out of twenty is a different claim from twenty out of twenty
Smooth, continuous motionWhether the clip is one take or severalA cut between grasp and lift can hide a regrasp, a reset, or a different run
The robot moving at a plausible paceThe playback speedManipulation policies on this class of hardware run at 20 to 485 ms per action step; speed is the cheapest edit there is
A tidy sceneWho arranged it, and how preciselyMatched initial conditions are the difference between a comparison and an anecdote
An arm operating apparently on its ownWhether a human is in the loopTeleoperated footage looks identical to autonomous footage from the outside
One taskPerformance on the other tasksPapers 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.

python
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}%")
Two lines of arithmetic that decide how much a demo video is worth. Wilson intervals are used here because the normal approximation breaks down badly at small n and at rates near 100 percent.

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 resultSuccess rate95 percent confidence intervalInterval width
4 of 5 trials80 percent38 to 96 percent59 points
9 of 10 trials90 percent60 to 98 percent39 points
8 of 10 trials80 percent49 to 94 percent45 points
20 of 25 trials80 percent61 to 91 percent30 points
45 of 50 trials90 percent79 to 96 percent17 points
170 of 200 trials85 percent79 to 89 percent10 points
Five trials per task is a real number, not a strawman

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.

The AY-Robots arena page showing a sortable table of 85 vision-language-action models with 332 benchmark results, each value linked to the paper or model card it came from
The AY-Robots arena lists 85 VLA models and 332 benchmark results. The useful property is not the ranking, it is that every value links back to the paper or model card it came from, so you can go read the trial count yourself.

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.

WorkReal-world protocolSimulation protocolNotable detail
ACT / ALOHA (Zhao et al., arXiv 2304.13705, Apr 2023)1 seed, 25 evaluations per task3 seeds, 50 policy evaluations eachThe real-world numbers come from a single training seed
Diffusion Policy (Chi et al., arXiv 2303.04137)not the main protocol3 seeds x 50 environment initialisations, averaged over the last 10 checkpoints, about 1500 experimentsExplicitly 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 task10 trials per task on LIBERO and Meta-WorldTrials 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 total200 rollouts per task per policy per conditionBlind 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.

Open-loop evaluation is not a demo, and that is the point

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.

bash
# 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 8
The open-loop evaluation entry point from the Isaac-GR00T README as of August 2026. It tells you whether the model predicts human actions. It does not tell you whether the arm finishes the task.

Five 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.

bash
# 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_time
Verified on a two-clip test file: ffprobe reported 30/1 fps, 120 frames, 4.0 s duration, and the scene filter found exactly the one splice point. Raise the 0.3 threshold if a moving camera produces false positives.

A 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.

PolicyInference per action stepRough action steps per secondWhere the time goes
ACT20 msabout 50Small transformer, roughly 80 M parameters, trained from scratch
GR00T N1.7152 msabout 6.5Roughly 3 B parameter VLA with a diffusion action head
GR00T N1.5165 msabout 6Predecessor of N1.7, same size class
SmolVLA245 msabout 4Compact VLA, roughly 450 M parameters
Pi0.5485 msabout 2Flow-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.

What a good disclosure sentence looks like

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.

The trap that eats a day: an evaluation that is really a memorisation test

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.

What a demo video is and is not good for
A video is good evidence for
  • 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
A video is poor evidence for
  • 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
The AY-Robots policies comparison page showing the five trainable policies with parameter counts, required GPU, inference latency per action step and minimum episode counts
The policy comparison page. When a demo video makes a claim about speed, this is the table to check it against: 20 ms per action step for ACT, 485 ms for Pi0.5, with everything else in between.

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.

  1. 1
    Fix 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.

  2. 2
    Decide 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.

  3. 3
    Run 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.

    bash
    lerobot-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
  4. 4
    Score 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.

  5. 5
    Repeat 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.

  6. 6
    Publish 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.

    bash
    ffmpeg -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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Run the fine-tune, serve the checkpoint, connect the arm, and run at least 20 matched-condition rollouts per condition.
  6. 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.
The reproducibility detail nobody mentions in the video

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.

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.
The AY-Robots try page showing three ways to start without owning a robot: drive a real arm in the browser, compare models, and rent a GPU for training
Three entry points that do not require owning hardware. The middle one, comparing models on real numbers, is the direct antidote to judging a policy by its highlight reel.

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 arena

A 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.

  1. How many attempts? Give the numerator and the denominator, per task, and say whether the shown clip is representative or selected.
  2. Autonomous, supervised, or teleoperated? State it on the footage, not in the description.
  3. What playback speed? Real time, or the multiplier, on screen. Publish the cadence log if you have one.
  4. One take or several? If several, say so, and show one uninterrupted take first.
  5. Who set the scene, and how precisely? Matched initial conditions, or free arrangement, and whether the evaluator knew which policy was running.
  6. 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

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started