Skip to main content

yubi_mujoco

Arm-free YUBI gripper simulation in MuJoCo. Command two end-effector poses and absolute gripper angles, test contact-based manipulation, and connect a local Policy.infer(obs) implementation.

Two YUBI grippers above a table with a red cube and a goal marker Both YUBI grippers carrying cubes toward their goals in the dual pick-and-place task

The black/red grippers use Toyota's actual robot-gripper CAD: 97 source solids, partitioned into 13 material meshes. Dynamic hands follow finite-stiffness mocap targets; objects are moved by contact, without grasp attachments or teleporting.

Independent, unofficial simulation. This is for interface checks, synthetic experiments, and regression tests. It is not a calibrated robot model or an UMI Arena benchmark. The bundled scripted demos use privileged object positions; their success is not a learned-policy result.

Install

With uv:

git clone https://github.com/k1000dai/yubi_mujoco.git
cd yubi_mujoco
uv sync
uv run yubi-mujoco --version

Or with pip, from the checkout: python -m pip install .

Python 3.10+ is supported. The only runtime dependencies are MuJoCo, NumPy, and SciPy; no GPU, ROS, FreeCAD, or robot is needed for physics. Images and the viewer need a working OpenGL backend; see rendering setup.

Quick start

Watch it in the MuJoCo viewer

uv run yubi-mujoco demo --viewer
uv run yubi-mujoco demo --viewer --task dual_pick_place --episodes 3

--viewer opens the interactive MuJoCo window and plays the rollout in real time. It works for demo and evaluate; closing the window stops the run. On macOS the CLI relaunches itself under mjpython automatically.

Run headless

# A contact-based pick-and-place demo; writes JSON results to yubi-output/demo
uv run yubi-mujoco demo

# Other tasks and repeatable seed batches
uv run yubi-mujoco demo --task dual_pick_place --episodes 5 --seed 0
uv run yubi-mujoco demo --task lift --hz 10 --output yubi-output/lift
uv run yubi-mujoco demo --task push --output yubi-output/push

# A scene image, and a portable MJCF bundle
uv run yubi-mujoco render --output scene.png --camera overview
uv run yubi-mujoco export-mjcf --output yubi-output/mjcf

Tasks are pick_place (default), dual_pick_place, lift, and push. See uv run yubi-mujoco <command> --help for all options. After a pip install, call yubi-mujoco directly.

For MP4 video, add the optional video extra:

uv run --extra video yubi-mujoco demo --task dual_pick_place --video --output yubi-output/video

Python API

from yubi_mujoco import SimConfig, YubiEnv

with YubiEnv(SimConfig(task="pick_place", control_hz=30)) as env:
    obs, info = env.reset(seed=42)
    target = env.eef_poses.copy()  # (2, 7), left then right
    target[0, 0] += 0.03  # world +X, in metres
    motor = env.motor_for_jaw([0.4, 0.55])
    obs, reward, terminated, truncated, info = env.step_absolute(target, motor)

Poses are hand-root [x, y, z, qx, qy, qz, qw], in metres and world coordinates. Gripper commands are two absolute motor positions in radians, not normalized openness, finger width, or deltas. Motor-to-jaw calibration is nominal. Image observations are opt-in for direct API use; info contains privileged state. See the complete API and policy contract.

Evaluate a local policy

# Interface smoke test; an idle hold policy is not expected to solve the task
uv run yubi-mujoco evaluate --policy hold --horizon 64 --output yubi-output/hold

uv run yubi-mujoco evaluate --policy /path/to/policy.py \
  --checkpoint /path/to/checkpoint --hz 30 --adopt-rows 16 \
  --output yubi-output/policy

Add --viewer to watch the policy act. Evaluation renders two wrist images, even without --video, and needs OpenGL. Only load trusted Python policy files. See examples/policy.py and the UMI Arena submission contract. Dataset/replay timing is 30 Hz; the published robot execution description uses 10 Hz. Select the intended rate explicitly. This package does not download checkpoints or gated datasets, and does not replace the official checker.

Model, validation, and development

Source geometry is pinned to Toyota/yubi-hw at dd8bd13. The source STEP and regeneration tools are in cad/; they are not runtime requirements. The installed package contains the active meshes and manifests.

Licenses

Original simulation software: MIT. Toyota-derived CAD, meshes, and transformation data: CERN-OHL-W-2.0, Copyright 2026 Toyota Motor Corporation. Upstream software references use Apache-2.0; see the attribution notice. Hardware-derived assets are not relicensed under MIT. Toyota and AIRoA do not endorse or certify this project.

Metadata

Release files for yubi-mujoco 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yubi-mujoco 0.1.0
File Size Uploaded
yubi_mujoco-0.1.0.tar.gz 3.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for yubi-mujoco 0.1.0
File Interpreter ABI Platform
yubi_mujoco-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.4 MB

Release files / yubi_mujoco-0.1.0.tar.gz

Download URL yubi_mujoco-0.1.0.tar.gz
Size 3.6 MB
Tags Source
SHA-256 checksum
How to use checksums
d9144e8947af8d6794275b6c2592d0145f28d4b2c1f948c42ef773f9345e4739
BLAKE2b-256 checksum
How to use checksums
bc244ba133fc5fe1dcf5b938e162f3189e4fa477ebaad0b7c10df73973c22a3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / yubi_mujoco-0.1.0-py3-none-any.whl

Download URL yubi_mujoco-0.1.0-py3-none-any.whl
Size 1.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
495087a22e8d5a351d54d463d5ef8475953cf3f8d3dc0dceb758c453aa8c4a08
BLAKE2b-256 checksum
How to use checksums
aaa40d8ba12abcd013e2678995ebf099e5a582400585651dffdc3e95efb91629
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page