鋼桶視覺的機器人螺紋蓋裝配技術(5)-鋼桶螺紋蓋裝配系統搭建與實驗結果分析
文/徐超
第五章 鋼桶螺紋蓋裝配系統搭建與實驗結果分析
5.1 引言
第二章確定了鋼桶螺紋蓋自動化裝配系統的總體方案,第三章基于形態學處理和Hough變換提出了一種鋼桶螺紋蓋位姿識別算法,第四章介紹了本文針對鋼桶螺紋蓋裝配所設計的末端執行器的機械結構和控制系統,并對機器人工具參數標定算法進行介紹。本章將在此基礎上開發鋼桶螺紋蓋裝配系統的上位機軟件,同時搭建系統實驗平臺,通過相關實驗驗證本文所提出算法的優越性及鋼桶螺紋蓋自動化裝配系統的有效性。
5.2 鋼桶螺紋蓋自動化裝配系統上位機軟件開發
在前面章節確定了鋼桶螺紋蓋裝配系統的整體方案和相關算法以及末端執行器的設計之后,要想實現鋼桶螺紋蓋的自動化裝配還需要進行上位機軟件的開發。作為一款自動化裝配系統的控制軟件,需要完成鋼桶螺紋蓋自動化裝配過程中相關參數的設置、鋼桶螺紋蓋圖像信息處理,同時還要與系統中機器人控制柜和末端執行器控制器實現通訊,從而保證整個鋼桶螺紋蓋自動化裝配系統有效可靠地進行。
在整個自動化裝配系統工作之前首先需要實現系統上位機和下位機之間的通訊,整個系統中包含有兩個下位機,如圖5-1所示。一個是機器人控制柜,一個是末端執行器中的STM32控制器。上位機與機器人控制柜實現通訊,將鋼桶螺紋蓋的位姿數據發送給機器人控制柜,從而實現鋼桶螺紋蓋的定位抓取;上位機與末端執行器中的STM32實現通訊,發送鋼桶螺紋蓋裝配速度及裝配扭矩值,同時接收STM32發來的鋼桶螺紋蓋在傳送帶上的位置信息,從而觸發相機拍照獲取鋼桶螺紋蓋圖像信息。兩個下位機之間的通訊主要是末端執行器開始及停止裝配信號之間的傳遞。
圖5-1 鋼桶螺紋蓋自動化裝配系統組成
實現了上位機與下位機之間的通訊之后,還需要進行系統中視覺部分手眼參數標定、末端執行器的TCP標定,因此需要開發系統標定模塊,從而獲得手眼參數和機器人工具參數,并進行相關參數配置,然后是圖像采集模塊和圖像處理模塊,包括手動狀態下相機的開啟和關閉、圖像的實時顯示、圖像的采集、圖像的處理及鋼桶螺紋蓋的定位。最后人機交互界面設計,系統軟件界面應該簡潔清楚,方便上手,便于非專業人士進行參數設置及相關操作。
綜上分析,鋼桶螺紋蓋自動化裝配系統上位機軟件具體的設計要求如下:
1、通訊要求:與系統中相關下位機實現通訊;
2、參數標定:應具備手眼標定和機器人工具參數標定功能;
3、視覺定位:能夠對鋼桶螺紋蓋圖像進行采集及相關處理,得出位姿信息,并根據手眼參數標定結果,轉換為機器人基坐標系下坐標;
4、友好的人機操作界面:要求操作界面簡潔清楚,方便上手。
5.2.1 軟件整體方案設計
由于Windows操作系統使用普及率高,穩定性好且支持多種高級開發語言,因此本文選擇基于Windows操作系統進行上位機軟件開發。軟件開發平臺為Visual Studio 2010,開發環境為.NET Framework 4.0,編程語言為C#。C#編程語言是一種面向對象、功能強大的高級開發語言,能夠快速地開發和部署運行在.NET Framework上的應用程序,開發過程中引用MathNet.Numerics庫文件進行矩陣及向量運算,同時結合Halcon圖像算法庫進行圖像模塊的編寫。
根據軟件的具體開發要求及采用的編程語言和開發環境,確定鋼桶螺紋蓋自動化裝配系統上位機軟件的開發框架如圖5-2所示:
圖5-2 上位機軟件開發框架
系統的主界面如圖5-3所示,主要包含三大區域:系統操作區域、圖像實時顯示窗口、手動控制區域。用戶可以根據按鈕提示進行相關操作,首先在系統操作模塊,依次進行通訊參數配置、手眼標定、TCP標定以及末端執行器的裝配參數設置,點擊按鈕后即可彈出相關界面,然后點擊啟動系統自動運行,顯示窗口會實時顯示鋼桶螺紋蓋圖像信息及處理結果;當需要進行系統調試時,可以在手動模塊進行相機啟停、圖像采集、圖像處理、工件定位等操作。
圖5-3 上位機軟件主界面
5.2.2 軟件主要模塊介紹
1、通訊模塊
本文上位機軟件通訊模塊界面如圖5-4所示,分為網口通訊和串口通訊兩部分,網口通訊主要用于上位機與機器人控制柜之間的通訊,采用以太網對上位機和機器人控制柜之間建立socket通訊連接。socket是一種基于網線的服務器(Server)-客戶端(Client)通訊模式,在同一個網絡上允許存在多個系統,Server需要提供PC的IP地址和端口號,由Client發送連接請求,一個Server可以連接多個Client。本文以上位機作為Server,機器人控制柜作為 Client,在建立通訊時只需要在軟件界面中輸IP地址及端口號,點擊監聽,即可等待機器人控制柜連接,如圖5-4(a)所示,在連接成功后,通訊狀態窗口會顯示通訊成功標志。
上位機與末端執行器控制系統的STM32通過串口進行通訊,如圖5-4(b)所示,在配置好串口通訊相關參數如串口號、波特率等之后,選擇數據發送方式,然后點擊打開串口即可完成與STM32的串口通訊,在數據接收區可以顯示發送來的數據,同時可以通過數據發送區手動發送數據,便于系統調試。
圖5-4 通訊界面
2、標定模塊
本軟件中參數標定模塊,主要包括手眼標定和機器人工具參數標定,上位機軟件中手眼標定界面和TCP標定界面如圖5-5所示。在進行手眼參數標定時,首先點擊獲取標定圖片,然后點擊角點定位,再依次輸入機器人基坐標系下的9個靶點坐標,點擊標定即可完成手眼標定過程,點擊“保存標定結果”可以將標定結果以.txt文件的形式保存,避免在沒有改變相機與機器人相對位置的情況下參數丟失從而進行重復標定。具體的標定步驟將在5.4.2小節手眼標定實驗時進行描述。
機器人工具參數標定界面如圖5-5(b)所示,首先在工具參數標定界面輸入工具標定數據,然后點擊“工具標定”即可在工具參數標定結果下顯示工具參數,同時點擊“保存參數”即可以.txt 文件的形式保存標定結果。為避免手動輸入數據,在完成一次數據輸入之后,可以點擊“保存數據”,即可將標定數據保存下來,再次使用時直接點擊“導入數據”即可完成標定數據的導入。
圖5-5 標定界面
3、圖像采集模塊
軟件中圖像采集模塊見圖5-3主界面,包含一個圖像實時顯示窗口,和手動模式下相機的相關控制,可以對相機進行打開、關閉、采集圖像的相關操作,便于系統調試。
4、圖像處理模塊
軟件中圖像處理模塊集成到一個按鍵中,點擊“圖像處理”即可完成圖像的相關處理工作,點擊“視覺定位”即可獲得工件在機器人基坐標系下的坐標。
5、其他相關部分
系統上位機軟件中除了通訊模塊、標定模塊、圖像采集模塊、圖像處理模塊之外,之外,還有一些軟件登錄、末端執行器參數配置、扭矩反饋等相關界面,如圖5-6所示,用戶可通過按鍵提示進行操作,這里不再過多描述。
圖5-6 其他相關界面
5.3 基于改進隨機Hough變換的直線檢測算法仿真實驗
為驗證本文所提出的改進直線檢測算法的優越性,本文將設計三組對比實驗,分別對仿真圖像、近景樓房圖像、道路圖像等大量數字圖像進行直線提取,并與標準Hough變換進行對比分析。
5.3.1 實驗目的
在3.4.2小節,本文提出一種基于改進隨機Hough變換的直線檢測算法,用于鋼桶螺紋蓋的直線提取,為進一步驗證改進算法在檢測直線時的穩定性和優越性,分別對仿真圖像、近景樓房圖像、道路圖像進行直線特征提取,并與標準Hough變換進行對比分析,實驗結果中算法處理時間是指圖像經邊緣檢測后至線段提取完成時所需要的處理時間,實驗平臺為Matlab R2014a。標準Hough變換直線檢測算法采用Matlab中自帶函數。
5.3.2 實驗設計
實驗1:圖5-7(a)為含有高斯噪聲的仿真圖像,內部含有4條明顯的直線特征,標準Hough變換和本文算法對邊緣檢測后的二值圖像進行直線提取后的結果如圖5-7(b)、圖5-7(c)所示。檢測后的直線端點坐標及線段長度如表5-1所示。標準Hough變換的相關參數設置如下:ρ的量化間隔為1,θ的量化間隔 0.01°,參數投票的累加閾值Tmax=0.1nmax;本文算法相關參數設置如下:最短邊緣像素閾值Tmin =20;梯度方向差分閾值Tα =0.08 ,梯度方向差分累加閾值Tα-min=60,點到直線距離閾值δ= 1.414。
圖5-7 仿真圖像直線邊緣檢測
表5-1 端點坐標及線段長度
實驗 2:圖5-8(a)是一幅含有較多直線特征的建筑物數字圖像,通過標準Hough、和本文算法對邊緣檢測后的二值圖像進行直線提取后的結果如圖5-8(b)、圖5-8(c)所示。標準Hough變換的相關參數設置如下:ρ的量化間隔為 1,θ的量化間隔0.01°,參數投票的累加閾值T =0.1nmax ;本文算法相關參數設置如下:最短邊緣像素閾值Tmin=25,梯度方向差分閾值Tα=0.08,梯度方向差分累加閾值Tα-min=80,點到直線距離閾值δ= 1.414。由于樓房圖像中直線特征較多,求取線段的長度和端點坐標無實際意義,因此,并未進行線段端點坐標和長度的計算。
圖5-8 近景樓房圖像直線邊緣檢測
實驗3:汽車進行自主導航時常需要視覺進行道路識別以規劃行駛路徑,圖5-9(a)是兩邊帶有植物干擾的道路圖片;通過標準Hough和本文算法對邊緣檢測后的二值圖像進行直線提取后的結果如圖5-9(b)、圖5-9(c)所示。標準Hough變換的相關參數設置如下:ρ的量化間隔為1,θ的量化間隔0.01°,參數投票的累加閾值T=0.3nmax;本文算法相關參數設置如下:最短邊緣像素閾Tmin=60,梯度方向差分閾值Tα=0.08 ,梯度方向差分累加閾Tα-min=100,點到直線距離閾值 δ=1.414。由于求取道路圖像中線段的長度和端點坐標無實際意義,因此,并未進行線段端點坐標和長度的計算。
圖5-9 道路圖像直線邊緣檢測
5.3.3 仿真實驗結果分析
三組對比實驗的統計結果如表5-2所示。
表5-2 算法處理時間對比
由實驗1結果可以看出,對于干擾較小,直線特征明顯的仿真數字圖像,本文算法和標準Hough變換直線檢測算法均能有效地提取出圖像中的直線特征,但在處理時間和算法效率方面,本文算法所需要的處理時間約為標準Hough變換的三分之一,且可以有效地提取出線段的端點坐標和長度。
由實驗2結果可知,建筑物數字圖像由于植物干擾,采用標準Hough變換進行直線檢測在干擾部分產生大量錯檢,存在直線過連接現象,而本文算法很好地排除了噪聲干擾,有效地檢測出了圖像中的直線特征;且直線的連貫性較好,且檢測效率更高。 由實驗3結果可知,標準Hough 換對道路圖像進行直線檢測時由于道路兩旁植物噪聲干擾,未能很好地檢測出道路邊緣,而本文算法很好地排除了兩旁噪聲干擾,準確地識別出道路邊緣信息,檢測效率更高,具有更好的實際應用價值。
綜合三組實驗結果可得得出本文算法能夠有效地提出不同種類數字圖像中的直線特征,且與標準Hough變換相比具有更好的抗干擾能力,直線連貫性好,計算速度快,很大程度上解決了標準Hough實時性問題,能夠更好地應用于生產實際中。
5.4 基于視覺的機器人鋼桶螺紋蓋裝配實驗
為驗證鋼桶螺紋蓋自動化裝配系統的可行性及穩定性,本文將搭建系統仿真實驗平臺,并基于此平臺進行手眼標定TCP 標定以獲取相關參數,最后在此基礎上進行鋼桶螺紋蓋自動化裝配實驗。
5.4.1 實驗平臺
根據鋼桶螺紋蓋自動化裝配生產要求,在實驗室搭建仿真實驗平臺如圖5-10 所示,以PC作為上位機,分別與機器人控制柜、末端執行器控制系統建立通訊,將鋼桶桶蓋固定在三腳架平臺上模擬200L鋼桶,本課題將在該實驗平臺上進行手眼標定、TCP標定及鋼桶螺紋蓋自動化裝配實驗。由于本文主要對鋼桶螺紋蓋自動化裝配過程進行研究,并未對鋼桶螺紋蓋的上下料進行詳細討論,因此實驗過程不考慮鋼桶螺紋蓋的上下料問題,同時由于鋼桶大螺紋蓋和鋼桶小螺紋蓋的裝配過程相同,區別僅在與末端執行器的夾持部分,因此本實驗以鋼桶大螺紋蓋自動化裝配為例進行驗證。
圖5-10 鋼桶螺紋蓋自動化裝配仿真實驗平臺
5.4.2 手眼標定TCP標定
1、手眼參數標定
實驗采用工業上常用的9點法進行工業機器人和工業相機之間的手眼參數標定,其相關參數及標定的原理已在3.5.3節中詳細說明,具體的標定過程如下:
(1)選擇一個合適的標定板,標定板要求靶點坐標提取方便且準確性高,本實驗制作的標定板如圖5-11(a)所示;
(2)在機器人末端安裝80mm標準圓錐尖點,如圖5-11(b)所示;
(3)控制機器人帶動尖點一次碰標定板上的九個靶點,并記錄下九個點在機器人基坐標系下的坐標值;
(4)取下尖點,安裝末端執行器及相機,控制機器人達到系統設定拍照點,記錄下拍照點坐標,同時拍下一副標定板圖像,并通過圖像處理得到標定板圖像的9個靶點像素坐標,由于標定板背景單一,與靶點對比度明顯,圖像處理過程較為簡單這里不再過多描述。
圖5-11 手眼標定工具
如圖5-12所示,通過機器人SP1示教器即可讀取機器人末端法蘭坐標系在基坐標系下的坐標信息,獲得的9個靶點坐標如表5-1所示。
圖5-12 手眼標定
表5-1 9 點法機器人基坐標系下靶點實驗數據
相機拍攝到的標定板圖像經靶點提取后的結果如圖5-13所示,得到的9個像素坐標系下的靶點坐標如表5-2所示。
圖5-13 靶點提取
表5-2 九點法圖像坐標系下靶點實驗數據
將實驗參數代入到系統軟件的手眼標定模塊可以得到,圖像像素坐標系到機器人基坐標的轉換矩陣H,結果如下:
假設鋼桶螺紋蓋中心位于點P,P點在圖像像素坐標系下的坐標為(u,v),則可根據式(5-2)得出其在機器人基坐標系下XY平面的坐標,由于鋼桶螺紋蓋所在的傳送帶的高度不變,因此P點的高度信息只需要通過一次示教人工獲得,從而得到了鋼桶大螺紋蓋中心點P在基坐標系的三維坐標。
2、TCP參數標定
本文采用TCP多點標定法對末端執行器進行工具參數標定,標定的原理已經在4.4節進行詳細的描述,本文選擇3個標定點,如圖5-14所示,控制末端執行器以三種不同的位形到達空間中的同一點,機器人末端執行器的末端蓋板底部中心處有一個小的定位孔,實驗過程中只需要保證定位孔卡入到尖點中,即表示末端執行器到達了指定點。通過SP1示教器讀取到的機器人末端法蘭坐標系在機器人基坐標系下的位姿數據如表5-3所示。
圖5-14 執行器工具參數標定
表5-3 工具參數標定實驗數據
將式(5-3)和式(5-4)代入到式(4-9)中,即可得到末端執行器的三個工具參數,事實上,式(4-9)是位形1與位形2建立等式,位形2與位形3建立等式聯立推導得出,代表一種組合情況,三組數據一共有三組組合情況,為提高標定的精度,避免某一組組合情況偏差過大,對實驗結果產生影響,本文將對三種組合情況分別求解,然后去三組結果的平均值作為最終實驗結果,如表5-4所示。
表5-4 工具參數標定實驗結果
最終末端執行器TOF到機器人末端法蘭坐標系下的齊次變換矩陣為:
在編寫機器人運動控制程序時,即可通過上述參數建立機器人工具坐標系,在獲取鋼桶大螺紋蓋在機器人基坐標下的位姿數據之后即可完成抓取和搬運。
5.4.3 鋼桶螺紋蓋自動化裝配實驗
在完成了鋼桶大螺紋蓋自動化裝配系統的手眼標定和TCP 定之后,接下來要進行鋼桶大螺紋蓋的自動化裝配實驗,具體的實驗步驟如下:
1、在 5.2節中所述的鋼桶螺紋蓋自動化裝配系統上位機軟件中設定鋼桶大螺紋蓋裝配參數,本次實驗中設定旋緊扭矩為2N·m,旋緊速度為120r/min;
2、完成上位機與機器人控制柜和末端執行器控制系統中STM32之間的通訊;相關參數配置如下:
網口通訊:IP 地址:192.168.0.12;端口:1000
串口通訊:串口號:COM1;波特率:115200;數據位:8;停止位:1;字符串形式發送;奇偶校驗位:NULL
3、機器人的動作流程如圖5-15所示。其中涉及6個位置點,除抓取點pHere和工件臨近點pDepart外,其余點的值不會發生改變,可以通過SP1示教器一次性示教得出,相關的位置點的定義如下,坐標如表5-5所示。
pHome:初始點;pCamera:拍照點;
pDepart:工件臨近點;pAppro:桶蓋螺紋蓋臨近點;
pHere:抓取點; pAss:裝配點。
圖5-15 機器人動作流程
表5-5 機器人動作位置點的坐標
4、在完成上述步驟之后,即可進行鋼桶大螺紋蓋的自動化裝配實驗,裝配過程如圖5-16所示。
本文進行了8次鋼桶大螺紋蓋自動化裝配實驗,記錄每次實驗中完成鋼桶大螺紋蓋自動化裝配的時間,如表5-6所示,實驗結果表明,本系統能能夠實現鋼桶螺紋蓋的自動化裝配,且裝配時間滿足8s之內的生產要求。
圖5-16 鋼桶大螺紋蓋自動化裝配過程
表5-6 機器人動作位置點的坐標
5.5 本章小結
本章在鋼桶螺紋蓋自動化裝配系統總體方案、鋼桶螺紋蓋視覺定位算法以及末端執行器設計開發的基礎上,根據鋼桶螺紋蓋的裝配需求編寫了鋼桶螺紋蓋自動化裝配系統上位機軟件,對上位機開發的總體框架及各部分的功能模塊進行了詳細的描述;然后對提出的改進算法進行不同場景下的對比實驗,驗證了算法與標準Hough相比的優越性;同時搭建了鋼桶螺紋蓋在自動化裝配系統的仿真實驗平臺,編寫相關程序,并在此平臺上,基于上位機軟件進行手眼標定、TCP標定,最后以鋼桶大螺紋蓋為例,進行自動化裝配實驗。實驗結果證明,本系統能夠完成鋼桶螺紋蓋的自動化裝配,且裝配過程可靠滿足生產要求。
|