restart;
with(LinearAlgebra):
with(codegen,optimize):
Advanced Robotics: HW 01
Setups
skew := (a,b,c) -> Matrix([[0,-c,b],[c,0,-a],[-b,a,0]]);
Rkt := (i,j,k,tetha) -> Matrix(linalg[exponential](skew(i,j,k)*tetha));
linalg[exponential](skew(i,j,k)*tetha):
rpy2R: Roll, pitch and yaw angles (Euler x-y-z convention) to rotation matrix
Rx := Rkt(1,0,0,q1);
Ry := Rkt(0,1,0,q2);
Rz := Rkt(0,0,1,q3);
Rout := Rz . Ry . Rx;
IntArg := Rkt(1,0,0,sigma) . Matrix(3,1,[0,0,0]);
L1 := map( int, IntArg, sigma=0..q1);
T1 :=Matrix(4,4,[ [Matrix(3,4,[Rout,L1])], [Matrix(1,4,[0,0,0,1])] ]);
TTdSMApJNlJUQUJMRV9TQVZFLzE1ODQzNTk0OFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyoiJCIkIiIiIiIhRihGKC0lJGNvc0c2IyUjcTFHLSUkc2luR0YrRigsJEYtISIiRilGJg==TTdSMApJNlJUQUJMRV9TQVZFLzE1Nzg1ODM4MFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyoiJCIkLSUkY29zRzYjJSNxMkciIiEsJC0lJHNpbkdGKSEiIkYrIiIiRitGLUYrRidGJg==TTdSMApJNlJUQUJMRV9TQVZFLzE1NzY2NTg1NlgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyoiJCIkLSUkY29zRzYjJSNxM0ctJSRzaW5HRikiIiEsJEYrISIiRidGLUYtRi0iIiJGJg==TTdSMApJNlJUQUJMRV9TQVZFLzE3NjA5ODQyMFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyoiJCIkKiYtJSRjb3NHNiMlI3EzRyIiIi1GKTYjJSNxMkdGLComLSUkc2luR0YqRixGLUYsLCQtRjJGLiEiIiwmKiZGMUYsLUYpNiMlI3ExR0YsRjUqKEYoRixGNEYsLUYyRjlGLEYsLCYqJkYoRixGOEYsRiwqKEYxRixGNEYsRjxGLEYsKiZGLUYsRjxGLCwmKiZGMUYsRjxGLEYsKihGKEYsRjRGLEY4RixGLCwmKiZGKEYsRjxGLEY1KihGMUYsRjRGLEY4RixGLComRi1GLEY4RixGJg==TTdSMApJNlJUQUJMRV9TQVZFLzE1NzY2NDE2MFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyQiJCIiIiIhRidGJ0YmTTdSMApJNlJUQUJMRV9TQVZFLzE3MDM1MzQ0MFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIyQiJCIiIiIhRidGJ0YmTTdSMApJNlJUQUJMRV9TQVZFLzE3MDUwMTE5NlgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhIzEiJSIlKiYtJSRjb3NHNiMlI3EzRyIiIi1GKTYjJSNxMkdGLComLSUkc2luR0YqRixGLUYsLCQtRjJGLiEiIiIiISwmKiZGMUYsLUYpNiMlI3ExR0YsRjUqKEYoRixGNEYsLUYyRjpGLEYsLCYqJkYoRixGOUYsRiwqKEYxRixGNEYsRj1GLEYsKiZGLUYsRj1GLEY2LCYqJkYxRixGPUYsRiwqKEYoRixGNEYsRjlGLEYsLCYqJkYoRixGPUYsRjUqKEYxRixGNEYsRjlGLEYsKiZGLUYsRjlGLEY2RjZGNkY2RixGJg==