<div dir="ltr">Hi Patrick,<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>--linas</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 6, 2015 at 6:11 AM, Patrick Beeson via ros-users <span dir="ltr"><<a href="mailto:ros-users@lists.ros.org" target="_blank">ros-users@lists.ros.org</a>></span> wrote:<br><blockquote class="gmail_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>
<br>_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@lists.ros.org">ros-users@lists.ros.org</a><br>
<a href="http://lists.ros.org/mailman/listinfo/ros-users" rel="noreferrer" target="_blank">http://lists.ros.org/mailman/listinfo/ros-users</a><br>
<br></blockquote></div><br></div>