Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
omarrayyann/TeleDex: phone teleoperation for robots

omarrayyann/TeleDex: phone teleoperation for robots

11 hours ago

Logo  Teledex

PyPI version</a> Downloads</a> License: MIT</a>

teledex lets you control robot frames and hands using your iOS device's AR data.

Oranges Reactive Coffee Handover Batteries Wipes Notes Precise manipulation

Installation

You can install teledex package using pip:

pip install teledex

You can download the app from the App Store.

Before You Get Started

You can use Teledex in phone-only mode (streams only the device pose) or with an optional 3D-printed holder to track finger motion while teleoperating. All printable parts are available in printables folder.

See ASSEMBLY_GUIDE for assembly notes and SETUP_GUIDE to get started with your phone and robot setup.

Basic Usage

Basic Setup

import teledex

session = teledex.Session() session.start()

Retrieve AR data

data = session.get_latest_data()

Returns: {"position": (3,), "rotation": (3, 3), "button": bool, "button_secondary": bool, # "toggle": bool}

MuJoCo Setup

Control MuJoCo frames (body, geom, or site) with Teledex:

import teledex

session = teledex.Session()

mujoco_handler = teledex.MujocoHandler(model=my_model, data=my_data) session.add_handler(mujoco_handler)

mujoco_handler.link_body(name="eef_target")

session.start()

MuJoCo Studio Setup

Drive a mocap body in MuJoCo Studio and get a TeleDex panel (QR code, connection status, live pose, pause/recenter) inside the viewer. Requires a mujoco build that ships mujoco.studio.

from mujoco.studio import launch_passive, viewer_app, viewer_protocol
from teledex.studio import TeleDexSim, TeleDexPanel

launch_passive.run( viewer_protocol.ViewerConfig(gfx="web", open_browser=True), model_path="scene.xml", plugins=[viewer_app.ViewerApp(), *viewer_app.SIM_PLUGINS, TeleDexSim(body="target", scale=1.5), TeleDexPanel()], )

Or from the command line, driving the model's first mocap body:

python -m mujoco.studio.viewer --model=demos/studio_scene.xml --gfx=web --plugins=demos/studio_plugin.py

TeleDexSim(mode="delta", max_dpos=0.02) follows pose changes with a per-step cap instead of the absolute pose. See demos/studio_demo.py.

Additional Functions

session.vibrate(sharpness=0.8, intensity=0.4, duration=0.01)
session.pause_updates()
session.resume_updates()
session.reset_position()

Acknowledgment

The CAD is based on the models from ACE Teleop.

Citation

If you use Teledex in your research, please cite:

```bibtex @article{rayyan2026teledex, title={TeleDex: Accessible Dexterous Teleoperation}, author={Rayyan, Omar and Gilles, Maximilian and Cui, Yuchen}, journal={arXiv preprint arXiv:2603.17065}, year={2026} }

Chat with me