Functionally redundant inverse kinematics is a QP-based method for high-DOF manipulators that computes joint configurations while satisfying end-effector and safety constraints.
The algorithm integrates soft objectives for velocity tracking, trajectory smoothness, and minimal joint effort with hard constraints for collision avoidance and joint limits.
Real-time performance is achieved with sub-millisecond solver times, making iKinQP suitable for complex multi-arm and high-DOF robotic applications.
A functionally redundant inverse kinematics (IK) algorithm addresses the problem of computing joint configurations for robotic manipulators possessing more actuated degrees of freedom (DOF) than task-space constraints require, thereby enabling the exploitation of this redundancy for objectives such as collision avoidance, joint-limit avoidance, and trajectory smoothness. The mathematical and algorithmic complexity of inverse kinematics with redundancy—where the set of joint configurations mapping to a single end-effector pose forms a continuum—renders analytic solutions generally intractable for general articulated robots. State-of-the-art approaches formulate the problem as a constrained optimization solved at each control tick, leveraging numerical solvers to enforce hard constraints and optimize trade-offs among competing objectives.
1. Mathematical Formulation and QP Structure
The iKinQP algorithm models functionally redundant IK as a strictly constrained quadratic program (QP) that operates in joint velocity space at each control cycle for an n-DOF manipulator (n>6) (Ashkanazy et al., 2023). The decision variable is the joint-velocity update vector q˙d∈Rn. The cost function integrates three orthogonal soft objectives: end-effector velocity tracking, trajectory smoothness, and (n–6)-DOF redundancy resolution via joint-effort minimization. The QP is posed as:
Soft cost terms (expanded in the QP quadratic form):
End-effector velocity tracking: ∥vd−J(q)q˙d∥We2, with J(q)∈R6×n the spatial Jacobian, and vd the desired end-effector velocity.
Smoothness: ∥q˙d−q˙prev∥Ws2 (penalizes deviation from nominal joint motion).
Redundancy resolution: ∥q˙d∥Wr2 (minimum-norm velocity solution in the null-space).
The Hessian and linear term are: H(q)=JTJ+γIn+λIn,g(q)=−JTvd−γq˙prev
for diagonal weight matrices We=I6, q˙d∈Rn0, q˙d∈Rn1.
Hard constraints guarantee:
Joint position/velocity limits: projected via forward Euler over q˙d∈Rn2, bounds expressed directly in joint-velocity space.
Collision avoidance: pairwise, linearized via first-order Taylor expansion of the signed minimal separation, with buffer q˙d∈Rn3:
q˙d∈Rn4
Matrices q˙d∈Rn5 aggregate all such constraints row-wise.
2. Kinematic and Redundancy Operators
Spatial Jacobian q˙d∈Rn6: maps joint velocities to end-effector spatial twist; computed via standard rigid-body libraries (e.g. Pinocchio).
Redundancy projectors: Minimum-norm joint motion term implicitly realizes the null-space projector q˙d∈Rn7 for redundancy in the primary (6-DOF) velocity task; secondary objectives (e.g., posture, energy) can be integrated by augmenting q˙d∈Rn8 with additional null-space terms.
Collision gradient:q˙d∈Rn9 computed numerically via symmetric difference for each joint and critical geometry pair.
3. Construction of the QP System
The QP system matrices q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)0 and q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)1 are constructed at each tick using the current joint state, previous velocity, and desired Cartesian tracking commands. The linear constraint matrices q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)2 and q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)3 are assembled from all joint and collision-buffer constraints.
The full constraint set remains efficiently sparse, as only proximal geometry pairs contribute.
4. Real-Time Implementation Details
Solver: iKinQP uses qpOASES in single-threaded C++ with warm-starts from previous solutions, achieving solver times of q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)5 ms (single-arm) and q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)6 ms (dual-arm) on a 10th-gen i9 CPU.
Integration: Upon solving for q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)7, joint states are forward-integrated (q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)8) and passed to the low-level torque controller. The QP loop remains kinematic-only; robot dynamics are handled downstream at the torque-control level.
Scheduling: Control steps at 2 ms (q˙dmin21q˙dTH(q)q˙d+g(q)Tq˙ds.t.qmin≤q+δtq˙d≤qmax,q˙min≤q˙d≤q˙max,A(q)q˙d≥b(q)(collision avoidance)9), compatible with high-frequency torque control loops.
5. Experimental Metrics
Evaluations on a 7-DOF Kinova Gen3 (MuJoCo simulation) cover:
Scenarios: single arm avoiding floor/sphere, two arms avoiding each other, with waypoints on a 0.9 m sphere and task durations of 5 and 15 s per waypoint.
Computation time:∥vd−J(q)q˙d∥We20–∥vd−J(q)q˙d∥We21 ms (single arm), ∥vd−J(q)q˙d∥We22–∥vd−J(q)q˙d∥We23 ms (two arms).
Active collision constraints (NAC): typically ∥vd−J(q)q˙d∥We24 (single-arm), ∥vd−J(q)q˙d∥We25 (dual-arm) per tick.
Optimal working set iterations (nWSR):∥vd−J(q)q˙d∥We26–∥vd−J(q)q˙d∥We27 per tick.
Mean tracking error:∥vd−J(q)q˙d∥We28 mrad/joint (single arm), ∥vd−J(q)q˙d∥We29 mrad/joint (dual arm).
Trajectory smoothness: Jerk distributions indicate 90% of joint jerk within J(q)∈R6×n0 rad/s³ (cf. J(q)∈R6×n1 for random profile); frequency spectra show main power J(q)∈R6×n2 Hz.
6. Functional Redundancy and Applications
iKinQP’s structure is fundamentally designed to exploit and resolve functional redundancy:
Redundancy utilization: The quadratic penalty on joint velocities resolves (n–6)-DOF redundancy via minimal joint-motion effort.
Secondary objectives: The algorithm can be extended by augmenting the QP with additional null-space projection terms, allowing explicit integration of secondary costs (e.g., posture, manipulability).
Collision avoidance and joint limit compliance: All geometric and actuation limits are imposed as hard QP constraints, ensuring system-level safety guarantees not achievable with unconstrained or heuristic redundancy-resolving methods.
Trajectory smoothness and real-time control: The penalty on deviation from previous velocity ensures spectrally smooth and trackable profiles suitable for direct low-level execution.
iKinQP is applicable to any serial redundant manipulator and is readily extensible for dual-arm, high-DOF, or complex spatial environments (Ashkanazy et al., 2023).
7. Comparative Summary and Implementation Guidance
The iKinQP approach provides a unified, real-time framework for functionally redundant inverse kinematics:
QP formulation natively incorporates all constraints and objectives.
Redundancy is resolved optimally at every control tick, with optional extensibility toward secondary objectives via null-space projection.
All required elements—Jacobian, nullspace operator, collision gradient, QP system construction, and solver settings—are specified for direct implementation or extension to other manipulator platforms.
In summary, iKinQP offers a practical and computationally efficient method for resolving functional redundancy in inverse kinematics, demonstrated to deliver real-time, collision-free, joint-limit-safe, and smooth kinematic trajectories at sub-millisecond rates (Ashkanazy et al., 2023).