[BACK]Return to robot CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / lib

File: [local] / OpenXM_contrib2 / asir2000 / lib / robot (download)

Revision 1.1, Fri Dec 3 07:39:11 1999 UTC (24 years, 5 months ago) by noro
Branch: MAIN

Initial revision

/* $OpenXM: OpenXM_contrib2/asir2000/lib/robot,v 1.1 1999/12/03 07:39:11 noro Exp $ */
def rot_x(T) {
	return newmat(3,3,[[1,0,0],[0,cos(T),-sin(T)],[0,sin(T),cos(T)]]);
}

def rot_mx(T) {
	return newmat(3,3,[[1,0,0],[0,cos(T),sin(T)],[0,-sin(T),cos(T)]]);
}

def rot_z(T) {
	return newmat(3,3,[[cos(T),-sin(T),0],[sin(T),cos(T),0],[0,0,1]]);
}

E=rot_z(t1-r)*rot_mx(t2+t3)*rot_z(t4)*rot_mx(t5)*rot_z(t6-p)-rot_mx(t)$
F=newmat(3,3)$
for ( I = 0; I < 3; I++ )
	for ( J = 0; J < 3; J++ )
		F[I][J] = subst(E[I][J],
			sin(t),st,cos(t),ct,
			sin(r),sr,cos(r),cr,
			sin(p),sp,cos(p),cp,
			sin(-r+t1),srt1,cos(-r+t1),crt1,
			sin(t2+t3),st23,cos(t2+t3),ct23,
			sin(t4),st4,cos(t4),ct4,
			sin(t5),st5,cos(t5),ct5,
			sin(-p+t6),spt6,cos(-p+t6),cpt6
		);

def mtol(F) {
	for ( L = [st^2+ct^2-1,
		srt1^2+crt1^2-1,st23^2+ct23^2-1,
		st4^2+ct4^2-1,st5^2+ct5^2-1,spt6^2+cpt6^2-1]
		, I = 0; I < 3; I++ )
		for ( J = 0; J < 3; J++ )
			L = cons(F[I][J],L);
	return L;
}
L = mtol(F)$
V = [cpt6,spt6,ct5,st5,ct4,st4,ct23,st23,crt1,srt1,ct,st]$
Ord = 2;
end;