機械臂是機器人的一種形式,屬于一種多學科交叉涉及非常廣泛的學科,在此將對學習程序中的重要概念與結論進行,本主要依據《Introduction to robotics mechanics and control》、《RobotDynamicsandControl》等書籍進行歸納,
一、概述
機械臂演算法主要包括以下幾個方面
1、運動學:處理機械臂運動時位置、速度的問題
2、動力學:處理機械臂力與運動的問題
3、運動規劃:處理對于運動軌跡和運動路徑的規劃問題
4、優化問題:處理優化時間、振動、奇異、精度的問題
5、視覺控制:處理基于計算機視覺控制機械臂運動的問題
等(其他方面將在以后補充介紹)
二、運動學
1、數學基礎:
三角函式:
雙引數反正切函式:Atan2(x,y)
基礎常見三角函式、誘導公式、倍角公式、正余弦定理
向量:
標量積、外積、向量積
向量微分:a = (a1,a2,a3,...) 則da/dt = (da1/dt,da2/dt,da3/dt,...)
矩陣:
矩陣的秩、轉置、乘法運算
2、剛性運動與齊次變換:
描述一個機械的運動要對機械臂進行數學描述,在此對一個n機械臂自由度的機械臂來講,它擁有n個joint(轉軸)、n+1個link(連桿)、n+1個連桿坐標系(其中第一根連桿為接地的固定桿,他的坐標系稱為base系)、一個工具系,以base系為基準其他各個連桿系為該連桿在上一個與其連接的連桿系中的位姿關系,例如A1表示除去第一根接地桿外的第一根連桿在base系中的位置,A2為第二根桿在第一根桿的坐標系內的位置,這樣講有些繞嘴,我們舉例說明:
如圖所示
base系原點為Lo與地面的接觸點表示整個機械臂的全域參考系,A1為軸J1為原點的坐標系,表示L1在base下的關系,A2為J2為原點的坐標系,表示L2在A1下的關系,
3、正運動學
至此引出問題,如何表示這些坐標系呢?
首先先人為規定每個坐標系的軸(存在一些常見規定方法,但并不強制,機械臂并不存在全型別通用的運動學演算法,其中坐標系方向、原點位置、DH表建立方法都會導致具體演算法的差異,但其原理是固定的),
然后將A矩陣看作R(旋轉矩陣)和O(位移矩陣)的齊次變換,其形式如下
| R | O |
| 0 | 1 |
再次明確一個問題,每一個A是當前joint(軸)坐標系的數學表示形式,表示又上一系經過R(旋轉變換)與O(平移變換)的到的新坐標系,
至此問題進一步延申,R和O如何確定呢?
首先O很容易確定,可以根據已知的前一坐標系和連桿的長度形狀引數做投影,得到的對應xyz的值據說O矩陣,可以看出O是一個3x1矩陣,
再看R,一般情況下機械臂選擇用轉軸連接,因此每個軸只有一個變數θ,所以R其實是一個關于θ的函式,表示為一個3x3的矩陣,(推導程序請自行查找)
其中O和R中具體位置的數學表示形式有很多種,但其歸根結底只是一個由許多已知引數(連桿轉軸屬性)與一個自變數引數θ的組合形式,具體表示請搜索:歐拉角、四元數、等效軸
至此已獲得相鄰坐標系之間的關系A,在此引入新問題如何表示坐標系之間的疊加轉化關系
此處直接給出結論 T(a關于b) = Ab+1·Ab+2·.........Aa-1·Aa
此處引入Denavit-Hartenberg約定:
Ai = ROT z,θi · Trans z,di · Trans x,ai · ROT x,αi
因此建立一個如上邊圖右側所示的DH引數表,描述了機械臂的各種屬性引數,根據他可以計算每一個A T R O 矩陣
至此正運動學結束
4、逆運動學
正運動學的核心問題是根據每個轉軸的狀態得到當前整個機械臂的狀態,于是自然產生逆運動學問題,我知道整個機器人的狀態(一般情況下是末端的姿態資訊),即我們產生了一個目標位置點,我如何解算出每一個軸的狀態呢?
在此要明確,逆運動學分為決議法和數值法,決議法是嚴格根據數學推導得出的結果,但其受限于不同構造的機械臂結構不同,并不具備通用性,數值法是利用梯度下降優化的思路逼近出最優答案的方法,缺點是計算速度慢,
在此介紹逆運動學解耦的方法,是一種決議法,實用于斯坦福型機械臂(六自由度,后三軸軸線互相垂直且交于一點),將整個逆運動程序拆解逆位置與逆姿態,
這個方法的關鍵點在于后三軸相互垂直交于一點形成了新坐標系——手腕坐標系(wrist系),其位置只由前三軸控制,本身只會改變wrist系的姿態,
在此問題分解,問題1 已知p[x,y,z]求解前三軸θ1 2 3,
結論:
θ1 = Atan2(x,y)或 Π+Atan2(x,y)
θ3 = Atan2(D,根號下(1-D2))
D = COSθ3 =
θ2 = Atan2(根號下(x2+y2-(d2+d3)2),z-d1)-Atan2(a2+a3cosθ3,a3sinθ3)
問題2 已知R(目標位置旋轉狀態)求解θ 4 5 6
根據θ123求出R(3在0)
R(6在3)=R(wrist) = R(3在0)轉置 · R
使用歐拉角表示R(6在3)
結論:
θ4 = Φ
θ5 = θ
θ6 = ψ
此方法一般情況下會得到8個解,
總結:
FK(正運動學):
定軸線 建立base系 建立Ai系 建立DH表 求Ai 求T
IK(逆運動學):
decoupling 解前三軸 解R(3在0) 解后三軸
感謝您的閱讀,有機械臂方面興趣請聯系微信Blablabrador
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382147.html
標籤:其他
