Improved Inverse Kinematics for Generic Manipulation Chains

This project provides an alternative Inverse Kinematics solver to the popular inverse Jacobian methods in Orocos’ KDL (Kinematics and Dynamics Library). Specifically, KDL’s convergence algorithms are based on Newton’s method, which does not work well in the presence of joint limits — common for many robotic platforms. TRAC-IK concurrently runs two IK implementations. One is a simple extension to KDL’s Newton-based convergence algorithm that detects and mitigates local minima due to joint limits by random jumps. The second is an SQP (Sequential Quadratic Programming) nonlinear optimization approach which uses quasi-Newton methods that better handle joint limits. By default, the IK search returns immediately when either of these algorithms converges to an answer. Secondary constraints of distance, manipulability, and collision avoidance are also provided in order to receive back the “best” IK solution.