郭 建
(華南理工大學廣州學院機械工程學院 廣東·廣州 510800)
機器人的位置和姿態稱為位姿。位姿的數學描述是表達機器人的線速度、角速度、力和力矩的基礎,坐標變換是研究不同坐標系中的機器人位姿關系的重要途徑。當得到位姿的描述以后,就可以利用各關節位姿之間的關系來描述機器人的整個運動鏈,進而得到機器人的基坐標系和末端坐標系之間的關系。機器人運動學的計算主要圍繞兩個問題進行展開,機器人正逆運動學,兩者是機器人運動學的核心。機器人的正運動學是已知或者給定一組關節角,計算出工具坐標系相對于基坐標系的位置和姿態,也就是求解機器人末端執行器的位姿。機器人的逆運動學是給定機器人末端執行器的位置和姿態,計算所有可到達指定位置和姿態的關節角。
在進行機器人運動學教學過程中,通常以四足機器人或者六軸關節機器人作為實際分析對象機器人模型如圖1所示,外觀尺寸長×寬×高為:300mm×250mm×263mm。

圖1:整體結構

圖2:D-H坐標系
機器人腿部處于擺動相時,機器人的腿部結構可以看成一串轉動關節連接的剛體連桿構成,基體坐標系{O}建立在機器人腿部側擺轉動關節軸處;OX軸正向是機器人運動方向的相反方向;OY軸方向是與重力方向平行;OZ軸方向用右手法則判定。利用 D-H方法建立的坐標系如圖2所示。是相應關節的轉動角度變量,L1是基坐標系原點到坐標系{2}原點之間的距離,L2、L3是大腿與小腿的等效長度。右前腿的D-H參數如表1所示。

表1:右前腿D-H參數表
根據表1中的參數,可以得到如下變化矩陣:

(1)數學計算量較大,對于應用型本科院校的學生來講,對于以上公式的理解比較費勁。
(2)對學生的線性代數基礎知識要求很高。
(3)很多學生以為又是線性代數的計算,每天忙著記憶公式,對公式不理解。
(4)對實際的機器人運動學分析無從著手,只知道對著公式計算,參數有時候對應不上。
在MATLAB的機器人工具箱中,可以實用兩種函數實現坐標的旋轉可視化,函數trplot()可以用圖形表示相應的體坐標系,函數tranimate()用動畫展示世界坐標系旋轉為體坐標系的過程。這兩個功能可以有助于學生看清楚坐標旋轉的過程,以及旋轉之后新坐標系和舊坐標系的位置關系。
筆者在實際的教學過程中發現,旋轉矩陣的物理含義是學生最難理解的地方,對于矩陣的理解很容易,但是經過幾旋轉后的計算就會變得很繁瑣,在計算過程很容易出錯。在MATLAB的機器人工具箱中,3X3的旋轉矩陣可以用rotx()、roty()、rotz()來計算。T=rotx(pi/6)表示圍繞 X 軸旋轉 30°得到的旋轉矩陣。機器人工具箱分別提供了trotx()、troty()、trotz()三個函數計算4X4的齊次變換矩陣,分別對應X軸,Y軸,Z軸旋轉一定的角度,比如圖1的坐標系o'-XYZ繞著o-XYZ的X軸旋轉30°。則旋轉矩陣可以直接表示為T0=trotx(pi/6)。對于平移坐標變換,機器人工具箱提供了函數transl()。
對機器人的運動學方程求解,是一個非線性的問題。目前主要分為兩類:數值解和封閉解。筆者在實際教學中發現嗎,學生在進行數學公式推導過程中,很容易出現厭學,覺得機器人運動學枯燥的情況。在MATLAB的機器人工具箱中,封閉解使用ikine6s()完成,這個只適用于關節數為6,且腕部三個旋轉關節相交于一點的情況。數值解使用ikine()完成,它適用各種關節數目的機械臂通過設定初始的關節角坐標對機械臂運動學配置進行隱藏式控制。
D-H建模方法是使用連桿參數來描述機構運動關系。一個長度不為零的連桿的兩端連接了兩個關節,連桿的運動學功能在于保持兩端關節軸線之間固定的幾何關系。關節軸線i-1和關節軸線i的公法線長度用表示,關節軸線i-1和關節軸線i的夾角用表示;關節i上的兩條公法線ai與ai-1之間的距離用di表示;連桿i相對于連桿i-1繞軸線i的旋轉角度,繞關節軸線i測量,用表示。在MATLAB機器人工具箱中,還用變量表示機器人的關節類型,其中=0表示轉動關節,=1表示移動關節。在MATLAB的機器人工具箱中,用函數Link()可以創建一個機械臂對象,其中輸入參數的順序分別是關節角、連桿偏距di、連桿長度ai-1、連桿轉角、關節類型。利用MATLAB同樣可以完成機器人的數學建模個計算,部分代碼如下。在MATLAB中利用D-H參數法建立的機械臂如圖3所示。

圖3:MATLAB建立D-H坐標系

在2020-2021第一學期的機器人技術教學中,前兩周利用傳統教學方法進行教學,前期學生反饋比較多的就是公式計算麻煩,不理解公式,只會計算例題,從第三周開始引入MATLAB進入課堂,很多學生對運動學計算的物理含義開始逐漸清晰。對于旋轉和平移的計算超過80%的學生沒有障礙,部分學生開始對六足機器人和康復機器人進行運動學分析,有一組學生基于機器人的運動學計算申請了廣東省大學生攀登計劃,用于分析上肢康復機器人。引入MATLAB進入課堂能較好地激發學生的學習興趣,本次期末考試中,全班同學51人,只有兩人掛科,取得了較好的教學效果。