2.1 A vector is rotated about
by
degrees and is subsequently rotated about
by
degrees. Give the rotation matrix that accomplishes there rotations in the given order.
2.3 A frame {B} is located initially coincident with a frame {A}. We rotate {B} about by
degrees, then we rotate the resulting frame about
by
degrees. Give the rotation matrix that will change the description of vectors from
to
.
2.17 Another familiar set of three coordinates that can be used to describe a point in space is cylindrical coordinates. The three coordinates are defined as illustrated in Fig. 2.23. The coordinate gives a direction in the xy plane along which to translate radially by an amount r. Finally, z is given to specify the height above the xy plane. Compute the Cartesian coordinates of the poine
in terms of the cylindrical coordinates
, r, and z.
2.20 Imagine rotating a vector Q about a vertor by an amount
to form a new vertor,
--that is,
Use (2.80) to derive Rodriques's formula,
2.34 Referring to Fig. 2.26, give the value of .
2.42 Determine
a) the rotation matrix, , that describe frame {B} relative to {A} if
b) the Z-Y-Z Euler angles required for such a rotation.
2.43 Calculate the rotation matrix, , if frames {A} and {B} are originally coincident then
a) frame {B} is rotated about by 30 degrees, then about
by 15 degrees, and, finally, about
by 70 degrees.
MATLAB代码:
X=[1,0,0;0,cosd(30),-sind(30);0,sind(30),cosd(30)]
Y=[cosd(15),0,sind(15);0,1,0;-sind(15),0,cosd(15)]
Z=[cosd(70),-sind(70),0;sind(70),cosd(70),0;0,0,1]
R=Z*Y*X
b) frame {B} is rotated about by 70 degrees, then about
by 15 degrees, and, finally, about
by 70 degrees.
MATLAB代码如下:
Y1=[cosd(15),0,sind(15);0,1,0;-sind(15),0,cosd(15)]
Y2=[cosd(70),0,sind(70);0,1,0;-sind(70),0,cosd(70)]
Z=[cosd(70),-sind(70),0;sind(70),cosd(70),0;0,0,1]
R=Z*Y1*Y2
2.45 A coordinate frame, {B}, is located at the base of a robot manipulator. Frame {C} describes the position and orientation of a depth camera that was originally coincident with {B} then translated 7 units in , translated -2 units in
, translated 5 units in
, rotated about
by -20 degrees, and rotated about
by -110 degrees. The camera detects an object having cooridinates
. Determine the object coordinates in frame {B}, that is,
.
MATLAB代码:
Y=[cosd(-110),0,sind(-110);0,1,0;-sind(-110),0,cosd(-110)]
Z=[cosd(-20),-sind(-20),0;sind(-20),cosd(-20),0;0,0,1]
PC=[0.5;0.2;3.2];
PB=Z*Y*PC+[7;-2;5]
2.49 A velocity vector is given by
Given
compute .
MATLAB代码:
T=[0.707,0,-0.707,11.0;-0.612,0.500,-0.612,-3.0;0.353,0.866,0.353,-9;0,0,0,1]
B=[30;40;50;1];
A=T*B
2.51 Given
what is ?
MATLAB代码:
T=inv([0.25,0.43, 0.86,5;0.87,-0.5,0,-4;0.43,0.75,-0.5,3;0,0,0,1])
两个四元数相乘的规则和多项式乘法一样,
(a + i b + j c + k d)*(e + i f + j g + k h)
当有i,j,k参与时,规则如下:
i*i = j*j = k*k = -1
i*j = k,
j*i = -k
j*k = i,
k*j = -i
k*i = j,
i*k = -j
使用多项式乘法展开,可以得到:
a*e - b*f - c*g - d*h
+ i (b*e + a*f + c*h- d*g)
+ j (a*g - b*h+ c*e + d*f)
+ k (a*h + b*g - c*f + d*e)