dora-rs nodes for forward and inverse kinematics on OpenArm
Project description
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 float32[8], position_left float32[8] — joints 1–7 + gripper |
| Outputs | pose_right float32[7], pose_left float32[7] — [px, py, pz, qw, qx, qy, qz] |
--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 float32[7], target_left float32[7] — EE pose targets; position float32[16] — optional joint-state sync; trigger_right / trigger_left float32[1] — gripper pass-through |
| Outputs | position_right float32[8], position_left 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.
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
File details
Details for the file dora_openarm_kinematics-0.1.1.tar.gz.
File metadata
- Download URL: dora_openarm_kinematics-0.1.1.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d55bd1ddff9595e1983d29f1a90c9b489e1d96885bffbeb049916bd5348fa286
|
|
| MD5 |
93a45d9b9ec22125c8f353eaf70836a1
|
|
| BLAKE2b-256 |
c807a469791a6f89d5c713f34fff3a861c90a147efa1b27539f3404ed4680a3a
|
Provenance
The following attestation bundles were made for dora_openarm_kinematics-0.1.1.tar.gz:
Publisher:
package.yaml on enactic/dora-openarm-kinematics
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dora_openarm_kinematics-0.1.1.tar.gz -
Subject digest:
d55bd1ddff9595e1983d29f1a90c9b489e1d96885bffbeb049916bd5348fa286 - Sigstore transparency entry: 2136723450
- Sigstore integration time:
-
Permalink:
enactic/dora-openarm-kinematics@ed4ba6446b1d59fa020d00adfd5b206d38d227fe -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/enactic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yaml@ed4ba6446b1d59fa020d00adfd5b206d38d227fe -
Trigger Event:
push
-
Statement type: