郭 建
(華南理工大學(xué)廣州學(xué)院機械工程學(xué)院 廣東·廣州 510800)
機器人的位置和姿態(tài)稱為位姿。位姿的數(shù)學(xué)描述是表達機器人的線速度、角速度、力和力矩的基礎(chǔ),坐標變換是研究不同坐標系中的機器人位姿關(guān)系的重要途徑。當?shù)玫轿蛔说拿枋鲆院?,就可以利用各關(guān)節(jié)位姿之間的關(guān)系來描述機器人的整個運動鏈,進而得到機器人的基坐標系和末端坐標系之間的關(guān)系。機器人運動學(xué)的計算主要圍繞兩個問題進行展開,機器人正逆運動學(xué),兩者是機器人運動學(xué)的核心。機器人的正運動學(xué)是已知或者給定一組關(guān)節(jié)角,計算出工具坐標系相對于基坐標系的位置和姿態(tài),也就是求解機器人末端執(zhí)行器的位姿。機器人的逆運動學(xué)是給定機器人末端執(zhí)行器的位置和姿態(tài),計算所有可到達指定位置和姿態(tài)的關(guān)節(jié)角。
在進行機器人運動學(xué)教學(xué)過程中,通常以四足機器人或者六軸關(guān)節(jié)機器人作為實際分析對象機器人模型如圖1所示,外觀尺寸長×寬×高為:300mm×250mm×263mm。
圖1:整體結(jié)構(gòu)
圖2:D-H坐標系
機器人腿部處于擺動相時,機器人的腿部結(jié)構(gòu)可以看成一串轉(zhuǎn)動關(guān)節(jié)連接的剛體連桿構(gòu)成,基體坐標系{O}建立在機器人腿部側(cè)擺轉(zhuǎn)動關(guān)節(jié)軸處;OX軸正向是機器人運動方向的相反方向;OY軸方向是與重力方向平行;OZ軸方向用右手法則判定。利用 D-H方法建立的坐標系如圖2所示。是相應(yīng)關(guān)節(jié)的轉(zhuǎn)動角度變量,L1是基坐標系原點到坐標系{2}原點之間的距離,L2、L3是大腿與小腿的等效長度。右前腿的D-H參數(shù)如表1所示。
表1:右前腿D-H參數(shù)表
根據(jù)表1中的參數(shù),可以得到如下變化矩陣:
(1)數(shù)學(xué)計算量較大,對于應(yīng)用型本科院校的學(xué)生來講,對于以上公式的理解比較費勁。
(2)對學(xué)生的線性代數(shù)基礎(chǔ)知識要求很高。
(3)很多學(xué)生以為又是線性代數(shù)的計算,每天忙著記憶公式,對公式不理解。
(4)對實際的機器人運動學(xué)分析無從著手,只知道對著公式計算,參數(shù)有時候?qū)?yīng)不上。
在MATLAB的機器人工具箱中,可以實用兩種函數(shù)實現(xiàn)坐標的旋轉(zhuǎn)可視化,函數(shù)trplot()可以用圖形表示相應(yīng)的體坐標系,函數(shù)tranimate()用動畫展示世界坐標系旋轉(zhuǎn)為體坐標系的過程。這兩個功能可以有助于學(xué)生看清楚坐標旋轉(zhuǎn)的過程,以及旋轉(zhuǎn)之后新坐標系和舊坐標系的位置關(guān)系。
筆者在實際的教學(xué)過程中發(fā)現(xiàn),旋轉(zhuǎn)矩陣的物理含義是學(xué)生最難理解的地方,對于矩陣的理解很容易,但是經(jīng)過幾旋轉(zhuǎn)后的計算就會變得很繁瑣,在計算過程很容易出錯。在MATLAB的機器人工具箱中,3X3的旋轉(zhuǎn)矩陣可以用rotx()、roty()、rotz()來計算。T=rotx(pi/6)表示圍繞 X 軸旋轉(zhuǎn) 30°得到的旋轉(zhuǎn)矩陣。機器人工具箱分別提供了trotx()、troty()、trotz()三個函數(shù)計算4X4的齊次變換矩陣,分別對應(yīng)X軸,Y軸,Z軸旋轉(zhuǎn)一定的角度,比如圖1的坐標系o'-XYZ繞著o-XYZ的X軸旋轉(zhuǎn)30°。則旋轉(zhuǎn)矩陣可以直接表示為T0=trotx(pi/6)。對于平移坐標變換,機器人工具箱提供了函數(shù)transl()。
對機器人的運動學(xué)方程求解,是一個非線性的問題。目前主要分為兩類:數(shù)值解和封閉解。筆者在實際教學(xué)中發(fā)現(xiàn)嗎,學(xué)生在進行數(shù)學(xué)公式推導(dǎo)過程中,很容易出現(xiàn)厭學(xué),覺得機器人運動學(xué)枯燥的情況。在MATLAB的機器人工具箱中,封閉解使用ikine6s()完成,這個只適用于關(guān)節(jié)數(shù)為6,且腕部三個旋轉(zhuǎn)關(guān)節(jié)相交于一點的情況。數(shù)值解使用ikine()完成,它適用各種關(guān)節(jié)數(shù)目的機械臂通過設(shè)定初始的關(guān)節(jié)角坐標對機械臂運動學(xué)配置進行隱藏式控制。
D-H建模方法是使用連桿參數(shù)來描述機構(gòu)運動關(guān)系。一個長度不為零的連桿的兩端連接了兩個關(guān)節(jié),連桿的運動學(xué)功能在于保持兩端關(guān)節(jié)軸線之間固定的幾何關(guān)系。關(guān)節(jié)軸線i-1和關(guān)節(jié)軸線i的公法線長度用表示,關(guān)節(jié)軸線i-1和關(guān)節(jié)軸線i的夾角用表示;關(guān)節(jié)i上的兩條公法線ai與ai-1之間的距離用di表示;連桿i相對于連桿i-1繞軸線i的旋轉(zhuǎn)角度,繞關(guān)節(jié)軸線i測量,用表示。在MATLAB機器人工具箱中,還用變量表示機器人的關(guān)節(jié)類型,其中=0表示轉(zhuǎn)動關(guān)節(jié),=1表示移動關(guān)節(jié)。在MATLAB的機器人工具箱中,用函數(shù)Link()可以創(chuàng)建一個機械臂對象,其中輸入?yún)?shù)的順序分別是關(guān)節(jié)角、連桿偏距di、連桿長度ai-1、連桿轉(zhuǎn)角、關(guān)節(jié)類型。利用MATLAB同樣可以完成機器人的數(shù)學(xué)建模個計算,部分代碼如下。在MATLAB中利用D-H參數(shù)法建立的機械臂如圖3所示。
圖3:MATLAB建立D-H坐標系
在2020-2021第一學(xué)期的機器人技術(shù)教學(xué)中,前兩周利用傳統(tǒng)教學(xué)方法進行教學(xué),前期學(xué)生反饋比較多的就是公式計算麻煩,不理解公式,只會計算例題,從第三周開始引入MATLAB進入課堂,很多學(xué)生對運動學(xué)計算的物理含義開始逐漸清晰。對于旋轉(zhuǎn)和平移的計算超過80%的學(xué)生沒有障礙,部分學(xué)生開始對六足機器人和康復(fù)機器人進行運動學(xué)分析,有一組學(xué)生基于機器人的運動學(xué)計算申請了廣東省大學(xué)生攀登計劃,用于分析上肢康復(fù)機器人。引入MATLAB進入課堂能較好地激發(fā)學(xué)生的學(xué)習(xí)興趣,本次期末考試中,全班同學(xué)51人,只有兩人掛科,取得了較好的教學(xué)效果。