[ros-users] reverse kinematics using robot_state_publisher ?

Ruben Smits ruben.smits at mech.kuleuven.be
Wed Apr 7 11:08:02 UTC 2010

On Wednesday 07 April 2010 12:48:23 Sachin Chitta wrote:
> Hi Ugo,
> You can use KDL to do inverse kinematics using one of the inverse
> kinematics solvers in the package. These are numerical solvers that
> operate on a KDL chain. First use the kdl_parser package to create a KDL
> chain and then initialize an inverse kinematics solver for the chain. The
> solution tends to be dependent on the initial state you pass into the
> solver and can sometimes get stuck in local minima. Also, I am not sure
> about how well the solvers handle joint limits. I believe more advanced
> solvers are in the works but I will let the orocos folks comment on that.

If you need inverse velocity kinematics, which is commonly the case in
a control application, KDL contains various implementations including
the use of (task and/or robot space weighted)pseudo-inverses of the
jacobian and (damped) least squares solutions of the inverse velocity
problem.  More advanced (constraint-based) solvers are currently being
developed, but these are still at the velocity level. 

If you need inverse position kinematics, KDL does currently not have a
perfect solution, at the moment we only have an implementation of a
Newton-Raphson integration on top of one of the inverse velocity
kinematic solvers.


> Have a look at the api page here
> http://orocos.org/kdl/UserManual/kinematic_solvers for more examples.

This page (sadly) does not cover all the existing solvers :(

> The other option is to write your own solver (we have one for the PR2 that
> takes in a hint for one of the joint angles and then computes the other 6
> analytically -
> www.ros.org/wiki/pr2_arm_kinematics<http://www.ros.org/wiki/pr2_arm_kinema
> tics>)
> Sachin
> On Wed, Apr 7, 2010 at 3:28 AM, Ugo Cupcic
> <ugo at shadowrobot.com<mailto:ugo at shadowrobot.com>> wrote: Hi all,
> Is it possible to use robot_state_publisher or some other ROS stack to
> do reverse kinematic on my urdf model?
> Or do I need to implement my own using the "Coding a realtime Cartesian
> controller with KDL" tutorial ?
> Cheers,
> Ugo
> --
> Ugo Cupcic         |  Shadow Robot Company |
> ugo at shadowrobot.com<mailto:ugo at shadowrobot.com> Software Engineer      251
> Liverpool Road
> need a Hand?           London  N1 1LX       | +44 20 7700 2487
> http://www.shadowrobot.com/hand/              @shadowrobot
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org<mailto:ros-users at code.ros.org>
> https://code.ros.org/mailman/listinfo/ros-users
> --
> Sachin Chitta
> Research Scientist
> Willow Garage

More information about the ros-users mailing list