Skip to main content

OpenArm Control

Reusable kinematics and control utilities for OpenArm, backed by MuJoCo and mink.

Install

uv sync

Usage

Kinematics

Poses are float32[7] = [px, py, pz, qw, qx, qy, qz], expressed in the scene's arm_origin site frame by default (--origin-frame world restores world-frame poses).

from openarm_control import Kinematics, IKParams, ArmSetup

# FK only
kin = Kinematics(setup)
pose = kin.fk("right", joints)               # float32[7]
pose_r, pose_l = kin.fk_bimanual(r, l)       # single mj_forward

# IK
kin = Kinematics(setup, IKParams(damping=0.25, posture_cost=0.01))
kin.set_target("right", pose_r)
kin.set_target("left", pose_l)
result = kin.solve(dt=0.1, n_iters=5)        # float32[16] right[8]+left[8]

IKParams

Solver configuration passed to Kinematics. All fields have defaults.

Field Default Description
position_cost 1.0 Position task weight
orientation_cost 1.0 Orientation task weight
lm_damping 0.01 Per-task Levenberg-Marquardt damping
damping 0.25 Global Tikhonov regularization
solver "daqp" QP backend
posture_cost 0.01 Neutral posture task weight (0 = disabled)
diag_reg 0.0 QP diagonal regularization
dt 0.1 Integration timestep per iteration
max_iters 5 IK iterations per solve
velocity_limits None Per-joint velocity limits (applied in rad/s from config.py); None = disabled

Build from CLI args with register_ik_args + ik_params_from_args:

License

Licensed under the Apache License 2.0. See LICENSE.txt 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 openarm-control 0.2.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 openarm-control 0.2.0
File Size Uploaded
openarm_control-0.2.0.tar.gz 14.0 kB Details

Release files / openarm_control-0.2.0.tar.gz

Download URL openarm_control-0.2.0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7f945d88596dfe6def88ca7d2a348da457c4b659ac314f7cef7a05298ff01269
BLAKE2b-256 checksum
How to use checksums
21165b23d535ce34a2051298cd21af019bd0e70378efe9abe0dd36a6bd254896
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 28, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

This release

0.2.0 This release

1 release file

0.1.0

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