高海濤,韓亞麗,許有熊,徐 飛
GAO Hai-tao, HAN Ya-li, XU You-xiong, XU Fei
(南京工程學院 機械學院,南京 211167)
積木式機器人是一類以機械和電子結構件為基本組合模塊,以簡易、快速的積木拼裝為主要組裝方式的模塊機器人[1]。積木式機器人的基本組成如圖1所示。它一般分為了軟件和硬件兩大部分,其中軟件部分主要包括了一個集成編程環境,用以進行教育機器人控制程序的設計;硬件部分包括了模塊化、系列化的基礎構件、傳動部件、動力部件、控制器和傳感器等。利用這些部件,用戶可以根據自己的創意,自由地拼接組合成種類繁多的機器人系統。目前常見的積木式教育機器人如丹麥樂高公司的LEGO機器人[4],及德國的慧魚機器人[5],東南大學的教育機器人等。

圖1 積木式教育機器人
盡管積木式教育機器人產品眾多,然而這些機器人主要還是生產廠家提供的實體機器人,這雖然能夠提高學生的動手能力,但對培養學生更高層次的想象能力和創新能力尚存在差距。為此急需要建立一個與之相適應的機器人三維仿真平臺,以彌補其缺少仿真的缺陷。本文以東南大學關節型積木教育機器人為基礎,結合現代先進制造技術和機器人仿真技術,建立了一種集機器人設計、控制程序編寫及動態物理仿真等功能為一體的三維可視化機器人仿真平臺。

圖2 仿真平臺的框架結構
根據三維仿真平臺模塊化、可擴展的功能需求,建立了如圖2所示的積木式機器人三維仿真平臺框架。仿真平臺主要分為了人機交互層、框架層、應用層和數據管理層等四層體系結構。各層之間通過信息流和控制流相互關聯。仿真平臺的主要功能模塊包括:
1)三維顯示:主要用于積木式機器人模型的渲染以及三維場景的繪制。
2)圖形化界面:提供了用戶與系統之間的圖形化操作界面。用戶可以通過鼠標或鍵盤與系統進行交互,選擇進入各個場景或對場景中的對象進行操作或施加命令。
3)機器人設計:實現組合機器人的設計和組裝。
4)集成編程:用于控制程序的設計,其中包括了圖形化編程語言及類C編程語言兩種編程語言,以適應不同層次的用戶。
5)動態仿真:用于建立物理場景驗證教育機器人的功能,實現積木式教育機器人的逼真仿真。
6)數據管理器:用于管理教育機器人三維仿真平臺中的各種數據文件,實現文件的讀取,解析、轉換和存儲等功能。
本文主要對實現三維仿真平臺的模型表達、機器人裝配、及動態物理仿真等關鍵技術進行研究。
對虛擬機器人來講,首先要有高質量的三維幾何模型,才能夠進行機器人的三維搭建和仿真。
由于仿真平臺包括了機器人裝配仿真、編程、動態仿真等多個過程,每個階段所需的機器人模型有所不同,為了全面地表達積木式機器人模型所需的各種信息,本文提出了一種幾何與參數相結合的機器人表達模型(如圖3所示)。該模型以機器人幾何模型為基礎,補充機器人裝配和仿真所需要的裝配、剛體及功能等參數信息。實現教育機器人零件的完整表達。

圖3 機器人零件模型
機器人零件幾何模型由3DMax建立,然后導入到專門的設計器中補充裝配、剛體及功能等參數信息,常見的數據如關節孔位置、直徑、配合關系等[6]。采用形式化的描述方法,一個積木式機器人零件模型可以表示為:
<零件信息>:: =<基本信息> <特征信息>
<基本信息>:: =<零件標識> <零件名稱> <物理屬性> <坐標系統> <顯示屬性>
<物理屬性>:: =<質心> <質量> <轉動慣量> <摩擦系數>
<特征信息>:: =<顯示特征> <裝配特征> <剛體特征> <功能特征>
<顯示特征>:: =<幾何模型> <材質列表>
<幾何模型>:: =<面列表> <頂點列表> <法向量> <紋理坐標列表>
<裝配特征>:: =<特征ID> <特征名稱> <所屬零件名稱><幾何特征>…
…
<剛體特征>:: =<整體包圍盒> <層次包圍盒> <面片包圍盒>
…
與一般機器人裝配過程不同,積木式教育機器人主要是利用銷孔聯接或裝配關節點來進行組裝的[7]。為了簡化裝配過程,結合關節型教育機器人裝配特點,本文建立了一種基于裝配特征面的積木教育機器人快速裝配方法。該裝配方法首先選中待裝配零件的一個面作為裝配基準,然后通過移動和旋轉零件匹配關節孔實現裝配。
在三維環境中,可以利用射線檢測技術實現零件模型的鼠標拾取[8]。但由于由3dMax創建的零件模型只包含了零件的三角面片信息,未包含幾何體素信息[9],因而鼠標只能選取到零件,卻無法直接選取零件上的裝配面。要想實現裝配面的選取,必須尋找另外的途徑。
注意到幾何網格建立零件模型都具有同一裝配面上的三角面片法線相同的特點。利用這一特點,只要能夠獲取與射線相交的三角形面片及其法線方向,然后搜索相鄰區域內與該三角形法線方向相同的所有三角形,就可以間接地實現裝配面的選取。
在鼠標獲取到零件的控制權后,建立一條由鼠標點擊點發出的虛擬射線,并檢測與之相交的三角面片及法線方向[10]。設某一三角形面片的三個頂點為:P1,P2,P3,根據解析幾何原理,三角形面片及其內部所有點可以表示為頂點的加權平均值,即:

其中:e1,e2,e3分別為三個頂點的權重,并且滿足條件:e1≥0;e2≥0,e3≥0;且e1+e2+e3=1。于是,求射線與三角形的交點也就變成了求解如下方程:

將t,e2,e3提取出來作為未知數,移項并整理得,得到如下線性方程組:

利用克萊姆法則求解下列方程,并用向量混合積的形式表示:

其中:V1= P2- P1,V2= P3- P1,T = C- P1。
判斷射線與三角形面片是否存在著交點,實現三角面片的選取。在選取到與射線相交的三角面片后,求解其法線,搜索相鄰區域法線相同的三角形面片,并渲染這些三角形為高亮顏色,就可以間接地實現裝配面的選取與高亮顯示。

圖4 重合關節點的計算示意圖
1)可能裝配關節點的搜索
根據關節型機器人機器人裝配規則,在確定裝配基準面之后,兩待裝配零件的裝配面應處于同一平面上,于是,可以以其中某一零件上的關節點為中心建立一個與裝配環境世界坐標系Ow相平行的正方形區域,通過判斷靠近零件的關節點是否落入該正方形區域內來判斷操作者的意圖。如圖4所示,對于兩個待裝配零件桿件PartA和基板PartB,設待裝配零件PartA上某個關節點JA在裝配世界坐標系中的坐標為(xA,yA,zA),忽略Z軸影響(兩零件在同一平面上)。以關節點為中心建立一個平行于裝配面的的正方形區域a1a2a3a4該正方形區域的四個頂點坐標分別為:a1(xa-a/2,ya+a/2),a2(xa-a/2,ya-a/2),a3(xa+a/2,ya-a/2),a4(xa+a/2,ya+a/2),其中a為零件PartA關節孔的間距。判斷靠近物體的關節點是否在這個正方形區域內可以通過判斷關節點的坐標值是否在這四個頂點坐標之間來實現。算法的偽代碼如下:


該匹配算法只需要進行坐標值大小的比較就可以判斷可能裝配點,無需進行裝配關節點間的距離運算,這提高了匹配速度。

圖5 裝配關節點的匹配
2)裝配關節點匹配
當搜索到可能裝配點后,在裝配點處會克隆一個當前裝配物體的虛物體來標識兩物體的最終裝配位置。此外,對多孔桿件及板件而言,在計算重合點時,有可能出現多個重合關節點的情況。此時需要記錄所有重合關節點的位置,并在重合關節點位置處放置虛銷釘,由用戶選擇裝配位置(如圖5所示)。
教育機器人物理仿真場景通過對真實物理環境的模擬為虛擬教育機器人提供了一個擬實的作業場景,這可以讓虛擬教育機器人能夠在其中進行作業仿真和調試,從而給用戶一個直觀、真實的印象。
建立的積木式教育機器人動態仿真環境主要由碰撞檢測、碰撞響應、動力學仿真、控制系統仿真等五個模塊組成(如圖6所示)。動態仿真的循環過程如下:在每一仿真步長內,碰撞檢測模塊獲取環境中物體的位置和剛體(主要為包圍盒數據)信息,并調用碰撞檢測算法獲取場景中物體間碰撞信息,形成一個碰撞列表傳遞給碰撞響應模塊。而碰撞響應模塊則根據碰撞參數建立碰撞動力學模型,并求解碰撞響應,輸出碰撞(接觸)力。控制系統仿真模塊在程序的控制下,讀取傳感器信息,輸出控制參數,驅動執行器。最后,動力學仿真模塊根據碰撞響應結果以及相關的驅動參數建立動力學方程,進行動力學計算獲取下一時刻剛體的相互力學關系和,更新場景中的物體狀態。當上述循環過程達到一定的播放速度后,場景中的物體呈現出了連續運動的效果,從而實現物體物理運動的動態模擬[1]。下面我們將對其中的控制系統仿真方法進行詳細闡述。

圖6 物理仿真環境框架

圖7 虛擬單片機類圖
控制系統仿真主要是利用宿主計算機的資源和高級編程語言模擬控制器、傳感器、執行器的功能。其中,控制器仿真主要模擬了MCS-51系列單片機功能,讀取狀態信息,執行控制程序,輸出控制指令,虛擬傳感器則模擬真實傳感器功能,感知仿真環境中的相關信號,通過接口模塊將信號傳輸給虛擬控制器;而虛擬執行器則執行相關指令。為了保證事件的同步,虛擬控制系統仿真采用了幀時間作為仿真步長,實現整個控制系統的仿真循環運行。
參照常用的MCS-51系列單片機結構[11],結合面向對象編程語言的建模方法,建立如圖7所示的虛擬單片機仿真結構。該虛擬控制器能夠完全模擬MCS-51系列單片機的指令系統,輸入/輸出口、定時器/計數器、中斷及寄存器等軟硬件資源和功能。虛擬單片機中的一些功能模塊如由CPU仿真,數據寄存器仿真,程序寄存器仿真,I/O口仿真以及時鐘源仿真等分別利用了C++程序中的一些類、變量、數組及函數來實現。如RAM的存儲功能及讀寫功能就被封裝成一個RAM類進行模擬,其中寄存器的存儲為數組變量m_reg[4],而寄存器的讀寫功能則為函數RAM_Read()及RAM_Write()。
虛擬單片機的運行代碼如下:


隨著社會的發展以及對創新人才培養的需要,積木式教育機器人作為一種嶄新的教育手段和教學載體必將引起人們越來越多的關注。本文提出的積木式教育機器人三維仿真平臺綜合運用了3D圖形圖像技術、虛擬裝配、多媒體、機器人、智能控制等多種技術,彌補了現有機器人訓練過程不完備的缺點,為學生創新訓練提供了一個新的認知環境和訓練平臺。在實現機器人三維仿真平臺相關關鍵技術的基礎上,我們也利用開源三維圖形化引擎Ogre(Object-oriented Graphics Rendering Engine)及C++編程環境編程對機器人三維仿真平臺進行了實現(如圖8所示)。實際試用表明該仿真平臺具有良好的應用效果。

圖8 三維仿真平臺的應用
[1] 高海濤.教育機器人三維仿真平臺關鍵技術研究[D].南京:東南大學機械學院,2010.
[2] Nourbakhsh K.Crowley A. Bhave.The Robotic Autonomy Mobile Robotics Course: Robot Design, Curriculum Design and Educational Assessment[J].Autonomous Robots,2005(18):103-127.
[3] 李春華,崔世鋼,鄭桐,等.發展機器人教育培養綜合型創新人才的研究與實踐[J].天津工程師范學院學報,2005(4):61-63.
[4] LEGO GROUP.LEGO Robot Product [EB/OL].http: //www.lego.com/en-us/,2014-3-30.
[5] FISCHER GROUP.Fischertechnik model [EB/OL].http:// www. fischertewchnik. de/en/ home. Aspx,2014-3-30.
[6] 李明.教育機器人三維設計器的研究與實現[D].南京:東南大學機械學院,2008.
[7] 劉全良.基于LEGO的工程創新設計[M].北京:機械工業出版社,2006.
[8] 高海濤,韓亞麗,許有熊,等.虛擬教育機器人快速裝配方法研究[J]. 現代制造工程,2014(6):22-26.
[9] 王明強.計算機輔助設計[M].北京:科學出版社,2002.
[10] 王志強,洪嘉振,楊輝.碰撞檢測算法綜述[J].軟件學報,1999(10):545-550.
[11] 徐泳龍.單片機原理及應用[M].北京:機械工業出版社,2011.