陳衛(wèi)華,李勇君
(中國(guó)民航飛行學(xué)院遂寧分院,四川遂寧 629000)
基于OpenGL航空工業(yè)機(jī)器人手臂運(yùn)動(dòng)學(xué)仿真
陳衛(wèi)華,李勇君
(中國(guó)民航飛行學(xué)院遂寧分院,四川遂寧 629000)
以兩種航空工業(yè)機(jī)器人 (SCARA/PUMA)為研究對(duì)象,將其三維模型轉(zhuǎn)換為STL文件。通過(guò)分析該三維模型的STL文件,研究數(shù)據(jù)存放的規(guī)律。在VS 2003的MFC中加載OpenGL的圖形編程庫(kù),讀取并顯示STL文件中的機(jī)器人模型。根據(jù)機(jī)器人建模知識(shí),進(jìn)行運(yùn)動(dòng)學(xué)仿真,實(shí)現(xiàn)驅(qū)動(dòng)模型實(shí)時(shí)顯示功能。該方法對(duì)機(jī)器人手臂運(yùn)動(dòng)學(xué)分析有一定的通用性,為航空產(chǎn)品加工、制造及維護(hù)提供參考。
三維模型;OpenGL;機(jī)器人手臂;運(yùn)動(dòng)學(xué)仿真
隨著航空產(chǎn)品制造業(yè)自動(dòng)化水平的不斷提高,機(jī)器人作為一種趨勢(shì),逐步進(jìn)入到航空產(chǎn)品生產(chǎn)、加工、制造及維護(hù)的各個(gè)領(lǐng)域。作為分析和研究工業(yè)機(jī)器人的重要環(huán)節(jié),仿真技術(shù)提供了一系列重要的運(yùn)動(dòng)學(xué)數(shù)據(jù)來(lái)源。長(zhǎng)期以來(lái),結(jié)構(gòu)設(shè)計(jì)者使用CAD和CAE軟件進(jìn)行仿真,這些軟件不但對(duì)工作計(jì)算機(jī)的硬件要求較高,不方便嵌入式移植,而且操作者需要較長(zhǎng)的熟悉時(shí)間?;谝陨闲枨螅疚淖髡叻治隽艘环N典型的三維CAD模型文件STL的數(shù)據(jù)格式;其后,利用OpenGL圖形編程函數(shù)庫(kù),在VS 2003的MFC讀取并顯示兩種航空工業(yè)機(jī)器人 (SCARA/PUMA)模型;最后,根據(jù)機(jī)器人建模的知識(shí),利用旋量法驅(qū)動(dòng)模型隨著關(guān)節(jié)角實(shí)時(shí)顯示,利用D-H法進(jìn)行運(yùn)動(dòng)學(xué)的正反解,在軟件中計(jì)算末端姿態(tài),顯示末端軌跡。
STL是業(yè)界公認(rèn)的一種CAD模型與RP軟件之間數(shù)據(jù)轉(zhuǎn)換的文件格式。目前,幾乎所有的三維CAD軟件都提供向STL文件轉(zhuǎn)換的功能,如soildworks、proe、ug等[1]。該格式使用一系列三角形小面片來(lái)擬合原CAD實(shí)體,即,將CAD表面離散成眾多三角面片[2]。式。
二進(jìn)制格式的STL文件結(jié)構(gòu)如下:二進(jìn)制STL文件用固定的字節(jié)數(shù)來(lái)給出三角面片的幾何信息。文件起始的80個(gè)字節(jié)是文件頭,用于存貯零件名;緊接著用4個(gè)字節(jié)的整數(shù)來(lái)描述模型的三角面片個(gè)數(shù),后面逐個(gè)給出每個(gè)三角面片的幾何信息。每個(gè)三角面片占用固定的50個(gè)字節(jié),依次是3個(gè)4字節(jié)浮點(diǎn)數(shù)(角面片的法矢量)3個(gè)4字節(jié)浮點(diǎn)數(shù) (1個(gè)頂點(diǎn)的坐標(biāo))3個(gè)4字節(jié)浮點(diǎn)數(shù) (2個(gè)頂點(diǎn)的坐標(biāo))3個(gè)4字節(jié)浮點(diǎn)數(shù) (3個(gè)頂點(diǎn)的坐標(biāo))個(gè)三角面片的最后2個(gè)字節(jié)用來(lái)描述三角面片的屬性信息。一個(gè)完整二進(jìn)制STL文件的大小為三角形面片數(shù)乘以50再加上84個(gè)字節(jié),總共134個(gè)字節(jié)。
由以上對(duì)STL文件的數(shù)據(jù)格式進(jìn)行分析,可知STL數(shù)據(jù)排列規(guī)則,便于格式化讀取。由于從三維CAD實(shí)體轉(zhuǎn)換STL文件之時(shí)就存在著巨大的數(shù)據(jù)冗余,因此在讀入模型數(shù)據(jù)后,需要去除冗余頂點(diǎn),減少畫面顯示載入和重繪時(shí)間,并建立三角面片之間的拓補(bǔ)關(guān)系[1,4]。
在opengl庫(kù)中提供了三角面片的顯示方法。優(yōu)化后的模型數(shù)據(jù)顯示,可利用如下程序:
文中選取4、6軸各一種典型結(jié)構(gòu) (SCARA/PUM A),如圖1、2所示,分別按照KUKA的KR5 scara R350和ABB的IRB 120工業(yè)機(jī)器人模型進(jìn)行分析。
圖1 4軸 (KR5 scara R350)幾何尺寸
圖2 6軸 (IRB 120)幾何尺寸
模型顯示步驟如下:
(1)繪制或下載工業(yè)機(jī)器人的CAD模型,保證各自由度由至少一個(gè)零件構(gòu)成;裝配之,構(gòu)建約束,使機(jī)器人處于復(fù)位狀態(tài),即各關(guān)節(jié)轉(zhuǎn)角置零。
(2)將整個(gè)裝配體轉(zhuǎn)換成多個(gè)STL文件。三角片面的個(gè)數(shù)由轉(zhuǎn)換時(shí)的精度選擇決定。
(3)在MFC的基于對(duì)話框的平臺(tái)上,編寫解析STL模型數(shù)據(jù)類,基于OpenGL的顯示類、機(jī)器人運(yùn)動(dòng)學(xué)類等。
文中在上述兩個(gè)機(jī)器人的官方網(wǎng)站上下載CAD模型,另存為STL模型,在程序中加載,如圖3、4所示。
圖3 4軸 (KR5 scara R350)三維模型
圖4 6軸 (IRB 120)三維模型
機(jī)器人手臂的運(yùn)動(dòng)學(xué)的模型建立方法一般有兩種:D - H 方法[5]和旋量法[6]。
為充分利用各方法的優(yōu)勢(shì),文中做運(yùn)動(dòng)學(xué)的分析時(shí)采用D-H法,而驅(qū)動(dòng)三維模型運(yùn)動(dòng)時(shí)采用旋量法。
由于每個(gè)STL模型都是由n三角面片構(gòu)成的,面片上的法向量也可以看成點(diǎn),即每個(gè)三角面片包含4個(gè)點(diǎn)。當(dāng)模型實(shí)體需要旋轉(zhuǎn)時(shí),可以看成n×4個(gè)點(diǎn)在旋轉(zhuǎn)。同時(shí),后端關(guān)節(jié)軸向量和軸上點(diǎn)也繞著前端的軸線旋轉(zhuǎn)。在旋轉(zhuǎn)時(shí),每個(gè)STL模型繞各自的軸,以各自的轉(zhuǎn)角旋轉(zhuǎn)。
在拖動(dòng)滑動(dòng)條時(shí),改變關(guān)節(jié)角度 θ1,θ2,...,θn的大小,驅(qū)動(dòng)模型隨之旋轉(zhuǎn),末端的姿態(tài)也同時(shí)計(jì)算并顯示出來(lái),如圖5、6所示。
圖5 4軸 (KR5 scara R350)正運(yùn)動(dòng)軌跡
圖6 6軸 (IRB 120)正運(yùn)動(dòng)軌跡
文中以6軸機(jī)器人為例,參照文獻(xiàn) [7-8]中解法,得到出8組逆解的表達(dá)式。在定時(shí)器OnTimer中,規(guī)劃下一步的姿態(tài),以此姿態(tài)求機(jī)器人逆解,在8組解中選取最接近的一組。在此軟件中,拖動(dòng)滑動(dòng)條,示教起始點(diǎn)P1并保存。再拖動(dòng)滑動(dòng)條,示教第二個(gè)位置,作為停止點(diǎn)P2。然后,機(jī)器人就沿著P1P2的方向以直線軌跡運(yùn)動(dòng),運(yùn)動(dòng)過(guò)程如圖7—9所示。
圖7 6軸 (IRB 120)示教起始點(diǎn)
圖8 6軸 (IRB 120)示教停止點(diǎn)
圖9 6軸 (IRB 120)運(yùn)動(dòng)過(guò)程
基于VS 2003調(diào)用OpenGL圖形庫(kù)中的函數(shù),通過(guò)分析3D模型STL文件,找到其中數(shù)據(jù)存放的規(guī)律。選取兩種航空工業(yè)機(jī)器人模型 (SCARA/PUMA),將其3D模型轉(zhuǎn)換為STL文件。在VS 2003的MFC中加載OpenGL的圖形編程庫(kù),讀取并顯示STL文件中的機(jī)器人模型。根據(jù)機(jī)器人手臂的幾何參數(shù)建立數(shù)學(xué)模型,對(duì)其進(jìn)行參數(shù)化三維造型,進(jìn)行運(yùn)動(dòng)學(xué)仿真,實(shí)現(xiàn)驅(qū)動(dòng)模型實(shí)時(shí)顯示。
[1]陳太喜,方亮,劉艷偉,等.基于OpenGL的STL數(shù)據(jù)模型建模方法[J].機(jī)床與液壓,2009,37(3):155 -158.
[2]陳秀明.基于OpenGL和STL的CAD系統(tǒng)實(shí)現(xiàn)[J].青??萍?,2008,15(1):78 -80.
[3]黃常標(biāo).分段沉淀/雕銑快速成型三維實(shí)體分段算法與刀具軌跡規(guī)劃研究[D].泉州:華僑大學(xué).2004.
[4]崔樹標(biāo),張宜生,梁書云,等.STL面片中冗余頂點(diǎn)的快速濾除算法及其應(yīng)用[J].中國(guó)機(jī)械工程,2001,12(2):173-175.
[5]付京遜.機(jī)器人學(xué)[M].北京:中國(guó)科學(xué)技術(shù)出版社1989.
[6]MURRAY Richard M,LI Zexiang,SASTRY S Shankar.A Mathematical Introduction to Robotic Manipulation[M].1994.
[7]熊友倫,丁漢,劉恩滄.機(jī)器人學(xué)[M].武漢:華中科技大學(xué)出版社,1993.
[8]http://www.abb.com.cn/product/seitp327/9a97 f1c3face-59624825762a0007df19.aspx?productLanguage=zh&country=CN.機(jī)器人[OL].
Kinematics Simulation of Aviation Industrial Robot Arm Based on OpenGL
CHENWeihua,LIYongjun
(Suining Sub-College,Civil Aviation Flight University of China,Suining Sichuan 629000,China)
By taking the two kinds of aviation indutrrial robots SCARA/PUMA as a study object,its three dimensional(3D)modelwas converted into the STL file.By analyzing the STL file of 3D model,the law of data storage was studied.In the VS 2003 MFC,through loading the OpenGL graphical programming library,the robotmodel in the STL filewas read and displayed.According to the robotmodeling knowledge,the kinematics simulation was carried out,which realized the drivermodel with real- time display function.Themethod is certain of universal to kinematics analysis of the robot arm,which provides references formachining,manufacturing and maintenance of aviation products.
Three-dimensionalmodel;OpenGL;Robot arm;Kinematics simulation
TP242.2
A
1001-3881- (2015)21-109-4
10.3969/j.issn.1001 -3881.2015.21.026
2014-08-23
陳衛(wèi)華 (1985—),男,碩士,工程師,從事活塞式發(fā)動(dòng)機(jī)維護(hù)工作。E-mail:984642603@qq.com。