唐建林
(南昌職業(yè)大學 工程技術學院,江西 南昌 330500)
伴隨機器人快速發(fā)展的同時也產(chǎn)生了維護困難等問題,因此準確地掌握機器人的實時運行狀態(tài),獲取機器人故障信息,能夠有效地避免因其操作失敗而導致的經(jīng)濟損失。而作為機器人形態(tài)確定的一種手段,機器人輪廓曲線角點識別逐漸成為了熱門研究問題。角點是一種具有高曲率的點,相比圖像的整體像素,角點數(shù)量較小,但是所包含的信息卻極為重要,也就是說角點能夠有效降低待處理信息量,并且不會減少物體的關鍵特征信息。角點識別在圖像視覺處理方面具有基礎性意義,例如物體形狀分析、運動估計、圖像匹配、視覺定位等方面。目前,基于角點識別的研究較多,董立紅等[1]提出了一種基于Sobel邊緣檢測的圓周Harris角點檢測算法。該方法通過Sobel邊緣檢測對圖像中角點進行篩選,提高檢測效率。使用圓周窗口模板對所得角點做非極大值抑制處理。為避免角點簇的情況發(fā)生,使用臨近點剔除法,并將剔除后所保留的非極值最大點作為角點,該方法具有一定的可行性,但是計算效率較低,且仍然存在較少偽角點。李云紅等[2]提出了一種利用點弦距離遞歸的圖像角點檢測算法。該方法采用Canny邊緣檢測器完成輪廓線的提取,隨后采用3種不同尺度高斯核對圖像邊緣進行平滑處理,使平滑后的邊緣線首尾連接組成一條弦。計算出輪廓上每個邊緣像素點與弦之間的距離,采用多尺度技術判決候選點,獲得最終角點。實驗結(jié)果表明,該方法受噪聲影響較小,但是算法結(jié)構復雜,實際應用性較低。
基于此,本文結(jié)合工業(yè)機器人輪廓特征,提出了一種基于視覺傳感技術的工業(yè)機器人輪廓曲線角點識別系統(tǒng)設計。
構建恰當?shù)臄?shù)學模型來描述機器人的動態(tài)情況,能夠有效提高識別算法的功能性實現(xiàn)程度和算法精度。在相機坐標系中,由于對機器人角點識別是需要將三維物體投影至二維平面中,當機器人在tk時刻運動到tk+1時,其坐標位置從p(X,Y)變換至p′(x′,y′),通過Similarity模型獲得坐標計算方程如式(1)。
(1)
式中,θ表示旋轉(zhuǎn)因子;s表示縮放因子;d1、d2分別表示p′相對于p的位置偏移量,對式(1)進行求解即可獲得機器人的運動參數(shù)。
首先采用視覺傳感技術獲得機器人的空間坐標。若攝像機的成像模型滿足小孔成像,則該模型目標空間上各點均以直線的形式投影到圖像平面上[3]。設相機的坐標系原點為F,且該點也為相機焦點。平面X、Y與圖像平面平行,Z軸垂直于圖像平面,具體結(jié)構如圖1所示。則此時相機的焦點坐標可以表示為(0,0,0)。
圖1 成像模型
(2)
(3)
(4)
(5)
即可獲得空間內(nèi)P1、P2、P3在相機坐標系中的坐標如式(6)。
(6)
通過式(6)即可求出機器人圖像邊緣像素點的空間坐標。根據(jù)空間坐標,實現(xiàn)其輪廓曲線角點識別。將相機獲得的機器人邊緣放大圖像,在小模板窗口中,發(fā)現(xiàn)邊緣像素點的排列呈單方向性[6-8],分別為0°、45°、90°和135°4個方向。角點出現(xiàn)后,像素點兩邊出現(xiàn)2個方向角度,針對角點附近的邊緣點位置信息對角點進行識別。為減少工作量,首先通過3×3小窗口模板進行角點粗定位,隨后采用尺度由小到大的方式逐步剔除偽角點,實現(xiàn)精定位。
采用模塊化設計方式,借助ISE(Integrated Software Environment, 集成軟件環(huán)境)、EDK(Embedded Development Kit, 嵌入式開發(fā)套件)開發(fā)工具完成系統(tǒng)設計。
該模塊應用FIFO(First Input First Output)存儲器結(jié)構[9-10],在先入先出信號和像素時鐘的協(xié)同控制下進行數(shù)據(jù)緩存。
角點信息被提取后,還需要對機器人的運動矢量[11]進行估計和計算。本文采用Virtex5 Fx100T中的Power PC處理器完成系統(tǒng)軟硬件協(xié)同運行,首先通過PLB總線對角點信息進行訪問,計算出幀間機器人全局運動矢量[12]。隨后進行運動補償處理,補償對象主要針對儲存在DDR SDRAM中的待補償圖像。以專用開發(fā)工具EDK為平臺,采用MPMC(Multi Port Memory Controller, 多端口存儲器控制器)IP核完成系統(tǒng)內(nèi)存讀寫管理。調(diào)用此IP核可以將DDR SDRAM劃分為8個具有獨立性質(zhì)的端口,各端口的操作方式與BRAM相似,使用者可以通過其中的任意端口進行內(nèi)存的訪問。
在通過MPMC核進行運動補償?shù)倪^程中,因為其寫入機制是先緩存寫入數(shù)據(jù),再進行寫入內(nèi)存操作,而在內(nèi)存數(shù)據(jù)讀取方面則是直接進行的,因此為了避免兩者之間產(chǎn)生沖突,系統(tǒng)的判定信號要首先確定緩存是否在“空”的狀態(tài),當該判定信號為空時,才發(fā)出執(zhí)行讀取命令,避免讀寫沖突而導致數(shù)據(jù)丟失。
為證明本文方法的有效性,分別識別2種狀態(tài)下的工業(yè)機器人的輪廓曲線角點,并將實驗結(jié)果與文獻[1]、文獻[2]方法進行對比。2種狀態(tài)下的待識別機器人的原始圖像如圖2所示。
(a)狀態(tài)1待識別圖像
圖2中,圖2(a)的狀態(tài)2識別圖像是緩存在“空”的狀態(tài),圖2(b)的狀態(tài)1識別圖像是緩存不在“空”的狀態(tài),隨后分別采用3種方法對原始圖像的輪廓曲線角點進行識別,不同識別方法所獲得識別結(jié)果如圖3—圖5所示。
(a)狀態(tài)1識別效果
(a)狀態(tài)1識別效果
(a)狀態(tài)1識別效果
從圖3—圖5中可以看出,文獻[1]方法存在偽角點并且存在漏判的情況,文獻[2]方法存在的偽角點多于文獻[1],且存在角點缺失的情況。而本文方法能夠完整地獲得機器人機械臂的曲線輪廓角點,且角點定位較為準確,沒有明顯偏移情況,這是由于本文方法識別的過程中采用小窗口模板對角點進行粗定位后,又采用了大窗口模板進行精定位,進一步提高了識別的準確率。
隨后對系統(tǒng)的運行效率進行驗證,3種不同方法識別耗時如表1所示。
表1 不同系統(tǒng)識別耗時比較
從表1中可以看出,本文方法在2種狀態(tài)下,所用識別時間均短于其他兩種方法,且平均耗時為1.57 s,進一步證明本文方法在能夠在識別效率較快的條件下,保持較高的識別準確率,充分滿足工業(yè)機器人輪廓曲線角點識別要求。
本文針對工業(yè)機器人的輪廓特點,提出了一種基于視覺傳感技術的工業(yè)機器人輪廓曲線角點識別系統(tǒng)設計。設計系統(tǒng)整體框架后,分別給出了系統(tǒng)軟件和硬件的組成和相關算法。仿真實驗表明,與傳統(tǒng)方法相比,所提方法的角點漏判和誤判率較低,且識別效率更高,具有一定的實際應用價值。但是在抗噪性方面,所提方法還沒有深入研究,需在下一步的工作中進行完善,進一步提高系統(tǒng)的應用功能性。