OrcaArm: bimanual OpenArm with two OrcaHand v2 end effectors. Provides URDF/MJCF assets and Python paths to them, with all meshes bundled in the package.
Project description
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orca_arm-0.0.0.tar.gz.
File metadata
- Download URL: orca_arm-0.0.0.tar.gz
- Upload date:
- Size: 47.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8ab1f995ba8333c0f12c3d240fb2d07e0a334ded015b482c947d9acb334abb6
|
|
| MD5 |
217236dd1414dc1a4fd516141bf4fcc9
|
|
| BLAKE2b-256 |
65e0f1d37f5c688f32956bbc1b612ffe9c95b4757fce5ca9f98da0bbe43618ea
|
File details
Details for the file orca_arm-0.0.0-py3-none-any.whl.
File metadata
- Download URL: orca_arm-0.0.0-py3-none-any.whl
- Upload date:
- Size: 47.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f9032ade64da21cddb37297f0112d74274078d09343194900f1cc969b59c105
|
|
| MD5 |
a9aff11703d6445d50bdd0663b1ff65b
|
|
| BLAKE2b-256 |
7e476189a9cb4873fe8523c0cd262a08c47473c7d71e4c9e23dacdb7eb4f76b4
|