https://github.com/enactic/openarm_control
OpenArm Control: Kinematics and Dynamics for OpenArm
https://github.com/enactic/openarm_control
Last synced: 20 days ago
JSON representation
OpenArm Control: Kinematics and Dynamics for OpenArm
- Host: GitHub
- URL: https://github.com/enactic/openarm_control
- Owner: enactic
- Created: 2026-05-18T07:01:00.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-21T07:53:37.000Z (about 1 month ago)
- Last Synced: 2026-05-21T14:56:59.133Z (30 days ago)
- Language: Python
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OpenArm Control
Reusable kinematics and control utilities for OpenArm, backed by MuJoCo and [mink](https://github.com/kevinzakka/mink).
## Install
```bash
uv sync
```
## Usage
### `Kinematics`
```python
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](https://discord.gg/FsZaZ4z3We)
- 📬 Contact us through
## License
Licensed under the Apache License 2.0. See [LICENSE.txt](LICENSE.txt) for details.
Copyright 2026 Enactic, Inc.
## Code of Conduct
All participation in the OpenArm project is governed by our [Code of Conduct](CODE_OF_CONDUCT.md).