羅 敏,劉世平,李世其,朱文革
(華中科技大學機械科學與工程學院,湖北 武漢 430074)
雖然機器人技術進展已經(jīng)很成熟,但因為機器人多連桿的結(jié)構(gòu)、多自由度的工作空間、惡劣的作業(yè)環(huán)境、復雜的操作任務,使得機器人的結(jié)構(gòu)設計、機器人與周邊設備之間以及機器人各連桿之間的碰撞檢測、機器人運動路徑規(guī)劃及遠程控制變得相對復雜[1]。將機器人技術及圖形仿真技術結(jié)合起來開發(fā)機器人運動學仿真平臺,將會簡化機器人設計和控制工作,提高機器人的工作效率,擴展機器人的工作范圍,所以運用計算機圖形學最新研究成果,開發(fā)一套機器人運動學仿真平臺具有現(xiàn)實意義。
基于Open Inventor虛擬場景技術、數(shù)據(jù)庫信息管理技術及機器人運動學規(guī)劃技術,利用Visual C++6.0編程軟件,建立空間機械臂運動仿真平臺,討論它的基本原理,分析它的運作過程,并進行實驗驗證。
根據(jù)數(shù)據(jù)庫中模型運動規(guī)劃數(shù)據(jù)表中動素指令的執(zhí)行序列,依次讀取動素指令,解析動素指令,執(zhí)行動素指令,循環(huán)遍歷數(shù)據(jù)庫中的模型運動規(guī)劃數(shù)據(jù)表、模型運動參數(shù)數(shù)據(jù)表、模型運動關系數(shù)據(jù)表和模型運動位姿數(shù)據(jù)表,實時計算模型運動變換矩陣,修改模型局部坐標系相對全局坐標系中的絕對位姿,從而完成整個任務過程的仿真[2]。運動仿真流程如圖1所示。

圖1 運動仿真流程
運動仿真模塊的核心是對模型絕對位姿的計算,而針對不同的聯(lián)動帶類型,主動模型與隨動模型絕對位姿的計算方法是不一樣的,下面以常見的回轉(zhuǎn)聯(lián)動帶為例講述模型位姿的計算方法。
設動素指令解析出來的主動模型節(jié)點為A,假設旋轉(zhuǎn)角度為Q。根據(jù)模型名稱和參數(shù)代號查詢模型運動參數(shù)表得到A的相關信息:
根據(jù)已知的旋轉(zhuǎn)軸信息和旋轉(zhuǎn)角度,由計算機圖形學中繞任意軸旋轉(zhuǎn)變換通式,得到A模型的旋轉(zhuǎn)變換矩陣RA。則

回轉(zhuǎn)聯(lián)動帶分為同軸回轉(zhuǎn)聯(lián)動帶和異軸回轉(zhuǎn)聯(lián)動帶,下面分別計算其隨動模型的絕對位姿。
a.設模型運動關系表中與主動模型節(jié)點A存在同軸回轉(zhuǎn)聯(lián)動帶關系的隨動模型節(jié)點為B,模型節(jié)點B的旋轉(zhuǎn)角度為Q,查詢模型運動位姿表得到模型節(jié)點B的絕對位姿矩陣為T。設A旋轉(zhuǎn)軸的方向矢量在B 坐標系下為(k′1,k′2,k′3),起點坐標為(d′1,d′2,d′3)。則

根據(jù)計算出的旋轉(zhuǎn)軸信息和已知的旋轉(zhuǎn)角度,由計算機圖形學中繞任意軸旋轉(zhuǎn)變換通式,得到B模型的旋轉(zhuǎn)變換矩陣RB。則

b.設模型運動關系表中與主動模型節(jié)點A存在異軸回轉(zhuǎn)聯(lián)動帶關系的隨動模型節(jié)點為B,傳動比為S、則模型節(jié)點B的旋轉(zhuǎn)角度為θB=Q/S,查詢模型運動位姿表得到模型節(jié)點B的相關信息如下:
根據(jù)已知的旋轉(zhuǎn)軸信息和旋轉(zhuǎn)角度,由計算機圖形學中繞任意軸旋轉(zhuǎn)變換通式,得到B模型的旋轉(zhuǎn)變換矩陣為RB。則

在Pro/E、SolidWorks等三維建模軟件中,對運動模型進行幾何建模,將其轉(zhuǎn)化為*.iv格式的文件,以便將其導入到虛擬仿真環(huán)境中。
確定模型局部坐標系相對全局坐標系的位姿變換矩陣,構(gòu)建模型運動位姿數(shù)據(jù)表,模型運動位姿數(shù)據(jù)表主要用來儲存模型名稱、初始位姿和當前位姿。
確定模型旋轉(zhuǎn)軸參數(shù)和平移軸參數(shù),構(gòu)建模型運動參數(shù)數(shù)據(jù)表,模型運動參數(shù)數(shù)據(jù)表主要用來存儲模型名稱、參數(shù)代號、旋轉(zhuǎn)軸方向矢量、旋轉(zhuǎn)軸起點坐標和平移方向矢量。
實體模型之間因為存在真實的運動副而能夠自然實現(xiàn)運動的傳遞,而仿真環(huán)境中,虛擬模型之間并不存在真實的運動副,要實現(xiàn)運動的傳遞,改變模型的絕對位姿,達到仿真的效果,就必須對虛擬模型進行運動關系建模。本研究引入聯(lián)動帶描述虛擬模型之間的運動連帶關系,聯(lián)動帶是指主動模型與隨動模型之間的運動連帶關系。根據(jù)主動模型與隨動模型之間的運動連帶類型,可以將聯(lián)動帶分為回轉(zhuǎn)聯(lián)動帶、轉(zhuǎn)移聯(lián)動帶和平移聯(lián)動帶,如表1所示。

表1 聯(lián)動帶分類
通過對虛擬模型之間聯(lián)動帶的分析,建立模型運動關系數(shù)據(jù)表。模型運動關系數(shù)據(jù)表主要用來存儲模型名稱、關系代號、聯(lián)動帶類型、關聯(lián)零件、關聯(lián)零件參數(shù)代號和傳動比。
根據(jù)數(shù)據(jù)庫中模型運動位姿表提供的模型名稱和初始位姿讀入到模型節(jié)點鏈表,依次遍歷鏈表中的節(jié)點信息,利用樹形控件對模型進行可視化、交互式的管理,實現(xiàn)模型節(jié)點的添加、修改和刪除,按場景組織原則建立運動場景,如圖2所示,整個運動場景建模流程如圖3所示。場景圖中的分隔符節(jié)點保證模型運動的相對獨立性,修改模型節(jié)點相應的變換節(jié)點的矩陣域值,就能實現(xiàn)模型節(jié)點在運動場景中的重新定位,將場景圖導入Open Inventor的場景數(shù)據(jù)庫中[3-5],從而創(chuàng)建運動場景。


采用合理的任務劃分方法,可以提高執(zhí)行效率和運動精度,仿真任務根據(jù)粒度的不同,上層任務由粗粒度劃分組成,隨著任務層次的降低,逐漸細化為細的粒度。仿真任務按照由粗到細的粒度原則,將仿真任務劃分為4個層次,第1層為任務層,第2層為操作層,第3層為動作層,第4層為動素層[6]。
任務劃分過程:第1階段將任務單元劃分為操作單元;第2階段將操作單元劃分為動作單元;第3階段將動作單元劃分為動素單元;第4階段將動素單元轉(zhuǎn)化為動素指令。
仿真任務規(guī)劃的核心是確定動素指令,首先是對機械臂進行運動路徑規(guī)劃,確定路徑關鍵點;然后是建立機械臂運動學模型,完成機械臂運動學的正解與反解[7-8];接著在三維軟件Pro/E中對機械臂進行位姿定位,依次測量運動實體之間的相對變換矩陣,由機械臂運動學反解得出相應旋轉(zhuǎn)角度,最后對機械臂進行運動軌跡規(guī)劃,確定動素指令。
根據(jù)任務劃分的結(jié)果,建立模型運動規(guī)劃數(shù)據(jù)表。模型運動規(guī)劃數(shù)據(jù)表用來存儲執(zhí)行序列、任務名稱、操作名稱、動作名稱、動素名稱和指令編碼。
利用Visual C++6.0編程軟件建立了空間機械臂運動仿真平臺,運動仿真交互操作界面如圖4所示。下面以七自由度步行機器人搬運桁架任務為實例進行實驗驗證。

圖4 運動仿真交互操作界面
通過運動幾何建模、運動場景建模,完成如圖5所示空間機械臂仿真環(huán)境的構(gòu)建。分析空間機械臂各連桿之間的運動連帶關系,前置連桿與后置連桿聯(lián)動帶類型為同軸聯(lián)動,完成模型運動關系的建模。分析空間機械臂搬運桁架任務過程,任務在操作層次上分為進入作業(yè)空間、執(zhí)行作業(yè)任務和離開作業(yè)空間,任務在動作層面上分為機械臂展開、機械臂接近桁架和機械臂捕獲桁架,機械臂搬移桁架,任務在動素層面上分為調(diào)整、定位、對接和移位,通過空間機械臂運動路徑規(guī)劃,完成動素指令的確立,從而完成仿真任務的建模。

圖5 仿真環(huán)境
開啟運動仿真過程,循環(huán)遍歷數(shù)據(jù)庫中的4張數(shù)據(jù)表信息,實時計算機器人各連桿及桁架模型的絕對位姿,實現(xiàn)七自由度步行機器人搬運桁架任務的仿真,運動仿真過程如圖6所示。

圖6 七自由度步行機器人搬運桁架任務仿真過程
基于Pro/E幾何建模技術、Open Inventor虛擬場景技術、數(shù)據(jù)庫信息管理技術及機器人運動學規(guī)劃技術,利用Visual C++6.0編程軟件完成了空間機械臂運動仿真平臺的設計,實現(xiàn)了空間機械臂搬運桁架任務的仿真。實驗結(jié)果表明,所提出的運動仿真方法是有效的、便捷的,它使得操作者可以動態(tài)修改數(shù)據(jù)庫中的數(shù)據(jù)表信息來適應變化的場景和任務,因而具有良好的實用性,較強的通用性,充分利用了計算機圖形學最新的研究成果,減少圖形設計開發(fā)的工作量,可把精力更多用于機器人結(jié)構(gòu)設計、機器人控制算法、避障算法及路徑規(guī)劃算法的研究。
[1]熊有倫,丁 漢,劉 恩.機器人學[M].北京:機械工業(yè)出版社,1983.
[2]Jindong Tan,Ning Xi.Hybrid system design for singularityless task level robot controllers[C].Proceedings of the 2000IEEE International Conference on Robotics and Automation,2000.3007-3012
[3]侯國柱,湯學華.基于Open Inventor的機器人運動仿真技術研究[J].機械設計與制造,2010,(6):161-162.
[4]閻鋒欣,侯增選,等.Open Inventor程序設計從入門到精通[M].北京:清華大學出版社,2007.
[5]Huang Haiming,Liu Baowei,Liu Jingang.Building of virtual reality scene based on real scenery[J].Computer Engineering,2005,31(4):183-186.
[6]趙 迪,李世其,朱文革,等.基于任務級的空間遙操作研究[J].載人航天,2012,18(5):82-87.
[7]Manocha D,Canny J F.Efficient inverse kinematics for general 6Rmanipulators[J].IEEE Transactions on Robotics and Automation,1994,10(5):648-657.
[8]王雪松,許世范,郝繼飛.MOTOMAN機械手逆運動方程新的推導方法及求解[J].中國礦業(yè)大學學報,2001,30(1):73-76.