Skip to content

novaphy.ik.solve_ik

Backwards-compatible position-only IK wrapper around IKSolver with the LM optimizer.

solve_ik(
    art,
    q0,
    target_ee,
    joint_limits=None,
    ee_link_index=-1,
    local_offset=None,
    tol=1e-4,
    max_iter=100,
    lambda_damp=0.01,
    step_size=1.0,
)
Parameter Description
art JointBodyBundle, compatible object, or parent-before-child joint list.
q0 Initial generalized positions.
target_ee Desired world position (3,).
joint_limits Optional (lower, upper) arrays. Adds a soft objective and a final hard clip.
ee_link_index End-effector link index; -1 selects the last link.
local_offset Optional (3,) end-effector offset in the link frame.
tol Final position-error threshold used to compute converged.
max_iter Fixed LM iteration count.
lambda_damp Initial LM damping.
step_size Scale applied to each LM proposal.

Returns (q_solution, converged), with a float32 coordinate vector. The solver always runs max_iter iterations; tol does not trigger an early exit.

This compatibility path supports scalar-coordinate Revolute/Prismatic IK. It does not provide the quaternion retraction needed for Ball/Free/D6 joints.

See also