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:
Related links
- 💬 Join the community on Discord
- 📬 Contact us through openarm@enactic.ai
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)
| 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