Skip to content

novaphy.ik.IKObjective

Abstract base class for one IK residual/Jacobian block.

Concrete objectives implement:

Method Contract
residual_dim() Number of rows contributed to the stacked residual.
compute_residuals(fk, q, residuals, start_idx, *, problem_idx=None) Write this objective's residual rows.
compute_jacobian(fk, q, jacobian, start_idx, *, problem_idx=None, mode="analytic") Write this objective's Jacobian rows.
supports_analytic() Whether a hand-written analytic path is available.
init_buffers(model, jacobian_mode) Optional post-layout allocation hook.

IKSolver assigns total_residuals, residual_offset, and n_batch through set_batch_layout(...); application code normally constructs a concrete objective rather than calling this plumbing directly.

Built-in subclasses are IKObjectivePosition, IKObjectiveRotation, and IKObjectiveJointLimit.

See also