蘇 豪,薛方正
(重慶大學 自動化學院,重慶 400044)
關節型機器人由于具有多連桿結構,不但可以擁有較小的體積和較大的工作空間,而且可以勝任復雜的工作任務,在工業生產、科學研究、家庭服務等領域得到越來越廣泛的應用[1-3]。功能的多樣性導致機器人結構的復雜性。多數工業機器人[4-5]具有 4 ~6 個自由度,如機器昆蟲[6]一般擁有4個以上的自由度,而具有手指結構的仿人機器人[7]可以擁有30個自由度。針對某些特殊工作任務開發的機器人可能擁有更多自由度或更復雜、更新穎的結構,如仿生連續體機器人[8]等。
機器人仿真系統可以有效地降低成本、縮短開發周期和避免實驗過程中的損壞,因此倍受學者們的關注。很多研究機構已對機器人仿真做了大量的研究,例如:針對站立型機器人搬運動作的仿真[9];針對空間四面體反轉機器人的仿真[10];針對挖掘機器人挖掘軌跡的仿真[11];針對采摘機器人靜力學的仿真[12]等。這些仿真平臺大多數是針對特定機器人或特定功能開發的,對于特定仿真對象的研究具有很好的輔助作用。在機器人開發過程中,往往需要設計新的機器人結構,比如增加或減少自由度或改變某種傳動機構等。在修改機器人結構或者變更研究對象時,需要對上述仿真平臺做大量的修改,造成了不必要的重復性工作,同時也不符合軟件復用的思想,因此其適用范圍受到限制。
通用型仿真平臺是提高仿真平臺適用范圍的一種重要手段,也逐漸受到機器人研究機構的重視。文獻[13-15]分別提出了不同仿人機器人的通用仿真平臺設計方案,有效地解決了仿人機器人的通用仿真問題,但是不適用于仿人機器人以外的關節型機器人;文獻[16]對IMG弧焊機器人進行了通用仿真研究,但應用范圍有限。這些仿真平臺在通用性上仍然存在不足。
目前,使用較多的機器人仿真工具有 ADAMS、MSRS、OpenGL、ODE。ADAMS 和 MSRS 都屬于商業軟件,在使用和授權上有諸多限制。而且ADAMS運行速度較慢,MSRS使用過程復雜。利用OpenGL、ODE等開源軟件在開放性上相對于商業軟件具有很大優越性。OpenGL是圖像處理庫,需要重寫動力學,增加了開發難度。因此本文采用開源動力學軟件ODE作為開發工具。
基于混合模型的關節型機器人仿真平臺設計方案的機器人模型(圖1)是結合了擴展D-H模型、圖結構模型和ODE模型的混合模型,3個部分分別用于人機交互、機器人描述以及作為控制和顯示接口。

圖1 機器人混合模型
1.1.1 擴展D-H模型
D-H參數又稱幾何參數,其通過桿件長度d、桿件扭角α、關節距離r、關節角度θ四個參數表征機器人相鄰2桿件的相對位置。D-H參數僅包含了桿件和關節的位置信息。為了更準確地描述機器人,本文將D-H參數與桿件屬性、關節屬性相結合,共同稱之為機器人的擴展D-H模型。
擴展D-H模型是仿真平臺人機交互的接口,通過獲取平臺使用者輸入的參數,將機器人自然語言描述轉化為數學語言描述,在虛擬空間建立機器人的抽象映射。模型定義為

其中 P=〈α,d,θ,r〉,即桿件的 D-H 參數,用以描述桿件的相對位置。為了能描述含有樹形或閉鏈結構的機器人,本文所采用的是改進型的D-H參數[17]。L=〈shape,size,density,color〉,表示除位置信息之外的桿件基本屬性,分別為形狀、尺寸、密度和顏色。J=〈type,axis〉,表示除位置信息之外的關節基本屬性,包括關節類型,關節軸。
1.1.2 圖結構模型
圖結構是一種非線性的數據結構,由若干頂點和連接2個頂點的弧組成。圖結構中,頂點之間的關系是任意的,任意2頂點之間均可以存在弧。用頂點表示機器人桿件,弧表示關節,則圖結構能直觀地描述任意復雜結構的機器人。機器人的圖結構模型即用圖結構對機器人進行的描述。
圖結構模型是機器人在數據結構上的表示。該模型訪問擴展D-H模型,計算出桿件和關節信息,并分別保存在圖的頂點和弧中。表示為

在機器人的圖結構模型中Links=〈shape,size,mass,color,position〉,表示機器人各個桿件,包含的信息有桿件的形狀、尺寸、質量、顏色、位置及位姿。Joints=〈type,axis,linkP,linkN〉,表示機器人的各個關節,包含的信息有關節類型、關節軸、關節的位置以及與該關節相關聯的2個桿件。
1.1.3 ODE 模型
ODE[18]是開放動力學引擎的簡稱,包括了剛體動力學引擎和碰撞檢測引擎,采用ODE進行仿真可以不用考慮動力學約束,簡化開發步驟,降低開發難度。ODE通過Body、Geom、Joint三個元素描述仿真世界中的各種實體,分別表示剛體、剛體幾何信息以及剛體間的連接關系。關節型機器人由桿件和關節組成,桿件映射到ODE引擎下即Body和Geom,關節則對應Joint。通過ODE引擎中各種元素對機器人進行的描述,稱為機器人的ODE模型。定義為

其中:Body=〈position,mass〉,position、mass是各桿件質心在桿件坐標系中的相對坐標和桿件質量,這2個為不變屬性。Body元素還包括桿件質心位置、線速度、角速度、方向4個實時變化的屬性,由ODE引擎在仿真過程中自動求解。
Geom=〈shape,size,color〉表示桿件的形狀、尺寸、顏色3個幾何信息。ODE支持的形狀包括球體、圓柱體、箱體以及由三角形網格描述的復雜形狀。機器人的所有Geom構成碰撞空間(space)。
Joint=〈type,axis,linkP,linkN〉,描述機器人的各關節。ODE支持的關節類型包括Hinge、Slider、Universal、Contact等。Contact為接觸關節,用來描述發生碰撞的桿件之間的連接關系。
ODE模型同時作為仿真平臺的控制接口,接收控制算法給定的輸入,通過ODE引擎,影響圖結構模型中桿件和關節的信息,輸出仿真結果。
仿真平臺運行機制見圖1。擴展D-H模型獲取仿真平臺使用者輸入的機器人參數,轉換至圖結構模型并保存,圖結構模型將數據轉換成ODE模型能夠識別的數據,并交由ODE引擎輸出仿真結果。
1.2.1 擴展D-H模型與圖結構模型的轉換
設(Pi,Li,Ji)是機器人擴展D-H模型中的第i個元素,P=〈αi,di,θi,ri〉。與桿件 Li相連的另一個關節為 Jk。(xBi,yBi,zBi) 是 Li的質心位置在基坐標系下的坐標,(xJk,yJk,zJk)是關節Jk所在位置在基坐標系下的坐標,則有式(4)和式(5)成立。

約定基坐標原點所在位置存在一個機器人的虛擬關節,即(xJ0,yJ0,zJ0)=(0,0,0)。依次訪問擴展D-H模型的每一個元素,可以遞歸求出所有桿件質心位置和關節位置。用桿件質心位置數據與Li信息填充圖的頂點,關節位置與Ji信息填充圖的弧,即實現擴展D-H模型向圖結構模型的轉換。
1.2.2 圖結構模型與ODE模型的轉換
圖結構模型向ODE模型的轉換包括頂點信息的轉換和弧信息的轉換。轉換過程為:
1)遍歷圖結構的所有頂點,對每個頂點數據做如下處理:① 創建一個Body和一個Geom;②根據頂點數據設定Body的位置;③由形狀、尺寸、密度數據計算并設定Body的質量;④ 設定Geom的形狀、尺寸、顏色;⑤ 將Geom與Body相關聯。
2)遍歷圖結構的所有弧,并對弧數據做如下處理:① 創建一個Joint,根據弧數據設定Joint的關節類型、關節軸;② 搜索該弧兩端的2個頂點,將Joint與2個頂點對應的Body相關聯。
1.2.3 ODE 模型的運行
ODE模型的運行過程(圖2)為:
1)創建動力學世界。
2)在動力學世界中創建機器人桿件、關節,并設置各自的狀態。
3)創建碰撞空間、關節組。
4)做如下循環:① 調整關節參數,為桿件施加作用力;②碰撞檢測;③ 在碰撞點創建接觸關節,加入關節組;④ 仿真;⑤ 清空關節組;⑥ 銷毀動力學世界、碰撞空間。
仿真平臺的實現方案見圖2。仿真平臺使用者通過機器人配置界面配置機器人桿件參數和關節參數,配置數據以文本文檔的形式保存。仿真平臺讀取配置文檔,獲得機器人的擴展D-H模型,通過前文所述算法將擴展D-H模型轉化為圖結構模型,以圖的形式對機器人進行描述。在機器人圖結構模型轉換為ODE模型過程中,機器人的桿件、關節信息被解析為ODE下的Body、Geom、Joint元素,多個Body和Joint共同構成ODE的剛體世界World,多個Geom構成碰撞空間Space。ODE引擎通過控制接口接收控制數據,對 World和Space中的元素進行仿真循環,并輸出仿真結果。
機器人的配置包括桿件的配置和關節的配置2個部分。桿件的配置形式為[No,D-H,JointD,JointT,Shpae,Size,Color,Density],表示的意義分別是桿件編號,D-H參數,驅動關節[17]編號,傳動關節[17]編號,關節形狀、尺寸、顏色和密度。

圖2 仿真平臺的實現方案
關節的配置形式為[No,Type,Axis,LinkP,LinkN],意義分別是關節編號、關節類型、關節軸以及由該關節相連的2個桿件的編號。基坐標系的原點作為機器人的一個虛擬關節,關節編號為0,其LinkP參數附值為無效值。機器人的末端也作為虛擬關節,其LinkN取一個無效值。
仿真平臺提供4種傳感器信息和2種控制接口。傳感器信息包括關節位置、關節速度、關節力矩、關節角度,這些信息均通過查詢Body和Joint的狀態來得到。一種控制接口是關節角速度輸入,4種傳感器輸出;另一種是關節力矩輸入,4種傳感器輸出。
將控制算法計算出的給定力矩、角速度添加至對應的關節,調整與關節相連的桿件的位置和姿態,同時調用繪圖函數依次繪制各個桿件,即可實現對仿真機器人的控制。
為了驗證仿真平臺的實驗效果,對2種不同類型的機器人進行仿真。機器人的幾何模型以及桿件參數分別見圖3和表1,仿真效果見圖4。

圖3 機器人幾何模型

表1 機器人桿件參數

圖4 仿真機器人
部分桿件和關節配置文檔如下:


為了驗證平臺的仿真效果,對仿真機器人A和B分別進行了動作規劃實驗。機器人A、B的初始姿態如圖4。機器人A目標位置為關節1轉動-90°和關節4轉動-45°,其他關節不變,運動方式為關節插補運動;B的目標位置為關節1轉動45°,關節4轉動-45°,其他關節不變。機器人動作采用直線插補的方式進行規劃。
關節插補是在關節空間對機器人進行的動作規劃,只考慮機器人初始姿態和目標姿態,而不關心末端運動軌跡,計算量小且不會出現奇異位形。根據初始姿態和目標姿態求出各關節的運動范圍,結合運行速度對運動范圍均勻插值,可計算出一個控制周期內各關節的插補量,從而規劃出關節運動軌跡。軌跡規劃完成后,對各關節做跟蹤控制,驅動機器人按規劃的軌跡運動。
本實驗采用PID控制算法,圖5顯示了仿真機器人A的運動過程以及輸入力矩和輸出角度的時間曲線。
對仿真機器人B的模型采用直線插補的方式進行動作規劃。通過直線插補進行動作規劃的機器人,在運行過程中,其末端軌跡是一條由初始點到目標點的直線。假設機器人起點位置為P1,目標位置為P2,機器人從起點位置到目標位置的直線插補規劃為n步,則可求出機器人每步的運動步長

機器人第i步的末端位置

獲得機器人每一步的末端位置后,根據機器人的逆運動學,可以求出每一步各個關節的關節角度,從而完成直線插補的軌跡規劃。軌跡規劃完成后,對各關節做跟蹤控制,驅動機器人按規劃的軌跡運動。
本實驗采用了PID控制算法對機器人進行控制,控制器的給定量是關節角度,輸出量是關節力矩。機器人模型運動過程截圖見圖6(a),圖6(b)給出了機器人運行過程中的末端軌跡。在圖6(c)中選取了機器人的1、2、3號關節作為考察對象,給出了關節的角度和力矩曲線。
由以上2組實驗結果可以看出,由本方案實現的仿真平臺對于不同類型的機器人均能進行仿真;同時仿真平臺也能實現對不同仿真機器人的控制。

圖5 機器人A實驗

圖6 機器人B實驗
以提高仿真平臺的通用性為目的,設計了一種基于混合模型的關節型機器人通用仿真平臺,該方案結合了圖結構對機器人描述的通用性和D-H參數在使用上的簡便性。通過修改配置文檔,仿真平臺可以對不同結構的機器人實現仿真,或者更改現有仿真機器人的結構,從而驗證機器人結構的合理性或對機器人進行結構優化。圖4展示了由本方案實現的2種仿真機器人,并分別進行了動作規劃實驗,驗證了本方案的有效性。
為了使仿真平臺在使用上更加靈活方便,需要進一步完善的工作有:在線修改機器人配置文檔并在線做出仿真;提高三維動畫質量,增強仿真平臺視覺效果。
[1]劉楚輝,姚寶國,柯映林.工業機器人切削加工離線編程研究[J].浙江大學學報:工學版,2010,44(3):426-431.
[2]張耀,王耀南,周博文.異型瓶藥液中可見異物的智能視覺檢測機器人[J].儀器儀表學報,2010,31(5):1058-1063.
[3]陳剛,張為公,龔宗洋,等.汽車駕駛機器人多機械手協調控制研究[J].儀器儀表學報,2009,30(9):1836-1840.
[4]王其軍,杜建軍.MOTOMAN機器人逆運動學分析[J].哈爾濱工業大學學報:自然科學版,2010,42(3):451-454.
[5]Chen G S,Tong R H,Qiang B G.Analysis on Flexibility of Industrial Welding Robots and Simulation Research[C]//20112nd International Conference on Mechanic Automation and Control Engineering.Piscataway.USA:IEEE,2011:81 -84.
[6]張建斌,宋榮貴,陳偉海,等.基于運動靈活性的蟑螂機器人機構參數優化[J].北京航空航天大學學報:自然科學版,2010,36(5):14 -22.
[7]Kajita Shuuji,Kaneko Kenji,Kaneiro Fumio,et al.Cybernetic human HRP-4C:A humanoid robot with humanlike proportions[C]//14th International Symposium of Robotic Research.Tiergartenstrasse,Heidelberg,Germany:Springer Verlag,2011:301 -314.
[8]趙強,岳永恒.仿生連續體機器人的研究現狀與展望[J].機械設計,2009,26(8):1 -5.
[9]張勤,吳志斌,神谷好承.基于重復變換法的多關節站立型機器人搬運動作仿真[J].機器人,2011,33(3):340-346.
[10]張利格,畢樹生,彭朝琴.空間四面體翻滾機器人運動學分析及仿真實驗[J].北京航空航天大學學報:自然科學版,2011,37(4):415 -427.
[11]王福斌,劉杰,焦春旺,等.基于ANFIS的挖掘機器人挖掘軌跡仿真[J].東北大學學報:自然科學版,2011,32(4):554-558.
[12]崔鵬,陳志,張小超.蘋果采摘機器人仿生機械手靜力學分析與仿真[J].農業機械學報,2011,42(2):149-153.
[13]薛方正,劉成軍,李楠,等.基于ODE引擎的開放式仿人機器人仿真[J].機器人,2011,33(1):84 -89.
[14]Nakamura Y,Hirukawa H,Yamane K,et al.Humanoid robot simulator for the METI HRP project[J].Robotics and Autonomous Systems,2001,37(2/3):101 -114.
[15]Friedmann M,Petersen K,Stryk O V.Tailored real-time simulation for humanoid robots[C]//11th RobotCup International Symposium.Berlin:Springer-Verlay,2008:425-432.
[16]劉永,王克鴻,楊靜宇,等.IGM弧焊機器人大型工作站仿真系統設計[J].焊接學報,2006,27(2):59 -63.
[17]霍偉.機器人動力學與控制[M].北京:高等教育出版社,2006:16-23.
[18]Smith R.Open dynamics engine v0.5 user guide[EB/OL].[2010 -02 -25].http://www.ode.org/ode-latestuserguide.html.
[19]周靜,程興國,肖南峰.CPN網絡模擬仿人機器人學習推理能力的應用[J].重慶理工大學學報:自然科學版,2011(6):73-78.
[20]榮偉彬,秦志剛,王樂鋒,等.壓電馬達驅動3-PPTRR并聯機器人研究[J].壓電與聲光,2010(1):141-144.