{VERSION 6 0 "IBM INTEL NT" "6.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 1" -1 3 1 {CSTYLE "" -1 -1 "Times " 1 18 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 4 1 0 1 0 2 2 0 1 } {PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Error" -1 8 1 {CSTYLE "" -1 -1 "Courier" 1 10 255 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {TEXT 256 93 "IRO 2006: Inverse Kinemat ics of a manipulator with two axes of motion\nT.Pajdla, 15 Oct 2006 " }}}{SECT 0 {PARA 3 "" 0 "" {TEXT 257 20 " Packages & settings" } {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "# with(linal g):\nwith(LinearAlgebra):\nwith(PolynomialTools):\ninterface(rtablesiz e=20):" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT 258 14 " DH-Kinematics" } {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 27 "Functions for DH k inematics" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 3758 "# Joint tran sformations:\n# Two one-parametric motions transformatin in DH-convent ion(phi, theta, a,d) indexed by i\n# c = cos(phi), s = sin(phi), P = c os(alpha), R = sin(alpha)\ndhTs := proc(i)\nlocal M1, M2;\n M1:=Matr ix(4,4,[[+cat(`c`,i),-cat(`s`,i),0, 0],\n [ + cat(`s`,i),+cat(`c`,i),0, 0],\n [ 0 , 0,1,cat(`D`,i)],\n [ 0, \+ 0,0, 1]]);\n M2:=Matrix(4,4,[[1, 0, 0,cat(` A`,i)], \n [ 0,+cat(`P`,i),-cat(`R`,i), 0], \n [ 0,+cat(`R`,i),+cat(`P`,i), 0],\n \+ [ 0, 0, 0, 1]]);\n [M1,M2];\nend proc:\n# Inverse of the DH-convention for one-aprametric DH rigid mot ion transformations\ndhInvs := proc(M)\n local M1, M2;\n M1 := M[1 ];\n M2 := M[2];\n [simplify(MatrixInverse(M2),\{M2[3,2]^2+M2[3,3] ^2=1\}),\n simplify(MatrixInverse(M1),\{M1[1,1]^2+M1[2,1]^2=1\})]; \nend proc:\n# Rigid motion transformatin in DH-convention(phi, theta, a,d) indexed by i\n# c = cos(phi), s = sin(phi), P = cos(alpha), R = \+ sin(alpha)\ndhT := proc(i)\nlocal M;\nM:=Matrix(4,4,[[+cat(`c`,i),-cat (`s`,i)*cat(`P`,i),+cat(`s`,i)*cat(`R`,i),+cat(`A`,i)*cat(`c`,i)],\n \+ [+cat(`s`,i),+cat(`c`,i)*cat(`P`,i),-cat(`c`,i)*cat(`R`,i ),+cat(`A`,i)*cat(`s`,i)],\n [ 0, ca t(`R`,i), cat(`P`,i), cat(`D`,i)],\n \+ [ 0, 0, 0, \+ 1]]);\nend proc:\n# Inverse of the DH-convention rigid mo tion transformation\ndhInv := proc(M)\n simplify(MatrixInverse(M),\{ M[1,1]^2+M[2,1]^2=1,M[3,2]^2+M[3,3]^2=1\});\nend proc:\n# Simplify usi ng the trigonometric indentities c^2+s^2=1 & P^2+R^2=1\ndhSimpl := pro c(M,i)\n simplify(M,\{cat(`c`,i)^2+cat(`s`,i)^2=1,cat(`P`,i)^2+cat(` R`,i)^2=1\});\nend proc:\n# Simplify a general motion matrix using rot ation matrix identities in columns\nrcSimp := proc(M,R)\n simpli fy(\n simplify(\n simplify(\n simplify(\n \+ simplify(\n simplify(M,\{R[1,1]*R[1,1]+R[2,1]*R[2,1]+ R[3,1]*R[3,1]=1\}),\n \{R[1,1]*R[1,2]+R[2,1]*R[2,2]+R[3 ,1]*R[3,2]=0\}),\n \{R[1,1]*R[1,3]+R[2,1]*R[2,3]+R[3,1]* R[3,3]=0\}),\n \{R[1,2]*R[1,2]+R[2,2]*R[2,2]+R[3,2]*R[3,2] =1\}),\n \{R[1,2]*R[1,3]+R[2,2]*R[2,3]+R[3,2]*R[3,3]=0\}), \n \{R[1,3]*R[1,3]+R[2,3]*R[2,3]+R[3,3]*R[3,3]=1\});\nend \+ proc:\n# Simplify a general motion matrix using rotation matrix identi ties in rows\nrrSimp := proc(M,R)\n simplify(\n simplify( \n simplify(\n simplify(\n simplify(\n \+ simplify(M,\{R[1,1]*R[1,1]+R[1,2]*R[1,2]+R[1,3]*R[1,3]=1\}),\n \+ \{R[1,1]*R[2,1]+R[1,2]*R[2,2]+R[1,3]*R[2,3]=0\}) ,\n \{R[1,1]*R[3,1]+R[1,2]*R[3,2]+R[1,3]*R[3,3]= 0\}),\n \{R[2,1]*R[2,1]+R[2,2]*R[2,2]+R[2,3]*R[2 ,1]=1\}),\n \{R[2,1]*R[3,1]+R[2,2]*R[3,2]+R[2,3] *R[3,3]=0\}),\n \{R[3,1]*R[3,1]+R[3,2]*R[3,2]+R[ 3,3]*R[3,3]=1\});\nend proc:\n# Matrix representation of a set of poly nomials \nPolyCoeffMatrix:=proc(S,m,Ord::\{ShortTermOrder, TermOrder\} ) \nlocal A,v,i,j,k,c,q;\n A:=Matrix(nops(S),nops(m),storage=sp arse);\n v:=indets(m);\n for i from 1 to nops(S) do\n \+ c:=[coeffs(expand(S[i]),v,'q')];\n q:=[q]; \n \011 for j from 1 to nops(m) do\n \+ for k from 1 to nops(q) do\n if (m[j] =q[k]) then A[i,j]:=c[k] end if\n end do\n \+ \011 end do\n end do;\n Matrix(A);\nend proc:\n # n x 1 matrix to a list conversion\nM2L:=proc(M) \n\011convert(conver t(M,Vector),list);\nend proc:" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT 259 31 " IK solution for a general case" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 16 "The formulation:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 91 "(1)\011M1*M2 = Mh\n\nor equivalently\n\n(2)\011M1 = \+ Mh*M2^\{1\}\n\ni.e.\n\n(3)\011M11*M12 = Mh*M22^\{1\}*M21^\{1\}" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 30 "C onstruct the motion matrices:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 189 "M11:=dhTs(1)[1]:\nM12:=dhTs(1)[2]:\niM21:=dhInvs(dhTs(2))[2]:\n iM22:=dhInvs(dhTs(2))[1]:\nMh:=Matrix(4,4,[[Lx,Mx,Nx,Qx],[Ly,My,Ny,Qy] ,[Lz,Mz,Nz,Qz],[0,0,0,1]]):\nLhs:=M11.M12:\nRhs:=Mh.iM22.iM21:" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "See the equation (3) in separate m atrices" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "M11,M12, \"=\", \+ Mh,iM22,iM21;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6(-%'RTABLEG6%\"*[ukY\" -%'MATRIXG6#7&7&%#c1G,$%#s1G!\"\"\"\"!F07&F.F,F0F07&F0F0\"\"\"%#D1G7&F 0F0F0F3%'MatrixG-F$6%\"*?,lY\"-F(6#7&7&F3F0F0%#A1G7&F0%#P1G,$%#R1GF/F0 7&F0FBF@F0F5F6Q\"=6\"-F$6%\"*7\\lY\"-F(6#7&7&%#LxG%#MxG%#NxG%#QxG7&%#L yG%#MyG%#NyG%#QyG7&%#LzG%#MzG%#NzG%#QzGF5F6-F$6%\"*wzlY\"-F(6#7&7&F3F0 F0,$%#A2GF/7&F0%#P2G%#R2GF07&F0,$F`oF/F_oF0F5F6-F$6%\"*?@mY\"-F(6#7&7& %#c2G%#s2GF0F07&,$F[pF/FjoF0F07&F0F0F3,$%#D2GF/F5F6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "as well as in their product:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "Lhs, \"=\", Rhs;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6%-%'RTABLEG6%\"*'*[mY\"-%'MATRIXG6#7&7&%#c1G,$*&%#s1G\" \"\"%#P1GF0!\"\"*&F/F0%#R1GF0*&F,F0%#A1GF07&F/*&F,F0F1F0,$*&F,F0F4F0F2 *&F/F0F6F07&\"\"!F4F1%#D1G7&F=F=F=F0%'MatrixGQ\"=6\"-F$6%\"*wjmY\"-F(6 #7&7&,&*&%#LxGF0%#c2GF0F0*&,&*&%#MxGF0%#P2GF0F0*&%#NxGF0%#R2GF0F2F0%#s 2GF0F2,&*&FLF0FVF0F0*&FOF0FMF0F0,&*&FQF0FUF0F0*&FTF0FRF0F0,(*&FZF0%#D2 GF0F2*&FLF0%#A2GF0F2%#QxGF07&,&*&%#LyGF0FMF0F0*&,&*&%#MyGF0FRF0F0*&%#N yGF0FUF0F2F0FVF0F2,&*&F`oF0FVF0F0*&FboF0FMF0F0,&*&FdoF0FUF0F0*&FfoF0FR F0F0,(*&FjoF0FinF0F2*&F`oF0F[oF0F2%#QyGF07&,&*&%#LzGF0FMF0F0*&,&*&%#Mz GF0FRF0F0*&%#NzGF0FUF0F2F0FVF0F2,&*&FdpF0FVF0F0*&FfpF0FMF0F0,&*&FhpF0F UF0F0*&FjpF0FRF0F0,(*&F^qF0FinF0F2*&FdpF0F[oF0F2%#QzGF0F?F@" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 175 "Notice that the last two columns \+ on the right hand side are free of c2, s2 and the third row on the lef t hand side is free of c1, s1, and D1, D2, are only in the last column s." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 148 "Thus, we can get the follo wing 6 linear equations for the six variables c1, s1, D1, c2, s2, D2 b y choosing the six corresponding elements carefully:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 119 ", \"=\", ;\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6%-%'RTABLEG6%\"*GXkY\"- %'MATRIXG6#7(7#*&%#s1G\"\"\"%#R1GF.7#,$*&%#c1GF.F/F.!\"\"7#\"\"!7#F/7# *&F3F.%#A1GF.7#%#D1G&%'VectorG6#%'columnGQ\"=6\"-F$6%\"*3YkY\"-F(6#7(7 #,&*&%#MxGF.%#R2GF.F.*&%#NxGF.%#P2GF.F.7#,&*&%#MyGF.FMF.F.*&%#NyGF.FPF .F.7#,&*&%#LzGF.%#c2GF.F.*&,&*&%#MzGF.FPF.F.*&%#NzGF.FMF.F4F.%#s2GF.F4 7#,&*&FZF.F\\oF.F.*&FgnF.FenF.F.7#,(*&FJF.%#D2GF.F4*&%#LxGF.%#A2GF.F4% #QxGF.7#,(*&,&*&FinF.FMF.F.*&F[oF.FPF.F.F.FdoF.F4*&FZF.FgoF.F4%#QzGF.F =" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 37 "Move all terms to the left h and side:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "E6:= - :\nE6, \"=\", ZeroMatrix(6,1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6%-%'RTABLEG6%\"*)oWm9-%'MATRIXG6#7(7#,* *&%#c1G\"\"\"%#A1GF/F/*&,&*&%#MxGF/%#R2GF/F/*&%#NxGF/%#P2GF/F/F/%#D2GF /F/*&%#LxGF/%#A2GF/F/%#QxG!\"\"7#,*%#D1GF/*&,&*&%#MzGF/F5F/F/*&%#NzGF/ F8F/F/F/F9F/F/*&%#LzGF/F7#,(%#R1GF/*&FIF/%#s2GF/F>*&,&*&FE F/F8F/F/*&FGF/F5F/F>F/%#c2GF/F>7#,&*&FIF/FTF/F>*&FQF/FOF/F/7#,(*&F.F/F MF/F>*&%#MyGF/F5F/F>*&%#NyGF/F8F/F>7#,(*&%#s1GF/FMF/F/F3F>F6F>&%'Vecto rG6#%'columnGQ\"=6\"-F$6%\"*;3oY\"-F(6#7(7#\"\"!FjoFjoFjoFjoFjo%'Matri xG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 39 "Express it in the following matrix form" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "t1:=<>:\nT1:=PolyCoeffMatrix(M2L(E6),M2L(t1),plex(c1,s1,D1, D2)):\nE6, \"=\", T1, t1;\n" }}{PARA 7 "" 1 "" {TEXT -1 81 "Warning, T ype ShortTermOrder is deprecated. Please, use type ShortMonomialOrder. \n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6&-%'RTABLEG6%\"*)oWm9-%'MATRIXG6# 7(7#,**&%#c1G\"\"\"%#A1GF/F/*&,&*&%#MxGF/%#R2GF/F/*&%#NxGF/%#P2GF/F/F/ %#D2GF/F/*&%#LxGF/%#A2GF/F/%#QxG!\"\"7#,*%#D1GF/*&,&*&%#MzGF/F5F/F/*&% #NzGF/F8F/F/F/F9F/F/*&%#LzGF/F7#,(%#R1GF/*&FIF/%#s2GF/F>*& ,&*&FEF/F8F/F/*&FGF/F5F/F>F/%#c2GF/F>7#,&*&FIF/FTF/F>*&FQF/FOF/F/7#,(* &F.F/FMF/F>*&%#MyGF/F5F/F>*&%#NyGF/F8F/F>7#,(*&%#s1GF/FMF/F/F3F>F6F>&% 'VectorG6#%'columnGQ\"=6\"-F$6%\"*cNoY\"-F(6#7(7)F2\"\"!F[pF[pF0F[p,&F :F/F=F>7)FCF/F[pF[pF[pF[p,&FHF/FJF>7)F[pF[p,&FRF>FSF/,$FIF>F[pF[pFM7)F [pF[pFapFQF[pF[pF[p7)F[pF[pF[pF[p,$FMF>F[p,&FfnF>FhnF>7)F[pF[pF[pF[pF[ pFM,&F3F>F6F>%'MatrixG-F$6%\"*#p(oY\"-F(6#7)7#F97#FA7#FT7#FO7#F.7#F]o7 #F/Fhp" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 60 "Construct the reduced r ow echelon form to find the solution:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 58 "T3:=ReducedRowEchelonForm(T1):\nT3[1..6,1..6];\nT3[1. .6,7];\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\"*#R!pY\"-%'M ATRIXG6#7(7(\"\"\"\"\"!F-F-F-F-7(F-F,F-F-F-F-7(F-F-F,F-F-F-7(F-F-F-F,F -F-7(F-F-F-F-F,F-7(F-F-F-F-F-F,%'MatrixG" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\"*OGpY\"-%'MATRIXG6#7(7#*(,**(%#LxG\"\"\"%#A2GF0%#R 1GF0F0*&%#QxGF0F2F0!\"\"*(%#A1GF0%#MyGF0%#R2GF0F5*(F7F0%#NyGF0%#P2GF0F 5F0,&*&%#MxGF0F9F0F0*&%#NxGF0F " 0 "" {MPLTEXT 1 0 89 "D2s:=-T3[1,7];\nD1s:=-T3[2,7];\nc2s:=-T3[3,7];\ns2s:=-T3[4,7]; \nc1s:=-T3[5,7];\ns1s:=-T3[6,7];" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% $D2sG,$*(,**(%#LxG\"\"\"%#A2GF*%#R1GF*F**&%#QxGF*F,F*!\"\"*(%#A1GF*%#M yGF*%#R2GF*F/*(F1F*%#NyGF*%#P2GF*F/F*,&*&%#MxGF*F3F*F**&%#NxGF*F6F*F*F /F,F/F/" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$D1sG*(,:*,%#R1G\"\"\"%#L zGF)%#A2GF)%#MxGF)%#R2GF)!\"\"*,F(F)F*F)F+F)%#NxGF)%#P2GF)F.**F(F)%#Qz GF)F,F)F-F)F)**F(F)F3F)F0F)F1F)F)*,F(F)%#MzGF)F-F)%#LxGF)F+F)F)**F(F)F 6F)F-F)%#QxGF)F.*,F(F)%#NzGF)F1F)F7F)F+F)F)**F(F)F;F)F1F)F9F)F.**%#A1G F)F6F))F-\"\"#F)%#MyGF)F.*,F>F)F6F)F-F)%#NyGF)F1F)F.*,F>F)F;F)F1F)FAF) F-F)F.**F>F)F;F))F1F@F)FCF)F.F),&*&F,F)F-F)F)*&F0F)F1F)F)F.F(F." }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$c2sG*(,&*&%#MzG\"\"\"%#P2GF)F)*&%#N zGF)%#R2GF)!\"\"F)%#R1GF),**&)F(\"\"#F))F*F3F)F)*,F3F)F(F)F*F)F,F)F-F) F.*&)F,F3F))F-F3F)F)*$)%#LzGF3F)F)F." }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%$s2sG*(%#LzG\"\"\"%#R1GF',**&)%#MzG\"\"#F')%#P2GF-F'F'*,F-F'F,F'F/ F'%#NzGF'%#R2GF'!\"\"*&)F1F-F')F2F-F'F'*$)F&F-F'F'F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$c1sG,$*&,&*&%#MyG\"\"\"%#R2GF*F**&%#NyGF*%#P2GF*F *F*%#R1G!\"\"F0" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$s1sG*&,&*&%#MxG \"\"\"%#R2GF)F)*&%#NxGF)%#P2GF)F)F)%#R1G!\"\"" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT 260 1 " " }{TEXT 261 53 "A numerical example for a general \+ and a special cases" }}{PARA 0 "" 0 "" {TEXT -1 47 "Simulate the mecha nism = direct kinematics task" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 22 "( 4) M1*M2 = Mh" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "M1 x := dhT(1):\nM2x := dhT(2):\nMhx := M1x.M2x:\nMhx, \"=\", M1x, M2x;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6&-%'RTABLEG6%\"*C'*pY\"-%'MATRIXG6#7& 7&,&*&%#c1G\"\"\"%#c2GF/F/*(%#s1GF/%#P1GF/%#s2GF/!\"\",(*(F.F/F4F/%#P2 GF/F5**F2F/F3F/F0F/F8F/F5*(F2F/%#R1GF/%#R2GF/F/,(*(F.F/F4F/F " 0 "" {MPLTEXT 1 0 99 "px := \{al1=-Pi/3,A1=1,al2=Pi/2,A2=-2\}; \npx x := \{P1=cos(al1),R1=sin(al1),P2=cos(al2),R2=sin(al2)\}; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#pxG<&/%#A1G\"\"\"/%$al1G,$*&\"\"$!\"\"%#P iGF(F./%$al2G,$*&\"\"#F.F/F(F(/%#A2G!\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$pxxG<&/%#P1G-%$cosG6#%$al1G/%#R1G-%$sinGF*/%#P2G-F)6#%$al2G/% #R2G-F/F3" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 45 "Set the controled pa rameters of the mechanism" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 94 "qx := \{th1=0.1,D1=1,th2=0.1,D2=2\};\nqxx := \{c1=cos(th1),s1=sin( th1),c2=cos(th2),s2=sin(th2)\}; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %#qxG<&/%$th1G$\"\"\"!\"\"/%$th2GF(/%#D2G\"\"#/%#D1GF)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$qxxG<&/%#c1G-%$cosG6#%$th1G/%#s1G-%$sinGF*/%#c2 G-F)6#%$th2G/%#s2G-F/F3" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 29 "Solve \+ DK of this mechanism." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 211 "MhX:=subs(qx,subs(qxx,subs(px,subs(pxx,Mhx))));\nhx:=\{Lx=MhX[1,1],Ly =MhX[2,1],Lz=MhX[3,1],Mx=MhX[1,2],\n My=MhX[2,2],Mz=MhX[3,2],Nx=Mh X[1,3],Ny=MhX[2,3],\n Nz=MhX[3,3],Qx=MhX[1,4],Qy=MhX[2,4],Qz=MhX[3 ,4]\}:\n" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$MhXG-%'RTABLEG6%\"*%)Gr Y\"-%'MATRIXG6#7&7&$\"+N$*\\])*!#5,$*&$\"+K3n\"*\\!#6\"\"\"\"\"$#F6\" \"#!\"\"$\"+\")*>+\\\"F0,&$\"+F0F:*&$\"+_;/]**F0F6F7F8F 67&F1$\"+++++]F0FD,&*&$\"+k;M$)**F5F6F7F8F6F9F67&\"\"!FXFXF6%'MatrixG " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 17 "Now solve the IK:" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "ev alf(subs(hx,subs(px,subs(pxx,[c1s,s1s,c2s,s2s,D1s,D2s]))));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7($\"+c;/]**!#5$\"+r;M$)**!#6$\"+`;/]**F&$\" +k;M$)**F)$\"+d********F&$\"+-+++?!\"*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 19 "which indeed equals" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "evalf(subs(qx,[cos(th1),sin(th1),cos(th2),sin(th2),D1 ,D2]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7($\"+`;/]**!#5$\"+l;M$)**! #6F$F'$\"\"\"\"\"!$\"\"#F," }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 61 "But there may be problems for some (very natural) parameters:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 465 "qx := \{th1=0,D1=0,th2=0,D2=0\};\n qxx := \{c1=cos(th1),s1=sin(th1),c2=cos(th2),s2=sin(th2)\}; \npx := \+ \{al1=-Pi/2,A1=1,al2=Pi/2,A2=-1\}; \npxx := \{P1=cos(al1),R1=sin(al1), P2=cos(al2),R2=sin(al2)\};\nMhX:= subs(qx,subs(qxx,subs(px,subs(pxx,Mh x))));\nMh;\nhx:=\{Lx=MhX[1,1],Ly=MhX[2,1],Lz=MhX[3,1],Mx=MhX[1,2],\n \+ My=MhX[2,2],Mz=MhX[3,2],Nx=MhX[1,3],Ny=MhX[2,3],\n Nz=MhX[3,3] ,Qx=MhX[1,4],Qy=MhX[2,4],Qz=MhX[3,4]\};\nsubs(hx,eval(subs(subs(px,pxx ),[c1s,s1s,D1s,c2s,s2s,D2s])));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%# qxG<&/%$th1G\"\"!/%#D1GF(/%$th2GF(/%#D2GF(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$qxxG<&/%#c1G-%$cosG6#%$th1G/%#s1G-%$sinGF*/%#c2G-F)6 #%$th2G/%#s2G-F/F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#pxG<&/%$al1G, $*&\"\"#!\"\"%#PiG\"\"\"F+/%#A2GF+/%#A1GF-/%$al2G,$*&F*F+F,F-F-" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%$pxxG<&/%#P1G-%$cosG6#%$al1G/%#R1G-% $sinGF*/%#P2G-F)6#%$al2G/%#R2G-F/F3" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%$MhXG-%'RTABLEG6%\"*curY\"-%'MATRIXG6#7&7&\"\"\"\"\"!F/F/7&F/F.F/F/ 7&F/F/F.F/7&F/F/F/F.%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RT ABLEG6%\"*7\\lY\"-%'MATRIXG6#7&7&%#LxG%#MxG%#NxG%#QxG7&%#LyG%#MyG%#NyG %#QyG7&%#LzG%#MzG%#NzG%#QzG7&\"\"!F;F;\"\"\"%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#hxG<./%#LzG\"\"!/%#MxGF(/%#MyG\"\"\"/%#MzGF(/%# NxGF(/%#NyGF(/%#NzGF-/%#QxGF(/%#QyGF(/%#QzGF(/%#LyGF(/%#LxGF-" }} {PARA 8 "" 1 "" {TEXT -1 43 "Error, numeric exception: division by zer o\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "Why? Let us substitute int o T1 and simplify:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "T1x:= subs(px,subs(pxx,subs(hx,T1)));\nT1xe:=evalf(GaussianElimination(T1x)) ;" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %$T1xG-%'RTABLEG6%\"*'*GsY\"-%'MATRIXG6#7(7)\"\"!F.F.F.\"\"\"F.!\"\"7) F.F/F.F.F.F.F.7)F.F.F/F.F.F.F07)F.F.F.F0F.F.F.F-7)F.F.F.F.F.F0F.%'Matr ixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%T1xeG-%'RTABLEG6%\"*OmsY\"-% 'MATRIXG6#7(7)$\"\"!F/$\"\"\"F/F/F/F/F/F/7)F.F/F0F/F/F/$!\"\"F/7)F/F/F /F3F/F/F/7)F/F/F/F/F0F/F37)F/F/F/F/F/F3F/7)F/F/F/F/F/F/F/%'MatrixG" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "to see that the matrix T1 is sing ular." }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT 262 38 " A step towards the \+ \"regular solution\"" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "Lhs, Rhs;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6$-%'RTABLEG6%\"*'*[mY\"-%'MATRIXG6#7&7&%#c1G,$*&%#s1G\"\"\"%#P1GF0! \"\"*&F/F0%#R1GF0*&F,F0%#A1GF07&F/*&F,F0F1F0,$*&F,F0F4F0F2*&F/F0F6F07& \"\"!F4F1%#D1G7&F=F=F=F0%'MatrixG-F$6%\"*wjmY\"-F(6#7&7&,&*&%#LxGF0%#c 2GF0F0*&,&*&%#MxGF0%#P2GF0F0*&%#NxGF0%#R2GF0F2F0%#s2GF0F2,&*&FJF0FTF0F 0*&FMF0FKF0F0,&*&FOF0FSF0F0*&FRF0FPF0F0,(*&FXF0%#D2GF0F2*&FJF0%#A2GF0F 2%#QxGF07&,&*&%#LyGF0FKF0F0*&,&*&%#MyGF0FPF0F0*&%#NyGF0FSF0F2F0FTF0F2, &*&F^oF0FTF0F0*&F`oF0FKF0F0,&*&FboF0FSF0F0*&FdoF0FPF0F0,(*&FhoF0FgnF0F 2*&F^oF0FinF0F2%#QyGF07&,&*&%#LzGF0FKF0F0*&,&*&%#MzGF0FPF0F0*&%#NzGF0F SF0F2F0FTF0F2,&*&FbpF0FTF0F0*&FdpF0FKF0F0,&*&FfpF0FSF0F0*&FhpF0FPF0F0, (*&F\\qF0FgnF0F2*&FbpF0FinF0F2%#QzGF0F?F@" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 60 "Use all equations from (3) to form a set of linear equati ons" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 170 "E7:= convert(Lhs[1. .3,1..4],Vector)-convert(Rhs[1..3,1..4],Vector):\nE7, \"=\", ZeroMatri x(12,1):\nT71:=PolyCoeffMatrix(M2L(E7),M2L(t1),plex(c1,s1,D1,D2)):\nE7 , \"=\", T71, t1;\n" }}{PARA 7 "" 1 "" {TEXT -1 81 "Warning, Type Shor tTermOrder is deprecated. Please, use type ShortMonomialOrder.\n" }} {PARA 12 "" 1 "" {XPPMATH 20 "6&-%'RTABLEG6%\"*)GYm9-%'MATRIXG6#7.7#,( %#c1G\"\"\"*&%#LxGF.%#c2GF.!\"\"*&,&*&%#MxGF.%#P2GF.F.*&%#NxGF.%#R2GF. F2F.%#s2GF.F.7#,(%#s1GF.*&%#LyGF.F1F.F2*&,&*&%#MyGF.F7F.F.*&%#NyGF.F:F .F2F.F;F.F.7#,&*&%#LzGF.F1F.F2*&,&*&%#MzGF.F7F.F.*&%#NzGF.F:F.F2F.F;F. F.7#,(*&F>F.%#P1GF.F2*&F0F.F;F.F2*&F4F.F1F.F27#,(*&F-F.FTF.F.*&F@F.F;F .F2*&FBF.F1F.F27#,(%#R1GF.*&FJF.F;F.F2*&FLF.F1F.F27#,(*&F>F.FhnF.F.*&F 6F.F:F.F2*&F9F.F7F.F27#,(*&F-F.FhnF.F2*&FDF.F:F.F2*&FFF.F7F.F27#,(FTF. *&FNF.F:F.F2*&FPF.F7F.F27#,**&F-F.%#A1GF.F.*&,&F^oF.F_oF.F.%#D2GF.F.*& F0F.%#A2GF.F.%#QxGF27#,**&F>F.F\\pF.F.*&,&FcoF.FdoF.F.F_pF.F.*&F@F.Fap F.F.%#QyGF27#,*%#D1GF.*&,&FgoF.FhoF.F.F_pF.F.*&FJF.FapF.F.%#QzGF2&%'Ve ctorG6#%'columnGQ\"=6\"-F$6%\"*'fQn9-F(6#7.7)\"\"!F^r,$F0F2F4F.F^rF^r7 )F^rF^r,$F@F2FBF^rF.F^r7)F^rF^r,$FJF2FLF^rF^rF^r7)F^rF^r,&F5F2F8F.F_rF ^r,$FTF2F^r7)F^rF^r,&FCF2FEF.FarFTF^rF^r7)F^rF^r,&FMF2FOF.FcrF^rF^rFhn 7)F^rF^rF^rF^rF^rFhn,&F^oF2F_oF27)F^rF^rF^rF^r,$FhnF2F^r,&FcoF2FdoF27) F^rF^rF^rF^rF^rF^rFfo7)F^pF^rF^rF^rF\\pF^r,&F`pF.FbpF27)FgpF^rF^rF^rF^ rF\\p,&FhpF.FipF27)F^qF.F^rF^rF^rF^r,&F_qF.F`qF2%'MatrixG-F$6%\"*#p(oY \"-F(6#7)7#F_p7#F\\q7#F17#F;7#F-7#F>7#F.Fgs" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 49 "and see what happens for the \"degenerate\" values:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 102 "T71x:=subs(px,subs(pxx,sub s(hx,T71)));\nT71xe:=evalf(GaussianElimination(T71x)):\n;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%T71xG-%'RTABLEG6%\"*G\\ uY\"-%'MATRIXG6#7.7)\"\"!F.!\"\"F.\"\"\"F.F.7)F.F.F.F.F.F0F.7)F.F.F.F/ F.F.F.F27)F.F.F.F.F.F.F.7)F.F.F0F.F.F.F/7)F.F.F.F.F.F/F.7)F.F.F.F.F0F. F/F3F67)F0F.F.F.F.F0F.7)F.F0F.F.F.F.F.%'MatrixG" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'RTABLEG6%\"*S([n9-%'MATRIXG6#7/7)%#D2G%#D1G%#c2G%#s2 G%#c1G%#s1G\"\"\"7)$F2\"\"!F5F5F5F5F4F57)F5F4F5F5F5F5F57)F5F5F4F5F5F5$ !\"\"F57)F5F5F5F8F5F5F57)F5F5F5F5F4F5F87)F5F5F5F5F5F8F57)F5F5F5F5F5F5F 5F=F=F=F=F=%'MatrixG" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 105 "We see t hat not all 7-tuples of rows of T71x provide a uniquelly solvable syst em. For instance, the first" }}{PARA 0 "" 0 "" {TEXT -1 102 "6 rows of forms a submatrix of rank equal to four. Nevertheless, the solution c an be obtained from all" }}{PARA 0 "" 0 "" {TEXT -1 40 "12 equations w hich provide matrix T71xe." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 103 "Alternatively, we can use less linear equations \+ and add non-linear constraints among the variables. For" }}{PARA 0 "" 0 "" {TEXT -1 28 "instance, we may proceed as:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 37 " c1 = 1 => s1= 0 using s 1^2+c1^2 = 0" }}{PARA 0 "" 0 "" {TEXT -1 7 "-s2 = 0" }}{PARA 0 "" 0 " " {TEXT -1 6 "D1 = 0" }}{PARA 0 "" 0 "" {TEXT -1 21 "D2 + s1 = 0 => D2 = 0" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 83 "t o get the solution when using one additional trigonometric identity s1 ^2+c1^2 = 0." }}}}}{MARK "0 0 0" 31 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }{RTABLE_HANDLES 146647448 146650120 146654912 146657976 146662120 146664896 146666376 146644528 146644608 146644688 146680816 146683556 146687692 146690392 146692836 146699624 146707008 146710108 146712884 146717456 146722896 146726636 146646288 146738596 146744928 146748740 }{RTABLE M7R0 I6RTABLE_SAVE/146647448X,%)anythingG6"6"[gl!"%!!!#1"%"%%#c1G%#s1G""!F),$F(!""F' F)F)F)F)"""F)F)F)%#D1GF,6" } {RTABLE M7R0 I6RTABLE_SAVE/146650120X,%)anythingG6"6"[gl!"%!!!#1"%"%"""""!F(F(F(%#P1G%#R1GF( F(,$F*!""F)F(%#A1GF(F(F'6" } {RTABLE M7R0 I6RTABLE_SAVE/146654912X,%)anythingG6"6"[gl!"%!!!#1"%"%%#LxG%#LyG%#LzG""!%#MxG% #MyG%#MzGF*%#NxG%#NyG%#NzGF*%#QxG%#QyG%#QzG"""6" } {RTABLE M7R0 I6RTABLE_SAVE/146657976X,%)anythingG6"6"[gl!"%!!!#1"%"%"""""!F(F(F(%#P2G,$%#R2G !""F(F(F+F)F(,$%#A2GF,F(F(F'6" } {RTABLE M7R0 I6RTABLE_SAVE/146662120X,%)anythingG6"6"[gl!"%!!!#1"%"%%#c2G,$%#s2G!""""!F+F)F' F+F+F+F+"""F+F+F+,$%#D2GF*F,6" } {RTABLE M7R0 I6RTABLE_SAVE/146664896X,%)anythingG6"6"[gl!"%!!!#1"%"%%#c1G%#s1G""!F),$*&F(""" %#P1GF,!""*&F'F,F-F,%#R1GF)*&F(F,F0F,,$*&F'F,F0F,F.F-F)*&F'F,%#A1GF,*&F(F,F5F,% #D1GF,6" } {RTABLE M7R0 I6RTABLE_SAVE/146666376X,%)anythingG6"6"[gl!"%!!!#1"%"%,&*&%#LxG"""%#c2GF*F**&, &*&%#MxGF*%#P2GF*F**&%#NxGF*%#R2GF*!""F*%#s2GF*F4,&*&%#LyGF*F+F*F**&,&*&%#MyGF* F0F*F**&%#NyGF*F3F*F4F*F5F*F4,&*&%#LzGF*F+F*F**&,&*&%#MzGF*F0F*F**&%#NzGF*F3F*F 4F*F5F*F4""!,&*&F)F*F5F*F**&F-F*F+F*F*,&*&F8F*F5F*F**&F:F*F+F*F*,&*&FAF*F5F*F** &FCF*F+F*F*FH,&*&F/F*F3F*F**&F2F*F0F*F*,&*&FF*F0F*F*,&*&FEF*F3F*F* *&FGF*F0F*F*FH,(*&FRF*%#D2GF*F4*&F)F*%#A2GF*F4%#QxGF*,(*&FUF*FgnF*F4*&F8F*FinF* F4%#QyGF*,(*&FXF*FgnF*F4*&FAF*FinF*F4%#QzGF*F*6" } {RTABLE M7R0 I6RTABLE_SAVE/146644528X*%)anythingG6"6"[gl!#%!!!"'"'*&%#s1G"""%#R1GF),$*&%#c1G F)F*F)!""""!F**&F-F)%#A1GF)%#D1G6" } {RTABLE M7R0 I6RTABLE_SAVE/146644608X*%)anythingG6"6"[gl!#%!!!"'"',&*&%#MxG"""%#R2GF*F**&%#N xGF*%#P2GF*F*,&*&%#MyGF*F+F*F**&%#NyGF*F.F*F*,&*&%#LzGF*%#c2GF*F**&,&*&%#MzGF*F .F*F**&%#NzGF*F+F*!""F*%#s2GF*F>,&*&F6F*F?F*F**&F9F*F7F*F*,(*&F'F*%#D2GF*F>*&%# LxGF*%#A2GF*F>%#QxGF*,(*&,&*&F;F*F+F*F**&F=F*F.F*F*F*FEF*F>*&F6F*FHF*F>%#QzGF*6 " } {RTABLE M7R0 I6RTABLE_SAVE/146644688X*%)anythingG6"6"[gl!#%!!!"'"',**&%#c1G"""%#A1GF*F**&,&* &%#MxGF*%#R2GF*F**&%#NxGF*%#P2GF*F*F*%#D2GF*F**&%#LxGF*%#A2GF*F*%#QxG!"",*%#D1G F**&,&*&%#MzGF*F0F*F**&%#NzGF*F3F*F*F*F4F*F**&%#LzGF*F7F*F*%#QzGF9,(%#R1GF**&FC F*%#s2GF*F9*&,&*&F?F*F3F*F**&FAF*F0F*F9F*%#c2GF*F9,&*&FCF*FMF*F9*&FJF*FHF*F*,(* &F)F*FFF*F9*&%#MyGF*F0F*F9*&%#NyGF*F3F*F9,(*&%#s1GF*FFF*F*F.F9F1F96" } {RTABLE M7R0 I6RTABLE_SAVE/146680816X,%)anythingG6#%%zeroG6"[gl!""!!!#!"'""6" } {RTABLE M7R0 I6RTABLE_SAVE/146683556X.%)anythingG6"6"[gl!"!!!!#!"'"(!!E\[l06$""$""%,$%#LzG!" "6$F)F),&*&%#MzG"""%#P2GF2F-*&%#NzGF2%#R2GF2F26$F2F2,&*&%#MxGF2F6F2F2*&%#NxGF2F 3F2F26$F*F*,&F0F2F4F-6$""#F@F26$""'FB%#R1G6$F*F)F+6$F2""(,&*&%#LxGF2%#A2GF2F2%# QxGF-6$""&FF,&*&%#MyGF2F6F2F-*&%#NyGF2F3F2F-6$F@F2,&*&F1F2F6F2F2*&F5F2F3F2F26$F MFM,$FCF-6$FBFF,&F9F-F;F-6$F2FM%#A1G6$F@FF,&*&F,F2FJF2F2%#QzGF-6$F)FFFC6" } {RTABLE M7R0 I6RTABLE_SAVE/146687692X,%)anythingG6"6"[gl!"%!!!#("(""%#D2G%#D1G%#c2G%#s2G%#c1 G%#s1G"""6" } {RTABLE M7R0 I6RTABLE_SAVE/146690392X.%)anythingG6"6"[gl!"!!!!#!"'"'!!E\[l'6$""$F)"""6$F*F*F *6$""%F-F*6$""#F/F*6$""'F1F*6$""&F3F*6" } {RTABLE M7R0 I6RTABLE_SAVE/146692836X,%)anythingG6"6"[gl!#!!!!"!"'!!E\[l'"""*(,**(%#LxGF(%#A 2GF(%#R1GF(F(*&%#QxGF(F.F(!""*(%#A1GF(%#MyGF(%#R2GF(F1*(F3F(%#NyGF(%#P2GF(F1F(, &*&%#MxGF(F5F(F(*&%#NxGF(F8F(F(F1F.F1""#,$*(,:*,F.F(%#LzGF(F-F(F;F(F5F(F1*,F.F( FCF(F-F(F=F(F8F(F1**F.F(%#QzGF(F;F(F5F(F(**F.F(FFF(F=F(F8F(F(*,F.F(%#MzGF(F5F(F ,F(F-F(F(**F.F(FIF(F5F(F0F(F1*,F.F(%#NzGF(F8F(F,F(F-F(F(**F.F(FLF(F8F(F0F(F1**F 3F(FIF(F5F>F4F(F1*,F3F(FIF(F5F(F7F(F8F(F1*,F3F(FLF(F8F(F4F(F5F(F1**F3F(FLF(F8F> F7F(F1F(F9F1F.F1F1""$,$*(,&*&FIF(F8F(F(*&FLF(F5F(F1F(F.F(,**&FIF>F8F>F(**FIF(F8 F(FLF(F5F(!"#*&FLF>F5F>F(*$FCF>F(F1F1""&*&,&*&F4F(F5F(F(*&F7F(F8F(F(F(F.F1""%,$ *(FCF(F.F(FXF1F1""',$*&F9F(F.F1F16" } {RTABLE M7R0 I6RTABLE_SAVE/146699624X,%)anythingG6"6"[gl!"%!!!#1"%"%,&*&%#c1G"""%#c2GF*F**(% #s1GF*%#P1GF*%#s2GF*!"",&*&F-F*F+F*F**(F)F*F.F*F/F*F**&%#R1GF*F/F*""!,(*(F)F*F/ F*%#P2GF*F0**F-F*F.F*F+F*F9F*F0*(F-F*F5F*%#R2GF*F*,(*(F-F*F/F*F9F*F0**F)F*F.F*F +F*F9F*F**(F)F*F5F*F,(*(F)F- F1F-FGF-F-**F1F-F3F-F)F-FGF-F-*(F1F-F=F-FAF-F-,(*&F1F/FGF-F-*(F)F/F3F-FGF-F.FMF .,&FKF.*&F3F-FAF-F-F>,*F(!"#F0F/FF)F5F)F-*&F@F)F2F)F-,(FLF)*&FGF)F5F)F-*&FIF)F2F) F-,**&F(F)%#A1GF)F)*&,&FYF)FZF)F)%#D2GF)F)*&F+F)%#A2GF)F)%#QxGF-,**&F8F)F^oF)F) *&,&FgnF)FhnF)F)FaoF)F)*&F:F)FcoF)F)%#QyGF-,*%#D1GF)*&,&FjnF)F[oF)F)FaoF)F)*&FC F)FcoF)F)%#QzGF-6" } {RTABLE M7R0 I6RTABLE_SAVE/146738596X.%)anythingG6"6"[gl!"!!!!#!"-"(!!E\[l@6$""&""%,$%#LyG!" "6$"")""(,&*&%#MyG"""%#R2GF4F-*&%#NyGF4%#P2GF4F-6$""#F*,&*&F3F4F8F4F4*&F7F4F5F4 F-6$F0F0,&*&%#MxGF4F5F4F-*&%#NxGF4F8F4F-6$"#6F4,&F2F4F6F46$""$F*,&*&%#MzGF4F8F4 F4*&%#NzGF4F5F4F-6$FEF0,&*&F,F4%#A2GF4F4%#QyGF-6$"#7F:F46$"#5F0,&*&%#LxGF4FQF4F 4%#QxGF-6$FHFH,$%#LzGF-6$F:""'F46$F*Fin,$%#P1GF-6$F*F*,$FYF-6$""*F0,(F\oF4*&FKF 4F5F4F-*&FMF4F8F4F-6$FinFH,&FJF-FLF46$FinF*Ffn6$FEFin%#A1G6$FTF4,&FboF4FcoF46$F *FH,&*&FAF4F8F4F-*&FCF4F5F4F46$F/F),$%#R1GF-6$F)F)F\o6$F4F*,&F]pF4F^pF-6$FinF0F ap6$FVF4,&F@F4FBF46$FTF0,&*&FgnF4FQF4F4%#QzGF-6$F)FH,&FF.F+ 6$"#7F7F66$"#5F.F86$F@F@F+6$F7""'F66$F*FH,$-F;6#,$F4#F8F7F86$F*F*F86$""*F.,&FKF 6F:F86$FHF@F06$FHF*F+6$F>FHF66$FCF6F:6$F*F@F+6$F-F),$-F1FLF86$F)F)FK6$F6F*F+6$F HF.FZ6$FEF6F+6$FCF.F+6$F)F@,$F:F86$F6F)F66$F6F@F86$F7F@F+6$FEF)F66$F.FHFZ6" } {RTABLE M7R0 I6RTABLE_SAVE/146748740X,%)anythingG6"6"[gl!"%!!!#fp"."(%#D2G$"""""!F*F*F*F*F*F *F*F*F*F*F*%#D1GF*F(F*F*F*F*F*F*F*F*F*F*%#c2GF*F*F(F*F*F*F*F*F*F*F*F*%#s2GF*F*F *$!""F*F*F*F*F*F*F*F*F*%#c1GF*F*F*F*F(F*F*F*F*F*F*F*%#s1GF(F*F*F*F*F.F*F*F*F*F* F*F)F*F*F.F*F.F*F*F*F*F*F*F*6" }