Re: [ros-users] IK with KDL

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Ruben Smits
Date:  
To: ros-users
Subject: Re: [ros-users] IK with KDL
On Monday 15 November 2010 11:13:51 Ruben Smits wrote:
> On Thursday 11 November 2010 11:52:06 Jeroen Willems wrote:
> > On 2010-11-09 09:27, Herman Bruyninckx wrote:
> > > On Tue, 9 Nov 2010, Jeroen Willems wrote:
> > > > I have a question regarding the inverse kinematics using KDL.
> > > >
> > > > I would like to use carttojnt of the inverse kinematics solver.
> > > > The problem is I have to use a destination frame as input.
> > > > I'm using something similar to a elbow manipulator so you can imagine
> > > > I only want a reference position. The arm only can have 2 poses to a
> > > > reference position, to get the rotational part of the frame I
> > > > actually have to get the joint positions to calculate it (correct me
> > > > if I'm wrong).
> > > >
> > > > So
> > > > 1. Am I right?
> > > > 2. Could I use KDL to compute the IK or should I use an analytic
> > > > solution?
> > >
> > > The major issue with your problem is that "IK" does not make too much
> > > sense for a 2DOF system: when you don't take precautions the input
> > > frame will never lie in the span of your 2DOF, so you will have make a
> > > "projection" from the full 6D space onto your 2D subspace. KDL has
> > > algorithms to do that, but they make choices about how to project that
> > > might not correspond to your intuition. But that's inevitable.
> > >
> > > So, please try to formulate exactly what kind of input you would like
> > > or need to have.
> > >
> > > Herman
> > > _______________________________________________
> > > ros-users mailing list
> > > <mailto:ros-users@code.ros.org>
> > > https://code.ros.org/mailman/listinfo/ros-users
> >
> > Thanks for the response.
> >
> > Okay to be more precise to give a better idea of what I'm doing.
> > I have an hexapod, so a torso with 6 legs consisting of 3 links (without
> > torso) and 3 joints. I want to be the tip/foot on an specific point
> > (x,y,z) in respect to the torso (thorax) so I have to know the three
> > joint positions to get there.
> >
> > So preferable without giving a rotation. So I'm really curious how to
> > obtain this or how to use a "projection".
>
> There is a inverse (CartToJnt) velocity solver in KDL that you can use to
> disable (or weigth) some of the degrees of freedom in the cartesian space:
>
> http://people.mech.kuleuven.be/~orocos/pub/devel/kdl/latest/api/html/classK
> DL_1_1ChainIkSolverVel__wdls.html
>
> You can use the setWeightTS function for this. Setting a diagonal value of
> zero disables the joint, every other value neq 0 will be used as a
> weighting value.


This should have been: disables the degree of freedom (0-5)->(TX-Z,RX-Z)

R.

> So if you want to disable the rotations, just set the last three diagonal
> values to 0.
>
> You can then use this solver in one of the inverse position solvers, but
> the problem is that we do not have a solver yet that can take these
> weights into account. But I do not think it should be to hard to figure
> that out yourself when starting from the code of the iterative solver for
> the inverse position kinematics:
>
> http://people.mech.kuleuven.be/~orocos/pub/devel/kdl/latest/api/html/classK
> DL_1_1ChainIkSolverPos__NR.html
>
>
> Ruben
> _______________________________________________
> ros-users mailing list
>
> https://code.ros.org/mailman/listinfo/ros-users