翟敬梅, 郭培森, 徐 曉
(華南理工大學(xué) 機(jī)械與汽車工程學(xué)院, 廣州 510640)
基于WebGL的雙機(jī)器人運(yùn)動仿真實驗平臺
翟敬梅, 郭培森, 徐 曉
(華南理工大學(xué) 機(jī)械與汽車工程學(xué)院, 廣州 510640)
結(jié)合當(dāng)前工業(yè)機(jī)器人技術(shù)和發(fā)展,共享實驗教育資源,開發(fā)了基于B/S模式的雙機(jī)器人運(yùn)動仿真實驗平臺。采用WebGL技術(shù)構(gòu)建虛擬現(xiàn)實環(huán)境下機(jī)器人的三維模型,JavaScript語言實現(xiàn)機(jī)器人運(yùn)動控制及事件響應(yīng)等功能,HTML和CSS語言搭建了人機(jī)交互界面。仿真平臺包含了運(yùn)動仿真模塊、障礙物生成模塊、運(yùn)動狀態(tài)顯示模塊及運(yùn)動控制模塊??刹捎每旖葜噶?、編程和機(jī)器人插補(bǔ)點(diǎn)3種控制方式,實現(xiàn)單機(jī)器人運(yùn)動規(guī)劃、雙機(jī)器人協(xié)作運(yùn)動優(yōu)化及機(jī)器人避障規(guī)劃等多種仿真任務(wù)。平臺發(fā)布于遠(yuǎn)程實驗教學(xué)網(wǎng)站,解決了當(dāng)前設(shè)備資源不足等問題,在教學(xué)應(yīng)用中達(dá)到了預(yù)期效果,獲得了學(xué)生的好評和認(rèn)可。
工業(yè)機(jī)器人; 運(yùn)動仿真; 實驗平臺
機(jī)器人是現(xiàn)代一種典型的光機(jī)電一體化產(chǎn)品,是機(jī)械學(xué)、計算機(jī)科學(xué)、電子學(xué)、自動控制、傳感器和人工智能等多學(xué)科新興技術(shù)的融合。目前我國已成為全球工業(yè)機(jī)器人最大市場,然而卻面臨著機(jī)器人領(lǐng)域巨大的人才缺口,其中一個主要原因是機(jī)器人的成本較高,在設(shè)備采購等方面不能滿足教學(xué)需求[1]。另一方面,為避免工程作業(yè)中操作不當(dāng)引發(fā)機(jī)器人損壞或人員安全事故,需要一個可調(diào)試控制程序并在虛擬現(xiàn)實環(huán)境下模擬機(jī)器人真實作業(yè)的仿真平臺。為此,本文研發(fā)了一款基于WebGL的雙機(jī)器人運(yùn)動仿真實驗平臺,可以實現(xiàn)機(jī)器人運(yùn)動控制、避碰軌跡優(yōu)化和雙機(jī)器人協(xié)同作業(yè)等各種仿真任務(wù),滿足不同的需求。
國內(nèi)外在機(jī)器人仿真上已取得不少研究成果,其中有部分是借助商業(yè)軟件進(jìn)行仿真,如SolidWorks二次開發(fā)[2-3]、RobotStudio仿真[4]、VRML和LabVIEW[5]以及ADAMS和Matlab[6-7]聯(lián)合仿真等。這些仿真平臺功能豐富、用戶界面友好,然而其運(yùn)行依賴相應(yīng)的軟件,可移植性不高,而且購買軟件也提高了成本。
OpenGL作為一個跨平臺的圖形接口,渲染三維圖形無需借助第三方軟件或插件。因此,基于OpenGL開發(fā)的仿真平臺[8]較好地解決了上述問題。然而,OpenGL無法在網(wǎng)頁上運(yùn)行,不利于資源的廣泛共享。
WebGL允許使用JavaScript語言在網(wǎng)頁創(chuàng)建各種三維圖形,其內(nèi)嵌于瀏覽器中[9],無需安裝其他軟件或插件,有效解決了網(wǎng)絡(luò)的共享。目前基于WebGL的機(jī)器人仿真平臺研究較少,現(xiàn)有文獻(xiàn)[10-12]大多運(yùn)用WebGL技術(shù)在網(wǎng)頁中加載了機(jī)器人的三維模型,實現(xiàn)了單機(jī)器人Jog運(yùn)動、直線插補(bǔ)等簡單運(yùn)動仿真。
本文開發(fā)了一款基于B/S模式的雙機(jī)器人運(yùn)動仿真實驗平臺。其中,服務(wù)器端存放機(jī)器人的STL模型文件和工作場景的貼圖文件,瀏覽器端的網(wǎng)頁使用WebGL進(jìn)行實驗環(huán)境和機(jī)器人三維模型的繪制和渲染,模擬真實的機(jī)器人作業(yè)環(huán)境;JavaScript語言實現(xiàn)機(jī)器人運(yùn)動控制、障礙物生成及瀏覽器事件響應(yīng)等功能,實現(xiàn)機(jī)器人運(yùn)動控制仿真;HTML和CSS語言開發(fā)人機(jī)交互界面,集成各功能模塊,實現(xiàn)雙機(jī)器人運(yùn)動仿真網(wǎng)絡(luò)實驗平臺。
SCARA機(jī)器人和6自由度機(jī)器人是工業(yè)上應(yīng)用廣泛的機(jī)器人類型。平臺選取4自由度固高SCARA機(jī)器人和6自由度的ABB IRB120機(jī)器人作為仿真對象。針對機(jī)器人運(yùn)動控制和軌跡規(guī)劃這些核心技術(shù),設(shè)計平臺主要功能如下:① 單機(jī)器人(SCARA或ABB)運(yùn)動控制及軌跡規(guī)劃;② 機(jī)器人避碰路徑規(guī)劃及優(yōu)化;③ 雙機(jī)器人協(xié)同作業(yè)運(yùn)動控制。
基于上述的功能要求,仿真平臺設(shè)計了如圖1所示的四大模塊——運(yùn)動仿真模塊、障礙物生成模塊、運(yùn)動狀態(tài)顯示模塊及運(yùn)動控制模塊。運(yùn)動仿真模塊實時顯示機(jī)器人的運(yùn)動過程;障礙物生成模塊可在作業(yè)環(huán)境中添加靜態(tài)或運(yùn)動障礙物;運(yùn)動狀態(tài)顯示模塊可實時更新機(jī)器人各關(guān)節(jié)及末端的運(yùn)動狀態(tài)參數(shù);運(yùn)動控制模塊包含了快捷指令控制和編程控制兩種方式。
圖1 雙機(jī)器人運(yùn)動仿真平臺功能模塊關(guān)系圖
2.1 機(jī)器人運(yùn)動學(xué)模型
圖2 ABB IRB120機(jī)器人D-H坐標(biāo)系
(1)
其中,αi-1表示連桿轉(zhuǎn)角,ai-1表示連桿長度,θi表示關(guān)節(jié)角,di表示連桿偏距。
2.2 機(jī)器人運(yùn)動狀態(tài)顯示
(2)
2.3 機(jī)器人運(yùn)動控制
為了適應(yīng)不同的需求,平臺為運(yùn)動控制模塊開發(fā)了快捷指令控制和編程控制兩種方式??旖葜噶羁刂剖峭ㄟ^輸入運(yùn)動參數(shù),并點(diǎn)擊按鈕發(fā)送運(yùn)動指令進(jìn)行。這種控制方式每次調(diào)用一個運(yùn)動函數(shù),可以完成機(jī)器人Jog運(yùn)動、兩點(diǎn)間的直線插補(bǔ)或圓弧插補(bǔ)等簡單的運(yùn)動。
建立機(jī)器人運(yùn)動模型、軌跡優(yōu)化和避碰路徑優(yōu)化等算法,通過編程可實現(xiàn)機(jī)器人各種簡單或復(fù)雜的運(yùn)動控制。編程控制提供了輸入運(yùn)動指令和輸入插補(bǔ)點(diǎn)兩種控制方式。運(yùn)動指令控制模擬了離線編程,需按照格式輸入一系列的運(yùn)動控制函數(shù),使機(jī)器人或障礙物連續(xù)完成多個點(diǎn)間的插補(bǔ)運(yùn)動。
考慮到平臺所使用運(yùn)動控制函數(shù)的局限性,設(shè)計了更加靈活的插補(bǔ)點(diǎn)控制方式,用戶可根據(jù)運(yùn)動規(guī)劃算法,使用自己熟悉的編程語言生成機(jī)器人一系列插補(bǔ)點(diǎn)對應(yīng)的關(guān)節(jié)變量(障礙物插補(bǔ)點(diǎn)則對應(yīng)其位姿),并輸入平臺對應(yīng)的運(yùn)動控制文本框,實現(xiàn)預(yù)期的運(yùn)動仿真。編程控制的流程如圖3所示。
圖3 編程控制流程圖
由于WebGL的原生API開發(fā)效率低,故使用WebGL的第三方庫Three.js框架進(jìn)行開發(fā),提高開發(fā)效率[13]。要將物體渲染到網(wǎng)頁中,Three.js程序至少要包括場景(Scene)、攝像機(jī)(Camera)和渲染器(Renderer)[14]。構(gòu)建WebGL場景的流程如圖4所示。
圖4 WebGL場景構(gòu)建流程圖
3.1 機(jī)器人及實驗場景建模
對于工作臺、坐標(biāo)系等場景模型,由于形狀較規(guī)則,可直接調(diào)用Three.js自帶的函數(shù)繪制。
由于機(jī)器人的零部件形狀復(fù)雜,直接調(diào)用Three.js的函數(shù)進(jìn)行繪制將使過程變得繁瑣。因此,首先使用SolidWorks軟件建立機(jī)器人各零部件模型并另存為STL文件,然后使用Three.js框架中STLLoader.js庫的load函數(shù)加載到WebGL場景中,最后根據(jù)機(jī)器人的連桿參數(shù)設(shè)置各模型對象的rotation和position屬性值,將各零部件裝配成機(jī)器人。
3.2 障礙物建模
為了實現(xiàn)仿真平臺的避碰仿真功能,開發(fā)了障礙物仿真模塊。該模塊支持添加圓柱(正n棱柱)、圓錐(正n棱錐)及球體這3種形狀的障礙物,同時允許設(shè)置不同的顏色、幾何尺寸及初始位姿參數(shù),最后調(diào)用Three.js的函數(shù)繪制障礙物并添加到場景中。
3.3 鼠標(biāo)交互設(shè)計
為了能從多角度、多尺度觀察仿真場景以及便捷地操作障礙物,在WebGL窗口開發(fā)了鼠標(biāo)交互的功能。
(1) 場景的變換。場景的變換包括旋轉(zhuǎn)場景和縮放場景,分別由鼠標(biāo)光標(biāo)的移動和滾輪控制。在WebGL窗口所在的HTML元素添加鼠標(biāo)移動事件onMouseMove、鼠標(biāo)滾輪事件onmousewheel(適用于IE等瀏覽器)及DOMMouseScroll(適用于Firefox瀏覽器),分別記錄光標(biāo)位移量和滾輪變化量,然后乘上適當(dāng)?shù)谋壤禂?shù)轉(zhuǎn)換為旋轉(zhuǎn)角度和縮放的倍數(shù),傳入模型對象的rotation和scale屬性,實現(xiàn)場景的變換。
(2) 障礙物的拾取。當(dāng)場景中存在不止一個障礙物時,如果根據(jù)障礙物的ID或者索引選擇操作障礙物,會使過程變得復(fù)雜。這里使用基于鼠標(biāo)拾取操作障礙物的方法,用戶可通過鼠標(biāo)點(diǎn)擊目標(biāo)障礙物,進(jìn)行刪除或者運(yùn)動控制操作,使該過程更為方便快捷。
Three.js將對象拾取的代碼進(jìn)行封裝,只需使用THREE.Projector類和THREE.Raycaster類,便可返回鼠標(biāo)點(diǎn)擊對象的信息。障礙物的拾取操作如圖5所示(以刪除障礙物為例)。若點(diǎn)選運(yùn)動控制,則會將編程控制的選項卡切換到當(dāng)前選擇的障礙物,以便控制該障礙物運(yùn)動。
圖5 障礙物的拾取操作圖
為了將上述各模塊集成到網(wǎng)頁中,在HTML文件中使用語句“”引用各模塊對應(yīng)的JavaScript程序文件。另外,在HTML文件上添加按鈕、文本框等控件,并使用CSS語言對控件樣式進(jìn)行修飾。圖6顯示了仿真平臺主界面及其相應(yīng)的功能。圖7顯示了雙機(jī)器人避碰仿真的部分作業(yè)過程,機(jī)器人末端和障礙物運(yùn)動軌跡如圖8所示。
圖6 仿真平臺主界面
(a) t=0 s
(b) t=5 s
(c) t=10 s
(d) t=20 s
(e) t=25 s
(f) t=30 s
(g) t=35 s
(h) t=46 s
圖7 雙機(jī)器人避碰仿真過程
ABB機(jī)器人和SCARA機(jī)器人設(shè)置在一個有重疊的工作空間,有一個靜止障礙物(半徑40 mm,高180 mm的綠色圓柱體)和一個移動障礙物(半徑70 mm,高200 mm的紅色圓柱體)。世界坐標(biāo)系O-XY設(shè)定于SCARA的基坐標(biāo)上,ABB機(jī)器人末端以10 mm/s的速度從點(diǎn)A(480,240)向點(diǎn)B(380,-240)運(yùn)動,SCARA機(jī)器人末端以20 mm/s的速度從點(diǎn)C(100,400)向點(diǎn)D(400,0)運(yùn)動,靜止障礙物位于點(diǎn)E(200,180),移動障礙物以20 mm/s的速度從點(diǎn)F(400,350)沿著Y軸負(fù)方向開始運(yùn)動。
使用插補(bǔ)點(diǎn)控制方式進(jìn)行機(jī)器人運(yùn)動仿真。紅色曲線表示SCARA機(jī)器人末端軌跡,藍(lán)色曲線表示ABB機(jī)器人末端軌跡。圖7(a)、(b)表示在沒有遇到障礙物時,兩機(jī)器人向各自的目標(biāo)點(diǎn)運(yùn)動;圖7(c)、(d)表示SCARA機(jī)器人正避開靜止障礙物,ABB機(jī)器人正避開移動障礙物;圖7(e)~(g)表示兩機(jī)器人在相互避障;圖7(h)表示兩機(jī)器人都成功地運(yùn)動到各自的目標(biāo)點(diǎn)。
圖8 機(jī)器人末端和障礙物運(yùn)動軌跡圖
該仿真實驗環(huán)境及避碰軌跡規(guī)劃算法均與文獻(xiàn)[15]的雙機(jī)器人避碰實驗相同,仿真實驗結(jié)果也與其實驗結(jié)果一致,驗證了雙機(jī)器人運(yùn)動仿真實驗平臺的可靠性。
為實現(xiàn)共享機(jī)器人教育資源的需求,利用WebGL和JavaScript語言開發(fā)了運(yùn)動仿真模塊、障礙物生成模塊、運(yùn)動狀態(tài)顯示模塊及運(yùn)動控制模塊四大模塊,并集成到利用HTML和CSS語言開發(fā)的用戶界面,建立了基于B/S模式的雙機(jī)器人運(yùn)動仿真實驗平臺,可完成單機(jī)器人運(yùn)動規(guī)劃、雙機(jī)器人協(xié)作運(yùn)動及機(jī)器人避障軌跡規(guī)劃等仿真任務(wù)。該仿真平臺在華南理工大學(xué)機(jī)械基礎(chǔ)遠(yuǎn)程實驗教學(xué)平臺發(fā)布,實現(xiàn)教學(xué)資源的全社會共享,有效解決當(dāng)前設(shè)備資源不足問題,把實驗的“時間、空間、深度、廣度”最大限度延伸,在教學(xué)應(yīng)用中達(dá)到預(yù)期效果,獲得了學(xué)生的好評。
[1] 楊 薇, 葉 暉, 胡 威. 仿真教學(xué)應(yīng)用在工業(yè)機(jī)器人技術(shù)課程教學(xué)中的必要性[J]. 科技視界, 2014(32):18-36.
[2] 黃曉辰, 張明路, 李滿宏, 等. 基于SolidWorks二次開發(fā)的三維實時運(yùn)動仿真方法[J]. 機(jī)械設(shè)計, 2014(12):12-15.
[3] Baizid K, Meddahi A, Yousnadj A,etal. Industrial robotics platform for simulation design[J]. Planning and Optimization based on Off-line CAD Programming. 2016, 68:03002.
[4] Xiao X, Li Y, Tang H. Kinematics and interactive simulation system modeling for robot manipulators[C]// IEEE International Conference on Information and Automation. IEEE, 2013:1177-1182.
[5] Yu D, Ding K. Dynamic Simulation and Analyzation of Arc Welding Robot[C]// International Workshop on Intelligent Systems and Applications. IEEE, 2011:1-4.
[6] Wen G, Xu L, He F. Offline Kinematics Simulation of 6-DOF Welding Robot[M]. IEEE Computer Society, 2009.
[7] Wang Y S, Gai Y X, Wu F Y. A robot kinematics simulation system based on OpenGL.[C]// IEEE, International Conference on Robotics, Automation and Mechatronics, Ram 2011. Qingdao, China, September DBLP, 2011:158-161.
[8] Matsuda K. WebGL Programming Guide[M]. 2013.
[9] Demin A, Dai Y X, Xin L I,etal. 3D VR kinematic robot simulation based on HTML5 and WebGL[J]. Journal of Northeastern University, 2014,35(4):564-568.
[10] 周思遠(yuǎn). 機(jī)器人學(xué)虛擬實驗系統(tǒng)的設(shè)計與實現(xiàn)[D]. 北京: 北京郵電大學(xué), 2014.
[11] Li L, Zhang K, Yang X. A Cloud-based framework for robot simulation using WebGL[C]// Sixth International Conference on Intelligent Systems Design and Engineering Applications. IEEE Computer Society, 2015:5-8.
[12] Parisi T. WebGL: Up and Running[M]. O’Reilly Media, Inc., 2012.
[13] 頓儒源. 基于WebGL的織物三維展示系統(tǒng)[D]. 杭州: 浙江大學(xué), 2016.
[14] 李連中. 融合M2M的多機(jī)器人智能協(xié)作方法研究[D]. 廣州: 華南理工大學(xué), 2016.
[15] 翟敬梅, 徐 曉, 黃 平, 等. 機(jī)械基礎(chǔ)遠(yuǎn)程實驗教學(xué)平臺的設(shè)計與建設(shè)[J]. 實驗技術(shù)與管理, 2012(4):84-89.
Motion Simulation Experimental Platform of Dual Robots Based on WebGL
ZHAI Jingmei, GUO Peisen, XU Xiao
(School of Mechanical and Automotive Engineering, South China University of Technology, Guangzhou 510640, China)
Combined with present technology and development of industrial robot, the motion simulation experimental platform of dual robots based on B/S pattern is developed to share resources of experimental education. WebGL technology is used to build a 3D model of robots in virtual reality environment. JavaScript language is used to realize robot motion control, event response and so on. HTML and CSS languages are used to build man-machine interface. The platform includes motion simulation module, obstacles generation module, display module and motion control module. There are three ways of shortcuts, programming or interpolation points to control robot motion and realize many kinds of simulation tasks, such as motion planning of single robot, coordinated motion optimization of dual robot and obstacle avoidance planning of robot. The platform solves the current problems such as insufficient equipment resources, achieves the desired results in teaching application and gets good comment and recognition from students after it is published on the remote experimental platform.
industrial robot; motion simulation; experimental platform
2016-12-10
2014年度廣東教育教學(xué)成果獎培育項目(Y1162460),2015年華南理工大學(xué)“探索性實驗”教學(xué)項目(Y1150300),2016年廣東省教研教改項目,2017年教育部本科深改工程項目(Y9170290)
翟敬梅(1967-),女,遼寧海城人,博士,教授,主要研究方向:機(jī)械設(shè)計理論教學(xué)和實驗教學(xué)、機(jī)器人技術(shù)與人工智能。
Tel.:15360541562 ; E-mail:mejmzhai@scut.edu.cn
G 642.423
A
1006-7167(2017)08-0112-05