Re: Kinematic factory

"H.S. Randhawa" <[email protected]> Fri, 16 Jun 2006 19:39:51 +0530
Newsgroups gmane.science.robotics.orocos.user
Message-ID <[email protected]>
On 6/16/06, Herman Bruyninckx <[email protected]> wrote:
>
> On Thu, 15 Jun 2006, sailendra sethi wrote:
>
> > i defined a new robot type in Kinematic factory.hpp as :
> >
> > if (name == "MY_ARM")
> >   {
> >     SerialZXXDWH* ki = new SerialZXXDWH();
> >       ki->geometrySet(3.2,4.70,4.70,0.0,0.0,0.2);
> >       ki->offsetSet(0.);
> >       ki->eccentricitySet(0.);
> >     return ki;
> >   }
> >
> > i am taking link lengths in inches.
> >
> > How it works when i give a new robo type. Is there any  function so that
> i
> > can analyse the calculation for this ZXXDWH type configuration. It is
> not
> > moving to given point may be either due to motor constraints. Please
> give me
> > some way to solve this problem.
> >
> It is very unlikely that the SerialZXXDWH kinematics suits your needs,
> because it involves an (old and patented) wrist design by KUKA...
>
> But what do you mean exactly with "any function so that I can analyse the
> calculation"?
>
> I include a matlab function that calculates the forward position
> kinematics
> of a six revolute joint robot (fpk321); maybe you can use it for your
> analysis...?
>
> Herman
> ==================
>
> function [R,p]=fpk321(l,q)
> % [R,p]=fpk321(l,q)
> %
> % Calculates the forward position kinematics of a serial robot arm
> % with six revolute joints in a `321' architecture
> % (Featherstone, R., I. J. Rob. Research, 1984).
> % `l' is a 4-vector of  link lengths (links 1, 2, 3 and 6 only, since
> % joints 4, 5 and 6 intersect each other in the same point).
> % `q' is the 6-vector of joint values; joints 1, 4 and 6 are positive
> % along the positive direction of their Z-axes (see below); joints
> % 2, 3 and 5 rotate positively around ther negative X-axes.
> % The function returns the rotation matrix `R' and the position vector
> % `p' of the end effector frame with respect to the base frame of the
> % robot. Both frames are parallel if the robot is in its fully upright
> % position. Their Z-axes then point upward, their Y-axes forward and their
> % X-axes to the right.
> %


Here also you are taking 1,4,6 axes parallel to each other. and 2,3,5  are
parallel  to each other and perpendicular to 1,4 and 6.
I think Mr Sailendra is talking about ZXXXZY configuration if exist any.



% Herman.Bruyninckx[@]mech.kuleuven.be    12 JUL 1998
>
> % link lengths:
> l1 = l(1); l2 = l(2); l3 = l(3); l6 = l(4);
>
> c1 = cos(q(1));       s1  = sin(q(1));
> c23= cos(q(2)+q(3));  s23 = sin(q(2)+q(3));
> c4 = cos(q(4));       s4  = sin(q(4));
> c5 = cos(q(5));       s5  = sin(q(5));
> c6 = cos(q(6));       s6  = sin(q(6));
> c4s5 = c4 * s5;      s4s5 = s4 * s5;
> s5c6 = s5 * c6;      s5s6 = s5 * s6;
> c1c23  = c1 * c23; c1s23  = c1 * s23;
> s1c23  = s1 * c23; s1s23  = s1 * s23;
>
> R(2,1) = s4*c5*s6 - c4*c6;
> R(3,1) = c4*c5*s6 + s4*c6;
> R(1,1) = -s1c23*R(3,1) - c1*R(2,1) + s1s23*s5s6;
> R(2,1) =  c1c23*R(3,1) - s1*R(2,1) - c1s23*s5s6;
> R(3,1) =   -s23*R(3,1) - c23*s5s6;
>
> R(2,2) = s4*c5*c6 + c4*s6;
> R(3,2) = c4*c5*c6 - s4*s6;
> R(1,2) = -s1c23*R(3,2) - c1*R(2,2) + s1s23*s5c6;
> R(2,2) =  c1c23*R(3,2) - s1*R(2,2) - c1s23*s5c6;
> R(3,2) =   -s23*R(3,2) - c23*s5c6;
>
> R(1,3) = -s1c23*c4s5 - c1*s4s5 - s1s23*c5;
> R(2,3) =  c1c23*c4s5 - s1*s4s5 + c1s23*c5;
> R(3,3) =   -s23*c4s5 + c23*c5;
>
> % vertical distance of wrist from shoulder:
> dWv = cos(q(2)) * l2 + c23 * l3;
> % horizontal distance of wrist from shoulder:
> dWh = sin(q(2)) * l2 + s23 * l3;
>
> % Position of wrist: */
> Pwx = -s1 * dWh;
> Pwy =  c1 * dWh;
> Pwz =  l1 + dWv;
>
> % End effector position = position of last link + position of wrist:
> p = [R(1,3) * l6 + Pwx; R(2,3) * l6 + Pwy; R(3,3) * l6 + Pwz];
>
>
> _______________________________________________
> Orocos mailing list
> [email protected]
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>
>


-- 
H.S.Randhawa

_______________________________________________
Orocos mailing list
[email protected]
http://lists.mech.kuleuven.be/mailman/listinfo/orocos