Kinematics analysis and simulation of six joint robot based on OpenGL
歐陽旭東,胡曉兵,付柯錦,徐興偉
(四川大學(xué) 制造科學(xué)與工程學(xué)院,成都 610065)
OUYANG Xu-dong, HU Xiao-bing, FU Ke-jin, XU xing-wei
?
基于OpenGL的六關(guān)節(jié)機器人運動學(xué)分析與仿真
Kinematics analysis and simulation of six joint robot based on OpenGL
歐陽旭東,胡曉兵,付柯錦,徐興偉
(四川大學(xué) 制造科學(xué)與工程學(xué)院,成都 610065)
OUYANG Xu-dong,HU Xiao-bing,FU Ke-jin,XU xing-wei
摘要:對于自主設(shè)計的六關(guān)節(jié)機器人,運用D-H法建立機器人的關(guān)節(jié)坐標(biāo)系,求解出正逆運動學(xué)方程,在Visual C++環(huán)境下利用OpenGL圖形庫構(gòu)造機器人實體仿真模型,并進(jìn)行機器人正逆運動學(xué)仿真。仿真結(jié)果直觀反映了機器人末端位姿和動態(tài)過程,驗證了機器人運動學(xué)求解的正確性,機器人結(jié)構(gòu)設(shè)計合理,為研究動力學(xué)分析、軌跡規(guī)劃奠定了基礎(chǔ)。
關(guān)鍵詞:機器人;運動學(xué);OpenGL;仿真
機器人的運動學(xué)分析是研究機器人學(xué)的基礎(chǔ),是確定機器人在特定工況下動力學(xué)分析、軌跡規(guī)劃和運動控制的前提[1]。為實現(xiàn)機器人運動學(xué)的快速求解與分析,需要使用仿真軟件對機器人進(jìn)行動態(tài)仿真,最常用的是MATLAB中的Toolbox工具箱,功能齊全,但是圖形過于簡單,不能直觀有效的反映機器人的末端位姿與動態(tài)過程[2,3]。由于OpenGL是高性能的開放式圖形庫技術(shù),具有強大的圖形系統(tǒng)和優(yōu)越的應(yīng)用程序界面,因此在仿真分析上得到了廣泛的應(yīng)用[4]。
本文利用Visual C++和OpenGL混合編程技術(shù),構(gòu)造出機器人的實體仿真模型,并進(jìn)行正逆運動學(xué)仿真,對機器人運動學(xué)模型進(jìn)行驗證。
1.1機器人D-H運動學(xué)模型的建立
在進(jìn)行機器人的運動學(xué)分析時,Denavit-HartenBerg表示法是種簡單且廣泛應(yīng)用的方法[5]。自主設(shè)計的六關(guān)節(jié)機器人,其結(jié)構(gòu)模型如圖1所示。運用D-H法對機器人進(jìn)行運動學(xué)建模,圖2為建立的機器人連桿坐標(biāo)系,相應(yīng)的各桿件結(jié)構(gòu)參數(shù)和運動參數(shù)如表1所示,其中di,ai和αi均為已知,θi隨著關(guān)節(jié)i的運動而發(fā)生變化。
圖1 六關(guān)節(jié)機器人結(jié)構(gòu)模型
圖2 六關(guān)節(jié)機器人連桿坐標(biāo)系
表1 六關(guān)節(jié)機器人的連桿參數(shù)
1.2機器人運動學(xué)正解
機器人運動學(xué)正解是指已知機器人各個關(guān)節(jié)的角度,求解機器人末端執(zhí)行器坐標(biāo)系在基礎(chǔ)坐標(biāo)系中位置和姿態(tài)的過程。在建立的D-H模型中,第i連桿坐標(biāo)系相對于第i-1連桿坐標(biāo)系的其次變換矩陣,滿足以下公式:
1.3機器人運動學(xué)逆解
機器人逆運動學(xué)是指已知機器人的末端執(zhí)行器的位姿,求解機器人各個關(guān)節(jié)角度變量的問題,逆運動學(xué)算法的精度直接影響到機器人的補償精度[6]。利用關(guān)節(jié)變量所對應(yīng)的逆矩陣分別去左乘運動學(xué)方程公式(2)的兩邊,得到關(guān)節(jié)變量的函數(shù)方程,然后讓方程兩邊的元素相等就可以把各個關(guān)節(jié)變量分離出來,計算出它們的角度。
同理可求得:
其中,角度θ4是在θ4≠0的前提下求得,且:
圖3為六關(guān)節(jié)機器人的運動學(xué)仿真流程圖。首先在Visual C++中生成單文檔的應(yīng)用程序,設(shè)置相應(yīng)的工程環(huán)境,然后調(diào)用OpenGL軟件包。在完成維圖形應(yīng)用環(huán)境初始化以后,利用Draw()函數(shù)中的glTranslatef()和glRotatef()完成機器人坐標(biāo)系的轉(zhuǎn)換;利用auxSolidBox()和gluCylinder()函數(shù),按照設(shè)計的機器人尺寸對機器人各個部件進(jìn)行實體繪制,裝配后得到機器人的實體仿真模型,然后就能進(jìn)行機器人運動學(xué)正逆解的計算和仿真。
圖3 六關(guān)節(jié)機器人運動學(xué)仿真流程圖
為實現(xiàn)系統(tǒng)運動學(xué)仿真,在VC++界面上添加Text、Button等控件,用以實現(xiàn)輸入、輸出及圖形仿真。最后得到機器人正運動學(xué)仿真界面(圖4)和機器人逆運動學(xué)仿真界面(圖5)。
圖4 機器人正運動學(xué)仿真界面
圖5 機器人逆運動學(xué)仿真界面
2.1正運動學(xué)仿真
在正運動學(xué)仿真界面中輸入表2中的輸入值,點擊“運動學(xué)正解”按鈕就能得到機器人末端執(zhí)行器的位姿參數(shù)。輸出結(jié)果見表2的輸出值列,輸出值僅列出向量ox,oy,oz和向量ax,ay,az的值,因為nx,ny,nz可以通過向量點乘求得。點擊“圖形仿真”即可得到機器人的當(dāng)前位姿,仿真結(jié)果如圖6(a)和圖6(c)所示。
表2 機器人正運動學(xué)求解
2.2逆運動學(xué)仿真
在機器人逆運動學(xué)仿真界面中,將表2的輸出值變成逆運動學(xué)求解中的輸入值,點擊“逆運動學(xué)求解”得到機器人各個關(guān)節(jié)角度的可能值。在求解過程中,角度轉(zhuǎn)動范圍檢驗會舍去不符合要求的解,將最后得到的解列入輸出值中,如表3所示??梢钥闯?,逆運動學(xué)求出的解其中組就是正運動學(xué)求解(表2)的輸入值,由此驗證了機器人逆運動學(xué)求解的準(zhǔn)確性。
表3 逆運動學(xué)求解
圖6 機器人仿真結(jié)果
本文利用D-H法建立機器人連桿坐標(biāo)系,根據(jù)運動學(xué)模型求解出機器人正逆運動學(xué)方程,在VC++環(huán)境下利用OpenGL圖形庫構(gòu)造機器人實體仿真模型,完成了機器人的運動學(xué)仿真,仿真結(jié)果直觀反映了機器人位姿和動態(tài)過程。并且利用具體數(shù)據(jù)驗證了正逆運動學(xué)求解及仿真的正確性,為進(jìn)步研究動力學(xué)分析、軌跡規(guī)劃奠定了基礎(chǔ)。
參考文獻(xiàn):
[1] 劉鵬,宋濤,贠超,等.焊接機器人運動學(xué)分析及軌跡規(guī)劃研究[J].機電工程,2013(4):390-394.
[2] 陳世健,張鐵.基于Matlab的噴涂機器人運動學(xué)分析[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2008(5):4-5.
[3] 左富勇,胡小平,謝珂,等.基于MATLAB Robotics工具箱的SCARA機器人軌跡規(guī)劃與仿真[J].湖南科技大學(xué)學(xué)報(自然科學(xué)版),2012(02):41-44.
[4] Dave Shreiner.OpenGL programming guide[M].China Machine Press,2010.
[5] Denavit J,Hartenberg R S. A kinematic notation for lower pair mechanisms based on matrices[J].ASME Journal of Applied Mechanics,1955,22(2):215-221.
[6] 劉松國.六自由度串聯(lián)機器人運動優(yōu)化與軌跡跟蹤控制研究[D].浙江大學(xué),2009:22-29.
[7] 王偉,謝明紅,周國義.6-DOF工業(yè)機器人逆解優(yōu)化及其工作空間的研究[J].機械與電子,2011(1):57-60.
作者簡介:歐陽旭東(1989 -),男,四川綿陽人,碩士研究生,研究方向為工業(yè)機器人與機器視覺。
基金項目:四川省科技支撐計劃項目(2014GZ0117)
收稿日期:2015-03-29
中圖分類號:TH12
文獻(xiàn)標(biāo)識碼:A
文章編號:1009-0134(2016)03-0038-03