Hi Patrick, Not having looked at your code at all, can I make a request? I have some joints that are not simple chains, and thus are not handled by any IK solver I know of ... but should be. The joint I have is a three-legged table; one of the legs is fixed, the other two are driven by linkages; I need to be able to know joint angles, given a desired table surface position and orientation. I currently solve this using some fairly simple hand-written code, integrated in a most awful hacky way, but it would be nice to see this supported in an IK solver. --linas On Fri, Nov 6, 2015 at 6:11 AM, Patrick Beeson via ros-users < ros-users@lists.ros.org> 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 > > A few high-level results are shown in the attached (low-res) figure. > > > _______________________________________________ > ros-users mailing list > ros-users@lists.ros.org > http://lists.ros.org/mailman/listinfo/ros-users > >