国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Unity3D機器人焊接焊縫自動提取及軌跡規(guī)劃與仿真*

2019-11-27 06:13陳子健唐炳洋
關(guān)鍵詞:面片插值頂點

陳子健,卓 勇,唐炳洋

(廈門大學(xué) 航空航天學(xué)院,福建 廈門 361102)

0 引言

虛擬現(xiàn)實[1](Virtual Reality,簡稱VR)已經(jīng)在各領(lǐng)域得到應(yīng)用,被認為是影響人類生活的重要技術(shù)之一。隨著國家和市場對工業(yè)機器人的需求不斷增長,各大高校也在開設(shè)機器人相關(guān)課程與實訓(xùn),但機器人價格昂貴、數(shù)量少,不能滿足教學(xué)需求,焊接作業(yè)環(huán)境經(jīng)常是復(fù)雜、惡劣的,用真實機器人對作業(yè)人員進行培訓(xùn)的成本高、危險性大[2]。因此,使用VR可有效規(guī)避風(fēng)險、滿足要求。國外機器人相對成熟,也開發(fā)了相應(yīng)的仿真軟件[3],但一般都是針對自己公司的產(chǎn)品,進行購買也會擴大投入,不一定適合所有學(xué)?;蚱髽I(yè)。

Unity3D(下文簡稱Unity)是一款優(yōu)秀的跨多平臺的虛擬引擎[4]。目前部分學(xué)者在此虛擬環(huán)境中進行機器人虛擬仿真并取得一定成果。例如,高國雪等[5]搭建虛擬仿真環(huán)境實現(xiàn)同步運動;劉俊等[6]將Unity仿真環(huán)境應(yīng)用在機器人仿真上滿足教學(xué)需求;劉謀玉等[7]運用Unity虛擬環(huán)境實現(xiàn)機器人遙操作系統(tǒng);岑洎濤等[8]基于Unity平臺搭建一個跨平臺的機器人仿真系統(tǒng);劉宇軒等[9]基于Unity搭建一個人機交互的教學(xué)平臺。這些系統(tǒng)的搭建基本都是基于人工示教或作為教學(xué)展示加強對機器人的理解。機器人編程方式常用的有離線和再現(xiàn)示教兩種。示教編程簡單易學(xué)、精度低、操作繁瑣、不安全;離線編程高效,但對使用者要求較高,并且沒有統(tǒng)一通用的離線編程軟件[6]。綜上所述,為了盡可能的利用各自優(yōu)勢,本文利用VR的強交互能力,將簡單離線編程與其結(jié)合,實現(xiàn)焊件焊縫自動提取,并實現(xiàn)工業(yè)機器人自動進行焊接仿真的軌跡規(guī)劃過程。

對上述其他作者搭建的系統(tǒng)進行研究,發(fā)現(xiàn)基本都是基于人工示教或作為教學(xué)展示加強對機器人的理解。本文通過特征提取算法實現(xiàn)自動提取特征線,通過直接選擇焊縫實現(xiàn)自動焊接仿真加工過程,從而避免一個個選取點進行人工示教,也避免了示教精度不足的問題。仿真確認無誤后,可以輸出機器人語言程序,用于實際的生產(chǎn)或教學(xué)當中。

1 系統(tǒng)平臺框架搭建

VR系統(tǒng)要求對實體與環(huán)境的模擬實時逼真,仿照真實場景建立如圖1所示的系統(tǒng)平臺。本文選用SolidWorks軟件進行高效建模和3ds Max進行渲染,獲得與Unity兼容的FBX格式的模型文件[10],結(jié)合二者優(yōu)勢進行系統(tǒng)平臺的搭建[11]。本文機器人焊接虛擬仿真系統(tǒng)主要由焊接過程所需的機械、電氣及焊接裝置三部分組成。包括安全圍欄、變位機、公共基座、操作臺、機器人本體、固定工作臺、夾具、電纜橋架以及機器人控制器和焊機等部分[12]。

圖1 系統(tǒng)總體框架結(jié)構(gòu)圖

本系統(tǒng)使用Unity內(nèi)置的UI組件設(shè)計功能面板,用于實現(xiàn)人機交互的功能,方便作業(yè)人員快速尋找自己想要實現(xiàn)的功能。最終在Unity中布置好場景后,可以看到如圖2所示的整體布局界面。

圖2 UI面板和仿真場景

2 特征提取

本文通過獲取焊接模型的三角網(wǎng)格頂點信息,并經(jīng)過重復(fù)點剔除、重組后建立新的拓撲關(guān)系,然后根據(jù)特征點的識別條件提取模型中的特征點并存入集合進行存儲管理,最后按照給定的規(guī)則將特征點連接成特征線并顯示出來??傮w思路如圖3所示。

圖3 特征提取總體思路

2.1 三角網(wǎng)格模型拓撲信息重建

Unity中的模型均為三角網(wǎng)格結(jié)構(gòu),缺乏實體信息。Unity提供Mesh類,用于存儲網(wǎng)格信息且可再次編輯。Unity中的網(wǎng)格模型包含了大量散亂、無序的三角面片,造成大量的頂點冗余現(xiàn)象。因此需要剔除大量冗余點,并重建三角面片的拓撲關(guān)系。根據(jù)Unity中網(wǎng)格模型的特點以及三角面片規(guī)則,本文利用基于排序的三角網(wǎng)格模型快速拓撲重建算法。

(1)冗余點剔除

本文建立Vertex類,用于模型中頂點信息的存儲及處理。重寫Vertex類中繼承自IEquatable接口的Equals()比較函數(shù),以兩頂點坐標值大小作為判斷頂點是否相同的標準。

重復(fù)點剔除的關(guān)鍵是保證數(shù)據(jù)的唯一性。本文利用C#中的HashSet集合進行重復(fù)點的剔除,再對頂點進行重新編號,對于HashSet中每個數(shù)據(jù)都對應(yīng)一個唯一的鍵值,保證了數(shù)據(jù)的唯一性。

(2)三角面片頂點序號更新

隨著頂點的去重,需要對三角面片中的頂點序號進行更新。建立Triangle類用于三角面片數(shù)據(jù)的存儲與處理。通過id進行頂點的索引,減少內(nèi)存占用。

使用Dictionary字典集合容器對三角面片中的頂點進行檢索,與剔除重復(fù)點后的頂點新集合進行比較,更新三角面片的頂點序號。

(3)三角面片鄰接信息的獲取

對于滿足充滿原則[13]的網(wǎng)格模型,每條邊均被兩個三角形共用,因此每個三角形有三個鄰接三角形,據(jù)此特點可以找到三角面片的所有鄰接三角形。

2.2 三角網(wǎng)格模型特征提取

為了準確完整地提取模型的特征邊,本文的特征邊提取算法主要分為兩步:首先通過模型邊的二面角進行特征邊的初步提取,再通過頂點的曲率判斷,獲取遺漏的特征點,并利用點與邊的幾何依存關(guān)系,獲取遺漏的特征邊。

2.2.1 基于二面角的特征提取

本文首先對網(wǎng)格模型中所有的三角形邊求解基于兩個相鄰三角形的二面角,再按照一定的規(guī)則設(shè)定閾值,若大于設(shè)定閾值,則該邊為特征邊,特征邊線上的兩個頂點為特征點。

(1)三角形邊的二面角求解

構(gòu)建Segment類,用于邊信息的存儲與編輯處理。由空間幾何關(guān)系,通過兩個鄰接三角形的單位外法線,可以求得邊的二面角。

(1)

式中,n1,n2為鄰接三角形的單位外法線。

(2)通過閾值篩選特征點

通過分析其他的基本幾何體可知,只需剔除其光滑表面上的邊,剩下的邊即為特征邊,閾值可以通過其上界和下界進行確定[14]。一般地,根據(jù)基本幾何體模型的統(tǒng)計規(guī)律及工程經(jīng)驗,其無特征邊的光滑曲面上二面角不大于20°,因此可以遍歷模型所有的二面角得到小于20°的最大角度值β,作為確定閾值α的下界;同時以大于20°的最小角度值γ作為確定閾值α的上界,則可得:

(2)

因此,例如在立方體模型中,β值取0°,γ值取90°,閾值α可以選擇45°。

對于本文系統(tǒng)焊接模塊討論的幾何體由基本幾何體組成,因此特征邊可以通過式進行篩選得到,但由于復(fù)雜幾何體三角形的形狀不一,僅通過單一的閾值難以提取到完整的邊界特征。例如圖4中由尖銳的狹長三角形連接得到的邊,其二面角小于閾值,卻是特征邊線。

(a) 模型中的邊 (b) 狹長三角形示意圖 圖4 狹長三角形構(gòu)成的邊

一般情況都是通過公共邊上高的比值進行判斷是否是狹長的三角形,但僅通過三點坐標進行高的求解較為復(fù)雜,效率低。本文改進后,通過另外兩條邊長之和的比值進行判斷。記兩個三角形中除公共邊外的邊長之和的比值為τ,則其表達式為:

(3)

圖5 基于二面角的特征提取算法流程

2.2.2 基于曲率判斷的特征提取

首先通過各頂點的法矢量構(gòu)建二次曲面,并計算該曲面在各頂點上的曲率半徑,然后經(jīng)過相應(yīng)的判斷獲取特征點,并由頂點與邊的幾何依存關(guān)系,遍歷尋找到組成模型的三角面片的邊,即特征邊。

(1)頂點法向量的獲取

頂點法向量是曲率計算的基礎(chǔ),Unity中Mesh包含了頂點的法向量信息,可以直接獲取。

(2)頂點曲率的計算

本文主要使用曲面局部擬合法[15]的思想,首先任取一個頂點,將該點與所有的鄰接點構(gòu)建二次曲面,由此得到該點處的主曲率與其方向。

對于頂點P,存在鄰接點Vi,i=1,2...n,如圖6所示在P點處建立局部坐標系Puvw,其鄰接點轉(zhuǎn)換到Puvw內(nèi)的坐標為(ui,vi,wi),二次曲面擬合頂點P及其鄰接點

S(u,v)=(u,v,w(u,v))

(4)

其中,w(u,v)=au2+buv+cv2由式(4)可以得到線性方程組(5):

(5)

上述方程可以通過最小二乘法進行二次曲面系數(shù)a、b、c的求解。這種解適合均勻的三角網(wǎng)格模型,但在本文中2.2.1節(jié)中已經(jīng)剔除了狹長三角形的情況,因此可以認為是均勻化的情況。

(3)特征點的判別

遍歷模型中除去2.2.1小節(jié)已經(jīng)篩選出來的頂點,通過對點的主曲率極值的判斷,通過判斷不同方向上曲率極值點來進一步篩選特征點,若如圖6所示兩個方向上均為極值點,則該點為特征點。具體篩選方法見參考文獻[15]。

圖6 主曲率的極值點

(4)誤差消除

由于曲率的計算是不準確的,根據(jù)上述方法得到的特征點的數(shù)量大于實際所需的,本文根據(jù)參考文獻[15]中的方法,加入誤差消除因子與整體誤差消除因子,進行誤差點的剔除。

2.3 特征邊自動生長算法

前文通過特征提取算法得到的網(wǎng)格模型特征僅是離散的特征邊(實際獲得的為特征點,由頂點與邊的依存關(guān)系,可以尋找到三角面片的邊),相互之間沒有順序關(guān)系,難以直接用于機器人的軌跡規(guī)劃,因此需要對得到的特征邊進行排序。本文利用基于頂點鄰接數(shù)的特征邊自動生長算法[15],能夠?qū)㈦x散的特征邊進行整合排序,快速得到完整的模型邊界。

圖7 特征線自動生長

算法根據(jù)模型邊界是否閉合,將其分為特征鏈與特征環(huán)兩類。兩者排序算法基本一致,只是算法的終止條件略有不同。獲取所有鄰接點大于2的特征邊頂點,即存在開叉現(xiàn)象的特征點。如圖7所示的P0、P5點是個開叉點,這類點一般作為特征鏈的起止點。例如P0可以出現(xiàn)在4條特征鏈中,設(shè)置可使用次數(shù)為4;P4僅具有2個鄰接點,這類點則作為特征鏈的中間點,僅會出現(xiàn)在一條特征鏈中,可使用次數(shù)為1。步驟如圖8所示。

圖8 獲取完整特征線流程框圖

特征環(huán)的終止條件為:終止點與起始點相同,其他的步驟與特征鏈相似,不再贅述。

3 三次樣條插值

當外部輸入的模型精度不高時,直接獲取到的邊界線精度較低,因此需進一步處理,提高其精度滿足機器人運動仿真的需求。對于直線可以直接使用直線插值獲取仿真點,曲線選用三次樣條曲線插值。本文使用基于累加弦長的三次參數(shù)樣條曲線插值算法進行曲線的二次擬合與插值。

設(shè)第i段三次參數(shù)樣條曲線的表達式為:

Pi(t)=B1+B2t+B3t2+B4t3,t∈[0,Li]

(6)

式中,Li為第i段的弦長。

(7)

使用對角矩陣追趕法對上式進行求解可以得到二階導(dǎo)Mi的值,可求得第i段的三次樣條曲線表達式。本文系統(tǒng)中建立Spine類進行三次樣條曲線插值處理,應(yīng)用三次樣條插值算法后得到的圓柱邊界如圖9所示,結(jié)果表明,特征線的精度提升明顯。

(a) 未插值處理的圓弧 (b) 插值處理的圓弧 圖9 圓弧插值處理前后

4 機器人逆解和焊接仿真

為了實現(xiàn)用戶點擊特征線后,機器人自動進行自動焊接運動,無需人工示教,需通過機器人逆運動學(xué)求解出機器人6個關(guān)節(jié)角度值[17],并反饋給機器人使其運動。利用貪婪算法其局部最優(yōu)解的思想,將所有解與上一狀態(tài)進行對比,差值最小解即為需要的最優(yōu)解。具體求解方法請見參考文獻[17]。本文在Unity中選用C#語言進行程序的編寫,使用Transform組件中的局部旋轉(zhuǎn)的成員變量可以實現(xiàn)各個關(guān)節(jié)的相對旋轉(zhuǎn),同時根據(jù)焊縫的位置來自動改變焊槍位姿,盡可能保持垂直焊接,從而實現(xiàn)焊縫自動焊接的軌跡規(guī)劃過程。

4.1 機器人仿真結(jié)果展示

本文基于Unity 5.6.0版本,使用C#腳本在Visual Studio 2015外部編輯器進行代碼編寫、編譯、測試,同時,可以在面板上點擊模型選擇的按鈕,根據(jù)需要選擇如圖10a所示不同類型的焊接模型,便可更改圖10b中焊接對象的仿真模型并在場景中顯示更新的模型。點擊UI界面上的特征提取按鈕后可看到生成的特征線(圖中黑色線框)。通過選取焊縫,同時可顯示出如圖11所示準備進行運動仿真的預(yù)定軌跡。通過控制面板的開始按鈕讓機器人運動,仿真過程如圖12所示。操作者可以隨時通過鼠標改變視角觀察任何部位,或暫停觀察。在界面右下角設(shè)置一個小窗口用于跟蹤放大焊接詳情,便于觀察焊槍所走路徑是否正確。本文對于直線和曲線進行算法測試,均可以取得良好的視覺效果,將特征提取獲取的特征點與三維軟件中獲取的特征點進行對比,效果如圖13所示,從圖中可以看出,兩者基本可以實現(xiàn)重合。將兩者數(shù)據(jù)進行擬合對比,以多項式函數(shù)作為對比標準,發(fā)現(xiàn)兩者相關(guān)系數(shù)R2分別為0.9243和0.9236,差值低于0.001,說明本文提取到的特征線基本可以滿足普通的加工或者教學(xué)要求。

(a) 模型選擇面板 (b) 相應(yīng)模型顯示 圖10 模型選擇及顯示

(a) 直線仿真軌跡 (b) 曲線仿真軌跡 圖11 仿真軌跡展示

圖12 仿真運動及路徑觀察窗口

(a) 曲線特征點 (b) 特征點放大對比 圖13 仿真點數(shù)據(jù)驗證

5 結(jié)束語

本文選用Unity進行虛擬仿真研究,從外部軟件導(dǎo)入模型搭建了一個6關(guān)節(jié)機器人焊接的虛擬仿真系統(tǒng)。通過對三角網(wǎng)格模型進行基本信息的提取、重組,采用特征提取算法獲取特征點,連接得到完整的邊界曲線,最后進行三次樣條曲線的擬合得到運動軌跡進行焊接仿真。確認無誤后,可以輸出機器人語言程序,用于實際的生產(chǎn)或教學(xué)當中。這種方式具有良好的臨場感和交互性,同時帶給操作者良好的視覺沖擊,有效逼真的代替真實機器人進行加工訓(xùn)練和教學(xué),降低作業(yè)風(fēng)險、培訓(xùn)成本和環(huán)境污染。本文對于仿真過程自動躲避障礙物還有所不足,以后可以結(jié)合機器視覺、圖像處理等技術(shù)進一步識別障礙物并自動實現(xiàn)躲避,重新規(guī)劃仿真路徑。

猜你喜歡
面片插值頂點
滑動式Lagrange與Chebyshev插值方法對BDS精密星歷內(nèi)插及其精度分析
過非等腰銳角三角形頂點和垂心的圓的性質(zhì)及應(yīng)用(下)
過非等腰銳角三角形頂點和垂心的圓的性質(zhì)及應(yīng)用(上)
三維模型有向三角面片鏈碼壓縮方法
初次來壓期間不同頂板對工作面片幫影響研究
基于pade逼近的重心有理混合插值新方法
混合重疊網(wǎng)格插值方法的改進及應(yīng)用
甜面片里的人生
基于混合并行的Kriging插值算法研究
青海尕面片
宝清县| 丘北县| 汾西县| 三明市| 太原市| 琼海市| 古田县| 康保县| 韶山市| 商洛市| 九江市| 韶关市| 崇州市| 东乡族自治县| 大足县| 甘泉县| 兴海县| 高陵县| 清远市| 云和县| 陈巴尔虎旗| 双牌县| 佳木斯市| 沽源县| 镇康县| 武城县| 二手房| 贵溪市| 平安县| 浙江省| 千阳县| 同江市| 弋阳县| 民勤县| 福安市| 太康县| 丰都县| 达州市| 北碚区| 洞头县| 平定县|