翟敬梅, 郭培森, 徐 曉
(華南理工大學 機械與汽車工程學院, 廣州 510640)
基于WebGL的雙機器人運動仿真實驗平臺
翟敬梅, 郭培森, 徐 曉
(華南理工大學 機械與汽車工程學院, 廣州 510640)
結合當前工業(yè)機器人技術和發(fā)展,共享實驗教育資源,開發(fā)了基于B/S模式的雙機器人運動仿真實驗平臺。采用WebGL技術構建虛擬現(xiàn)實環(huán)境下機器人的三維模型,JavaScript語言實現(xiàn)機器人運動控制及事件響應等功能,HTML和CSS語言搭建了人機交互界面。仿真平臺包含了運動仿真模塊、障礙物生成模塊、運動狀態(tài)顯示模塊及運動控制模塊??刹捎每旖葜噶睢⒕幊毯蜋C器人插補點3種控制方式,實現(xiàn)單機器人運動規(guī)劃、雙機器人協(xié)作運動優(yōu)化及機器人避障規(guī)劃等多種仿真任務。平臺發(fā)布于遠程實驗教學網(wǎng)站,解決了當前設備資源不足等問題,在教學應用中達到了預期效果,獲得了學生的好評和認可。
工業(yè)機器人; 運動仿真; 實驗平臺
機器人是現(xiàn)代一種典型的光機電一體化產品,是機械學、計算機科學、電子學、自動控制、傳感器和人工智能等多學科新興技術的融合。目前我國已成為全球工業(yè)機器人最大市場,然而卻面臨著機器人領域巨大的人才缺口,其中一個主要原因是機器人的成本較高,在設備采購等方面不能滿足教學需求[1]。另一方面,為避免工程作業(yè)中操作不當引發(fā)機器人損壞或人員安全事故,需要一個可調試控制程序并在虛擬現(xiàn)實環(huán)境下模擬機器人真實作業(yè)的仿真平臺。為此,本文研發(fā)了一款基于WebGL的雙機器人運動仿真實驗平臺,可以實現(xiàn)機器人運動控制、避碰軌跡優(yōu)化和雙機器人協(xié)同作業(yè)等各種仿真任務,滿足不同的需求。
國內外在機器人仿真上已取得不少研究成果,其中有部分是借助商業(yè)軟件進行仿真,如SolidWorks二次開發(fā)[2-3]、RobotStudio仿真[4]、VRML和LabVIEW[5]以及ADAMS和Matlab[6-7]聯(lián)合仿真等。這些仿真平臺功能豐富、用戶界面友好,然而其運行依賴相應的軟件,可移植性不高,而且購買軟件也提高了成本。
OpenGL作為一個跨平臺的圖形接口,渲染三維圖形無需借助第三方軟件或插件。因此,基于OpenGL開發(fā)的仿真平臺[8]較好地解決了上述問題。然而,OpenGL無法在網(wǎng)頁上運行,不利于資源的廣泛共享。
WebGL允許使用JavaScript語言在網(wǎng)頁創(chuàng)建各種三維圖形,其內嵌于瀏覽器中[9],無需安裝其他軟件或插件,有效解決了網(wǎng)絡的共享。目前基于WebGL的機器人仿真平臺研究較少,現(xiàn)有文獻[10-12]大多運用WebGL技術在網(wǎng)頁中加載了機器人的三維模型,實現(xiàn)了單機器人Jog運動、直線插補等簡單運動仿真。
本文開發(fā)了一款基于B/S模式的雙機器人運動仿真實驗平臺。其中,服務器端存放機器人的STL模型文件和工作場景的貼圖文件,瀏覽器端的網(wǎng)頁使用WebGL進行實驗環(huán)境和機器人三維模型的繪制和渲染,模擬真實的機器人作業(yè)環(huán)境;JavaScript語言實現(xiàn)機器人運動控制、障礙物生成及瀏覽器事件響應等功能,實現(xiàn)機器人運動控制仿真;HTML和CSS語言開發(fā)人機交互界面,集成各功能模塊,實現(xiàn)雙機器人運動仿真網(wǎng)絡實驗平臺。
SCARA機器人和6自由度機器人是工業(yè)上應用廣泛的機器人類型。平臺選取4自由度固高SCARA機器人和6自由度的ABB IRB120機器人作為仿真對象。針對機器人運動控制和軌跡規(guī)劃這些核心技術,設計平臺主要功能如下:① 單機器人(SCARA或ABB)運動控制及軌跡規(guī)劃;② 機器人避碰路徑規(guī)劃及優(yōu)化;③ 雙機器人協(xié)同作業(yè)運動控制。
基于上述的功能要求,仿真平臺設計了如圖1所示的四大模塊——運動仿真模塊、障礙物生成模塊、運動狀態(tài)顯示模塊及運動控制模塊。運動仿真模塊實時顯示機器人的運動過程;障礙物生成模塊可在作業(yè)環(huán)境中添加靜態(tài)或運動障礙物;運動狀態(tài)顯示模塊可實時更新機器人各關節(jié)及末端的運動狀態(tài)參數(shù);運動控制模塊包含了快捷指令控制和編程控制兩種方式。
圖1 雙機器人運動仿真平臺功能模塊關系圖
2.1 機器人運動學模型
圖2 ABB IRB120機器人D-H坐標系
(1)
其中,αi-1表示連桿轉角,ai-1表示連桿長度,θi表示關節(jié)角,di表示連桿偏距。
2.2 機器人運動狀態(tài)顯示
(2)
2.3 機器人運動控制
為了適應不同的需求,平臺為運動控制模塊開發(fā)了快捷指令控制和編程控制兩種方式??旖葜噶羁刂剖峭ㄟ^輸入運動參數(shù),并點擊按鈕發(fā)送運動指令進行。這種控制方式每次調用一個運動函數(shù),可以完成機器人Jog運動、兩點間的直線插補或圓弧插補等簡單的運動。
建立機器人運動模型、軌跡優(yōu)化和避碰路徑優(yōu)化等算法,通過編程可實現(xiàn)機器人各種簡單或復雜的運動控制。編程控制提供了輸入運動指令和輸入插補點兩種控制方式。運動指令控制模擬了離線編程,需按照格式輸入一系列的運動控制函數(shù),使機器人或障礙物連續(xù)完成多個點間的插補運動。
考慮到平臺所使用運動控制函數(shù)的局限性,設計了更加靈活的插補點控制方式,用戶可根據(jù)運動規(guī)劃算法,使用自己熟悉的編程語言生成機器人一系列插補點對應的關節(jié)變量(障礙物插補點則對應其位姿),并輸入平臺對應的運動控制文本框,實現(xiàn)預期的運動仿真。編程控制的流程如圖3所示。
圖3 編程控制流程圖
由于WebGL的原生API開發(fā)效率低,故使用WebGL的第三方庫Three.js框架進行開發(fā),提高開發(fā)效率[13]。要將物體渲染到網(wǎng)頁中,Three.js程序至少要包括場景(Scene)、攝像機(Camera)和渲染器(Renderer)[14]。構建WebGL場景的流程如圖4所示。
圖4 WebGL場景構建流程圖
3.1 機器人及實驗場景建模
對于工作臺、坐標系等場景模型,由于形狀較規(guī)則,可直接調用Three.js自帶的函數(shù)繪制。
由于機器人的零部件形狀復雜,直接調用Three.js的函數(shù)進行繪制將使過程變得繁瑣。因此,首先使用SolidWorks軟件建立機器人各零部件模型并另存為STL文件,然后使用Three.js框架中STLLoader.js庫的load函數(shù)加載到WebGL場景中,最后根據(jù)機器人的連桿參數(shù)設置各模型對象的rotation和position屬性值,將各零部件裝配成機器人。
3.2 障礙物建模
為了實現(xiàn)仿真平臺的避碰仿真功能,開發(fā)了障礙物仿真模塊。該模塊支持添加圓柱(正n棱柱)、圓錐(正n棱錐)及球體這3種形狀的障礙物,同時允許設置不同的顏色、幾何尺寸及初始位姿參數(shù),最后調用Three.js的函數(shù)繪制障礙物并添加到場景中。
3.3 鼠標交互設計
為了能從多角度、多尺度觀察仿真場景以及便捷地操作障礙物,在WebGL窗口開發(fā)了鼠標交互的功能。
(1) 場景的變換。場景的變換包括旋轉場景和縮放場景,分別由鼠標光標的移動和滾輪控制。在WebGL窗口所在的HTML元素添加鼠標移動事件onMouseMove、鼠標滾輪事件onmousewheel(適用于IE等瀏覽器)及DOMMouseScroll(適用于Firefox瀏覽器),分別記錄光標位移量和滾輪變化量,然后乘上適當?shù)谋壤禂?shù)轉換為旋轉角度和縮放的倍數(shù),傳入模型對象的rotation和scale屬性,實現(xiàn)場景的變換。
(2) 障礙物的拾取。當場景中存在不止一個障礙物時,如果根據(jù)障礙物的ID或者索引選擇操作障礙物,會使過程變得復雜。這里使用基于鼠標拾取操作障礙物的方法,用戶可通過鼠標點擊目標障礙物,進行刪除或者運動控制操作,使該過程更為方便快捷。
Three.js將對象拾取的代碼進行封裝,只需使用THREE.Projector類和THREE.Raycaster類,便可返回鼠標點擊對象的信息。障礙物的拾取操作如圖5所示(以刪除障礙物為例)。若點選運動控制,則會將編程控制的選項卡切換到當前選擇的障礙物,以便控制該障礙物運動。
圖5 障礙物的拾取操作圖
為了將上述各模塊集成到網(wǎng)頁中,在HTML文件中使用語句“”引用各模塊對應的JavaScript程序文件。另外,在HTML文件上添加按鈕、文本框等控件,并使用CSS語言對控件樣式進行修飾。圖6顯示了仿真平臺主界面及其相應的功能。圖7顯示了雙機器人避碰仿真的部分作業(yè)過程,機器人末端和障礙物運動軌跡如圖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 雙機器人避碰仿真過程
ABB機器人和SCARA機器人設置在一個有重疊的工作空間,有一個靜止障礙物(半徑40 mm,高180 mm的綠色圓柱體)和一個移動障礙物(半徑70 mm,高200 mm的紅色圓柱體)。世界坐標系O-XY設定于SCARA的基坐標上,ABB機器人末端以10 mm/s的速度從點A(480,240)向點B(380,-240)運動,SCARA機器人末端以20 mm/s的速度從點C(100,400)向點D(400,0)運動,靜止障礙物位于點E(200,180),移動障礙物以20 mm/s的速度從點F(400,350)沿著Y軸負方向開始運動。
使用插補點控制方式進行機器人運動仿真。紅色曲線表示SCARA機器人末端軌跡,藍色曲線表示ABB機器人末端軌跡。圖7(a)、(b)表示在沒有遇到障礙物時,兩機器人向各自的目標點運動;圖7(c)、(d)表示SCARA機器人正避開靜止障礙物,ABB機器人正避開移動障礙物;圖7(e)~(g)表示兩機器人在相互避障;圖7(h)表示兩機器人都成功地運動到各自的目標點。
圖8 機器人末端和障礙物運動軌跡圖
該仿真實驗環(huán)境及避碰軌跡規(guī)劃算法均與文獻[15]的雙機器人避碰實驗相同,仿真實驗結果也與其實驗結果一致,驗證了雙機器人運動仿真實驗平臺的可靠性。
為實現(xiàn)共享機器人教育資源的需求,利用WebGL和JavaScript語言開發(fā)了運動仿真模塊、障礙物生成模塊、運動狀態(tài)顯示模塊及運動控制模塊四大模塊,并集成到利用HTML和CSS語言開發(fā)的用戶界面,建立了基于B/S模式的雙機器人運動仿真實驗平臺,可完成單機器人運動規(guī)劃、雙機器人協(xié)作運動及機器人避障軌跡規(guī)劃等仿真任務。該仿真平臺在華南理工大學機械基礎遠程實驗教學平臺發(fā)布,實現(xiàn)教學資源的全社會共享,有效解決當前設備資源不足問題,把實驗的“時間、空間、深度、廣度”最大限度延伸,在教學應用中達到預期效果,獲得了學生的好評。
[1] 楊 薇, 葉 暉, 胡 威. 仿真教學應用在工業(yè)機器人技術課程教學中的必要性[J]. 科技視界, 2014(32):18-36.
[2] 黃曉辰, 張明路, 李滿宏, 等. 基于SolidWorks二次開發(fā)的三維實時運動仿真方法[J]. 機械設計, 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] 周思遠. 機器人學虛擬實驗系統(tǒng)的設計與實現(xiàn)[D]. 北京: 北京郵電大學, 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]. 杭州: 浙江大學, 2016.
[14] 李連中. 融合M2M的多機器人智能協(xié)作方法研究[D]. 廣州: 華南理工大學, 2016.
[15] 翟敬梅, 徐 曉, 黃 平, 等. 機械基礎遠程實驗教學平臺的設計與建設[J]. 實驗技術與管理, 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年度廣東教育教學成果獎培育項目(Y1162460),2015年華南理工大學“探索性實驗”教學項目(Y1150300),2016年廣東省教研教改項目,2017年教育部本科深改工程項目(Y9170290)
翟敬梅(1967-),女,遼寧海城人,博士,教授,主要研究方向:機械設計理論教學和實驗教學、機器人技術與人工智能。
Tel.:15360541562 ; E-mail:mejmzhai@scut.edu.cn
G 642.423
A
1006-7167(2017)08-0112-05