Inverse kinematics#
Functional API#
- mink_warp.solve_ik(configuration: ~mink_warp.configuration.Configuration, tasks: ~collections.abc.Sequence[~mink_warp.tasks.task.Task], dt: float, damping: float | None = None, *, solver: ~mink_warp.solvers.base.Solver | None = None, limits: ~collections.abc.Sequence[~mink_warp.limits.limit.Limit] | None = <object object>) array[source]#
Compute joint velocity tangent to the current configuration.
Differential IK minimizes a stacked task objective. Unconstrained (
DLSSolver) solves the normal equations\[(H + \lambda I)\, v = -c, \qquad v = \frac{\Delta q}{\mathrm{d}t}\]where \(H, c\) come from
compute_residual()and \(\lambda\) is Tikhonovdampingin \([\mathrm{cost}]^2 / [\mathrm{tangent}]\).With hard limits,
ConstrainedSolversolves (per world):\[\begin{split}\begin{aligned} \min_{\Delta q}\ & \tfrac{1}{2} \Delta q^\top H \Delta q + c^\top \Delta q \\ \text{s.t.}\ & \ell \leq \Delta q \leq u \quad \text{(box limits)} \\ & G \Delta q \leq h \quad \text{(general inequalities)} \end{aligned}\end{split}\]- Parameters:
configuration – Batched configuration; FK must be current.
tasks – Soft objectives to satisfy at weighted best.
dt – Integration timestep \(\mathrm{d}t\) in [s].
damping – Tikhonov weight \(\lambda\) on \(H\) (solver default when
None).solver – Backend instance.
Noneauto-buildsDLSSolverorConstrainedSolverfromlimits.limits – Hard limits (Mink-shaped).
None→ defaultConfigurationLimit;[]→ none; omitted → unconstrained.
- Returns:
Velocity \(v\) with shape
(nworld, nv).
Solver alias#
mink_warp.IKSolver is an alias for DLSSolver (Mink’s
default differential step). See Solvers.