Manus Gloves#
A Linux-only plugin for integrating Manus gloves into the Isaac Teleop framework. It provides full hand-joint tracking via the Manus SDK and injects the resulting poses into the OpenXR hand-tracking layer so any downstream retargeter can consume them transparently.
Components#
Core library (
manus_plugin_core) — wraps the Manus SDK (libIsaacTeleopPluginsManus.so) and exposes per-joint tracking data.Plugin executable (
manus_hand_plugin) — the main plugin binary that integrates with the Teleop system via CloudXR / OpenXR.CLI tool (
manus_hand_tracker_printer) — a standalone diagnostic tool that prints tracked joint data to the terminal for quick verification.
Prerequisites#
Linux — x86_64 (tested on Ubuntu 22.04 / 24.04).
Manus SDK for Linux — downloaded automatically by the install script.
System dependencies — the install script prompts to install required packages.
Installation#
Automated (recommended)#
The install script handles SDK download, dependency installation, and building:
cd src/plugins/manus
./install_manus.sh
The script will:
Ask whether to install MANUS Core Integrated dependencies only (faster) or both Integrated and Remote dependencies (includes gRPC, takes longer).
Install the required system packages.
Download MANUS SDK v3.1.1.
Extract and place the SDK in the correct location.
Build the plugin and the diagnostic tool
Manual#
If you prefer to install manually:
Download the MANUS Core SDK from MANUS Downloads.
Extract and place the
ManusSDKfolder insidesrc/plugins/manus/, or point CMake at a different path by settingMANUS_SDK_ROOT.Follow the MANUS Getting Started guide for Linux to install the dependencies and configure device permissions.
Expected directory layout after placing the SDK:
src/plugins/manus/
app/
main.cpp
core/
manus_hand_tracking_plugin.cpp
inc/
core/
manus_hand_tracking_plugin.hpp
tools/
manus_hand_tracker_printer.cpp
ManusSDK/ <-- placed here
include/
lib/
Then build from the root:
cd ../../.. # navigate to root
cmake -S . -B build
cmake --build build --target manus_hand_plugin manus_hand_tracker_printer -j
cmake --install build --component manus
Running the Plugin#
1. Set up the CloudXR environment#
Source the CloudXR environment and start the runtime before running the plugin:
export NV_CXR_RUNTIME_DIR=~/.cloudxr/run
export XR_RUNTIME_JSON=~/.cloudxr/openxr_cloudxr.json
2. Verify with the CLI tool#
Ensure Manus Core is running and the gloves are connected, then run:
./build/bin/manus_hand_tracker_printer
3. Run the plugin#
./install/plugins/manus/manus_hand_plugin
Wrist Positioning — Controllers vs Optical Hand Tracking#
Two sources are available for positioning the Manus gloves in 3D space:
Controller adapters — attach Quest 3 controllers to the Manus Universal Mount on the back of the glove. The controller pose drives wrist placement.
Optical hand tracking — use the HMD’s built-in optical hand tracking to position the hands. No physical controller adapter required.
The plugin selects the source automatically at runtime: optical hand tracking is
preferred when XR_MNDX_xdev_space is supported and the runtime reports an
actively tracked wrist pose; otherwise it falls back to the controller pose.
Note
When using controller adapters it is advisable to disable the HMD’s automatic hand-tracking–to–controller switching to avoid unexpected source changes mid-session.
Troubleshooting#
Symptom |
Resolution |
|---|---|
SDK download fails |
Check your internet connection and re-run the install script. |
Manus SDK not found at build time |
With manual installation, ensure |
Manus SDK not found at runtime |
The build configures RPATH automatically. If you moved the SDK after
building, set |
No data received |
Ensure Manus Core is running and the gloves are connected and calibrated. |
CloudXR runtime errors |
Make sure |
Permission denied for USB devices |
The install script configures udev rules. If the rules were not reloaded, run: sudo udevadm control --reload-rules
sudo udevadm trigger
Then reconnect your Manus devices. |
License#
Source files are covered by their stated licenses (Apache-2.0). The Manus SDK is proprietary to Manus and is subject to its own license; it is not redistributed by this project.