機器人三維仿真在機器人的研究開發中具有重要作用,是當前機器人研究領域中最新的研究方向之一。本系統利用VisualC++調用OpenGL圖形函數對三自由度并聯機器人及其工作環境進行建模和渲染。根據正解的結果顯示其三維工作空間;并根據給定參考點軌跡及逆解的結果實時、動態的顯示三自由度并聯機器人的工作過程。
1 引言
目前,機器人在社會生產及生活中應用得越來越廣泛,其中三自由度并聯機器人因其具有剛度大、承載能力強、累積誤差小、動力性能好等突出優點,隨機器人技術的發展已逐步成為一個重要的應用領域,很有應用前景,但是研究和開發得還不充分。在研究三自由度并聯機器人的過程中,對其進行三維運動仿真是各項仿真中一個很重要的組成部分。它對于驗證機器人組成、工作空間及進行軌跡規劃、控制算法、碰撞檢測等都具有非常重要的意義。同時隨著計算機性能的迅速提高,研制基于個人計算機的仿真軟件已成為仿真技術的發展趨勢。本文介紹了一個三自由度并聯機器人運動仿真系統,在Windows環境下配合AutoCAD建模工具使用VisualC++工具調用OpenGL圖形庫中的函數,實現三維運動仿真。
2 開發環境及AutoCAD、OpenGL簡介
本系統在WindowsNT平臺上進行開發,為了便于實現各種有關計算分析和圖形算法和保證其正確、可靠和高效率,選用VisualC++開發環境并采用面向對象(Ob,iect-oriented)的編程技術。
AutoCAD是眾多2D/3D.CAD/CAM系統中的典型代表,它是一個強大的建模工具,能較方便的提供一般三維幾何實體的精確建模。
OpenGL是近幾年發展起來的一個性能卓越的三維圖形標準,它是在SGI等多家著名的計算機公司的倡導下,以SGI的GL三維圖形庫為基礎制定的一個通用共享的開放式三維圖形標準。它獨立于窗口系統和操作系統,以它為基礎開發的應用程序可以十分方便的在各種平臺間移植。廣泛用于科學計算可視化、實體造型、CAD/CAM、模擬仿真等諸多領域。正是由于OpenGL具有建模方便、容易實現高度清晰感的實時三維仿真、獨立性和通用性等優點,它逐漸被廣泛應用于包括機器人在內的創新機構與機械設備的設汁和運動分析中。
3 基于OpenGL的三自由度并聯機器人三維運動仿真系統
3.1 建立幾何模型
OpenGL雖然提供了較強的圖形功能,但是三維建模功能相對較弱,輔助庫中提供的一些三維形體繪制函數,僅僅能夠完成對如球、立方體、多面體等簡單形體的繪制。除此以外,提供了一些基本的圖元,如點、線、多邊形等,利用這些基本圖元的組合可以完成簡單物體的建模工作,但對于復雜形體的建模,則是一件繁瑣的工作。
而現有的CAD系統,如AutoCAD、3DS和Pro/E等具有很強的三維繪圖能力。AutoCAD是其中杰出的代表,利用AutoCAD軟件完成對機器人各部分的幾何建模。如圖1所示。
[align=center]

圖1 部件圖例圖[/align]
3.2 數據轉換,生成顯示列表
利用CAD軟件完成對機器人各部分的建模之后,將標準CAD數據文件(如AutoCAD使用的為DXF文件格式)轉化為OpenGL的文件格式。數據的轉換作為一個單獨的模塊進行編程,模型在建立時需要注意模型的基準點,對于機構中的零部件是分開進行轉換的,需要考慮在模型重組時相互之間的裝配關系。步驟如下:①幾何模型網絡化,一般按三角形劃分網絡;②設定網絡中各節點的序號,讀出各節點的三維坐標;③設定三角形的序號,對于每個三角形給出對應的頂點序號;④計算每個三角形的表面法向量;⑤把每個三角形放在OpenGL的顯示列表中,以供需要時調用。以C++語言描述為例,其數據結構如下:
structCADObj {
charname[16];//機器人幾何模塊名稱
int NumFaces;//三角面列表中三角面的個數
int NumVerts;//頂點列表中點的個數
int NumMaps;//紋理坐標列表中紋理的個數
BOOL matrix;//有轉換矩陣否
int NumBindings;//綁定材質的個數
CADFace *facelist;//三角面索引列表
CADVert *vertlist;//頂點列表
CADMap *maplist;//紋理坐標列表
Float32 TraMatrix[3*4];
//3×3旋轉矩陣,3×1轉換矩陣
CADMatList * bindings;//綁定材質于三角面
3.3 投影、視口等的變換與顯示處理和色彩、材質、紋理、光照和背景的處理
三維物體是在三維坐標中定義的,但當計算機圖形的點繪制到屏幕上時,顯示在屏幕上的三維物體將是二維的圖像,因此,將幾何物體的三維坐標轉化到屏幕上的象素位置,需要經過以下三種變換(如圖2所示)。
[align=center]

圖2 OpenGL中圖形變換過程[/align]
①通過矩陣相乘所表示的變換。包括造型、視圖和投影等操作。這些操作包括旋轉、平移、縮放、反射、正交投影和透視投影。通常需要將幾種種變換結合起來繪制場景。
②由于場景是在一個矩形窗口中繪制,所以位于窗口之外的物體(或物體的一部分)必須被裁剪掉。在三維計算機圖形中,以裁剪面所構成的范圍對物體進行裁剪。
③通過視口變換在變換后的坐標和屏幕象素之間建立起對應關系。
在模型建立時,并沒有對模型進行色彩、材質、紋理的處理,在完成模型數據轉換后,調用OpenGL函數對其進行處理,這樣也可使模型的數據簡潔,轉換方便,提高開發的效率和系統的通用性。
3.4 機器人的位置分析正反解算法
機器人的位置分析是求解機器人的輸入與輸出構件之間的位置關系。當已知機構主動件的位置,求解機構的輸出件的位置和姿態稱位置分析的正解,若已知輸出件的位置和姿態,求解機構輸入件的位置稱為機構位置的反解。其中在求解工作空間時特別要注意空洞和空腔的存在。
該三自由度并聯機器人的機構位置的反解方法描述如下,在給定機構的各個結構尺寸后,利用幾何關系,可以很容易寫出上下平臺各鉸鏈點在各自坐標系中的坐標值,然后通過坐標變換即可求出上下平臺鉸鏈點在固定平臺坐標系中的坐標值(bi,Bj,,i=1,2,3)。這時3個驅動器桿長矢li(i=1,2,3)可在固定坐標系中表示為
li=bi-Bi i=1,2,3
從而得到機構的位置反解計算方程

上式是三個獨立的顯式方程,當已知機構的基本尺寸和上平臺的位置和姿態后,就可以利用上式求出3個驅動器的位移。一般求并聯機器人機構其位置反解相對容易,而位置正解卻反而十分困難,這對于6自由度并聯機器人是十分突出的,當并聯機器人的自由度小于6時,這種反差相對緩和一些。在給定3個桿長后,可以采用數值解法或解析解法得到動平臺中心點的位置和固定于運動平臺上的動坐標的方向余弦矩陣。從而進一步得到其工作空間。
3.5 機器人運動空間及預定運動軌跡的三維顯示
在以上各個模塊的功能實現基礎上即可實現三自由度并聯機器人機構及運動學仿真。首先選擇或輸入機構參數,系統根據所選擇的機構參數組建機構、計算出其工作空間并加以三維顯示,可以實時縮放和轉換角度觀察。
而軌跡規劃則可分為在任務空間和關節空間兩種,在任務空間規劃,路徑中有不可達空間以及有多值解問題的影響,除特殊情況外,一般多在關節空間進行規劃。軌跡是指每個自由度在運動過程中每時每刻的位置、速度和加速度。所謂機器人軌跡規劃,是根據作業要求,計算出機器人預期的運動軌跡,通常包括以下3方面的內容:①根據機器人的任務要求,對其運動路徑和軌跡進行描述。②根據所確定的軌跡參數,在計算機內部描述所要求的軌跡,這主要是選擇習慣規定以及合理的軟件數據結構。③對內部描述的軌跡進行實時計算,生成機器人運動的位置,速度和加速度實時值。
以下是一種3-RPS三自由度并聯機器人的機構仿真系統實例,如圖3所示。
[align=center]

圖3 3-RPS三自由度并聯機器人機構仿真

圖4 系統結構框圖[/align]
4 結論
本文介紹了一個機器人三維運動仿真系統。系統結構框圖如圖4所示。在Windows NT環境下,通過AutoCAD建立幾何模型,采用Visual C++工具和OpenGL圖形庫進行開發,在PC機上實現了機器人的實時仿真,滿足了研究工作的要求。而且該系統具有良好的可擴展性和交互性,在此基礎上,可進一步進行運動學、動力學、控制和規劃等方面的研究。