Skip to main content

orca_arm logo

orca_arm

URDF and MJCF descriptions for the OrcaArm---a bimanual OpenArm with two OrcaHand end effectors, plus every referenced mesh bundled inside the package: use it

This repository does not come with controllers, IK, motion planning, or a simulator---bring your own!

Install

git clone https://github.com/fracapuano/orca_arm.git
pip install -e .            # core: paths to URDF / MJCF / meshes
pip install -e .[viz]       # optionally adds meshcat + yourdfpy for the visualizer

What you get

The package exposes absolute paths to the bundled URDF and MJCF files of the OrcaArm:

import orca_arm

orca_arm.URDF_PATH    # path to orcabot.urdf
orca_arm.MJCF_PATH    # path to orcabot.xml (MuJoCo)

The URDF and MJCF reference meshes via paths relative to their own location, so any tool that resolves mesh paths from the URDF/MJCF file finds them without further configuration. No environment variables, no package:// resolver setup.

Visualize

You can visualize the OrcaArm with a meshcat viewer for a quick inspection:

python visualize_orcabot.py            # live FK loop with a random joint sweep - no collision detection here
python visualize_orcabot.py --idle     # static home configuration

MuJoCo

Load the bundled MJCF directly:

import mujoco
import orca_arm

model = mujoco.MjModel.from_xml_path(orca_arm.MJCF_PATH)
data = mujoco.MjData(model)

This is the entry point for any MuJoCo-based stack consuming MJCF.

Other URDF-consuming simulators

PyBullet, SAPIEN, ManiSkill, Isaac Sim, Drake, ROS — all accept the URDF path. PyBullet example:

import pybullet as p
import orca_arm

p.connect(p.DIRECT)
robot = p.loadURDF(orca_arm.URDF_PATH)

The same pattern works for any other URDF loader: hand it orca_arm.URDF_PATH.

Forward kinematics with yourdfpy

For pure kinematics — link / joint queries, forward kinematics, scene graph — without a physics simulator:

import numpy as np
import yourdfpy
import orca_arm

robot = yourdfpy.URDF.load(orca_arm.URDF_PATH)

q = np.zeros(len(robot.actuated_joint_names))
robot.update_cfg(q)

# 4x4 world transform of any link in the current configuration
T_world_link, _ = robot.scene.graph.get("<link_name>")

Layout

Path Purpose
orca_arm/orcabot.urdf Bimanual robot description
orca_arm/orcabot.xml MuJoCo MJCF, generated from the URDF
orca_arm/assets/ Bundled mesh files (.stl, .dae)
visualize_orcabot.py Meshcat viewer (live FK, or optionally --idle)
build_orcabot_urdf.py Regenerates the URDF from the OpenArm + OrcaHand source descriptions
build_orcabot_mjcf.py Regenerates the MJCF from the URDF
tests/ Checks every referenced mesh resolves and FK is well-defined

We are also releasing build_*.py scripts to regenerate the URDF and MJCF from the OpenArm and OrcaHand source descriptions. These are only relevant if you are updating the assets themselves; ordinary downstream use does not require running them!

Metadata

Release files for orca_arm 0.0.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 orca_arm 0.0.0
File Size Uploaded Provenance Actions
orca_arm-0.0.0.tar.gz 47.0 MB Without provenance Details for orca_arm-0.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for orca_arm 0.0.0
File Interpreter ABI Platform Actions
orca_arm-0.0.0-py3-none-any.whl Python 3 none any Details for orca_arm-0.0.0-py3-none-any.whl

Total release size: 94.0 MB

Release files / orca_arm-0.0.0.tar.gz

Download URL orca_arm-0.0.0.tar.gz
Size 47.0 MB
Tags Source
SHA-256 checksum
How to use checksums
d8ab1f995ba8333c0f12c3d240fb2d07e0a334ded015b482c947d9acb334abb6
BLAKE2b-256 checksum
How to use checksums
65e0f1d37f5c688f32956bbc1b612ffe9c95b4757fce5ca9f98da0bbe43618ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.7

Release files / orca_arm-0.0.0-py3-none-any.whl

Download URL orca_arm-0.0.0-py3-none-any.whl
Size 47.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5f9032ade64da21cddb37297f0112d74274078d09343194900f1cc969b59c105
BLAKE2b-256 checksum
How to use checksums
7e476189a9cb4873fe8523c0cd262a08c47473c7d71e4c9e23dacdb7eb4f76b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.7

Security for orca_arm 0.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.0 This release

2 release files No provenance

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