Introduction to Robotics: Mechanics and Control (Chapter 2)

2.1 A vector \mathbf{^{A} P} is rotated about \mathbf{\hat{Z} _A} by \mathbf{\theta} degrees and is subsequently rotated about \mathbf{\hat{Z}_A} by \mathbf{\phi} degrees. Give the rotation matrix that accomplishes there rotations in the given order.

\begin{aligned} R &=\operatorname{rot}(\hat{x}, \phi) \operatorname{rot}(\hat{z}, \theta) \\ &=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & C \phi & -S \phi \\ 0 & S \phi & C \phi \end{array}\right]\left[\begin{array}{ccc} C \theta & -S \theta & 0 \\ S \theta & C \theta & 0 \\ 0 & 0 & 1 \end{array}\right] \\ &=\left[\begin{array}{ccc} C \theta & -S \theta & 0 \\ C \phi S \theta & C \phi C \theta & -S \phi \\ S \phi S \theta & S \phi C \theta & C \phi \end{array}\right] \end{aligned}

2.3 A frame {B} is located initially coincident with a frame {A}. We rotate {B} about \mathbf{\hat{Z} _B} by \mathbf{\theta} degrees, then we rotate the resulting frame about \mathbf{\hat{X} _B} by \mathbf{\phi} degrees. Give the rotation matrix that will change the description of vectors from \mathbf{^BP} to \mathbf{^AP}.

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 \mathbf{\theta} 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 \mathbf{^AP} in terms of the cylindrical coordinates \mathbf{\theta}, r, and z.

{ }^{A} P=\left[\begin{array}{c} P_{x} \\ P_{y} \\ P_{z} \end{array}\right]=\left[\begin{array}{c} R \cos \theta \\ R \sin \theta \\ Z \end{array}\right]

2.20 Imagine rotating a vector Q about a vertor \mathbf{\hat{K}} by an amount \mathbf{\theta} to form a new vertor, \mathbf{​{Q}' } --that is,

\mathbf{Q^{\prime}=R_{K}(\theta) Q}

Use (2.80) to derive Rodriques's formula,

\mathbf{Q^{\prime}=Q \cos \theta+\sin \theta(\hat{K} \times Q)+(1-\cos \theta)(\hat{K} \cdot Q) \hat{K}}

R_{K}(\theta)=\left[\begin{array}{ccc} k_{x} k_{x} v \theta+c \theta & k_{x} k_{y} v \theta-k_{z} s \theta & k_{x} k_{z} v \theta+k_{y} s \theta \\ k_{x} k_{y} v \theta+k_{z} s \theta & k_{y} k_{y} v \theta+c \theta & k_{y} k_{z} v \theta-k_{x} s \theta \\ k_{x} k_{z} v \theta-k_{y} s \theta & k_{y} k_{z} v \theta+k_{x} s \theta & k_{z} k_{z} v \theta+c \theta \end{array}\right]

2.34 Referring to Fig. 2.26, give the value of \mathbf{_C^AT}.

{ }_{A}^{C} T=\left[\begin{array}{cccc} 0.866 & 0.5 & 0 & -0.58 \\ 0.5 & -0.866 & 0 & -4.98 \\ 0 & 0 & -1 & 2 \\ 0 & 0 & 0 & 1 \end{array}\right]

 2.42 Determine

a) the rotation matrix, \mathbf{^A_BR}, that describe frame {B} relative to {A} if

\mathbf{\begin{aligned} { }^{A} \hat{X}_{B} &=\left[\begin{array}{lll} 1 & 0 & 0 \end{array}\right]^{T} \\ { }^{A} \hat{Y}_{B} &=\left[\begin{array}{lll} 0 & 0 & -1 \end{array}\right]^{T} \\ { }^{A} \hat{Z}_{B} &=\left[\begin{array}{lll} 0 & 1 & 0 \end{array}\right]^{T} \end{aligned}}

{ }_{B}^{A} R=\begin{bmatrix} ^A \hat{X}_{B} &^ A \hat{Y}_{B} &^{A} \hat{Z}_{B} \end{array} =\begin{bmatrix} 1&0&0\\ 0&0&1\\ 0&-1&0 \end{array}

b) the Z-Y-Z Euler angles required for such a rotation.

R_{Z^{\prime} Y^{\prime} Z^{\prime}}(\alpha, \beta, \gamma)=\left[\begin{array}{ccc} c \alpha c \beta c \gamma-s \alpha s \gamma & -c \alpha c \beta s \gamma-s \alpha c \gamma & c \alpha s \beta \\ s \alpha c \beta c \gamma+c \alpha s \gamma & -s \alpha c \beta s \gamma+c \alpha c \gamma & s \alpha s \beta \\ -s \beta c \gamma & s \beta s \gamma & c \beta \end{array}\right]

\therefore \alpha=-90;\;\beta =-90^{\circ} ;\;\gamma=90^{\circ}

2.43 Calculate the rotation matrix, \mathbf{^A_BR}, if frames {A} and {B} are originally coincident then

a) frame {B} is rotated about \mathbf{\hat{X}_A} by 30 degrees, then about \mathbf{\hat{Y}_A} by 15 degrees, and, finally, about \mathbf{\hat{Z}_A} by 70 degrees.

^A_BR=\begin{bmatrix} 0.3304 & -0.7695 & 0.5465\\ 0.9077 & 0.4178 & 0.0396\\ -0.2588 & 0.4830 & 0.8365\\ \end{bmatrix}

 

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 \mathbf{\hat{Z}_B} by 70 degrees, then about \mathbf{\hat{Y}_B} by 15 degrees, and, finally, about  \mathbf{\hat{Y}_B} by 70 degrees.

^A_BR=\begin{bmatrix} 0.0298 & -0.9397 & 0.3407\\ 0.0819 & 0.3420 & 0.9361\\ -0.9962 & 0 & 0.0872 \\ \end{bmatrix}

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 \mathbf{\hat{X}_B}, translated -2 units in \mathbf{\hat{Y}_B}, translated 5 units in \mathbf{\hat{Z}_B}, rotated about \mathbf{\hat{Z}_C} by -20 degrees, and rotated about \mathbf{\hat{Y}_C} by -110 degrees. The camera detects an object having cooridinates \mathbf{^CP=[0.5\quad 0.2\quad3.2]^T}. Determine the object coordinates in frame {B}, that is, \mathbf{^BP}.

^BP=R_Z(-20)R_Y(-110) {^AP}

^BP=\begin{bmatrix} 3.8089\\ -1.9831\\ 4.4113 \end{bmatrix}

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

\mathbf{​{ }^{B} V=\left[\begin{array}{l} 30.0 \\ 40.0 \\ 50.0 \end{array}\right]}

Given

\mathbf{​{ }_{B}^{A} T=\left[\begin{array}{cccc} 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 & 0 & 1 \end{array}\right]}

 compute \mathbf{^AV}.

^AV=^A_BT^BV=\begin{bmatrix} -3.14\\-31.96\\53.88 \end{bmatrix}

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

\mathbf{​{ }_{B}^{A} T=\left[\begin{array}{cccc} 0.25 & 0.43 & 0.86 & 5.0 \\ 0.87 & -0.50 & 0.00 & -4.0 \\ 0.43 & 0.75 & -0.50 & 3.0 \\ 0 & 0 & 0 & 1 \end{array}\right]}

what is \mathbf{^BP_{AORG}}?

^BP_{AORG}=\begin{bmatrix} 0.904 \\-6.4271 \\-2.8632 \end{bmatrix}

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)

W=\begin{bmatrix}- v_x*(-\frac{1}{\sqrt{14}}\sin(\frac{\pi}{6})) - v_y*(-\frac{2}{\sqrt{14}}\sin(\frac{\pi}{6})) - v_z*(-\frac{3}{\sqrt{14}}\sin(\frac{\pi}{6})) ;\; \\ v_x*\cos(\frac{\pi}{6}) + v_y*(-\frac{3}{\sqrt{14}}\sin(\frac{\pi}{6}))- v_z*(-\frac{2}{\sqrt{14}}\sin(\frac{\pi}{6})) ;\;\\- v_x*(-\frac{3}{\sqrt{14}}\sin(\frac{\pi}{6}))+ v_y*\cos(\frac{\pi}{6}) + v_z*(-\frac{1}{\sqrt{14}}\sin(\frac{\pi}{6}));\; \\ v_x*(-\frac{2}{\sqrt{14}}\sin(\frac{\pi}{6})) - v_y*(-\frac{1}{\sqrt{14}}\sin(\frac{\pi}{6})) + v_z*\cos(\frac{\pi}{6})\end{matrix}^T

\therefore {v}'=\begin{bmatrix}v_x*\cos(\frac{\pi}{6}) + v_y*(-\frac{3}{\sqrt{14}}\sin(\frac{\pi}{6}))- v_z*(-\frac{2}{\sqrt{14}}\sin(\frac{\pi}{6})) ;\;\\- v_x*(-\frac{3}{\sqrt{14}}\sin(\frac{\pi}{6}))+ v_y*\cos(\frac{\pi}{6}) + v_z*(-\frac{1}{\sqrt{14}}\sin(\frac{\pi}{6}));\; \\ v_x*(-\frac{2}{\sqrt{14}}\sin(\frac{\pi}{6})) - v_y*(-\frac{1}{\sqrt{14}}\sin(\frac{\pi}{6})) + v_z*\cos(\frac{\pi}{6})\end{matrix}^T

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葱花   

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值