Skip to main content

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, 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: leaderfk (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dora_openarm_kinematics-0.2.1.tar.gz (9.2 kB view details)

Uploaded Source

File details

Details for the file dora_openarm_kinematics-0.2.1.tar.gz.

File metadata

  • Download URL: dora_openarm_kinematics-0.2.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for dora_openarm_kinematics-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ee4d5548c13dbd9f99e91064c015c9bca90bef925bdce65a80d25ca0379191ca
MD5 812398fa6ccc6482e7713d4540c28d3a
BLAKE2b-256 1d328a863249a29267bf47b841dfa510e10fe388af3d01df10efb5599ccc8084

See more details on using hashes here.

Provenance

The following attestation bundles were made for dora_openarm_kinematics-0.2.1.tar.gz:

Publisher: package.yaml on enactic/dora-openarm-kinematics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page