IKsolver

Hi *,

Problem working with KDL,
I have used the ChainIKSolver but it doesent give me the exact results, what I am doing, is i take the Frame result from the ForwardKinematics for some movement (in my example for 3 joints), and then use it as point in the InverseKinematicsSolver, but sometimes it skips for more than 1.0 point,

to be exact

Desired Frame:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]

but FK loses 0.9 on Y-axis, but the result is doable(gained as result of a previous FK)


FK:  [[-0.995841,0.091113,0.000000;-0.091113,-0.995841,0.000000;0.000000,0.000000,1.000000],[-0.104846,2.908887,0.800000]]

is it only me or is it the Newthon-Raphson method, i have changed the nrIterations and eps also, but no change in the solution.

Please help, also pls tell me if there  will be another IK algorithm in KDL.
I know that IKSolving cannot be done by one algorithm, but I realy started to hate NR...

tonc,
Jovanoski Davor

IKsolver

On Mon, 1 Sep 2008, Davor Jovanoski wrote:

> Problem working with KDL,
> I have used the ChainIKSolver but it doesent give me the exact results, what
> I am doing, is i take the Frame result from the ForwardKinematics for some
> movement (in my example for 3 joints), and then use it as point in the
> InverseKinematicsSolver, but sometimes it skips for more than 1.0 point,
> to be exact
>
> Desired Frame:
> [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
>
> but FK loses 0.9 on Y-axis, but the result is doable(gained as result of a
> previous FK)
>
> FK:
> [[-0.995841,0.091113,0.000000;-0.091113,-0.995841,0.000000;0.000000,0.000000,1.000000],[-0.104846,2.908887,0.800000]]
>
> is it only me or is it the Newthon-Raphson method, i have changed the
> nrIterations and eps also, but no change in the solution.
> Please help, also pls tell me if there will be another IK algorithm in KDL.
> I know that IKSolving cannot be done by one algorithm, but I
> realy started to hate NR...
>
You are using (only) 3DOFs, so do you know whether your kinematic chain can
reach the desired frame?

Herman

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

IKsolver

Hi Herman,
3DOFs ???

But Yes i am sure that the chain can reach the frame, as stated earlier I use the result frame from previous FK, so basicly i am making this, IK(FK(a,b,c)) and the result should be (a,b,c)... but it is not always.

PS. My Joints are TransX TransZ RotZ

Davor
Ruben Smits's picture

IKsolver

On Monday 01 September 2008 15:59:48 Davor Jovanoski wrote:
> Hi Herman,
> 3DOFs ???
>
> But Yes i am sure that the chain can reach the frame, as stated earlier I
> use the result frame from previous FK, so basicly i am making this,
> IK(FK(a,b,c)) and the result should be (a,b,c)... but it is not always.
> PS. My Joints are TransX TransZ RotZ

Can you give some more information:

How does your chain look like: Segments, Joints
What are the joint values you gave to the FK?

Are you sure you're not in a kinematic singularity?

Ruben

>
> Davor

IKsolver

On Mon, 1 Sep 2008, Davor Jovanoski wrote:

(Please, keep the context of the message to which you reply!)

> 3DOFs ???
"Three degrees of freedom".

> But Yes i am sure that the chain can reach the frame, as stated earlier I
> use the result frame from previous FK, so basicly i am making this,
> IK(FK(a,b,c)) and the result should be (a,b,c)... but it is not always.
> PS. My Joints are TransX TransZ RotZ

Could you post a sequence of IKs that use more iterations, or a smaller
epsilon? This could show us whether you are confronted with insufficient
iteration convergence.

Herman

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

IKsolver

Hi,
I hope this helps,

Iter=10 eps=0.01
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[-0.995525,0.094499,0.000000;-0.094499,-0.995525,0.000000;0.000000,0.000000,1.000000],[-0.103245,2.905501,0.800000]]


iter=2 eps=0.01
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[0.695105,0.718908,0.000000;-0.718908,0.695105,0.000000;0.000000,0.000000,1.000000],[-0.117976,2.281092,0.800000]]


iter=5 eps=0.0001
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[0.342578,0.939489,0.000000;-0.939489,0.342578,0.000000;0.000000,0.000000,1.000000],[-0.110192,2.060511,0.800000]]


iter=100 eps=1e-6
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[-0.995841,0.091113,0.000000;-0.091113,-0.995841,0.000000;0.000000,0.000000,1.000000],[-0.104846,2.908887,0.800000]]


iter=10000 eps=0.1e-6
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[-0.995841,0.091113,0.000000;-0.091113,-0.995841,0.000000;0.000000,0.000000,1.000000],[-0.104846,2.908887,0.800000]]


iter=10000 eps=0.1e-16
Desired:  [[-0.504846,0.863209,0.000000;-0.863209,-0.504846,0.000000;0.000000,0.000000,1.000000],[-0.104846,3.863209,0.800000]]
FK:  [[-0.995841,0.091113,0.000000;-0.091113,-0.995841,0.000000;0.000000,0.000000,1.000000],[-0.104846,2.908887,0.800000]]


.....
and I am using PyKDl, I hope this doesent change the matter?

Davor


On Mon, Sep 1, 2008 at 4:06 PM, Herman Bruyninckx <Herman [dot] Bruyninckx [..] ...> wrote:

On Mon, 1 Sep 2008, Davor Jovanoski wrote:


(Please, keep the context of the message to which you reply!)


3DOFs ???

"Three degrees of freedom".




But Yes i am sure that the chain can reach the frame, as stated earlier I

use the result frame from previous FK, so basicly i am making this,

IK(FK(a,b,c)) and the result should be (a,b,c)... but it is not always.

PS. My Joints are TransX TransZ RotZ


Could you post a sequence of IKs that use more iterations, or a smaller

epsilon? This could show us whether you are confronted with insufficient

iteration convergence.




--
Jovanoski Davor