Robots · Robot arms
Robot arm teleoperation, model by model
From the SO-101 on a desk to a UR10e on a line: how each arm is driven remotely, what the data looks like, and what it takes to keep operators on it every shift.

Updated
Most teams that teleoperate a robot arm want one of two things: demonstrations to train a policy on, or a person who can finish the job when the policy cannot. Both depend on the same three choices, and the right answer changes with the arm.
The three choices that decide everything
The input device
The control loop
The data format
Research arms and production cobots are different jobs
Low-cost and research arms (SO-101, Koch, Trossen WidowX and ViperX, UFACTORY xArm, Franka Research 3, AgileX PiPER) are bought to collect demonstrations. The operator is producing a dataset, so consistency matters more than speed: the same grasp, the same approach, clean episode starts and ends, and honest failure labels.
Industrial cobots (Universal Robots, FANUC CRX, ABB GoFa, Doosan, Techman, KUKA LBR iiwa) usually run a program, and a remote operator steps in for exceptions: a part in the wrong place, a regrasp, a jammed fixture. There the operator is measured on response time and on keeping the cell running safely, and the controller's own safety system stays in charge.
What a remote operator team needs from you
We start every arm engagement with a one-week trial on your robot. It sets the baseline that matters, clean episodes per operator hour, before anyone signs a longer statement of work. If we cannot hit the rate you need at your latency, we say so in that week.
Pick your arm
Each page below covers one model: its specs and control interfaces, how people teleoperate it today, which datasets and policies use it, its usual failure modes, and how we staff it.
| Model | Type | Best for | Driven with |
|---|---|---|---|
| UFACTORY xArm 6UFACTORY | 6-axis lightweight cobot | Robot-learning datasets, lab automation, light pick-and-place | xArm Python/C++ SDK, ROS 2 + MoveIt 2, GELLO leader arm, SpaceMouse / gamepad |
| Franka Research 3Franka Robotics | 7-axis torque-sensing research arm | Imitation learning datasets, contact-rich manipulation research | FCI via libfranka (C++), franka_ros2 + MoveIt 2, Franka GELLO leader arm, Meta Quest VR (DROID rig) |
| SO-101 (and SO-100)TheRobotStudio and Hugging Face | Open-source low-cost leader/follower arm | First LeRobot datasets, smolVLA and ACT fine-tuning | LeRobot so101_follower / so101_leader (built in), Bimanual bi_so_follower, SpaceMouse (community plugin), Phone / WebXR VR (community plugin) |
| Trossen WidowX AI (and Solo AI)Trossen Robotics | 6-axis research arm with leader/follower pairs | LeRobot and OpenPi imitation-learning datasets | lerobot_trossen plugin, WidowX AI leader arm, Trossen VR (Meta Quest), Trossen Arm driver (C++/Python) |
| Universal Robots UR5e (now UR7e)Universal Robots | 6-axis industrial cobot | Research datasets, machine tending, remote exception handling | RTDE (up to 500 Hz), UR ROS 2 driver + MoveIt 2, MoveIt Servo (3D mouse, gamepad), GELLO leader arm |
| Trossen ALOHA Stationary AITrossen Robotics | Bimanual leader/follower workstation (ALOHA lineage) | Bimanual ACT, smolVLA and π0 datasets | Two WidowX AI leader/follower pairs, lerobot_trossen bimanual types, OpenPi (Pi0 / Pi0.5), Touchscreen data collection UI |
| AgileX PiPERAgileX Robotics | 6-axis low-cost research arm | Low-cost imitation learning rigs, bimanual setups | piper_sdk (Python over CAN), piper_ros (ROS 2 Humble) + MoveIt, Built-in master-slave leader mode, AgileX Universal Master Arm |
| Trossen Mobile AI (Mobile ALOHA)Trossen Robotics | Mobile bimanual leader/follower kit (Mobile ALOHA lineage) | Bimanual demonstrations in homes, labs and warehouses | Two WidowX AI leader/follower pairs, lerobot_trossen mobileai_robot, OpenPi (Pi0 / Pi0.5), On-device ACT / ACT++ training |
| UFACTORY xArm 7UFACTORY | 7-axis lightweight cobot | Dexterous and bimanual demonstration datasets | xArm Python/C++ SDK, xarm_ros2 + MoveIt 2 / MoveIt Servo, GELLO leader arm, VR hand tracking (BEAVR) |
| Kinova Gen3Kinova | 7-axis ultra-lightweight research arm | Mobile manipulation, assistive and lab research | Kortex API (C++, Python), ros2_kortex + MoveIt 2, Twist control (gamepad, 3D mouse), TACTIC leader arm |
| Trossen WidowX 250 S (discontinued)Trossen Robotics (Interbotix) | Discontinued 6-axis Dynamixel research arm | BridgeData-style datasets and existing WidowX labs | Interbotix X-Series ROS 2 (Galactic, Humble), Interbotix Python / ROS SDK, Meta Quest VR (BridgeData stack), Leader arm (ALOHA WidowX) |
| Enactic OpenArm (1.0 and 2.0)Enactic | Open-source 7-DOF humanoid bimanual arm | Bimanual, contact-rich datasets in LeRobot | LeRobot openarm_follower / bi_openarm_follower (built in), LeRobot openarm_leader and openarm_mini, openarm_teleop (unilateral / bilateral), OpenArm KER motorless leader (2.0) |
| Koch v1.1Jess Moss (after Alexander Koch's low-cost arm) | Open-source Dynamixel leader/follower arm | Low-cost LeRobot datasets on Dynamixel servos | LeRobot koch_follower / koch_leader (built in), Leader gripper as a spring-back trigger, Dynamixel SDK, Rerun live view |
| Universal Robots UR10e (now UR12e)Universal Robots | 6-axis industrial cobot, 12.5 kg class | Palletizing, machine tending, remote exception handling | UR ROS 2 driver + External Control URCap, RTDE, Force mode and direct_torque, Dashboard server |
| UFACTORY Lite 6 (and UFACTORY 850)UFACTORY | 6-axis desktop cobot | Low-cost tabletop datasets on the xArm SDK | xArm Python / C++ SDK, ROS / ROS 2 packages, UFACTORY Studio (browser), GELLO Lite6 parts (community) |
| KUKA LBR iiwaKUKA | 7-axis torque-sensing industrial and research arm | Contact-rich research, sensitive assembly, medical research | FRI (Fast Robot Interface) over UDP, lbr_fri_ros2_stack + MoveIt, kuka_drivers (ROS 2), Sunrise.OS Java applications |
| FANUC CRX series (CRX-10iA and siblings)FANUC | 6-axis industrial cobot series | Machine tending, palletizing, remote exception handling | FANUC ROS 2 driver (Stream Motion), Remote Motion Interface (RMI), MoveIt 2, Tablet Teach Pendant |
| Flexiv Rizon 4Flexiv | 7-axis force-controlled adaptive robot | Contact-rich assembly, polishing, force-aware datasets | Flexiv RDK (C++, Python; 1 kHz RT), flexiv_ros2 (v1 line) + MoveIt 2, Flexiv TDK (LAN and WAN teleop), Flexiv Trainer (LeRobot episodes) |
| Trossen WidowX Core, Pro and Heavy (with Glide)Trossen Robotics | 6-axis research arm family with a passive leader | Leader/follower data collection, including mixed-arm fleets | Glide passive leader (joint or Cartesian), WidowX Core Leader, Trossen SDK (C++, MCAP recording), LeRobot v2 conversion |
| Unitree Z1 (Air and Pro)Unitree Robotics | 6-axis lightweight arm for mobile manipulation | Arms on quadrupeds and mobile bases, bimanual datasets | z1_sdk (C++ / Python), z1_ros (ROS Noetic, MoveIt), Community z1_ros2 (ros2_control, MoveIt), unitree_lerobot fork (data conversion) |
UFACTORYUFACTORY xArm 6 teleoperationRobot-learning datasets, lab automation, light pick-and-place
Franka RoboticsFranka Research 3 teleoperationImitation learning datasets, contact-rich manipulation research
TheRobotStudio and Hugging FaceSO-101 (and SO-100) teleoperationFirst LeRobot datasets, smolVLA and ACT fine-tuning
Trossen RoboticsTrossen WidowX AI (and Solo AI) teleoperationLeRobot and OpenPi imitation-learning datasets
Universal RobotsUniversal Robots UR5e (now UR7e) teleoperationResearch datasets, machine tending, remote exception handling
Trossen RoboticsTrossen ALOHA Stationary AI teleoperationBimanual ACT, smolVLA and π0 datasets
AgileX RoboticsAgileX PiPER teleoperationLow-cost imitation learning rigs, bimanual setups
Trossen RoboticsTrossen Mobile AI (Mobile ALOHA) teleoperationBimanual demonstrations in homes, labs and warehouses
UFACTORYUFACTORY xArm 7 teleoperationDexterous and bimanual demonstration datasets
KinovaKinova Gen3 teleoperationMobile manipulation, assistive and lab research
Trossen Robotics (Interbotix)Trossen WidowX 250 S (discontinued) teleoperationBridgeData-style datasets and existing WidowX labs
EnacticEnactic OpenArm (1.0 and 2.0) teleoperationBimanual, contact-rich datasets in LeRobot
Jess Moss (after Alexander Koch's low-cost arm)Koch v1.1 teleoperationLow-cost LeRobot datasets on Dynamixel servos
Universal RobotsUniversal Robots UR10e (now UR12e) teleoperationPalletizing, machine tending, remote exception handling
UFACTORYUFACTORY Lite 6 (and UFACTORY 850) teleoperationLow-cost tabletop datasets on the xArm SDK
KUKAKUKA LBR iiwa teleoperationContact-rich research, sensitive assembly, medical research
FANUCFANUC CRX series (CRX-10iA and siblings) teleoperationMachine tending, palletizing, remote exception handling
FlexivFlexiv Rizon 4 teleoperationContact-rich assembly, polishing, force-aware datasets
Trossen RoboticsTrossen WidowX Core, Pro and Heavy (with Glide) teleoperationLeader/follower data collection, including mixed-arm fleets
Unitree RoboticsUnitree Z1 (Air and Pro) teleoperationArms on quadrupeds and mobile bases, bimanual datasets
Frequently asked questions
- What is the best way to teleoperate a robot arm for data collection?
- For most manipulation datasets a leader arm (a kinematic copy of the robot) gives the most natural demonstrations, because the operator controls every joint at once. A 3D mouse or VR controller is the better choice when you need one interface across several arm models or when no leader arm exists for your robot.
- How much latency can robot arm teleoperation tolerate?
- Coarse pick-and-place stays workable to roughly 200 to 300 ms round trip. Contact-rich or sub-millimetre tasks recorded at 20 Hz or faster degrade quickly above about 50 to 100 ms, so they need nearby operators, local smoothing or a shared-autonomy setup.
- Can remote operators collect LeRobot datasets on our arm?
- Yes. Operators record through the LeRobot tools or your own stack, and each session is delivered as episodes with task labels and outcomes, ready to push to the Hugging Face Hub or keep private.
- Do you need our robot shipped to you?
- No. The robot stays in your lab or plant; operators connect remotely. You ship only custom input devices, if your setup uses one.