IK-Geo: Unified Robot Inverse Kinematics Using Subproblem Decomposition
Alexander J. Elias, John T. Wen
TL;DR
IK-Geo tackles the general $6$-DOF inverse kinematics problem by decomposing it into six canonical geometric subproblems, enabling either closed-form solutions or reduced-dimension searches while guaranteeing all IK branches and robustness near singularities. It unifies robot kinematics into kinematic families based on axis intersecting/parallelism, achieving substantial speedups over traditional symbolic solvers (e.g., >$40\times$ faster than IKFast for UR5) and providing continuous, least-squares, or singular-solutions as needed. The implementation in MATLAB and Rust is open-source and portable, with a clear pathway to extensions for other robots and to parallelization, while also offering a polynomial-method perspective via tangent half-angle substitution for analysis. By combining fast geometry-based IK with connections to algebraic approaches, IK-Geo delivers a practical, complete, and scalable toolkit for real-time IK, trajectory planning, and robotics research.
Abstract
This paper presents the open-source robot inverse kinematics (IK) solver IK-Geo, the fastest general IK solver based on published literature. In this unifying approach, IK for any 6-DOF all-revolute (6R) manipulator is decomposed into six canonical geometric subproblems solved by intersecting circles with other geometric objects. We present new efficient and singularity-robust solutions to these subproblems using geometric and linear algebra methods. IK-Geo finds all IK solutions including singular solutions and sometimes least-squares solutions by solving for subproblem solutions in all cases, including in a continuous and sometimes least-squares sense when a solution does not exist. Robots are classified into kinematic families based on cases of intersecting or parallel joint axes, and robots in the same family use the same IK algorithm. 6R robots with three intersecting or parallel axes are solved in closed form, and all solutions are found exactly without iteration. Other 6R robots are efficiently solved by searching for zeros of an error function of one or two joint angles. The subproblem and IK solutions are easy to understand, implement, test, and modify, meaning this method is readily ported to new languages and environments. We connect our geometric method with less efficient but more robust polynomial-based methods: rather than using search, subproblems and error functions may be written in terms of the tangent half-angle of one joint. This results in a system of multivariate polynomial equations from which the univariate polynomial with zeros corresponding to IK solutions is readily derived.
