[The Orocos Project] ChainIkSolverPos_NR_JL

Hello Josep,

(forwarding this to the orocos-users mailinglist)

On Tuesday 31 May 2011 16:32:38 jcamps [..] ... wrote:

> Hello Ruben,
> I am Josep Camps from Institut de Robòtica i Informàtica Industrial from
> Barcelona (IRI). I am working with Guillem Alenyà in a project using the
> WAM Barret robot. We are using KDL to solve the inverse kinematics of the
> robot: After initialize the chain using D-H parameters, we want to
> calculate the joint angles to get a fixed position and orientation using
> the ChainSolverPos_NR_JL.
> The problem is that the solution found of the solver is very far from the
> target position. I, also have noticed that some joints are arrived at its
> maximum or minimum limit.

Some things that might lead to this:
* What are your initial values, from which you start searching. For most
robotic structure starting in the zero position is kinematically very bad,
since that is usually the most singular position of the robot, which might
lead to very high jumps in the initialization of the solver from which the
solver might not be able to recover.

* What kind of inverse velocity solver are you using? I would suggest to use
the ChainIkSolverVel_wdls, which has a damping property you can use to damp
the joint motion in the neighbourhood of a singularity.

> I have read in the forum that the solver is very experimental and it does
> not garantee to found the solution, is it still true or exits any update of
> the solver? What could you recomend us? Any suggestion?

Use a Cartesian space trajectory planner which calculates for you intermediate
Cartesian positions and preferably intermediate velocities.
You can send these intermediate velocities through a inverse velocity solver
like the ChainIkSolverVel_wdls.

If the tracking error is too large (most likely) add a Cartesian space
controller position feedback controlelr that calculates a cartesian space
velocity that will compensate the tracking error and use this one as input for
your inverse velocity controller.

The resulting joint space velocities you can than send to a jointspace
velocity controller which preferably is implemented in hardware.

> I will really apreciate any advice or comment.
> Thanks you in advanced
> Best regards,

Orocos-Users mailing list
Orocos-Users [..] ...