999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于X3DOM的工業(yè)機(jī)器人虛擬樣機(jī)設(shè)計

2020-04-28 08:33:48徐玉飛何嶺松王宇順
實驗室研究與探索 2020年1期
關(guān)鍵詞:指令實驗模型

徐玉飛,何嶺松,王宇順

(華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,武漢 430074)

0 引 言

近年來隨著計算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和圖形圖像技術(shù)高速發(fā)展和教育部門重視程度的增加,虛擬樣機(jī)技術(shù)越來越多地應(yīng)用于各個學(xué)科的實驗教學(xué)中[1]。2017年,教育部指導(dǎo)高校開展新工科研究與實踐,倡導(dǎo)通過結(jié)合信息技術(shù)與工程教育的方式,達(dá)到提高工程教育的效率的目的[2]。在機(jī)器人學(xué)方面,由于實際實驗中可供學(xué)生操作的機(jī)器人數(shù)量有限,且學(xué)生作為初學(xué)者對機(jī)器人編程需要長時間構(gòu)思和調(diào)試才能達(dá)到理想效果,降低了實驗教學(xué)的效率,增大了實際操作的風(fēng)險。在機(jī)器人實驗教學(xué)中引入虛擬樣機(jī),讓學(xué)生在實驗課之前通過虛擬樣機(jī)進(jìn)行實驗訓(xùn)練,將實驗室調(diào)試程序的前期過程轉(zhuǎn)移到課前的網(wǎng)上進(jìn)行,可大幅度提高實際實驗課的效率[3-5]。

目前國內(nèi)外已有不少優(yōu)秀的工業(yè)機(jī)器人虛擬樣機(jī)的實現(xiàn)[6-8],如RobotStudio,Linux平臺上開源的ROS系統(tǒng)等。其中大部分平臺需要安裝復(fù)雜的軟件或插件,對電腦配置和運行環(huán)境有特定要求;一些商用平臺只提供特定廠商的機(jī)器人仿真,通用性較差。這些缺點在一定程度上限制了將它們直接作為機(jī)器人實驗教學(xué)平臺-使用的可能性。網(wǎng)頁是一種良好的跨平臺呈現(xiàn)形式,HTML5出現(xiàn)以后,極大的豐富了網(wǎng)頁的功能,弱化了瀏覽器對各種插件的依賴[9];同時,近年來出現(xiàn)的網(wǎng)頁圖形庫(Web Graphics Library,WebGL)、X3DOM(Extensible 3D+ Document Object Model,可擴(kuò)展三維模型語言+文檔對象模型,X3D+DOM,)等無插件網(wǎng)絡(luò)三維顯示技術(shù),更是將網(wǎng)頁的表現(xiàn)力提升到新的高度[10-11],并為基于網(wǎng)絡(luò)的無插件虛擬樣機(jī)應(yīng)用提供了很好的技術(shù)實現(xiàn)手段。

本文采用HTML5+X3DOM的技術(shù)方案來構(gòu)建網(wǎng)絡(luò)化無插件的工業(yè)機(jī)器人虛擬樣機(jī),可直接在瀏覽器上運行,具有很好的通用性和跨平臺性。

1 系統(tǒng)設(shè)計方案

HTML5廣義上是指包括HTML、CSS和JavaScript的一套技術(shù)組合。它在語義化、兼容性、多媒體支持等多方面進(jìn)行了改進(jìn),其中新增的canvas畫布元素允許JavaScript直接在網(wǎng)頁上繪制二維、三維圖形,為網(wǎng)頁三維顯示提供了基礎(chǔ)[2]。X3DOM是一個基于文檔對象模型(Document Object Model,DOM)的HTML5/可擴(kuò)展三維模型(Extensible 3D,X3D)集成模型,用于將三維場景顯示在瀏覽器上。X3DOM技術(shù)不僅實現(xiàn)了無插件的網(wǎng)頁三維顯示,而且與HTML5緊密結(jié)合,能通過DOM方法動態(tài)訪問模型的節(jié)點及屬性,將控制對象由模型文件細(xì)化到文件內(nèi)部節(jié)點,具有良好的發(fā)展前景[13]。

基于HTML5與X3DOM的工業(yè)機(jī)器人虛擬樣機(jī)的總體設(shè)計方案如圖1所示。圖中X3DOM模塊以運動單元和活動部件為基礎(chǔ),將機(jī)器人組裝成一個可控的模塊化三維虛擬模型,通過模型接口改變運動節(jié)點參數(shù)就可改變虛擬樣機(jī)的位姿;Javascript模塊負(fù)責(zé)進(jìn)行邏輯和數(shù)學(xué)運算,包括解析用戶指令、運動插補(bǔ)和運動學(xué)求解,并可將計算結(jié)果傳遞給X3DOM模塊以實現(xiàn)的虛擬樣機(jī)的驅(qū)動;UI模塊則負(fù)責(zé)提供機(jī)器人控制界面和X3D模型的顯示環(huán)境。另外,還提供了一個云服務(wù)模塊,用于虛實結(jié)合實驗時與云端服務(wù)器進(jìn)行通信,并實現(xiàn)與虛擬樣機(jī)外部的實驗室真實機(jī)器人的網(wǎng)絡(luò)連接,將學(xué)生在網(wǎng)頁虛擬樣機(jī)上調(diào)試完成的控制指令發(fā)送到真實機(jī)器人上,以觀察實際運行效果。

圖1 機(jī)器人虛擬樣機(jī)系統(tǒng)設(shè)計方案

2 機(jī)器人虛擬樣機(jī)的實現(xiàn)

2.1 機(jī)器人運動求解的實現(xiàn)

建立機(jī)器人運動學(xué)模型是實現(xiàn)運動求解的重要前提。機(jī)器人運動求解包括正向求解和逆向求解兩部分,前者是已知關(guān)節(jié)變量求末端位姿的過程,后者是已知末端位姿求關(guān)節(jié)變量的過程。

(1)

式中:c為cos;s為sin;ai-1為連桿長度;αi-1為連桿扭角;di為相鄰連桿的偏距;θi為相鄰連桿長度方向的夾角。

(2)

在JavaScript腳本中將正解算法封裝為函數(shù)kinematicsEquation(input),其邏輯流程如圖2(a)所示。kinematicsEquation函數(shù)接受關(guān)節(jié)變量[q1,q2,…,qn]為輸入變量,經(jīng)過正解輸出末端位姿[x,y,z,Ex,Ey,Ez],輸出變量將用于更新控制面板上機(jī)器人位姿參數(shù)或插補(bǔ)過程。

大多數(shù)工業(yè)機(jī)器人都滿足Pieper準(zhǔn)則[],運動學(xué)反解具有封閉解,可采用反變換法[]求取運動學(xué)反解。機(jī)器人運動學(xué)反解通常會得到多組解,可通過機(jī)器人機(jī)械結(jié)構(gòu)的限制排除部分不合理的解,剩余結(jié)果通過運動行程、運動時間、機(jī)器人功耗等指標(biāo)選擇一組最優(yōu)解。

在JavaScript程序中將反變換算法封裝為函數(shù)inverseKinematics(input),如圖2(b)所示。經(jīng)過反解后,若存在有效的反解,將輸出關(guān)節(jié)變量,用于更新控制面板上機(jī)器人關(guān)節(jié)參數(shù)并控制三維模型運動至對應(yīng)姿態(tài);若所有反解結(jié)果皆無效,說明該位姿對應(yīng)的目標(biāo)點為奇異點或超出工作范圍,函數(shù)輸出空值NULL,用于提醒用戶修改機(jī)器人運動指令,避開此點。

(a) kinematicsEquation函數(shù)

(b) inverseKinematics函數(shù)

2.2 X3DOM工業(yè)機(jī)器人三維顯示

在工業(yè)機(jī)器人的三維顯示中,X3DOM負(fù)責(zé)提供工業(yè)機(jī)器人的三維模型,HTML5為其提供顯示環(huán)境。X3DOM提供了基礎(chǔ)的建模方法,可以通過語言描述建立簡單的幾何形狀,如立方體、球體、圓柱體等,但這種方式不適合建立復(fù)雜形狀模型。考慮到機(jī)器人模型復(fù)雜,選擇在建立三維模型后導(dǎo)出為X3D文件,并將其嵌入X3DOM程序中。HTML文件在嵌入X3DOM程序前調(diào)用X3DOM庫(包含x3dom.js和x3dom.css),在運行時調(diào)用 WebGL的3DAPI 在瀏覽器上進(jìn)行3D圖形的實時渲染,實現(xiàn)無插件的網(wǎng)頁三維顯示。

為便于模型的運動控制,將機(jī)器人各部件單獨導(dǎo)出為X3D文件,再新建一個X3D裝配文件,調(diào)用各部件的X3D模型并進(jìn)行“虛擬裝配”:即根據(jù)連桿間的結(jié)構(gòu)關(guān)系進(jìn)行節(jié)點嵌套,根據(jù)連桿之間的位置和角度關(guān)系調(diào)整節(jié)點的translation或rotation屬性,如圖3所示。最后為整個場景設(shè)置合適的視點和燈光,形成完整的三維場景。HTML文件調(diào)用X3DOM庫后,可直接在HTML文檔的節(jié)點中插入X3D節(jié)點,調(diào)用裝配好的機(jī)器人X3D文件,機(jī)器人三維模型即顯示在網(wǎng)頁上。

經(jīng)過節(jié)點嵌套的機(jī)器人各部件之間具有父子關(guān)系,父節(jié)點的狀態(tài)變化會影響所有子節(jié)點的狀態(tài),這樣就將機(jī)器人三維模型封裝為一個外部可控的X3DOM虛擬樣機(jī)。例如,將關(guān)節(jié)4所在的節(jié)點繞X軸旋轉(zhuǎn)90°,就可實現(xiàn)旋轉(zhuǎn)關(guān)節(jié)4后面嵌套的所有模型一起繞X軸旋轉(zhuǎn)了90°。這與真實機(jī)器人的連桿運動關(guān)系保持一致。

2.3 工業(yè)機(jī)器人虛擬樣機(jī)實現(xiàn)

工業(yè)機(jī)器人的X3D模型嵌入HTML文件后,成為HTML的DOM模型的一部分,可以通過DOM方法來訪問和修改模型內(nèi)部節(jié)點的屬性。X3DOM的這種特性非常方便地控制機(jī)器人連桿的運動。

document.getElementById("rot1").

setAttribute('rotation', '0,0,1,3.14159');

上述代碼將rot1節(jié)點rotation屬性的值修改為‘0,0,1,3.14159’。rotation屬性值由4個數(shù)字組成,前3個數(shù)字組成一個三維空間內(nèi)的單位向量,指定旋轉(zhuǎn)軸的方向,第4個數(shù)字指定繞軸旋轉(zhuǎn)的弧度,因此上述代碼的幾何意義是將關(guān)節(jié)1繞Z軸旋轉(zhuǎn)180°。在此基礎(chǔ)上,將機(jī)器人的X3DOM模型封裝為一個模塊,接受關(guān)節(jié)變量[q1,q2,…,qn]為輸入,通過上述DOM方法依次修改關(guān)節(jié)對應(yīng)節(jié)點的rotation(旋轉(zhuǎn)關(guān)節(jié))或translation(移動關(guān)節(jié))屬性,即可將工業(yè)機(jī)器人模型各個關(guān)節(jié)旋轉(zhuǎn)/移動至指定的姿態(tài)。

將工業(yè)機(jī)器人的運動學(xué)求解模塊與工業(yè)機(jī)器人X3DOM模塊相結(jié)合,即可實現(xiàn)工業(yè)機(jī)器人虛擬樣機(jī)的基本功能。用戶可以通過關(guān)節(jié)控制和末端控制兩種方式控制機(jī)器人的運動:關(guān)節(jié)控制方法中,用戶在控制界面上改變機(jī)器人關(guān)節(jié)變量,關(guān)節(jié)變量傳入JavaScript腳本中,經(jīng)過運動學(xué)正向求解得到機(jī)器人末端位姿并顯示到界面上,同時關(guān)節(jié)變量數(shù)據(jù)被傳遞給X3DOM模塊,通過DOM方法控制各個連桿模型運動,機(jī)器人三維模型運動至對應(yīng)位姿;末端控制方法中,用戶在控制界面上改變機(jī)器人末端坐標(biāo)和姿態(tài),位姿變量傳入JavaScript腳本中,經(jīng)過運動學(xué)反向求解得到機(jī)器人關(guān)節(jié)變量并顯示到界面上,同時關(guān)節(jié)變量數(shù)據(jù)被傳遞給X3DOM模塊,通過DOM方法控制機(jī)器人三維模型運動至對應(yīng)位姿。

圖3 機(jī)器人模型的“虛擬裝配”

2.4 機(jī)器人指令解析與插補(bǔ)

工業(yè)機(jī)器人虛擬仿真實驗平臺的指令系統(tǒng)參考工業(yè)機(jī)器人控制語言RAPID語言[]建立,基本運動指令語句的結(jié)構(gòu)為:“MoveType Piont1 ( , Piont2) , Speed ,Zone,Tool;”,指令含義為:“運動類型 示教點1(,示教點2),速度參數(shù),轉(zhuǎn)角參數(shù),工具參數(shù);”。指令系統(tǒng)中有3種基本運動類型,分別是MoveJ:關(guān)節(jié)運動、MoveL:直線運動、MoveC:圓弧運動。除運動指令外,還包含一些簡單的信號處理指令,如“Set/Reset”可將數(shù)字輸出信號置位或復(fù)位,用于控制外部工具。

工業(yè)機(jī)器人虛擬實驗平臺也模擬了實際工業(yè)機(jī)器人的示教功能,在機(jī)器人特定的位姿狀態(tài)添加示教點,被標(biāo)記過的示教點信息被后臺記錄,同時也顯示在頁面上的示教區(qū)。設(shè)置示教點之后在機(jī)器人指令編程中可以直接調(diào)用已定義的示教點,簡化了編程,提高了機(jī)器人運動路徑的準(zhǔn)確性。

以指令編程方式控制機(jī)器人運動的邏輯流程如圖4所示。工業(yè)機(jī)器人虛擬樣機(jī)中,用戶在圖形界面上輸入的指令以字符串的形式傳遞到JavaScript腳本中的指令解析模塊,通過字符串匹配的方式獲取每一條指令的運動類型和運動參數(shù)(包括示教點、運動速度等)信息。按照運動類型的不同選擇不同的插補(bǔ)算法,依次計算并輸出運動軌跡上插補(bǔ)點的位姿。指令解析和插補(bǔ)模塊輸出的插補(bǔ)位姿傳遞給運動學(xué)求解模塊,輸出關(guān)節(jié)變量到X3DOM模塊,最終實現(xiàn)指令對工業(yè)機(jī)器人虛擬樣機(jī)的控制。

圖4 運動指令解析與插補(bǔ)流程圖

2.5 對工業(yè)機(jī)器人的遠(yuǎn)程控制

實驗平臺遠(yuǎn)程控制使用機(jī)器人為IRB120型工業(yè)機(jī)器人,實現(xiàn)遠(yuǎn)程控制的關(guān)鍵在于虛擬樣機(jī)與真實機(jī)器人之間建立網(wǎng)絡(luò)通信。機(jī)器人控制系統(tǒng)安裝PC Interface組件,虛擬樣機(jī)的云服務(wù)器安裝node.js環(huán)境,二者之間即可通過TCP通信建立連接。機(jī)器人控制器已具備對機(jī)器人本體的指令控制功能,只需要將網(wǎng)頁上調(diào)試好的控制代碼經(jīng)由云服務(wù)器以字符串的形式發(fā)送到機(jī)器人控制器,機(jī)器人控制器將收到的字符串解釋為可執(zhí)行的運動指令,即可實現(xiàn)虛擬樣機(jī)對真實機(jī)器人的遠(yuǎn)程控制。

HTML5具備豐富的多媒體處理功能,可以使用網(wǎng)絡(luò)攝像頭監(jiān)控真實機(jī)器人運動,將實時的監(jiān)控視頻無插件地嵌入到HTML5頁面中,更加直觀地對比虛擬樣機(jī)與真實機(jī)器人的運動。

3 應(yīng)用實例與驗證

工業(yè)機(jī)器人虛擬樣機(jī)可應(yīng)用于多種實驗教學(xué)場景中。實驗平臺運行于云服務(wù)器,用戶無需安裝軟件或插件,只要通過Chrome瀏覽器訪問實驗網(wǎng)址,即可在虛擬樣機(jī)上進(jìn)行實驗訓(xùn)練。

典型機(jī)器人虛擬實驗界面如圖5所示,實驗界面包含實驗說明書、虛擬實驗演示、開始實驗和課后訓(xùn)練4個目錄選項。選擇開始實驗后,頁面左側(cè)顯示機(jī)器人虛擬模型、右側(cè)為虛擬機(jī)控制UI,包含機(jī)器人關(guān)節(jié)變量、末端位姿、工具選項、示教點以及控制指令等內(nèi)容。

圖5 機(jī)器人虛擬實驗界面

機(jī)器人虛擬實驗的基本操作流程為:

(1) 在工具選項中為機(jī)器人選擇合適的工具并加載;

(2) 改變機(jī)器人關(guān)節(jié)變量或末端位姿,控制虛擬樣機(jī)模型運動至指定位置;

(3) 點擊添加示教點,或在示教點區(qū)域按照指定格式輸入示教點信息;

(4) 輸入機(jī)器人控制指令;

(5) 點擊提交,機(jī)器人模型按指定軌跡和速度運動。

3.1 焊接實驗與準(zhǔn)確性驗證

為驗證仿真結(jié)果的準(zhǔn)確性,在虛擬樣機(jī)和真實的工業(yè)機(jī)器人上分別使用同樣的示教點和運動指令,進(jìn)行了焊接實驗。虛擬樣機(jī)與真實機(jī)器人運行過程的對比如圖6所示。

(a) 虛擬樣機(jī)仿真效果

(b) 實際運行結(jié)果

實驗結(jié)果表明,虛擬樣機(jī)能有效執(zhí)行運動指令,樣機(jī)模型與實際機(jī)器人的運動軌跡基本保持一致,運動仿真具有較高準(zhǔn)確性。

3.2 遠(yuǎn)程碼垛實驗與同步性驗證

為驗證仿真運動與實際機(jī)器人運動的同步性,在遠(yuǎn)程控制頁面中,將虛擬樣機(jī)上調(diào)試通過的運動指令經(jīng)由服務(wù)器發(fā)送給遠(yuǎn)程機(jī)器人,樣機(jī)模型與實際機(jī)器人同時開始執(zhí)行同樣的指令,運動過程的對比如圖7所示。

(a) 碼垛開始

(b) 碼垛過程1

(c) 碼垛過程2

(d) 碼垛結(jié)束

實驗結(jié)果表明,樣機(jī)模型與遠(yuǎn)程機(jī)器人在執(zhí)行相同指令時,運動速度和執(zhí)行時間基本一致,仿真具有較好的同步性。此外,二者運動的延時控制在毫秒級別,體現(xiàn)出遠(yuǎn)程控制的實時性。

3.3 其他實例

除關(guān)節(jié)型機(jī)器人外,還設(shè)計并實現(xiàn)了并聯(lián)型機(jī)器人、圓柱坐標(biāo)機(jī)器人以及直角坐標(biāo)機(jī)器人的虛擬樣機(jī),如圖8所示。

(a) 并聯(lián)型機(jī)器人

(b) 圓柱坐標(biāo)機(jī)器人

(c) 直角坐標(biāo)機(jī)器人

4 結(jié) 語

基于HTML與X3DOM技術(shù)設(shè)計實現(xiàn)了工業(yè)機(jī)器人虛擬樣機(jī),利用X3DOM、HTML以及JavaScript實現(xiàn)對仿真模型的顯示和控制,并在此基礎(chǔ)上增加了虛擬樣機(jī)對真實機(jī)器人的遠(yuǎn)程控制功能。實驗證明,本文設(shè)計的虛擬樣機(jī)可以很好地模擬真實機(jī)器人的運動和控制。在虛擬實驗平臺上進(jìn)行的實驗訓(xùn)練能夠有效地幫助學(xué)生進(jìn)行課前預(yù)習(xí)和代碼調(diào)試。與現(xiàn)有的機(jī)器人虛擬樣機(jī)相比,本文設(shè)計的虛擬樣機(jī)不需要安裝任何軟件或插件,用戶只需要通過瀏覽器訪問實驗網(wǎng)站即可進(jìn)行實驗訓(xùn)練,便于平臺的使用和推廣,對實驗教學(xué)具有一定意義。

猜你喜歡
指令實驗模型
一半模型
聽我指令:大催眠術(shù)
記一次有趣的實驗
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
做個怪怪長實驗
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
3D打印中的模型分割與打包
NO與NO2相互轉(zhuǎn)化實驗的改進(jìn)
主站蜘蛛池模板: 精品视频免费在线| 亚洲成人网在线播放| 国产超碰一区二区三区| 免费在线不卡视频| 欧美日韩午夜| 999精品免费视频| 波多野结衣视频一区二区| 国产三级韩国三级理| 这里只有精品国产| 国产高清精品在线91| 国产一级片网址| 成人福利视频网| 欧美一级夜夜爽www| 亚洲国产日韩在线观看| 青青国产视频| 国产美女无遮挡免费视频| 国产一区成人| 国产精品久久久久久搜索| 亚洲国产一成久久精品国产成人综合| 国产特一级毛片| 国产99在线观看| 538国产视频| 国产伦片中文免费观看| 国产精品一区二区在线播放| 日本在线国产| 欧美在线中文字幕| 亚洲精品777| 亚洲日本中文字幕乱码中文| 国产美女在线观看| 天天色天天综合网| 欧美黄网在线| 中文字幕 欧美日韩| 亚洲无线一二三四区男男| 久久香蕉国产线看观| 欧美不卡视频在线观看| 欧美精品成人| 东京热av无码电影一区二区| 成人综合在线观看| 国产视频大全| 欧美性精品不卡在线观看| 色综合激情网| 免费国产高清精品一区在线| 精品国产中文一级毛片在线看| 免费一级毛片完整版在线看| 久久青草热| 一级成人a毛片免费播放| 国产精品九九视频| 亚洲男人的天堂在线观看| 免费看黄片一区二区三区| 小蝌蚪亚洲精品国产| 亚洲三级影院| 18禁黄无遮挡网站| 亚洲伦理一区二区| 国产精品不卡片视频免费观看| 影音先锋亚洲无码| 一本久道久综合久久鬼色| 97色伦色在线综合视频| 欧美性猛交一区二区三区| 粗大猛烈进出高潮视频无码| 91精品啪在线观看国产60岁| 国产亚洲美日韩AV中文字幕无码成人| 欧美亚洲欧美区| 久久精品人人做人人爽电影蜜月| 凹凸国产分类在线观看| 免费国产黄线在线观看| 青青草原偷拍视频| 五月天天天色| 国产精品永久在线| 国内精品小视频福利网址| 国产高潮流白浆视频| 久久国产亚洲欧美日韩精品| 中文字幕 欧美日韩| 亚洲精品视频网| 国产乱视频网站| 色欲色欲久久综合网| 国产制服丝袜无码视频| 人妻一区二区三区无码精品一区| 九九香蕉视频| 国产精品久久久久鬼色| 久久成人18免费| 亚洲第一极品精品无码| 色窝窝免费一区二区三区|