You are on page 1of 14

TRAC-IK

An Open-Source Library for Improved


Solving of Generic Inverse Kinematics

Patrick Beeson and Barrett Ames


Problem Overview

● Both the 6-DOF 2013 Atlas arms, and the


2015 7-DOF Atlas arms have a fairly limited
range of motion.

● The KDL Inverse Kinematics solver (used by


ROS, Orocos, and MoveIt!) fails often for
Atlas because the numerical solver does not
handle joint limits well.

● We found many other humanoid platforms


where joint limits significantly affected KDL’s
IK performance.
○ Both solve rate and solve time were negatively
affected.
Our Approach

● KDL’s joint-limited IK solver is an inverse Jacobian method.


○ Inverse Jacobian approaches use the Newton method, which works well without joint limits.
○ The Newton method does not handle non-smooth search spaces created by joint limits.

● Sequential Quadratic Programming (SQP) frameworks use quasi-Newton


methods for nonlinear optimization.
○ By adding joint limits as constraints, humanoid IK can be solved reliably using SQP solvers.
○ Secondary constraints can also be included to address null spaces, redundancy, etc.
Our Approach: The Details
● Created a testbed to compare different IK
implementations.
○ Each solver is tested on 10000 random reachable
positions.
○ Solve rate and solve time can be compared across
IK implementations

● Created several new IK implementations.


○ KDL-RR: Restart KDL’s inverse Jacobian solver with
random seed whenever the solver gets stuck due to
joint limits.
○ SQP-*: Variety of SQP solvers using different
distance metrics.
○ TRAC-IK: Concurrently runs best SQP method (Sum
of Squares error) and KDL-RR.

● Ran comparisons of IK solvers across a variety of


humanoid manipulation chains.
○ Confirmed offline results by observing qualitative
behavior on real humanoid manipulation tasks.
Experimental Result Takeaways

● Local minima detection and random seeding DRASTICALLY improved inverse


Jacobian methods that become “stuck” at joint limits.
○ KDL-RR >> plain KDL

● SQP optimization that minimizes Euclidean error ALWAYS outperformed


inverse Jacobian methods for joint limited chains.
○ SQP-SS > SQP-L2 > SQP-DQ >> KDL-RR >> plan KDL

● Combining a pure Newton solver (KDL-RR) with a quasi-Newton solver (SQP-


SS) increased the solve rate even further. The combined solver (TRAC-IK) also
reduces the average IK solve time.
○ TRAC-IK > SQP-SS >> KDL-RR
ATLAS 2013
ATLAS 2015
Robonaut 2 Results
Valkyrie Results
● For ALL humanoid configurations tested, TRAC-IK outperformed EVERY IK implementation
included in our comparison.

● TRAC-IK also decreased average solve time over all implementations that detected and
mitigated local minima convergence.
What about longer chains?

● Inverse Jacobian methods actually do work well for long kinematic chains.
○ Redundancy avoids local minima caused by joint limits.
○ Despite this, TRAC-IK still improves on the IK solve rate without adding extra solve time.
Open Source Software

● The software is freely available at:


○ https://bitbucket.org/traclabs/trac_ik

● The API is easy to use


○ Designed as a drop-in for KDL’s CartToJnt() command.
○ A MoveIt! plugin is also provided that replaces KDL during trajectory planning.
Questions?

Thank you for your attention.

You might also like