[ros-users] Introducing A Better Inverse Kinematics Package

Patrick Beeson pbeeson at traclabs.com
Mon Nov 16 19:48:52 UTC 2015

In an attempt to demonstrate how KDL works well with some platforms 
(like the PR2), versus when it creates issues for other platforms (like 
the Jaco-2 arm), I've started compiling a small table of IK results for 
various platforms of KDL versus TRAC-IK. 

If you see issues with KDL or MoveIt! with your manipulation hardware, I 
can run my tests on your URDF and add it to the results table.  Coming 
soon: the cleaned up executable that will allow anyone to run these 
tests themselves for verification.

On 11/05/2015 04:11 PM, Patrick Beeson wrote:
> TRACLabs Inc. is glad to announce the public release of our Inverse 
> Kinematics solver TRAC-IK.  TRAC-IK is a faster, significantly more 
> reliable drop-in replacement for KDL's pseudoinverse Jacobian solver.
> Source (including a MoveIt! plugin) can be found at:
> https://bitbucket.org/traclabs/trac_ik.git
> TRAC-IK has a very similar API to KDL's IK solver calls, except that 
> the user passes a maximum time instead of a maximum number of search 
> iterations.  Additionally, TRAC-IK allows for error tolerances to be 
> set independently for each Cartesian dimension (x,y,z,roll,pitch.yaw).
> More details:
> KDL's joint-limited pseudoinverse Jacobian implementation is the 
> solver used by various ROS packages and MoveIt! for generic 
> manipulation chains. In our research with Atlas humanoids in the DARPA 
> Robotics Challenge and with NASA's Robotnaut-2 and Valkyrie humanoids, 
> TRACLabs researchers experienced a high amount of solve errors when 
> using KDL's inverse kinematics functions on robotic arms.  We tracked 
> the issues down to the fact that theoretically-sound Newton methods 
> fail in the face of joint limits.  As such, we have created TRAC-IK 
> that concurrently runs two different IK methods: 1) an enhancment of 
> KDL's solver (which detects and mitigates local minima that can occur 
> when joint limits are encountered during gradient descent) and 2) a 
> Sequential Quadratic Programming IK formulation that uses quasi-Newton 
> methods that are known to better handle non-smooth search spaces.  The 
> results have been very positive.  By combing the two approaches 
> together, TRAC-IK outperforms both standalone IK methods with no 
> additional overhead in runtime for small chains, and significant 
> improvements in time for large chains.
> Details can be found here in our Humanoids 2015 paper here:
> https://personal.traclabs.com/~pbeeson/publications/b2hd-Beeson-humanoids-15.html 
> <https://personal.traclabs.com/%7Epbeeson/publications/b2hd-Beeson-humanoids-15.html>
> A few high-level results are shown in the attached (low-res) figure.

Patrick Beeson
Senior Scientist
TRACLabs Inc.

More information about the ros-users mailing list