摘要:在中小學教育機器人領域,首次實現了基于OpenGL的綜合性三維仿真軟件系統。首先介紹系統的設計目標和開發的硬件基礎,詳盡闡述了基于OpenGL的虛擬現實技術設計教育機器人系統軟件,實現教育機器人的虛擬制造#65380;三維作業編輯和仿真,具體展示了系統軟件的功能。最后總結了系統工作。
關鍵詞:教育機器人; OpenGL; 虛擬制造
中圖分類號:TP242文獻標志碼:A
文章編號:1001-3695(2008)02-0616-03
機器人學及應用已經涉足到人類生活的方方面面,從工業制造領域到日常生活應用,如家庭幫手或娛樂機器人[1]。機器人學也是極佳的國民工程素質教育選擇,因為它綜合了機械學#65380;電子學#65380;人工智能#65380;自動控制和計算機科學,不同教育階段的學生均可接觸,從中受益。面向我國中小學的機器人教育#65380;制作#65380;比賽均已在不同層次和范圍內展開,樂高[2]#65380;廣茂達#65380;中鳴機器人是市場普遍認可的成熟產品,在功能模塊化設計和模型套件組合方面效果極佳,任務可以通過功能模塊組合實現,設定參數后執行。但是國內外市場產品普遍關注硬件開發,配套軟件簡單粗糙;注重比賽,反而忽視了基本原理教育。其一直存在如下問題,沒有很好地解決:
a)模塊與套件都是“黑盒子”,無法了解實現原理和細節, 而文獻[3~5]所做的主要工作是面向大學的。掌握機器人基本原理知識并實做,是低年級學生和老師的迫切要求。
b)市場化的機器人產品均提供輔助軟件,用戶可以通過流程圖或C語言程序編寫機器人程序。軟件界面一般都是二維操作,沒有或很少具備仿真功能。用戶必須具備硬件產品,才能驗證程序設計。
c)市場化機器人產品成本普遍較高,是普通學生和學校預算的切實壓力。除了購買成品套件,老師和學生基本別無選擇。
針對上述問題,本文基于“泰山”教育機器人設計并實現教育機器人綜合軟件系統。通過基于OpenGL的虛擬現實技術,提供機器人虛擬機構設計和編程仿真環境,用戶不必具備硬件機器人就可以完成機器人設計#65380;作業編制和仿真。軟件系統獨立于硬件,實現如下設計目標:a)虛擬機構設計。用戶在實做前,通過系統設計機器人機械部件和外部感觀,實現基本的虛擬制造,驗證設計。b)機器人作業編輯。提供基于模塊的三維流程圖界面,用戶可以利用已有功能模塊或自我定制模塊設計機器人程序,自動生成機器人代碼(C語言)。c)機器人作業三維仿真。用戶可設計比賽場地#65380;作業環境,設定機器人運動規則,仿真驗證機器人作業。
1“泰山”教育機器人的硬件實現
“泰山”教育機器人系統實現了一些基本的和擴展的功能,已完成的四個版本的機器人包括小學兩個版本#65380;中學兩個版本,足以作為軟件系統開發的基礎和試驗平臺。
基本功能包括前向移動#65380;后向移動#65380;避障#65380;聲音廣播#65380;溫度檢測#65380;光度感知#65380;火焰檢測#65380;地面灰度檢測和程序下載。這些基本功能可以用于小學教學,完成一些基本任務,如滅火和走迷宮。
擴展功能包括紅外測距#65380;超聲波測距#65380;聲音錄放#65380;遙控#65380;數字指南針定位#65380;無線通信#65380;無線圖像傳輸。有了這些擴展功能,機器人就可以執行比較復雜的任務,如足球比賽。
以陵陽(μ’nSPTM)公司生產的SPCE061A單片機為核心制作機器人控制主板,如圖1所示,滿足硬件開發的需要,具有較高的性價比。
圖2展示了“泰山”教育機器人的小學版,屬于移動機器人,它有兩個驅動輪和一個萬向輪。系統控制主板上面留有功能擴展接口,相關的工具如滅火風扇等可以駁接在上面。
2機器人軟件系統的架構與實現
軟件系統運行于Windows操作系統環境,采用C++和基于OpenGL的虛擬現實技術。
軟件系統是面向低年級學生的,所以集成了虛擬現實技術可以提供友好的人機界面,增進系統的表現能力和交互水平。這樣系統可以更加有吸引力,更加直觀自然,也更容易讓學生在操作虛擬或現實的機器人時學習機器人知識。
軟件涵蓋以下五部分的工作。其中,涉及OpenGL封裝#65380;虛擬制造#65380;三維流程圖和仿真的工作擁有全部自主知識產權。
a)利用C++面向對象的封裝OpenGL。
b)構建虛擬現實系統內核。
c)實現虛擬機械制造和機器人機構設計。
d)實現編程接口,包括流程圖#65380;自動代碼生成#65380;代碼編譯和下載。
e)作業仿真。
2.1針對OpenGL進行面向對象的C++封裝
OpenGL是SGI的GL標準,是開放架構的三維圖形和渲染的軟件包,獨立于窗口系統與操作系統,可在不同平臺之間方便地移植。OpenGL基于基本庫函數工作,這些庫函數獨立分散,提供有限的系統集成開發能力。因此在系統中首先利用C++面向對象技術封裝OpenGL,使系統的設計目標能有效實現。
為封裝OpenGL,系統定義并實現了諸多對象類。最重要的是glObject類,它描述系統中的虛擬對象。glObject類定義一個虛擬對象的基本屬性和行為,系統中所有虛擬對象均由此派生。glObject類可讀入VRML#65380;AutoCAD或3DS格式的對象數據文件。系統中每個虛擬對象統一調用drawGL()接口在屏幕上繪制渲染自己,可以按照現實世界中實物情況或用戶的設計表現對象的形狀#65380;大小#65380;材質#65380;紋理#65380;光線效果和運動。
為實現虛擬機械制造或定義對象運動,設計了 autoFix()接口。這個函數自動組裝兩個給定虛擬對象,組裝可以嚴格依據現實世界中實物的空間關系和傳動關系。
系統的MotionR類負責對象的運動規劃和調度。每個對象均有一個定時器,當對象的運動控制序列被賦值后,MotionR 就在定時器驅動下,沿著運動控制序列,驅動對象從當前運動點移動到下一個運動點。
圖3展示了一個由AutoCAD設計的6自由度機器人的關節基座。該對象被導入到“泰山”教育機器人系統中,并且在系統中虛擬對象的組裝關系和運動狀態將與現實情況或設計者的設計保持吻合。
2.2構建虛擬現實系統內核
圖4為軟件系統虛擬現實內核的架構。當一個虛擬對象從AutoCAD文件或3DS文件或其他數據模型中導入時,由場景對象來接收它。一個場景就是由系統定義的容器類,負責具體管理和操作虛擬對象,每個場景存活于一個離散的線程中。在一個應用中,場景管理器可以同時管理若干個場景。
場景為所包含的虛擬對象提供了工作空間和用戶視圖。在場景中用戶可以不同方式來操作對象(圖5),如材質編輯#65380;自動組裝#65380;運動定義#65380;空間齊次線性變換等。所有操作和場景過程均可以被錄制成AVI格式的錄像或被抓拍成BMP格式的照片。整個場景或其中若干組合對象可以導出成為一個新的虛擬對象。圖6顯示了系統軟件的錄像和抓拍面板,對于記錄工作過程和制作課程演示非常有用。
2.3實現虛擬機械制造和機器人機構設計
雖然視覺效果上通過手動的OpenGL空間齊次變換也可以達到類似效果,但是精度和運動關系是沒有保證的。場景提供了虛擬對象的自動裝配功能。圖7展示了這一過程。其中:(a)是未組裝的電機減速器和機器人手關節基座,這兩個部件均由AutoCAD設計并導入到當前場景中;(b)顯示了定義自動裝配關系時主要定義兩虛擬對象的裝配點#65380;裝配法線和裝配平面嚙合線;(c)是最后的裝配結果。現在就可以按照設計在電機和關節基座之間傳遞運動關系了。圖8和9顯示了“泰山”教育機器人的主體和從動輪的自動裝配過程。
自動裝配確保對象空間運動關系與現實情況或用戶設計嚴格一致。在此基礎上,運動定義驅動虛擬對象動作。虛擬對象均被賦值一個運動序列,每個序列由諸多運動控制點組成,每個點包含著運動控制參數,如到下一個控制點的時間間隔#65380;此間隔內是線性運動還是旋轉運動,以及相關速度等。從序列第一個控制點開始,虛擬對象在定時器觸發下依次遍歷下一控制點,直到序列結束,完成一個動作定義的執行。
圖10顯示了一個控制面板,在設定對象運動時,先選擇對象的碰撞檢測計算模型。不同的對象有不同的外形和大小,當對象在運動過程中時,應該為系統選擇最優的計算模式。當一個對象的幾何點面比較少時,計算碰撞可以包括對象中每個點面;而當對象的幾何點面較多或者外形較復雜時,可以選擇一個簡單的常規凸面幾何體作為對象的碰撞檢測計算模型,這樣的外包幾何體可以是球體#65380;圓柱體等。
這部分的工作提供了機器人機構的虛擬設計與驗證手段,使用戶在CAD設計之后不必物理加工就可以驗證機械設計,并為隨后的機器人作業仿真提供了基礎。
2.4流程圖編程界面的實現#65380;程序編譯和下載
對于低年級學生,有兩種常用方式編寫機器人程序,即利用流程圖和通過編寫程序代碼。對于大部分學生而言,前者簡易直觀,更有吸引力。圖11展示了“泰山”教育機器人的流程圖編程界面,用戶可以從任意角度觀察立體的流程圖,可以旋轉場景,拉近拉遠視角,用戶還能決定每個功能模塊的樣式。在圖11中上方第二個功能模塊就粘貼了六張不同的照片,有助于標志不同市場化機器人產品模塊或用戶自定義模塊,并使機器人編程有趣,激發學生想象力。
流程圖中的判斷模塊和循環模塊中的條件決定了機器人的行為模式。以“泰山”教育機器人為例,常用的條件如圖12所示,包括左方#65380;前方#65380;右方有障礙物,左輪壓線#65380;右輪壓線等,用戶可以自定義條件。當流程圖編程結束,用戶點擊“生成程序”按鈕,流程圖就在后臺轉換成了C 程序;后臺編譯成功后,通過端口下載到機器人硬件本體中執行。
不同的機器人產品有自己的模塊調用指令,以及編譯器與下載器,可以在流程圖編程時配置模塊指令#65380;編譯和下載指令。這樣軟件系統可以在成品機器人輔助軟件基礎上實現硬件相關的配置,針對具體機器人編程,進行虛擬作業仿真等額外功能。
2.5作業仿真
程序編寫完畢,可以先仿真而不是直接后臺編譯下載。當仿真效果達到了用戶預期設計,再選擇后臺編譯下載。這樣,即使用戶沒有購買實際的教育機器人,也能利用本系統軟件設計#65380;定義#65380;仿真#65380;驗證自己的機器人方案;而當用戶有能力實做機器人時,軟件系統也可以提供足夠的輔助支持,使用戶在軟件中操作虛擬機器人,仿真并完善制作方案。
機器人總是工作在特定的環境中,因此還要仿真工作環境。軟件系統內嵌了數十種基本的三維幾何體模型,如圖13所示,包括長方體#65380;圓柱體#65380;球體#65380;錐體#65380;彈簧體等。這些模型以及AutoCAD#65380;3DS等設計文件可以被導入到場景中成為虛擬對象,用戶可以很方便地在幾分鐘內構建一個虛擬機器人工作場地。圖14是小學版的機器人走迷宮的迷宮設計圖;圖15展示了系統軟件根據設計圖構造的虛擬迷宮。
下面以小學版的機器人走迷宮為例,說明軟件系統的作業仿真設計與實現。
1)地面設定和標定軟件系統中地面由有界矩形平面表示,地面的顏色#65380;大小和貼圖均可以設置改變。在地面上可顯示坐標網格,用來標定有關的位置,網格線型#65380;線粗#65380;顏色#65380;間隔均可調整,如圖16所示。
2)機器人檢測部位劃分和設定機器人的控制條件在流程圖中設定,具體到走迷宮機器人就是碰撞檢測及處理,實現行進控制。為了有效處理機器人碰撞檢測,針對機器人模型劃分了不同檢測部位(圖17)。其中:A區代表機器人正前方區域;B區代表機器人右方區域;C區代表機器人左方區域;D區代表機器人右后區域;E區代表機器人左后區域。
在實際仿真時,為簡化計算,如圖17(a)所示,尋找機器人小車的幾何形心,以此為圓心,設定的檢測碰撞范圍為半徑,設定垂直圓柱面和周圍環境進行碰撞檢測,如(b)中的圓。從形心發出的白線是機器人運動的主法線,以此法線為基準,把檢測碰撞劃分到A#65380;B#65380;C#65380;D#65380;E各區域中。
3)機器人算法一般機器人走迷宮會采用最右檢測方法貼右邊行進。圖18列出了常見的機器人碰撞檢測狀態。
a)情況A機器人正前方有障礙物:向左傳,直到貼右邊。
b)情況B機器人右邊有障礙物:平行障礙物前進設定步長,繼續檢測。
c)情況C機器人右方和右后方有障礙物:左傳直到平行障礙物,前進設定步長,繼續檢測。
d)情況D機器人左方有障礙物:向左傳,直到貼右邊。
e)情況E機器人左右前方均有障礙物:就地旋轉180°貼右邊,前進設定步長,繼續檢測;或者左右方均有障礙物則貼右邊,前進設定步長,繼續檢測。
f)情況F機器人前后右方都有障礙物:向左傳,直到貼右邊,前進設定步長,繼續檢測。
g)情況G機器人后方有障礙物:向右傳,直到貼右邊。
4)作業仿真在軟件系統中,用戶按照迷宮圖紙搭建好迷宮模型,設定機器人的條件約束就可以虛擬仿真機器人走迷宮了(圖19)。圖19中地面白線顯示了機器人的運動軌跡。在起始時,機器人可以在場地內指定的位置以任意方位開始運行。按照上述分析的碰撞檢測情況及處理算法,機器人可以在虛擬環境中自動檢測,完成迷宮作業。
3結束語
本文在教育機器人領域首次開發綜合的基于OpenGL的三維仿真軟件系統,在中小學的演示中受到好評和歡迎。軟件系統也可以應用于移動機器人的仿真研究和和應用中。下一步工作需要加強復雜環境下多機器人行為模式的算法研究以及傳感器仿真。
參考文獻:
[1]ASADA M,D’ANDREA R,BIRK A,et al. Robotics in edutainment[C]//Proc of IEEE International Conference on Robotics Automation. San Francisco, CA:[s.n.].2000:108-112.
[2]MARTIN F G,BUTLER D,GLEASON W M.Designing,story-telling and robots in irish primary education[C]//Proc of IEEE Systems,Man and Machine Conf. 2000:730-735.
[3]SALAZAR-SILVA G H, MARTINEIGARCIA J C,GARRIDO R. Enhancing basic robotics education on the Web[C]//Proc of American Control Conference. San Diego:[s.n.], 1999:312-317.
[4]PACK D J, AVANZATO R,AHLGREN D J, et al. Fire-fighting mobile robotics and interdisciplinary design-comparative perspectives[J].Digital Object Identifier, 2004,47(3):369-376.
[5]HSIU T, RICHARDS S, BHAVES A, et al. Designing a low-cost, expressive educational robot[C]//Proc of IEEE lRSJ Intl Conference on Intelligent Robots and Systems. Las Vegas, Nevada:[s.n.], 2003:168-169.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”