Inverse Kinematic Problem!!

793 views
Skip to first unread message

denizcan alaca

unread,
Jan 12, 2013, 5:01:39 PM1/12/13
to robotics...@googlegroups.com
Hi  
I have different robot and I have problem with inverse kinematic. I wanna move my end effector one specified location to another with entered cordinates.

%             th    d       a         alpha
L(1) = Link([ 0     0.26        0         pi/2    0], 'standard');
L(2) = Link([ 0 0.013       -0.23  0       0], 'standard');
L(3) = Link([ 0     0        -0.24     0       0], 'standard');
L(4) = Link([ 0     0.075    0         -pi/2   0], 'standard');
L(5) = Link([ 0     0.044       0         pi/2    0], 'standard');
L(6) = Link([ 0     0.08    0          0      0], 'standard');

This is my DH convention. I rtdemo in robotic toolbox and i change puma560 DH and dynamics with mine. Everything works fine with forward kinematics, animation etc. but there is fail in inverse kinematic. How can i achive this?

Thanks.

Peter Corke

unread,
Jan 13, 2013, 5:39:24 AM1/13/13
to robotics...@googlegroups.com
Maybe you could explain the "failure"

denizcan alaca

unread,
Jan 14, 2013, 11:11:06 AM1/14/13
to robotics...@googlegroups.com
qi = TQma2000.ikine(T);
Warning: ikine: iteration limit 1000 exceeded (row 1), final err 0.308739 
> In SerialLink.ikine at 148
  In rtikdemo at 44
% and in fact it does not converge
    qi

qi =

   NaN   NaN   NaN   NaN   NaN   NaN

pause % any key to continue
% We can help the solution along by using the 'pinv' option
    qi = TQma2000.ikine(T, 'pinv');
% and the result
    qi

qi =

   -0.0000   -0.7854   -0.7854   -6.2832    0.3927    6.2832

%
% is the same as the original set of joint angles.
    q

q =

         0   -0.7854   -0.7854         0    0.3927         0

% However in general this will not be the case, there are multiple
% solutions, and the solution that is found depends on the initial
% choice of angles.
pause % any key to continue
% A more efficient approach is to use an analytic solution and the toolbox 
% supports the common case of a 6-axis robot arm with a spherical wrist
    qi = TQma2000.ikine6s(T)
??? Error using ==> SerialLink.ikine6s at 61
wrist is not spherical

Error in ==> rtikdemo at 62
    qi = TQma2000.ikine6s(T)
 
Our error is like that.We look ikine6s file and as far as i see the problem is originated from spherical wrist. Our robot hasnt sprherical wrist.Can you give any advice please'?

Peter Corke

unread,
Jan 14, 2013, 4:53:11 PM1/14/13
to robotics...@googlegroups.com
Sorry, but I don't see the problem. Ikine works with the pinv option, and ikine6s() says there is no spherical wrist which you say is true.

Erik van Oene

unread,
Jan 15, 2013, 2:33:39 AM1/15/13
to robotics...@googlegroups.com
And like you said yourself: 

% However in general this will not be the case, there are multiple
% solutions, and the solution that is found depends on the initial
% choice of angles.

So I don't see the problem either....

If you want to obtain all possible solutions and pick the right one (elbow up or down etc...), you have to do the math yourself, i.e. solve the equation symbolically (by hand or using a tool). However try to obtain the solution as the inverse of an tangens   so    q = tan^-1  (x,y)  (in matlab atan2(). This will give you all possible solutions such ad the elbow up and down etc....

acos() etc will give you only on of the possibly multiple solutions, the other one is something like -acos()  or acos(-angle). The same holds for the asin().

Erik


Op maandag 14 januari 2013 17:11:06 UTC+1 schreef denizcan alaca het volgende:
Reply all
Reply to author
Forward
0 new messages