雷朋豪
(長(zhǎng)安大學(xué)工程機(jī)械學(xué)院,陜西 西安 710064)
在機(jī)械系統(tǒng)的運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)仿真分析領(lǐng)域,常見(jiàn)的仿真分析軟件是ADAMS和ANSYS。在進(jìn)行機(jī)器人樣機(jī)調(diào)試之前,為了降低調(diào)試難度,解決算法中可能存在的一些問(wèn)題,根據(jù)實(shí)際應(yīng)用需求需要將機(jī)械結(jié)構(gòu)當(dāng)作剛性系統(tǒng)來(lái)處理,所以采用ADAMS作為仿真工具進(jìn)行運(yùn)動(dòng)仿真分析[1]。本文中的機(jī)械臂可以看作是機(jī)器人的單腿,在對(duì)整機(jī)進(jìn)行運(yùn)動(dòng)仿真之前,有必要對(duì)單腿首先進(jìn)行仿真分析。本文通過(guò)ADAMS和Matlab的聯(lián)合仿真,初步建立了機(jī)械臂和外界環(huán)境的交互模型[2]。
在仿真之前,需要結(jié)合模型推導(dǎo)出機(jī)器人的正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)公式。正運(yùn)動(dòng)學(xué)是已知關(guān)節(jié)轉(zhuǎn)角,借助旋轉(zhuǎn)矩陣通過(guò)一系列姿態(tài)和位置變換,最終得到足端位置的表達(dá)式。在自適應(yīng)控制中,已知角度傳感器反饋回的角度通過(guò)正運(yùn)動(dòng)學(xué)求解機(jī)器人的實(shí)際足端位置,對(duì)機(jī)器人的閉環(huán)控制具有重要意義。逆運(yùn)動(dòng)學(xué)和正運(yùn)動(dòng)學(xué)相反,是已知足端位置,借助幾何法或者數(shù)值法求得的關(guān)節(jié)角度函數(shù),多用于機(jī)器人的位置控制[3-6]。進(jìn)行機(jī)械臂的運(yùn)動(dòng)控制仿真首先需要完成運(yùn)動(dòng)學(xué)分析,這是軌跡規(guī)劃和運(yùn)動(dòng)控制的基礎(chǔ)。本文所用到的四自由度機(jī)械臂簡(jiǎn)化模型如圖1所示。
圖1 四自由度機(jī)械臂簡(jiǎn)化模型
根據(jù)機(jī)器人學(xué)[7],機(jī)械臂各連桿坐標(biāo)系間的變換矩陣為:
將D-H模型參數(shù)代入變換矩陣,得到連桿i-1(i=1,2,3,4)變換到連桿i的坐標(biāo)變換矩陣
根據(jù)定義的關(guān)節(jié)各坐標(biāo)系及相應(yīng)的連桿參數(shù),可以直接建立運(yùn)動(dòng)學(xué)方程。將得到的變換矩陣和末端在最后一個(gè)關(guān)節(jié)坐標(biāo)系中的位置向量相乘即得到相對(duì)于根關(guān)節(jié)坐標(biāo)系{0}的坐標(biāo):
根據(jù)文獻(xiàn)[8]的描述,四自由度機(jī)械臂的末端位置和方向不同會(huì)導(dǎo)致轉(zhuǎn)角的不同,所以求解逆運(yùn)動(dòng)學(xué)問(wèn)題的方程通常是非線性的,因此,并不總能找到一個(gè)封閉形式的解決方案。
對(duì)此,結(jié)合我們的實(shí)際模型和實(shí)際場(chǎng)景應(yīng)用要求,通過(guò)添加一個(gè)垂直約束,即可以求得唯一的四個(gè)轉(zhuǎn)角1θ、2θ、3θ、4θ,其中,2θ<0,3θ>0,4θ>0。
軌跡規(guī)劃是機(jī)器人運(yùn)動(dòng)控制中非常重要的一部分,合理的軌跡規(guī)劃能很大程度上減少機(jī)器人的沖擊和震動(dòng),對(duì)提高機(jī)器人的穩(wěn)定性、可靠性有非常重要
的作用。本文采用四次樣條曲線,已知機(jī)械臂相對(duì)于根關(guān)節(jié)坐標(biāo)系的初始位置、終止位置、初始時(shí)間、終止時(shí)間、中間時(shí)刻的位置、初始點(diǎn)速度和終止點(diǎn)的速度[9],即可實(shí)現(xiàn)擺動(dòng)相方程的聯(lián)立,完成機(jī)械臂的擺動(dòng)相軌跡規(guī)劃。軌跡函數(shù)如式(3)(4)(5):
Matlab中的擺動(dòng)相軌跡如圖2所示:
圖2 四次樣條曲線軌跡
為了初步驗(yàn)證算法的正確性,模擬在實(shí)際環(huán)境中機(jī)器人的穩(wěn)定性和可靠性,需要將算法和機(jī)器人的虛擬樣機(jī)通過(guò)聯(lián)合仿真的方式聯(lián)系起來(lái)。
在SolidWorks中建立好四自由度機(jī)械臂的三維模型之后,另存為Parasolid格式的.x_t文件。然后把.x_t文件導(dǎo)入ADAMS中,保存為.bin格式的數(shù)據(jù)庫(kù)文件;在ADAMS中,先要對(duì)各Part進(jìn)行重命名,這是因?yàn)樵赟olidWorks中可能對(duì)同一個(gè)零件進(jìn)行了多次裝配。將所有零件重命名之后刪除掉另外的重復(fù)零件,然后按照實(shí)體中的零件名稱(chēng)進(jìn)行命名;最后將能固連在一起的零件通過(guò)布爾運(yùn)算合并在一起,合并在一起的零件成為了一個(gè)part,不能合并在一起的但是又得保證在運(yùn)動(dòng)中沒(méi)有相對(duì)運(yùn)動(dòng)的,用固定副進(jìn)行固連。
首先,在添加旋轉(zhuǎn)副之前要更改工作格柵,確保旋轉(zhuǎn)副軸線垂直于工作格柵,也就是垂直于工作平面;其次,對(duì)四個(gè)轉(zhuǎn)角添加轉(zhuǎn)動(dòng)約束,并用ADAMS內(nèi)置的仿真模塊,觀察模型和相關(guān)運(yùn)動(dòng)副的添加是否正常;最后,添加驅(qū)動(dòng),驅(qū)動(dòng)的添加和旋轉(zhuǎn)副的添加相同。
首先,需要?jiǎng)?chuàng)建驅(qū)動(dòng)系統(tǒng)單元,一共有4個(gè)角度的輸入,這里建立4個(gè)motion,作為外部數(shù)據(jù)的輸入口;其次,需要?jiǎng)?chuàng)建角度系統(tǒng)單元作為內(nèi)部數(shù)據(jù)輸出至外部用于觀察和控制系統(tǒng)的反饋,這里只輸出4個(gè)關(guān)節(jié)的旋轉(zhuǎn)角度和足端力,如圖3所示,在Simulink框架中用4個(gè)可視化窗口引出,仿真過(guò)程中可以實(shí)時(shí)顯示機(jī)器人和環(huán)境交互過(guò)程中的轉(zhuǎn)角和足端力信息;最后,導(dǎo)出控制系統(tǒng)。
Simulink仿真框架如圖3所示。聯(lián)合仿真效果如圖4所示。
圖3 Simulink仿真框架
圖4 仿真環(huán)境模型
反饋回的效果如圖5所示,機(jī)械臂在觸地的瞬間會(huì)有較大的沖擊力,這也是機(jī)器人在行走過(guò)程中會(huì)抖動(dòng)的原因。降低足端沖擊的方法有兩種,一種是物理減震,一種是自適應(yīng)控制[10]。目前,機(jī)械臂的足端已經(jīng)添加了彈簧,為了減少觸地沖擊力,確保機(jī)器人在非結(jié)構(gòu)化地形上行走的過(guò)程中不會(huì)打滑,添加自適應(yīng)柔順控制算法顯得尤為重要。
圖5 足端力
如圖6~圖9所示,機(jī)械臂的各關(guān)節(jié)符合機(jī)器人行走的周期性擺動(dòng)規(guī)律,和Matlab中軌跡規(guī)劃的效果相同,至此,聯(lián)合仿真框架搭建目標(biāo)完成。
圖6 關(guān)節(jié)1
圖7 關(guān)節(jié)2
圖8 關(guān)節(jié)3
圖9 關(guān)節(jié)4
本文首先對(duì)機(jī)器人腿——四自由度機(jī)械臂進(jìn)行了運(yùn)動(dòng)學(xué)分析,然后利用四階樣條曲線完成了擺動(dòng)相軌跡規(guī)劃,最后進(jìn)行了ADAMS和Simulink聯(lián)合仿真,為接下來(lái)的自適應(yīng)力控仿真和實(shí)驗(yàn)奠定了必要的基礎(chǔ)。根據(jù)聯(lián)合仿真可以看出,機(jī)器人在運(yùn)動(dòng)過(guò)程中所受到的足端力過(guò)大,關(guān)節(jié)轉(zhuǎn)角符合預(yù)期,這些反饋信息是對(duì)機(jī)器人運(yùn)動(dòng)狀態(tài)的直觀的判斷依據(jù)。本文ADAMS和Simulink仿真模型框架的初步搭建,有利于更好地在未來(lái)的研究中,對(duì)添加自適應(yīng)力控模塊進(jìn)行仿真,并在實(shí)驗(yàn)?zāi)P蜕线M(jìn)行應(yīng)用,最終實(shí)現(xiàn)六足機(jī)器人整機(jī)的協(xié)調(diào)運(yùn)動(dòng)。