RealHand Teleop is an Isaac Sim, Isaac Lab, and Isaac Teleop integration for
teleoperating a RealHand P7 bimanual robot equipped with RealHand L6, O6, or
L20 dexterous hands from a PICO 4 Ultra headset.
This repository is a robotics software and asset bundle. It does not contain
pretrained model weights, NVIDIA runtimes, or the external FFG SDK.
Release Contents
Version 0.2.0 includes:
RealHand P7 bimanual robot assets.
RealHand L6, O6, and L20 hand URDF and mesh assets.
PICO 4 Ultra OpenXR controller teleoperation.
PICO 4 Ultra OpenXR hand-tracking teleoperation.
FFG / RealForce glove teleoperation for L6, O6, and L20 hands.
Controller-driven arm poses with FFG-driven hand joints.
A 3D-printable PICO controller mount for FFG glove setups.
Pink-based dual-arm inverse kinematics.
A self-contained inspection and kitting workcell.
Runtime and offline FFG calibration tools.
This release intentionally does not include MCG / 9MOTCAP glove support.
Supported Modes
Select the hand with P7_REALHAND_HAND_MODEL=l6|o6|l20 and the input mode with
P7_REALHAND_INPUT_MODE=controller|handtracking|controller_ffg.
Input mode
Arm pose
Hand joints
controller
Left/right PICO controllers
Matching controller trigger
handtracking
Left/right OpenXR wrists
OpenXR 26-joint hand skeleton
controller_ffg
Left/right PICO controllers
Left/right FFG gloves
All three hands support all three modes. Gravity and hand self-collision are
enabled by default for the inspection scene.
Tested Compatibility
Component
Tested version
Operating system
Ubuntu 24.04.4 LTS
Python
3.12.3
Isaac Sim
6.0.0.1
Isaac Lab source
release/3.0.0-beta2
Isaac Lab commit
1a88953ca1cd246feebb9e33b8d381c2c0b4736d
Isaac Lab package metadata
6.1.5
Isaac Teleop
1.3.105rc1
XR device
PICO 4 Ultra
XR interface
OpenXR
Other versions have not yet been validated. See
COMPATIBILITY.md for the exact release contract.
Prerequisites
Install the workstation, XR, and glove runtimes separately before using this
bundle. This repository only contains RealHand-owned integration code, robot
assets, hand assets, scene assets, and launch/calibration scripts.
Component
Required for
Source / notes
NVIDIA GPU driver
All modes
Install a recent NVIDIA Linux driver supported by Isaac Sim. Validate with nvidia-smi.
Isaac Sim
All modes
Install the tested NVIDIA Isaac Sim version listed above.
Isaac Lab
All modes
Use an Isaac Lab checkout at the tested branch/commit listed above. Set ISAACLAB_ROOT and ISAACLAB_ENV when they are not in the default locations.
Isaac Teleop
All modes
Install NVIDIA Isaac Teleop at the tested version. The launcher uses Isaac Teleop's OpenXR and CloudXR entry points.
PICO 4 Ultra OpenXR tracking
controller, handtracking, controller_ffg
Use the PICO 4 Ultra headset/controllers with the OpenXR path exposed through Isaac Teleop.
CloudXR runtime
Current wireless XR path
Required for the current PICO streaming workflow. Accept the NVIDIA CloudXR EULA once before first use.
FFG / RealForce pure Python SDK
controller_ffg only
Clone and install FFG_realhand_pure_python. It provides the realhand_pure_python package used for RealForce glove serial reading, calibration loading, and retarget input.
CloudXR, Isaac Sim, Isaac Lab, Isaac Teleop, the PICO runtime/client, NVIDIA
drivers, and the FFG SDK are not redistributed in this repository. Their
upstream license terms apply independently.
Workspace Paths
The commands below use a configurable workspace instead of a machine-specific
path. Replace $HOME/realhand with any local directory you prefer:
controller and handtracking modes do not need the FFG SDK. Install it only
when using P7_REALHAND_INPUT_MODE=controller_ffg.
The launcher looks for the SDK at P7_REALHAND_FFG_SDK_PATH. The recommended
layout places the FFG SDK as a sibling of the downloaded RealHand Teleop repo:
$REALHAND_WORKSPACE/FFG_realhand_pure_python-main
Recommended install after creating the Isaac Lab Python environment:
The upstream FFG SDK also documents a standalone Conda environment. For this
Isaac Teleop bundle, install the SDK into the Isaac Lab Python environment or
make it visible through P7_REALHAND_FFG_SDK_PATH/PYTHONPATH.
After downloading this repository, verify that the package is importable and
that the gloves are visible from the repository root:
After the runtime reports that it is running, press Ctrl+C. The regular
launcher starts CloudXR automatically, so a separate CloudXR terminal is not
required for normal use.
Run
Activate the environment and enter the downloaded repository:
Use P7_REALHAND_HAND_MODEL=l6, o6, or l20 with any of the three supported
input modes.
FFG USB Discovery
The FFG reader auto-discovers USB serial devices and uses the glove-reported
side byte (left/right) from the RealForce version query. Set
P7_REALHAND_FFG_LEFT_PORT and P7_REALHAND_FFG_RIGHT_PORT only when explicit
assignment is needed. Leaving them unset, empty, or set to auto uses
discovery.
Check USB access before launching Isaac:
python scripts/teleop/scan_ffg_gloves.py
If Linux reports permission denied for /dev/ttyUSB*, add the user to
dialout and log out and back in:
sudo usermod -aG dialout "$USER"
For the current terminal only, use sg dialout -c '<command>' after group
membership is updated.
FFG PICO Controller Mount
The release includes a 3D-printable PICO controller holder for FFG glove use:
hardware/ffg_pico_controller_mount/finalpico2.3mf
Print two copies for each hand. Assemble the two printed parts symmetrically
around the PICO controller, then mount the assembled holder on the back of the
FFG glove. With the controller fixed on the glove back, controller_ffg mode
can use the PICO controller pose for the P7 arm while the FFG glove controls
the RealHand joints.
FFG Calibration
You can calibrate FFG gloves from the Isaac desktop UI in controller_ffg mode
or from the offline script:
This release controls the simulated P7 and RealHand system. It is not a
certified real-robot safety controller. Validate workspace limits, collision
behavior, emergency stops, and command transport before adapting it to physical
hardware.
License
RealHand-owned code, P7/L6/O6/L20 assets, and the inspection scene are released
under Apache-2.0. Files derived from Isaac Lab retain their BSD-3-Clause
headers and terms. See LICENSE, NOTICE, and
LICENSES/ for details.