Hello all, this is my first post.
Could anybody gives me a ChainIkSolverPos_NR example?
Regards,
Rodrigo
The Orocos ProjectSmarter control in robotics & automation! |
|
ChainIkSolverPos_NR Examples
Hello all, this is my first post. Could anybody gives me a ChainIkSolverPos_NR example? Regards, |
ChainIkSolverPos_NR Examples
On Friday May 30 2008 19:43:12 rodrigo wrote:
> Hello all, this is my first post.
>
> Could anybody gives me a ChainIkSolverPos_NR example?
Ok, first of all: be very carefull when using the ChainIkSolverPos_NR class,
it's just a Newton-Raphson method so be prepared to get stuck at local
minima.
the ChainIkSolverPos needs a forward position solver and an inverse velocity
solver.
You need to give a initial guess for the position solution (if you are doing
periodical control the previous position can be a good candidate):
From the examples page:
//Creation of the chain:
KDL::Chain chain;
chain.addSegment(Segment(Joint(Joint::RotZ),Frame(Vector(0.0,0.0,1.020))));
chain.addSegment(Segment(Joint(Joint::RotX),Frame(Vector(0.0,0.0,0.480))));
chain.addSegment(Segment(Joint(Joint::RotX),Frame(Vector(0.0,0.0,0.645))));
chain.addSegment(Segment(Joint(Joint::RotZ)));
chain.addSegment(Segment(Joint(Joint::RotX),Frame(Vector(0.0,0.0,0.120))));
chain.addSegment(Segment(Joint(Joint::RotZ)));
//Creation of the solvers:
ChainFkSolverPos_recursive fksolver1(chain1);//Forward position solver
ChainIkSolverVel_pinv iksolver1v(chain1);//Inverse velocity solver
ChainIkSolverPos_NR iksolver1(chain1,fksolver1,iksolver1v,100,1e-6);//Maximum
100 iterations, stop at accuracy 1e-6
//Creation of jntarrays:
JntArray q(chain.getNrOfJoints());
JntArray q_init(chain.getNrOfJoints());
//Set destination frame
Frame F_dest=...;
int ret = iksolverpos.CartToJnt(q_init,F_dest,q);
Ruben
> Regards,
> Rodrigo
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
ChainIkSolverPos_NR Examples
Thanks for the answer.
I'll try to employ this in the control of Robix Kit using 2 analog joysticks.
Rodrigo