Skip to content

enactic/openarm_control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openarm_control

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

Install

uv sync

Usage

Kinematics

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

Build from CLI args with register_ik_args + ik_params_from_args:

About

OpenArm Control: Kinematics and Dynamics for OpenArm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages