机器人学导论 一、空间变换(1)位姿,变换
機器人學導論 一、空間變換(1)位姿
- 前言
- 坐標系
- 位姿
- 位置
- 姿態
- 位姿變換
- 映射
- 平移
- 旋轉
- 變換
- 復合變換
- 逆變換
- 旋轉矩陣,變換矩陣的意義
- 旋轉矩陣的意義
- 變換矩陣的意義
- 后記
前言
由于視覺伺服與機械臂關系緊密,因此還是從基礎開始,把機器人運動學記錄一下。
本篇記錄剛體的位姿。實際上,空間變換在SLAM專欄里已經講過一次了,不過機器人學導論給出了更詳細的剛體運動說明。
坐標系
通常有兩個坐標系,一個是用于參考的世界坐標系(笛卡爾坐標系),一個是以剛體質心為原點的剛體坐標系。
機器人坐標系遵循右手定則,如下圖所示
位姿
位姿就是位置與姿態,對應位移與旋轉。機器人的位姿必須以世界坐標系作為參照。
位姿表示的是參考系之間的關系。
位置
剛體的位置由矢量表示。
上圖中有一個點PPP,以坐標系{A}\{A\}{A}為參考,就可以將矢量OPOPOP來表示AP^APAP的位置,其左上標表示參考系。AP^APAP的坐標表示為:
AP=[px,py,pz]T^AP = [p_x,p_y,p_z]^T AP=[px?,py?,pz?]T
姿態
剛體的姿態由剛體坐標系在參考系中三個主軸的單位矢量表示。
上圖中,X^B,Y^B,Z^B\hat X_B,\hat Y_B, \hat Z_BX^B?,Y^B?,Z^B?表示右上角剛體的三個主軸方向的單位矢量,它們在參考系{A}\{A\}{A}中的表示為AX^B,AY^B,AZ^B^A\hat X_B, ^A\hat Y_B, ^A\hat Z_BAX^B?,AY^B?,AZ^B?。這三個單位矢量就組成了旋轉矩陣:
BAR=(AX^BAY^BAZ^B)^A_BR=(^A\hat X_B \quad ^A\hat Y_B \quad ^A\hat Z_B) BA?R=(AX^B?AY^B?AZ^B?)
那么如何計算剛體的主軸單位矢量在參考系中的坐標呢?
以AX^B^A\hat X_BAX^B?為例,其x坐標的值實際上就是AX^B^A\hat X_BAX^B?在參考系的X軸上的投影,y, z坐標就是在參考系的Y, Z軸上的投影:
BAR=(AX^BAY^BAZ^B)=[X^B?X^AY^B?X^AZ^B?X^AX^B?Y^AY^B?Y^AZ^B?Y^AX^B?Z^AY^B?Y^AZ^B?X^A]^A_BR=(^A\hat X_B \quad ^A\hat Y_B \quad ^A\hat Z_B) = \begin{bmatrix} \hat X_B \cdot \hat X_A & \hat Y_B \cdot \hat X_A & \hat Z_B \cdot \hat X_A\\ \hat X_B \cdot \hat Y_A & \hat Y_B \cdot \hat Y_A & \hat Z_B \cdot \hat Y_A\\ \hat X_B \cdot \hat Z_A & \hat Y_B \cdot \hat Y_A & \hat Z_B \cdot \hat X_A\\ \end{bmatrix} BA?R=(AX^B?AY^B?AZ^B?)=???X^B??X^A?X^B??Y^A?X^B??Z^A??Y^B??X^A?Y^B??Y^A?Y^B??Y^A??Z^B??X^A?Z^B??Y^A?Z^B??X^A?????
旋轉矩陣是個正交矩陣,證明也很簡單:
BARTBAR=[AX^BTAY^BTAZ^BT](AX^BAY^BAZ^B)=I3^A_BR^T\ ^A_B R= \begin{bmatrix} ^A\hat X^T_B \\ ^A\hat Y^T_B \\ ^A\hat Z^T_B \end{bmatrix} (^A\hat X_B \quad ^A\hat Y_B \quad ^A\hat Z_B) = I_3 BA?RT?BA?R=???AX^BT?AY^BT?AZ^BT?????(AX^B?AY^B?AZ^B?)=I3?
同方向的單位矢量的內積為1,相互垂直的單位矢量內積為0,因此AX^BTAX^B=1,AX^BTAY^B=0^A\hat X^T_B \ ^A\hat X_B=1, ^A\hat X^T_B \ ^A\hat Y_B=0AX^BT??AX^B?=1,AX^BT??AY^B?=0,所以能得到上面的單位矩陣。
位姿變換
位姿變換指剛體坐標系的位置和姿態發生變化,即平移和旋轉,得到剛體系與參考系之間的相對位姿
仍然以圖2-2為例,剛體坐標系相對于參考系的位姿變換可表示為:
{BAR,APBORG}\{^A_B R, \ ^AP_{BORG} \} {BA?R,?APBORG?}
也就是SLAM十四講中的R,tR,tR,t
映射
映射表示的是同一點在不同坐標系之間的坐標轉換。
映射包括平移和旋轉。
平移
平移與剛體坐標系原點的位置相關。
上圖中,已知BP^BPBP表示點P在坐標系{B}\{B\}{B}中的位置,APBORG^AP_{BORG}APBORG?表示在參考系{A}\{A\}{A}下{B}\{B\}{B}原點的位置。則AP^APAP可表示為:
AP=BP+APBORG^AP= \ ^BP + \ ^AP_{BORG} AP=?BP+?APBORG?
只有在兩個坐標系的姿態相同時,才能進行上面的平移。
旋轉
旋轉與剛體坐標系的姿態相關。
上圖中,已知BP^BPBP表示點P在坐標系{B}\{B\}{B}中的位置。AP^APAP表示在參考系{A}\{A\}{A}下的位置,即矢量AP^APAP在參考系主軸方向X^A,Y^A,Z^A\hat X_A, \hat Y_A, \hat Z_AX^A?,Y^A?,Z^A?的投影(單位矢量內積)。此外,我們知道,向量內積需要在同一坐標系下表示才有意義。則AP^APAP可表示為:
AP=[BX^A?BPBY^A?BPBZ^A?BP]=BARBP^AP= \begin{bmatrix} ^B \hat X_A \cdot\ ^BP & ^B \hat Y_A \cdot\ ^BP & ^B \hat Z_A \cdot\ ^BP \end{bmatrix} = \ ^A_BR \ ^BP AP=[BX^A???BP?BY^A???BP?BZ^A???BP?]=?BA?R?BP
變換
變換=先旋轉,后平移。
上圖中,需要使用BP^BPBP表示AP^APAP。首先將BP^BPBP映射到一個中間坐標系{B′}\{B'\}{B′},該坐標系姿態與{A}\{A\}{A}相同,原點與{B}\{B\}{B}相同。然后再用B′P^{B'}PB′P表示AP^APAP:
AP=B′P+APB′ORG=BB′RBP+APB′ORG=BARBP+APBORG^AP = \ ^{B'}P + \ ^AP_{B'ORG} = \ ^{B'}_BR \ ^BP + \ ^AP_{B'ORG} = \ ^{A}_BR \ ^BP + \ ^AP_{BORG} AP=?B′P+?APB′ORG?=?BB′?R?BP+?APB′ORG?=?BA?R?BP+?APBORG?
也就對應SLAM十四講中的P′=RP+tP'=RP+tP′=RP+t
引入齊次矩陣,就有了變換矩陣的概念:
[AP1]=[BARAPBORG01][BP1]AP=BATBP\begin{bmatrix} ^AP \\ 1 \\ \end{bmatrix} = \begin{bmatrix} \ ^A_BR & ^AP_{BORG} \\ {\bf 0} & 1 \\ \end{bmatrix} \begin{bmatrix} \ ^BP \\ 1 \\ \end{bmatrix} \\ \quad \\ \\ \quad \\ ^AP = \ ^A_BT \ ^BP [AP1?]=[?BA?R0?APBORG?1?][?BP1?]AP=?BA?T?BP
復合變換
如果已知BAT,CBT^A_B T, \ ^B_CTBA?T,?CB?T,則可以通過CP^CPCP表示AP^APAP:
AP=BATCBTCP^AP = ^A_BT \ ^B_CT \ ^CP AP=BA?T?CB?T?CP
逆變換
旋轉矩陣的逆:
BAR=ABRT^A_B R = \ ^B_AR^T BA?R=?AB?RT
變換矩陣的逆:
[BART?BARTAPBORG01]\begin{bmatrix} \ ^A_BR^T & -^A_BR^T\ ^AP_{BORG} \\ {\bf 0} & 1 \\ \end{bmatrix} [?BA?RT0??BA?RT?APBORG?1?]
變換矩陣的逆有兩種求法,一種是直接根據矩陣求逆;另一種是通過變換性質求逆。介紹一下后一種。
如果已知AP^APAP求BP^BPBP,有:
BP=ABRAP+BPAORG^BP = \ ^B_AR \ ^AP + \ ^BP_{AORG} BP=?AB?R?AP+?BPAORG?
如果AP^APAP是{B}\{B\}{B}的原點,即:
0=BPBORG=ABRAPBORG+BPAORGBPAORG=?ABRAPBORG=?BARTAPBORGBP=BARTAP?BARTAPBORG{\bf 0} = ^BP_{BORG} = ^B_AR \ ^AP_{BORG} + \ ^BP_{AORG} \\ \quad \\ \ ^BP_{AORG} = - ^B_AR \ ^AP_{BORG} = -^A_BR^T \ ^AP_{BORG} \\ \quad \\ \ ^BP = \ ^A_BR^T \ ^AP - \ ^A_BR^T \ ^AP_{BORG} 0=BPBORG?=AB?R?APBORG?+?BPAORG??BPAORG?=?AB?R?APBORG?=?BA?RT?APBORG??BP=?BA?RT?AP??BA?RT?APBORG?
旋轉矩陣,變換矩陣的意義
旋轉矩陣的意義
變換矩陣的意義
后記
本篇實際上是SLAM十四講中位姿變換的更清晰的表述方法,參考系放左上標。
總結
以上是生活随笔為你收集整理的机器人学导论 一、空间变换(1)位姿,变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考勤打卡记录数据库表结构_中控zktim
- 下一篇: 概率论与统计学——学习资料(更新....