算法--机器人学导论
算法--機器人學導論
- 1 簡介
- 2 機械臂術語
- 2.1 常用術語
- 2.2 機械臂運動學
- 2.2.1 正運動學
- 2.2.2 逆運動學
- 3 空間描述和變換
- 3.1 描述
- 3.1.1 位置描述
- 3.1.2 姿態描述
- 3.1.3 坐標系描述
- 3.2 映射:從坐標系到坐標系的變換
- 3.2.1 關于平移坐標系的映射
- 3.2.2 關于旋轉坐標系的映射
- 3.2.3 關于一般坐標系的描述
- 3.3 算子
- 3.3.1 平移算子
- 3.3.2 旋轉算子
- 3.3.3 變換算子
- 3.3.4 齊次變換矩陣求逆
- 3.4 變換算法
- 3.4.1 混合變換
- 3.4.2 逆變換
- 3.5 變換方程
- 3.6 姿態的其他描述方法
- 3.6.1 X-Y-Z固定角坐標系
- 3.6.2 Z-Y-X歐拉角和Z-Y-Z歐拉角
- 3.6.3 等效軸角坐標系表示法
- 3.6.4 歐拉參數
- 3.7 自由矢量的變換
- 其他
- 參考
1 簡介
2 機械臂術語
2.1 常用術語
- 位姿:位置和姿態
- 連桿:具體見下圖
- 關節:相鄰連桿間即關節,分轉動關節和滑動關節
- 關節角:轉動關節,對應的位移稱關節角
- 關節偏距:滑動關節,鄰桿是直線運動,對應的位移稱關節偏距
- 自由度:即獨立位置變量的的數目。
- 末端執行器:根據應用場景可為夾具、焊槍、電磁鐵和其他
- 工具坐標系:附于末端執行器上,用于描述操作臂的位置
- 基坐標系:與操作臂固定底座相聯。
- 工作空間:機械臂所能達到的期望姿態。
- 雅可比矩陣:關節空間速度向笛卡爾空間速度的映射。
- 奇異點:由機構奇異性造成的。
- 動力學:主要研究產生運動所需要的力。
- 軌跡生成:從一個點運動到另一個點,常用方法是使每個關節按照指定的時間連續函數來運動。通常每個關節同時開始和停止才自然,軌跡生成就是準確計算出這些運動函數。
- 笛卡爾軌跡生成:末端執行器走出一條直線等,需要將期望運動轉化為一系列等效的關節運動。
2.2 機械臂運動學
運動學中,研究位置、速度、加速度和位置變量對于時間或者其他變量的高階微分。
2.2.1 正運動學
通過給定的一組關節角的值計算工具坐標系相對于基坐標系的位置和姿態。
這個過程稱為關節空間描述到笛卡爾空間描述。
2.2.2 逆運動學
通過給定的工具坐標系相對于基坐標系的位置和姿態計算所有所有可到達給定位置和姿態的關節角。
逆運動學較正運動學復雜,運動學方程是非線性的,很難得到封閉解,甚至無解。涉及解的存在性和多解問題。
3 空間描述和變換
做基于視覺的抓取時,不管是眼在手上(eye-in-hand),還是眼在手外(eye-to-hand),總是需要標定相機和執行器末端的關系的
在我們生活的三維空間中,對于剛體而言,存在著六個自由度,其中三個用來描述質心位置,而另外三個自由度用來描述整個剛體繞質心的旋轉。
3.1 描述
3.1.1 位置描述
矢量表示點的位置
一旦建立坐標系,我們就能用一個3 x 1的位置矢量來對世界坐標系中的任何一點進行標定。
用3個相互正交的帶有箭頭的單位矢量來表示一個坐標系{A},如下:
在坐標系{A}下對矢量進行表示,位置矢量用一個前置的上標表明其參考的坐標系(P前的上標A),矢量的各個元素用下標x,y和z標明。
3.1.2 姿態描述
可用矩陣表示物體的姿態
確定末端執行器的空間位置后,還需要對姿態進行描述。假定有足夠數量的關節,末端執行器可有任意的姿態。
為了描述物體的姿態,我們將在物體上固定一個坐標系并給出此坐標系相對于參考系的表達。
點的位置可用矢量描述,物體的姿態可用固定在物體上的坐標系來描述。
描述連體坐標系{B}的一種方法是利用坐標系{A}的3個主軸單位矢量來表示。
3個單位矢量順序排列組成一個3 x 3的矩陣,這個矩陣就叫做旋轉矩陣,表示{B}相對于{A}的旋轉。
3 x 3的矩陣中,每個標量可用每個矢量在其參考坐標系中單位方向上投影的分量來表示。
由兩個單位矢量的點積可得二者間的余弦,故旋轉矩陣的各分量常稱作方向余弦。
由于旋轉矩陣是利用{B}的三個主軸單位向量在{A}中的投影得到的,所以它有一些特殊性質,首先它是一個對稱矩陣:
另一個性質,即“旋轉矩陣的逆等于它的轉置”。
由線性代數知:一個正交陣的逆等于它的轉置。
3.1.3 坐標系描述
在機器人學中,位置和姿態經常成對出現,于是我們將此組合稱為坐標系,4個矢量為一組,表示位置和姿態信息。
坐標系{B}在坐標系{A}中的表示如下:
在John J.Craig的《Introduction to Robotics: Mechanics and Control》書中有這樣一句表述:“一個參考系可以用一個坐標系相對于另一個坐標系的關系來描述”。也就是說,在這里,Craig將參考系虛化為了一種關系,這與我們平時說的參考系的理解其實不太一樣。“參考系包括位置和姿態兩個概念,大多數情況下被認為是這兩個概念的結合。位置可由一個參考系表示,這個參考系中的旋轉矩陣是單位陣,并且這個參考系中的位置矢量確定了被描述點的位置。同樣,如果參考系中的位置矢量是零矢量,那么它表示的就是姿態。”
3.2 映射:從坐標系到坐標系的變換
3.2.1 關于平移坐標系的映射
{A} 和 {B}的姿態相同,{B}不同于{A}的只是平移,即{B}相對于{A}不存在旋轉。
P相對于{A}的位置可以用矢量相加表示:
3.2.2 關于旋轉坐標系的映射
任意矢量的分量就是該矢量在參考系上的單位矢量方向的投影,投影是由矢量點積計算的。
可以將其簡化為:
這個映射將空間中的某個點P相對于{B}的描述轉換成了該點相對于{A}的描述。
3.2.3 關于一般坐標系的描述
一般情況下,坐標系{A}和{B},原點不重合,有一個矢量偏移。
上面的4 x 4矩陣被稱為齊次變換矩陣。
3.3 算子
用于坐標系間點的映射的通用數學表達式稱為算子。
3.3.1 平移算子
平移將空間中的一個點沿著一個已知的矢量方向移動一定距離。對該點的描述僅用一個坐標表示便可。
用矩陣算子寫出平移變換:
3.3.2 旋轉算子
旋轉矩陣還可以用旋轉變換算子來定義。
矢量經某一旋轉R得到的旋轉矩陣與一個坐標系相對于參考坐標系經某一旋轉R得到的旋轉矩陣是相同的。
R旋轉算子,下標k表示繞K軸,()中表示旋轉角度數。
將該算子寫成齊次變換矩陣。
3.3.3 變換算子
算子T將一個矢量平移并旋轉得到一個新的矢量。
經旋轉R和平移Q的齊次變換矩陣與一個坐標系相對于參考坐標系經旋轉R和平移Q的齊次變換矩陣是相同的。
齊次變換陣的3個定義:
3.3.4 齊次變換矩陣求逆
3.4 變換算法
3.4.1 混合變換
此時我們可以列出下面的式子:
求得:
3.4.2 逆變換
直接寫出{A}相對于{B}的變換:
符號表示如下:
3.5 變換方程
將兩個表達式構造成一個變換方程:
解出未知變換:
用坐標系的圖形表示法,描述實例如下:
解出
3.6 姿態的其他描述方法
一個坐標系相對于另一個坐標系的姿態的表示方法有很多種,比如:X-Y-Z固定角,Z-Y-X歐拉角,RPY角,四元數等。UR機器人里面使用的是旋轉矢量法。
我們知道旋轉矩陣是單位正交陣,又因為其行列式為1,所以被稱為標準正交陣(非標準正交陣的行列式值為-1)。前面我們聊到旋轉矩陣中有9個量,但是卻只表示了3個自由度,是因為矩陣中的元素存在著6個約束:
這里我們假定旋轉矩陣R為:
由反對稱矩陣的定義知:反對稱矩陣主對角線上的元全為0,位于主對角線兩側對稱的元反號。所以,一個三維的反對稱矩陣可以由三個參數表示:
3.6.1 X-Y-Z固定角坐標系
我們對{B}進行旋轉,每次都是繞著固定坐標系{A}的軸進行旋轉的,我們常將繞著X、Y、Z的旋轉稱為pitch、yaw、roll,也即俯仰、偏航、翻滾。將三次旋轉利用旋轉矩陣寫出并相乘:
乘積為:
3.6.2 Z-Y-X歐拉角和Z-Y-Z歐拉角
在這種表示法中,我們每次旋轉都是繞著{B}的主軸進行旋轉,也就是說,并不是繞著固定坐標系{A}的軸進行旋轉了:
在這種表示下,有:
關于這個式子應該怎么理解呢?我們最終的目標是求出{B}相對于{A}的旋轉,對于固定角坐標系,每次旋轉都是基于{A}的,因而是按照旋轉次序,依次左乘;對于歐拉角則是利用中間坐標系變換,所以依次右乘。比如上面的Z-Y-X歐拉角,記{A}繞{A}的Z旋轉得到{B’},然后{B’}繞{B’}的Y旋轉得到{B’’},最后{B’’}繞{B’’}的X旋轉得到{B},所以,我們可以寫出:
式中的3個旋轉角分別是繞著{A}的Z軸,{B’}的Y軸,{B‘’}的X軸旋轉(所以相對于我們的旋轉,是右乘,先乘以繞X的旋轉,再乘以繞Y的旋轉,最后才是繞Z的旋轉),因此我們可以得出結論:X-Y-Z固定角與Z-Y-X歐拉角在同樣的角度大小下,旋轉所得到的最終結果是一樣的,也就是說在這兩種表示下,{B}相對于{A}的姿態一致。注意,這并不是巧合,是因為固定角表示下是基本旋轉矩陣左乘,而歐拉角表示下是基本旋轉矩陣的右乘,而恰好X-Y-Z與Z-Y-X是相反的旋轉順序,所以最終的效果就一樣了。
3.6.3 等效軸角坐標系表示法
即用一個單位矢量加上一個旋轉角表示旋轉:
因為我們的單位矢量長度恒為1,所以實際上確定它只需要兩個參數,加上旋轉角,也即三個參數,正好確定旋轉所需要的3個自由度。當旋轉軸K為一般軸時,等效旋轉矩陣為:
單位向量
旋轉矢量表示兩個坐標系之間的旋轉關系,
旋轉矢量法與等效軸角坐標系之間的關系是:Rx=θkx,Ry=θky,Rz=θkz。
可求:
其中, cθ=cosθ , sθ=sinθ , vθ=1?cosθ ,θ 是由右手定則確定的,即大拇指指向 r^ 的正方向。
3.6.4 歐拉參數
除了上面的固定角坐標系表示法、歐拉角表示法和等效軸角坐標系表示法之外,我們再介紹另一種姿態表示法,這種表示法通過四個數值來表示,稱為歐拉參數。
我們將這四個變量平方相加,得到:
也即,這四個參數不是獨立的,所以,仍然符合我們對于姿態的3自由度的認知。同時,由上面的式子可知,我們可以將一個姿態看作是四維空間中單位超球面上的一點,或者說,它是一個單位四元數。用這組參數表示的旋轉矩陣為:
已知旋轉矩陣求歐拉參數為:
3.7 自由矢量的變換
其他
- BORG-- 機械人,星際迷航電影系列中的一個宇宙種族,一只胳膊被截肢更換成機械臂
參考
1、《機器人學導論》[第三版]
2、機器人學導論(一)——空間描述和變換
3、博格人(Borg)–baike
4、機械臂——六軸機械臂構型分析與MATLAB建模
5、高中數學書PDF全集打包
6、機械臂——六軸機械臂構型分析與MATLAB建模
7、機械臂——六軸機械臂逆解
8、b站搜林沛群教授的機器人學
9、UR機器人之一:坐標系及位姿表示方法
10、等效軸角坐標系表示法
11、旋轉變換(一)旋轉矩陣
12、6軸機器人運動學正解,逆解1
13、齊次變換矩陣逆矩陣的快速求解方法
總結
以上是生活随笔為你收集整理的算法--机器人学导论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人研究方向的自我学习[2] Ma
- 下一篇: 台式计算机 评标细则,计算机评标系统流程