机器人学导论一
機(jī)器人學(xué)導(dǎo)論
- 空間描述和變換
- 位置姿態(tài)與坐標(biāo)系
- 位置的描述
- 姿態(tài)的描述
- 坐標(biāo)系的描述
- 關(guān)于平移旋轉(zhuǎn)坐標(biāo)系的映射
- 平移
- 旋轉(zhuǎn)
- 關(guān)于一般坐標(biāo)系的映射
- 平移算子和旋轉(zhuǎn)算子
- 平移算子
- 旋轉(zhuǎn)算子
- 變換算子
- 變換方程
- 姿態(tài)的其他表述
空間描述和變換
位置姿態(tài)與坐標(biāo)系
位置的描述
用三個(gè)相互正交的帶有箭頭的單位矢量來(lái)表示一個(gè)坐標(biāo)系{A}。用一個(gè)矢量來(lái)表示一個(gè)點(diǎn)AP^APAP
并且可等價(jià)地被認(rèn)為是空間的一個(gè)位置,或者簡(jiǎn)單地用一組有序的三個(gè)數(shù)字來(lái)表示。矢量的各個(gè)元素用下標(biāo)x, y和z來(lái)標(biāo)明:AP=[PxPyPz]^AP= \begin{bmatrix} P_x \\ P_y \\P_z \end{bmatrix}AP=???Px?Py?Pz?????
姿態(tài)的描述
為了描述物體的姿態(tài),我們將在物體上固定一個(gè)坐標(biāo)系并且給出此坐標(biāo)系相對(duì)于參考系的表達(dá)。
我們用X^B\hat{X}_BX^B?,Y^B\hat{Y}_BY^B?,Z^B\hat{Z}_BZ^B?來(lái)表示坐標(biāo)系{B}主軸方向的單位矢量。當(dāng)用坐標(biāo)系{A}的坐標(biāo)表達(dá)時(shí), 它們被寫成AX^B^A\hat{X}_BAX^B?,AY^B^A\hat{Y}_BAY^B?,AZ^B^A\hat{Z}_BAZ^B?。我們很容易將這三個(gè)單位矢量按照AX^B^A\hat{X}_BAX^B?,AY^B^A\hat{Y}_BAY^B?,AZ^B^A\hat{Z}_BAZ^B?的順序排列組成一個(gè)3x3的矩陣,我們稱這個(gè)矩陣為旋轉(zhuǎn)矩陣,井且由于這個(gè)特殊旋轉(zhuǎn)矩陣是{B}相對(duì)千{A}的表達(dá),所以我們用符號(hào)BAR{^A_B}RBA?R來(lái)表示:BAR=[AX^BAY^BAZ^B]=[r11r12r13r21r22r23r31r32r33]{^A_B}R=\begin{bmatrix}^A\hat{X}_B&^A\hat{Y}_B&^A\hat{Z}_B\end{bmatrix}=\begin{bmatrix} r11&r12&r13 \\ r21&r22&r23 \\ r31&r32&r33 \end{bmatrix}BA?R=[AX^B??AY^B??AZ^B??]=???r11r21r31?r12r22r32?r13r23r33????
標(biāo)量rijr_{ij}rij?可用每個(gè)矢量在其參考坐標(biāo)系中單位方向上投影的分量來(lái)表示。于是,BAR{^A_B}RBA?R各個(gè)分量可用一對(duì)單位矢量的點(diǎn)積來(lái)表示:
BAR{^A_B}RBA?R為坐標(biāo)系{A}相對(duì)于{B}的描述,那么{B}相對(duì)于{A}的轉(zhuǎn)換可有BAR{^A_B}RBA?R的轉(zhuǎn)置得到;即:ABR=BART{^B_A}R={^A_B}R^TAB?R=BA?RT
坐標(biāo)系的描述
用BAR{^A_B}RBA?R和ARBORG{^A}R_{BORG}ARBORG?來(lái)描述坐標(biāo)系{B},其中ARBORG{^A}R_{BORG}ARBORG?是確定坐標(biāo)系{B}的原點(diǎn)的位置矢量:{B}={BAR,ARBORG}\lbrace B\rbrace=\lbrace {^A_B}R ,{^A}R_{BORG} \rbrace{B}={BA?R,ARBORG?}
關(guān)于平移旋轉(zhuǎn)坐標(biāo)系的映射
平移
AP=BP+ARBORG^AP=^BP+{^A}R_{BORG}AP=BP+ARBORG?
旋轉(zhuǎn)
三個(gè)單位矢最排列在一起形成一個(gè)3 X 3的矩陣的列,我們稱此矩陣為旋轉(zhuǎn)矩陣。如果這個(gè)旋轉(zhuǎn)矩陣專門是指{B}相對(duì)千{A}的描述,我們用符號(hào)BAR{^A_B}RBA?R來(lái)表示。
由于BAR{^A_B}RBA?R的列是{B}的單位矢量在{A}中的描述,所以BAR{^A_B}RBA?R的行是{A}的單位矢量在{B}中的描述。那么一個(gè)旋轉(zhuǎn)矩陣即為三個(gè)一組的列向量或三個(gè)一組的行向量,即:BAR=[AX^BAY^BAZ^B]=[BX^ATBY^ATBZ^AT]{^A_B}R=\begin{bmatrix}^A\hat{X}_B&^A\hat{Y}_B&^A\hat{Z}_B\end{bmatrix}=\begin{bmatrix}^B\hat{X}^T_A\\^B\hat{Y}^T_A\\^B\hat{Z}^T_A\end{bmatrix}BA?R=[AX^B??AY^B??AZ^B??]=???BX^AT?BY^AT?BZ^AT?????
我們已知矢量相對(duì)于某坐標(biāo)系{B}的定義,現(xiàn)在想求矢量相對(duì)另一個(gè)坐標(biāo)系{A}的定義,且這兩個(gè)坐標(biāo)系
的原點(diǎn)重合。
Apx=BX^A.BP^Ap_x=^B\hat{X}_A.^BPApx?=BX^A?.BPApy=BY^A.BP^Ap_y=^B\hat{Y}_A.^BPApy?=BY^A?.BPApz=BZ^A.BP^Ap_z=^B\hat{Z}_A.^BPApz?=BZ^A?.BP
可知{^A_B}R的行BX^A^B\hat{X}_ABX^A?,BY^A^B\hat{Y}_ABY^A?,BZ^A^B\hat{Z}_ABZ^A?,那 么可利用旋轉(zhuǎn)矩陣將式簡(jiǎn)化成:AP=BARBP^AP={^A_B}R^BPAP=BA?RBP
這個(gè)式子進(jìn)行了一個(gè)映射一一它改變了矢量的描述一一將空間某點(diǎn)相對(duì)于{B}的描述BP^BPBP轉(zhuǎn)換成了該點(diǎn)相對(duì)千{A}的描述AP^APAP。
關(guān)于一般坐標(biāo)系的映射
用一個(gè)矩陣形式的算子表示從一個(gè)坐標(biāo)系到另一個(gè)坐標(biāo)系的映射。 這比之外了的表達(dá)更簡(jiǎn)潔, 概念更明確。 定義一個(gè)4x4的矩陣算子并使用了4 X 1位置矢量, 式子就成為:
這個(gè)矩陣被稱為齊次變換矩陣。它完全可以被看作是用一個(gè)簡(jiǎn)單的矩陣形式表示了一般變換的旋轉(zhuǎn)和位移。
平移算子和旋轉(zhuǎn)算子
平移算子
一個(gè)矢量相對(duì)千一個(gè)坐標(biāo)系”向前移動(dòng)”時(shí),既可以認(rèn)為是矢量”向前移動(dòng)”,也可以認(rèn)為坐標(biāo)系”向后移動(dòng)”,二者的數(shù)學(xué)表達(dá)式是相同的,只不過(guò)是觀察位置不同。
運(yùn)算的結(jié)果是得到一個(gè)新的矢量AP2^AP_2AP2? AP2=AP1+AQ^AP_2=^AP_1+^AQAP2?=AP1?+AQ用矩陣算子寫出平移變換, 有:AP2=DQ(q)AP1^AP_2=D_Q(q)^AP_1AP2?=DQ?(q)AP1?式中, q沿矢量Q方向平移的數(shù)量, 它是有符號(hào)的。算子DQD_QDQ?可被看成是一個(gè)特殊形式的齊次變換:DQ=[100qx010qy001qz0001]D_Q= \begin{bmatrix} 1 & 0&0&q_x \\ 0 & 1&0&q_y \\0 & 0&1&q_z\\0 & 0&0&1 \end{bmatrix}DQ?=?????1000?0100?0010?qx?qy?qz?1??????
旋轉(zhuǎn)算子
將一個(gè)矢量 AP1^AP_1AP1?用旋轉(zhuǎn)R變換成一個(gè)新的矢最AP2^AP_2AP2?。AP2=RAP1^AP_2=R^AP_1AP2?=RAP1?
變換算子
將旋轉(zhuǎn)算子和平移算子應(yīng)用在一個(gè)坐標(biāo)系上,能夠的到一個(gè)齊次變換矩陣:經(jīng)旋轉(zhuǎn)R和平移Q的齊次變換矩陣與一個(gè)坐標(biāo)系相對(duì)于參考坐標(biāo)系經(jīng)旋轉(zhuǎn)R和平移Q的齊次 變換矩陣是相同的。
變換方程
表示坐標(biāo)系{D}可以用兩種不同的方式表達(dá)成變換相乘的形式,第一種:DUT=AUTDAT^U_DT=^U_AT^A_DTDU?T=AU?TDA?T第二種:DUT=BUTCBTDCT^U_DT=^U_BT^B_CT^C_DTDU?T=BU?TCB?TDC?T將兩個(gè)表達(dá)式構(gòu)造成一個(gè)變換方程AUTDAT=BUTCBTDCT^U_AT^A_DT=^U_BT^B_CT^C_DTAU?TDA?T=BU?TCB?TDC?T
如有n個(gè)未知變換和n個(gè)變換方程, 這個(gè)變換可由變換方程解出。如果除了CBT^B_CTCB?T外均已知,求CBT^B_CTCB?T:CBT=BUT?1DATDCT?1^B_CT=^U_BT^{-1}{^A_D}T^C_DT^{-1}CB?T=BU?T?1DA?TDC?T?1
姿態(tài)的其他表述
首先將坐標(biāo)系{B}和一個(gè)已知參考坐標(biāo)系{A}重合。先將{B}繞Z^B\hat{Z}_BZ^B?旋轉(zhuǎn)α角, 再繞Y^B\hat{Y}_BY^B?旋轉(zhuǎn)β角,最后繞X^B\hat{X}_BX^B? 旋轉(zhuǎn)γ角。每次都是繞運(yùn)動(dòng)坐標(biāo)系{B}的各軸旋轉(zhuǎn)而不是繞固定坐標(biāo)系{A}的各軸旋轉(zhuǎn)。這樣三個(gè)一組的旋轉(zhuǎn)被稱作歐拉角。注意每次旋轉(zhuǎn)所繞的軸的方位取決于上次的旋轉(zhuǎn)。由于三個(gè)旋轉(zhuǎn)分別是繞著Z^\hat{Z}Z^,Y^\hat{Y}Y^,X^\hat{X}X^,所以稱這種表示法為Z- Y-X歐拉角。BARz′y′x′=RZ(α)RY(β)RX(γ)=[cα?sα0sαcα0001][cβ0sβ010?sβ0cβ][1000cγ?sγ0sγcγ]^A_BR_{z'y'x'}=R_Z(α)R_Y(β)R_X(γ)=\begin{bmatrix} cα & -sα &0\\ sα & cα &0\\0 & 0 &1 \end{bmatrix}\begin{bmatrix} cβ &0 &sβ\\ 0 & 1&0\\-sβ & 0 &cβ \end{bmatrix}\begin{bmatrix} 1 &0 &0\\ 0 & cγ&-sγ\\0 & sγ &cγ \end{bmatrix}BA?Rz′y′x′?=RZ?(α)RY?(β)RX?(γ)=???cαsα0??sαcα0?001???????cβ0?sβ?010?sβ0cβ???????100?0cγsγ?0?sγcγ????
BARz′y′x′(α,β,γ)=[cαcβcαsβsγ?sαcγcαsβsγ+sαcγsαcβsαsβsγ+cαcγsαsβcγ?cαsγ?sβcβsγcβcγ]^A_BR_{z'y'x'}(α,β,γ)=\begin{bmatrix} cαcβ & cαsβsγ-sαcγ& cαsβsγ+sαcγ \\ sαcβ & sαsβsγ+cαcγ& sαsβcγ-cαsγ \\-sβ&cβsγ&cβcγ \end{bmatrix}BA?Rz′y′x′?(α,β,γ)=???cαcβsαcβ?sβ?cαsβsγ?sαcγsαsβsγ+cαcγcβsγ?cαsβsγ+sαcγsαsβcγ?cαsγcβcγ????注意這個(gè)結(jié)果與以相反順序繞固定軸旋轉(zhuǎn)三次得到的結(jié)果完全相同!總之,這是一個(gè)不太直觀的結(jié)果:三次繞固定軸旋轉(zhuǎn)的最終姿態(tài)和以相反順序三次繞運(yùn)動(dòng)坐標(biāo)軸旋轉(zhuǎn)的最終姿態(tài)相同。
歐拉角的變換一共有24種,繞固定坐標(biāo)系旋轉(zhuǎn)的有12種,繞變化后的坐標(biāo)系旋轉(zhuǎn)的有12種,方法都是一樣的,算出繞每個(gè)軸的旋轉(zhuǎn)矩陣,把后繞的矩陣右乘前繞的矩陣,就能得到整個(gè)旋轉(zhuǎn)的矩陣。
John J.Craig《機(jī)器人學(xué)導(dǎo)論》(第四版)
總結(jié)
- 上一篇: 谷歌离线地图开发API
- 下一篇: 程序设计语言分类