Skip to main content

dora-openarm-kinematics

Dora nodes for forward and inverse kinematics on the OpenArm bimanual robot, backed by MuJoCo and mink. FK/IK logic lives in the openarm_control package, imported as control.

Install

uv sync

Dora Nodes

dora-openarm-fk — Forward Kinematics

Converts per-arm joint angles to end-effector poses via mj_forward.

Inputs position_right, position_left [{"qpos": float32[8]}] — joints 1–7 + gripper (flat float32[8] also accepted)
Outputs pose_right, pose_left [{"pose": float32[8]}] — [px, py, pz, qw, qx, qy, qz, gripper_value]
--mode           right | left | bimanual  (default: bimanual)
--frame-right    MuJoCo site/body/geom name for right EE  (default: right_ee_control_point)
--frame-left     MuJoCo site/body/geom name for left EE   (default: left_ee_control_point)
--frame-type-*   body | site | geom  (default: site)
--keyframe       initial keyframe name  (default: home)
--xml            MJCF scene file

dora-openarm-ik — Differential IK

Solves joint angles from EE pose targets using mink's QP-based differential IK. Both arms share one mink.Configuration and are solved in a single QP per step. DOFs not driven by IK outputs are frozen (finger joints, lifter).

Inputs target_right, target_left [{"pose": float32[7]}] — EE pose targets; position [{"qpos": float32[16]}] — optional joint-state sync (flat arrays also accepted); trigger_right / trigger_left float32[1] — gripper pass-through
Outputs position_right, position_left [{"qpos": float32[8]}]
--mode           right | left | bimanual  (default: bimanual)
--max-iters      IK iterations per event  (default: 5)
--dt             integration timestep per iteration  (default: 0.5)
--damping        global Tikhonov regularization  (default: 1e-3)
--lm-damping     per-task LM damping  (default: 1e-4)
--posture-cost   posture task weight, 0 = disabled  (default: 0.0)
--pos-cost       position task cost  (default: 1.0)
--ori-cost       orientation task cost  (default: 1.0)
--solver         QP backend  (default: daqp)
--frame-right    site/body name for right EE  (default: right_ee_control_point)
--frame-left     site/body name for left EE   (default: left_ee_control_point)
--keyframe       initial keyframe  (default: home)
--xml            MJCF scene file

Quick Start

FK — visualise leader arm poses

Reads joint angles from a physical leader arm and publishes end-effector poses. Requires a connected leader device.

uv run dora build example/dataflow-dummy-fk.yaml --uv
uv run dora run example/dataflow-dummy-fk.yaml --uv

FK → IK roundtrip

Pipes FK output directly back into IK to verify the solver round-trips correctly. No physical hardware needed beyond the leader.

uv run dora build example/dataflow-dummy-ik.yaml --uv
uv run dora run example/dataflow-dummy-ik.yaml --uv

Dataflow: leader → fk (joints → poses) → ik (poses → joints) → viewer

Tune the ik solver parameters in:

args: "--mode bimanual --max-iters 5 --dt 0.1 --damping 0.25 --posture-cost 0.01 --lm-damping 0.01"

License

Licensed under the Apache License 2.0. See LICENSE for details.

Copyright 2026 Enactic, Inc.

Code of Conduct

All participation in the OpenArm project is governed by our Code of Conduct.

Metadata

Release files for dora-openarm-kinematics 0.2.2

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

Source distribution (sdist)

Source distribution for dora-openarm-kinematics 0.2.2
File Size Uploaded
dora_openarm_kinematics-0.2.2.tar.gz 9.2 kB Details

Release files / dora_openarm_kinematics-0.2.2.tar.gz

Download URL dora_openarm_kinematics-0.2.2.tar.gz
Size 9.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6637c386d70f9bd23ee86f20069686efaf7e0d0f521069324a14bf757b5df7d0
BLAKE2b-256 checksum
How to use checksums
5dbaf032ce86332b66e2df3ff74a45f049886cea04a1a0fd2f7c08e613b4918b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.3

1 release file

This release

0.2.2 This release

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.1

1 release file

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