VR Teleoperation Made Easy
Viam × UFACTORY xArm
In Short
Viam, the software platform for building, deploying, and managing robotics applications, built a dual-arm VR teleoperation system with two UFACTORY xArm robots and HTC Vive controllers. Using Viam’s open-source vive module, the arms were declared in config and controlled through consistent APIs instead of custom middleware. One engineer completed the build in two weeks, turning what would typically be a six-month middleware project into a working system that also captures labeled training data for future autonomous operation.
Customer Profile
Key Benefits
Integrated with Viam through a ready-made, open-source xArm module, with no custom middleware or deep hardware integration required.
Controlled through consistent APIs, so a single-cell setup can be reused across many machines with Viam’s remote management, OTA updates, and monitoring.
Task solved
Two UFACTORY xArm robots were teleoperated with HTC Vive controllers, featuring real-time 6DOF pose tracking, proportional gripper control via the trigger, and a grip-held deadman switch that lets the arms move only while the operator holds it.
Benefits achieved
Reduced a six-month middleware build to two weeks, completed by a single engineer.
Every teleoperation session automatically generates labeled training data, building a dataset for fully autonomous operation.
The Challenge
Dual-arm teleoperation demands real-time 6DOF pose tracking, sub-millimeter arm positioning, and safe handoff between human operators and autonomous workflows. Most implementations require custom middleware, deep hardware integration, and separate tooling for data capture, creating months of infrastructure work before a single line of application logic ships.
THE SOLUTION
Viam is the fastest way to build a robot. By treating the hardware as software, the team turned a six-month middleware problem into a two-week build.
Two X-ARM robots were integrated with HTC Vive VR controllers using the open-source vive module on Viam, declared in config and controlled through consistent APIs rather than hand-built middleware. The module’s teleoperation service handles 6DOF tracking, proportional gripper control via trigger input, and clean handoff between manual and autonomous modes via a master enable gate.
Every teleoperation session also automatically generates labeled training data, meaning the system gives operators realtime arm control while simultaneously building a dataset for fully autonomous operation.
With Viam, one engineer did what would normally take a dedicated team: reused a ready-made, open-source integration, built the system, and validated it quickly.
Future iterations could add Viam's vision service so the arms detect and localize objects on their own, turning teleoperation into full autonomy. In addition, scaling beyond one cell is a config change, not a rebuild. The code and configuration that make one station work can quickly become reusable across a dozen or hundreds of machines, with Viam’s built-in remote management, OTA updates, and monitoring capabilities.If you want to run a UFACTORY xArm on Viam, start with the xArm module.
Not sure which model fits your workflow?
Our team will match the right robot and configuration to your needs.