On-robot stack for VR teleoperation of Unitree humanoids and arms (G1, G1-D, H1, R series) and Agilex Piper. An operator in a headset drives the machine in real time: arms, hands, cameras, audio, and (where the robot has them) locomotion and lidar.
Built around the operator first: comfortable to wear, simple enough for non-programmers, and the fastest way to start driving a robot. You need a VR headset and a Wi-Fi router.
The stack stays as robot- and sensor-agnostic as we can make it. Support is limited to the machines we can test: every Unitree humanoid and half-humanoid in the G, R, and H series, plus Agilex Piper.
A main advantage is remote work over a VPS — the same claim-and-drive flow as on a local Wi-Fi network. We target 60 fps on all operator data, especially the camera image.
Runs on the robot PC. One operator claims a session; the robot streams senses out and executes motion in.
teleop-promo-g1d.mp4G1-D |
teleop-promo-moving-camera.mp4G1, moving camera |
This is a closed-source app. We are open to collaborations — including new robot manufacturers and types — and we can give a free demo.
- Telegram: @Ashtanev
- Email: andrewblackstown@gmail.com
Same operator app, different bodies:
- Unitree G / R / H — all humanoid and half-humanoid models we can test (biped, wheeled, lift column, optional locomotion)
- Agilex Piper — 6-DoF arm + gripper (CAN)
Hands are whatever is fitted: Inspire, Dex3, Dex1 grippers, BrainCo, or the Piper gripper. Unused hardware stays hidden.
- Put on the headset and claim the robot (PIN / exclusive session).
- See the robot’s cameras, hear its mic, speak to its speaker.
- Move your hands — the arms follow in the robot’s workspace (relative “clutch” retarget, IK, collision limits).
- Triggers / grips drive the hands or gripper.
- Release the claim when done. The robot stops taking VR input.
A sim mode runs the same IK and live pose view without commanding hardware.
- Cameras — low-latency H.265 to the headset (head stereo and optional wrists), targeted at 60 fps. Same streams preview in the web admin.
- Audio — robot mic to the operator; operator / TTS / playlist to the robot speaker. Gain, source (built-in vs USB), and mix are adjustable live.
- Lidar (when installed) — live top-down occupancy for the operator and the admin page.
- Proprioception — joint angles, battery / thermal health on Unitree bodies; CAN status on Piper.
Browser UI on the robot (HTTPS). Start and stop the teleop session, join Wi-Fi, watch a 3D live pose of the current URDF, tune cameras / mic / speaker / lidar / hands, and see robot PC load. Multi-language UI.
Login-protected. The running process is licensed to that machine.
- Recorder — episodes during VR teleop into a LeRobot dataset (cameras + state + actions + task label). Start / end / cancel from the admin page or the headset. Validate before you train.
- Inference — play a trained policy (e.g. ACT) on the same observation layout. Not at the same time as VR arm control.
- Voice — on-device ASR and TTS for spoken commands and robot speech (optional).
episode-recording.mp4Recording an episode |
episode-recording-robot-view.mp4Same episode, robot view |
Field demo, data collection, or policy playback: power the robot, open admin, start teleop, claim from the headset. One stack, one session, one operator.
robot-bartender.mp4Bartender demo |
two-robots.mp4Two robots |
h1.mp4H1 |