OhhO Pilot
Operate any robot. From anywhere. In mixed reality.
Put on an OpenXR mixed-reality headset, see your real room through passthrough, pick any robot from your OhhO garage — a mecanum mobile manipulator, a quadrotor drone, an underwater ROV, a dual-arm humanoid — and teleoperate it with controls appropriate to that robot. Hand-tracking arm IK, WebRTC telepresence video, per-robot calibration, and a catalog-driven spatial add-robot flow that mirrors the website. One shared OhhO account across web, Android and VR.
- Mixed-reality passthrough (OpenXR headset)
- Catalog-driven — any robot, one tap to drive
- Hand-tracking arm IK (analytic + FABRIK)
- WebRTC video with MJPEG fallback
- Dual-arm humanoid control
- Per-robot calibration + quick-resume
What you get
OhhO Pilot is the mixed-reality teleoperation cockpit. Put on an OpenXR mixed-reality headset and your real room is the background — passthrough MR means no vection and minimal sim-sickness, even during fast base driving. Floating glass panels show your robot's camera feed, telemetry and HUD, all themed to match the OhhO website.
Pilot is catalog-driven: the robot list, capability model and branding all mirror the OhhO website through one shared Supabase account. Pick a robot from your garage — or add a new one in-headset with the spatial categories → types → models → name flow — and Pilot builds a RobotProfile from the catalog entry (drive kind, arm DOF, joint limits, ROS topics, max velocities). A control-scheme factory picks the right drive scheme (mecanum, differential, Ackermann, aerial mode-2 RC, thruster vectoring) and manipulation scheme (6-DOF hand-IK, dual-arm FABRIK, gripper-only, or robot-side MoveIt Servo) for that robot automatically.
Every robot category gets a correct, distinct control mapping. A drone uses mode-2 RC sticks (left = throttle + yaw, right = translate). An underwater ROV gets surge/sway/heave/yaw. A humanoid drives two arms with two hands via independent FABRIK IK chains. A mecanum mobile manipulator gets analytic arm IK + mecanum strafe. Safety is non-negotiable: deadman grip to drive, both-grips e-stop, velocity/joint clamping from the profile, and a connection-loss watchdog that auto-stops.
Built to do the hard parts for you
Always-on headset passthrough as the scene background. Frosted-glass panels float in your real room — see the robot and your surroundings simultaneously. Spatial anchors pin the virtual arm workspace to a real surface so it stays put as you walk.
The robot list, capability model and branding mirror the OhhO website through one shared Supabase account. A drone, an industrial arm, a quadruped and a mobile manipulator each get a correct, distinct control scheme — automatically, from the catalog profile. Add robots in-headset or on the website; they appear everywhere.
The headset reports a 6-DOF wrist pose; Pilot retargets it to the arm's end-effector and solves IK in real time. Analytic IK for the reference 6-DOF arm, generic FABRIK for arbitrary chains, dual-arm FABRIK for humanoids. Pinch drives the gripper. Optionally stream the Cartesian target to MoveIt 2 Servo on the robot for collision-aware solving.
Sub-100 ms live video via WebRTC when available, with automatic MJPEG fallback per-camera. The camera list comes from the robot's profile — a drone shows FPV + down cameras, a mobile manipulator shows front + wrist + BEV, all automatically.
Each robot gets its own calibration (arm base height, workspace scale, velocity caps, IK location) persisted in the headset. The last-driven robot is saved for one-tap quick-resume on the next session. First-run onboarding shows control hints for the selected robot.
Record imitation-learning demonstrations at 30 Hz in LeRobot-compatible JSONL. The recorder reads ROS topics and state/action dimensions from the robot's profile, so a drone records base-only obs/actions, a humanoid records dual-arm + base, and an industrial arm records arm-only — all correctly, automatically.
How it works
Put on the headset and sign in with the same OhhO account you use on the website — email + 6-digit OTP code. Your saved robots are already there.
Open your garage and pick a robot — or add a new one with the spatial categories → types → models → name flow. Quick-resume jumps straight to the last robot you drove.
Thumbsticks drive the base (mecanum strafe, drone throttle/yaw, ROV surge/sway/heave). Right-hand pose retargets to the arm via IK; pinch drives the gripper. Both grips = emergency stop.
Record teleop demonstrations for training, or switch control modes between teleop, navigation and AI policies. Export episodes to the robot for the OhhO Data pipeline.
Specifications
- Headset
- Any OpenXR mixed-reality headset (passthrough)
- Engine
- Unity 2023.3 LTS + OpenXR
- Transport
- ROSBridge WebSocket (port 9090)
- Video
- WebRTC (sub-100 ms) + MJPEG fallback
- Drive schemes
- Mecanum, differential, Ackermann, aerial, thruster, legged
- Arm IK
- Analytic (reference 6-DOF), FABRIK (generic), dual-arm, MoveIt Servo (robot-side)
- Safety
- Deadman grip, both-grips e-stop, velocity/joint clamps, connection-loss watchdog
- Recording
- 30 Hz JSONL, profile-driven topics + dims (LeRobot-compatible)
- Account
- Shared Supabase identity across web, Android and VR
Which plan do I need for OhhO Pilot?
We recommend the Fleet plan. Casual mobile teleop of a few robots fits Builder. For the full VR experience — mixed-reality passthrough, WebRTC video, unlimited robots, dual-arm humanoid control, and per-robot calibration — choose Fleet. White-label Pilot for your own operators with Forge.
Common questions
No. Pilot works fully on mobile; VR is the immersive option for mixed-reality arm control with hand tracking. The VR app targets any OpenXR mixed-reality headset.
Any robot in the OhhO catalog. The headset derives a control scheme from the robot's profile — a mecanum base gets strafe sticks, a drone gets mode-2 RC, an ROV gets thruster vectoring, a humanoid gets dual-arm hand IK. Add robots on the website, Android app, or in-headset.
Pilot supports WebRTC for sub-100 ms telepresence when the package and signaling server are available, with automatic MJPEG fallback per-camera. The camera list adapts to the robot — a drone shows FPV + down, a mobile manipulator shows front + wrist + BEV.
Yes. Pilot supports robot-side IK via MoveIt 2 Servo — stream the Cartesian end-effector target and let the robot solve with collision awareness. This is the default for industrial-arm profiles; mobile manipulators use headset-side IK for lowest latency.
Pilot clamps velocities and joint angles from the robot's profile, offers a deadman grip and both-grips emergency stop, and auto-stops on connection loss. Pair it with OhhO Shield for authenticated, encrypted links.
Works better together
Ready to build with OhhO Pilot?
Start free and simulate first — no hardware required. Upgrade when you're ready to deploy.