<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Andreas,</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">My experience with openrave kinematics has been with ikfast.  Ikfast first runs offline on a model to create a "closed form" IK solution.  This really only works with 6-DOF and lower chains.  Additionally, I've found that ikfast solutions are generally not very precise,  including providing answers near but still slightly outside joint limits and providing joint configuration answers that when pushed back through the forward kinematics are not very close to the original desired Cartesian pose.  Thus, in the past when I've used ikfast, I also end up having to run KDL (or trac-IK) afterwards to quickly coverage to a solution with small (< 1e-2) residual error wrt the desired Cartesian pose.  Finally ikfast does not allow tolerances for Cartesian dimensions, which allows things like position only solutions or for example solutions where end effector roll can fall within a range.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature"><br>Sent from my iPhone</div><div><br>On Nov 5, 2015, at 3:47 PM, andreas.tenpas--- via ros-users <<a href="mailto:ros-users@lists.ros.org">ros-users@lists.ros.org</a>> wrote:<br><br></div><blockquote type="cite"><div>This is neat! Thanks for sharing!<br><br>I would be interested in how this performs in comparison to openrave.<br><br>Best,<br><br>Andreas<br><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><div class="quote" style="line-height: 1.5"><br><br>-------- Original Message --------<br>Subject: [ros-users] Introducing A Better Inverse Kinematics Package<br>From: Patrick Beeson via ros-users <ros-users@lists.ros.org><br>To: <a href="mailto:ros-users@lists.ros.org">ros-users@lists.ros.org</a><br>CC: <br><br><br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
  

    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div dir="ltr">
      <div>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.<br>
        <br>
        Source (including a MoveIt! plugin) can be found at:<br>
        <a href="https://bitbucket.org/traclabs/trac_ik.git" target="_blank">https://bitbucket.org/traclabs/trac_ik.git</a><br>
        <br>
      </div>
      <div>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).<br>
      </div>
      <div><br>
      </div>
      More details:<br>
      <div>
        <div><br>
          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.<br>
          <br>
        </div>
        <div>Details can be found here in our Humanoids 2015 paper here:<br>
          <a href="https://personal.traclabs.com/%7Epbeeson/publications/b2hd-Beeson-humanoids-15.html" target="_blank"></a><a href="https://personal.traclabs.com/~pbeeson/publications/b2hd-Beeson-humanoids-15.html" target="_blank">https://personal.traclabs.com/~pbeeson/publications/b2hd-Beeson-humanoids-15.html</a><br>
          <br>
        </div>
        <div>A few high-level results are shown in the attached
          (low-res) figure.<br>
        </div>
        <div><br>
        </div>
      </div>
    </div>
  </div>

</div>
</blockquote></ros-users@lists.ros.org></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>ros-users mailing list</span><br><span><a href="mailto:ros-users@lists.ros.org">ros-users@lists.ros.org</a></span><br><span><a href="http://lists.ros.org/mailman/listinfo/ros-users">http://lists.ros.org/mailman/listinfo/ros-users</a></span><br></div></blockquote></body></html>