Show EOL distros: 

trac_ik: trac_ik_examples | trac_ik_kinematics_plugin | trac_ik_lib | trac_ik_python

Package Summary

The ROS packages in this repository were created to provide an improved alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. TRAC-IK handles joint-limited chains better than KDL without increasing solve time.

trac_ik: trac_ik_examples | trac_ik_kinematics_plugin | trac_ik_lib

Package Summary

The ROS packages in this repository were created to provide an improved alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. TRAC-IK handles joint-limited chains better than KDL without increasing solve time.

trac_ik: trac_ik_examples | trac_ik_kinematics_plugin | trac_ik_lib | trac_ik_python

Package Summary

The ROS packages in this repository were created to provide an improved alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. TRAC-IK handles joint-limited chains better than KDL without increasing solve time.

trac_ik: trac_ik_examples | trac_ik_kinematics_plugin | trac_ik_lib | trac_ik_python

Package Summary

The ROS packages in this repository were created to provide an improved alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. TRAC-IK handles joint-limited chains better than KDL without increasing solve time.

trac_ik: trac_ik_examples | trac_ik_kinematics_plugin | trac_ik_lib | trac_ik_python

Package Summary

The ROS packages in this repository were created to provide an improved alternative Inverse Kinematics solver to the popular inverse Jacobian methods in KDL. TRAC-IK handles joint-limited chains better than KDL without increasing solve time.

TRAC-IK is a faster, significantly more reliable drop-in replacement for KDL's pseudoinverse Jacobian solver.

Sources -- including a MoveIt! compatible IK plugin -- can be found at: traclabs/trac_ik.git.

Documentation

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).

Detailed usage instructions can be found at traclabs/trac_ik.git (or more specifically, trac_ik_kinematics_plugin/README.md).

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 Robonaut 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)
  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 combining the two approaches, TRAC-IK outperforms both standalone IK methods with no additional overhead in runtime for small chains, and shows significant improvements in time for large chains.

Details can be found here in our Humanoids 2015 paper TRAC-IK: An Open-Source Library for Improved Solving of Generic Inverse Kinematics.

Image (from the announcement at ros.org in Nov. 2015): A few high-level results are shown in the attached (low-res) figure. http://www.ros.org/news/assets_c/2015/11/tracik_results-thumb-480x745-1296.png

Report a Bug

Use BitBucket to report bugs or submit feature requests. View active issues.

Wiki: trac_ik (last edited 2017-01-12 13:06:59 by IsaacSaito)