張 瑞,張偉豪,,朱振偉,高新江,
(1.鄭州大學(xué)機(jī)械與動力工程學(xué)院,河南 鄭州 450001;2.河南省智能制造研究院,河南 鄭州 450001)
建立帶攝像頭工業(yè)機(jī)器人抓取系統(tǒng)。通過上位機(jī)對圖像進(jìn)行處理,獲得目標(biāo)的實(shí)時(shí)位置信息,讓機(jī)器人完成抓取和放置操作。選擇單目視覺的視覺程序,對手眼終端的位置掌握開環(huán)把控體系,然后聯(lián)結(jié)工作需求,最后構(gòu)建以單目視覺為基礎(chǔ)的機(jī)器人抓取體系,主要的設(shè)計(jì),如圖1所示。這個(gè)系統(tǒng)主要是通過四個(gè)部分構(gòu)建的,機(jī)器人物體,攝影機(jī),傳輸線,物體放置地點(diǎn)[1]。從圖中能夠看到,物體是從輸送線輸送的。對象都是規(guī)則幾何體。物體進(jìn)入攝影機(jī)的攝像范圍后,在這個(gè)范圍里頭存放一個(gè)觸發(fā)點(diǎn),當(dāng)物體和出發(fā)點(diǎn)碰撞后,攝影機(jī)開始抓取圖像,然后把收集到的圖像信息傳送到PC機(jī)并開啟對應(yīng)的分類處理。經(jīng)過圖像分析和處理,得到物體的形狀和位置信息。在這里,各個(gè)圖像里和出發(fā)點(diǎn)相互碰撞之后的對象叫做目標(biāo)對象,也就是攝影機(jī)得到的各個(gè)圖像對應(yīng)一個(gè)固定的目標(biāo)對象,PC 機(jī)利用VB達(dá)到人機(jī)的界面圖針對物體的狀態(tài)以及捕捉地點(diǎn)的信息傳送至坐標(biāo)系里,機(jī)器人到達(dá)了對應(yīng)的地點(diǎn)后就開始抓取操作,然后按照不一樣的形狀,將目標(biāo)物體放置在不同的位置,不考慮物體抓取姿勢[2]。
圖1 以機(jī)器視覺為基礎(chǔ)的工業(yè)機(jī)器人的抓取系統(tǒng)示意圖Fig.1 Schematic Diagram of Grasping System of Industrial Robot Based on Machine Vision
唯有明白機(jī)器人的抓捕位置才能夠?qū)λ姆绞竭M(jìn)行把控,所以想得到位置就離不開這個(gè)抓取的歷程,并且要反復(fù)的去模擬。機(jī)器人抓取系統(tǒng)的示意圖,如圖2所示。
圖2 機(jī)器人抓取系統(tǒng)Fig.2 Robot Grasping System
攝影機(jī)的標(biāo)定的作用,如圖3所示。
圖3 攝像機(jī)標(biāo)定Fig.3 Camera Calibration
三維空間里的某一定點(diǎn)和物體當(dāng)中的某一點(diǎn)是對應(yīng)著的,一般都是通過攝影機(jī)的模型來把控的,一般經(jīng)常用到兩個(gè)模型:線性以及非線性,這里運(yùn)用到的是線性針孔成像模型,如圖4所示。圖像坐標(biāo)系以及像素點(diǎn)的坐標(biāo)系全部都叫做圖像坐標(biāo)系,如圖5所示。當(dāng)中圖5(a)是物理方向的坐標(biāo)系,零點(diǎn)是在左下角,圖5(b)是像素點(diǎn)方面的坐標(biāo)系,零點(diǎn)在左上角。
圖4 針孔成像模型Fig.4 Pinhole Imaging Model
圖5 圖像坐標(biāo)系Fig.5 Image Coordinate System
在這個(gè)空間里,P到對應(yīng)的P點(diǎn)的這段時(shí)間里的變化都是通過坐標(biāo)系和3個(gè)主要的變換達(dá)到的。最主要的就是針對坐標(biāo)系開始平移操作,旋轉(zhuǎn)操作,然后獲得攝影機(jī)的位置,然后通過三角變換獲得坐標(biāo)系位置,最后得到圖像的坐標(biāo)系,然后按照像素和單位之間的比例獲得最終的位置,一般,在日常生活中,最終的三維數(shù)據(jù)是通過圖像里得到的像素點(diǎn)數(shù)據(jù)信息得到的,也就是上面的逆處理,各個(gè)坐標(biāo)系的關(guān)系,如圖6所示。
圖6 攝像機(jī)成像幾何關(guān)系圖Fig.6 Camera Imaging Geometry Diagram
當(dāng)物體觸碰觸發(fā)器時(shí),相機(jī)獲取圖像。該文章對工業(yè)機(jī)器人抓取系統(tǒng)開始工作后連續(xù)采集的6幅圖像進(jìn)行了采集、分析和處理。原始彩色圖像,如圖7所示。
圖7 原始彩色圖像Fig.7 Original Color Image
由于在圖像收集還有傳送歷程里會出現(xiàn)一些不可確定的干擾,讓很多沒用的信息滲入到圖像中,對后面的結(jié)果產(chǎn)生影響,所以通常需要對采集到的圖像進(jìn)行預(yù)處理。
2.3.1 平滑處理
平滑處理通常使用于去除或控制圖像中的噪聲。在平滑過程中,不能缺少的是一個(gè)濾波器,它經(jīng)過低頻信號斷掉高頻噪聲信號,屬于低通濾波器,由于圖像的最外層是高頻信號,所以平滑處理會加快邊緣的模糊。
這個(gè)研究是考慮到未來圖像邊緣檢測的需要,不僅要注意把最外層的噪聲解決掉,同時(shí)要讓物體的外層盡量清晰化,避免之后的處理無法按時(shí)完成。
2.3.2 二值化
二值化把像素的灰度值固定位為0 或255,0 代表黑色,255代表白色。通過二值化過程后,圖像中的數(shù)據(jù)已經(jīng)降低了很多,并且突出了物體的邊緣。
圖像預(yù)處理效果圖,如圖8~圖10所示。對原始圖像進(jìn)行灰度處理后得到的圖像,如圖8所示。灰度圖像變成二值化之后獲得的圖,如圖9所示。這里能夠發(fā)現(xiàn)很多噪聲還有毛刺,經(jīng)過這一處理后獲得的圖,如圖10所示。獲得的圖并不存在噪聲,而且擁有很好的剪切現(xiàn)象。從圖9、圖10可以看出,未經(jīng)平滑處理,二值化后得到的圖像會存在噪聲,但是平滑后得到的圖像基本是沒有的,得到的圖像中物體的邊緣清晰,便于后續(xù)處理。
圖8 灰度圖像Fig.8 Grayscale Image
圖9 二值化(原圖無平滑)Fig.9 Binarization(Original Image Without Smoothing)
圖10 二值化(原圖有平滑)Fig.10 Binarization(Original Image is Smooth)
2.4.1 霍夫變換檢測圓
這里主要使用Hough變換對圓形目標(biāo)進(jìn)行識別,基本都是用于把圖像中將那些有一樣特征的圖像識別出來,尤其是在找直線還有圓的時(shí)候,與別的方式對比,這個(gè)方式能夠高效的減少噪聲干擾[3]。
2.4.2 霍夫變換檢測直線
Paulhough 在1962 年正式提出了Hough 變換。利用原始Hough變換檢測直線和曲線。Hough變換在針對直線的探索里應(yīng)用的非常多,下邊對檢測直線的原理進(jìn)行簡要闡述。
如圖11(a)所示,圖中的一條直線能夠用坐標(biāo)系里的斜率以及截距來展現(xiàn)為y=kx+b。在極坐標(biāo)系中可以用極徑和極角表示為并可以得到簡化ρ=xcosθ+ysinθ。其中ρ是從原點(diǎn)到直線的距離,其中,θ是直線的垂直線與X軸之間的角度。對于給定點(diǎn)(x0,y0),有很多的對(ρ,θ)滿足方程ρ=x0cosθ+y0sinθ,這就意味著每一對(ρ,θ)都表示了一個(gè)穿過點(diǎn)(x0,y0)的直線。倘若在坐標(biāo)系里固定一個(gè)穿過點(diǎn)(x0,y0)的直線,那就可以獲得一條正弦曲線。如果在極坐標(biāo)系中繪制同一直線上的不同點(diǎn),則生成的曲線將在θ-ρ平面中相交,如圖11(b)所示。這意味著可以通過平面中交點(diǎn)處的曲線數(shù)來檢測直線。交點(diǎn)處的曲線數(shù)量與直線包含的點(diǎn)成正相關(guān)。設(shè)置曲線的閾值來確定該線是否存在[4]。
圖11 點(diǎn)—線對偶性Fig.11 Point-Line Duality
2.4.3 Hough-鏈碼
鏈碼使用于用對應(yīng)的序列來代表物體的最外層。存在固定長度和特定方向的線段用于從一開始表示對象的邊。鏈碼本質(zhì)上是一系列指針序列,一般經(jīng)常使用的是4向鏈碼和8向鏈碼,如圖12所示。左邊有四個(gè)位置點(diǎn)叫做四向鏈碼,右邊有8個(gè)位置點(diǎn)叫做八向鏈碼。因?yàn)槊總€(gè)像素周邊都會有8個(gè)相鄰點(diǎn),故而8方向鏈碼相對來說會更貼近實(shí)際的像素狀況。從圖13能夠看出,鏈碼存在不變性,但旋轉(zhuǎn)會改變鏈碼,鏈碼隨對象旋轉(zhuǎn)而變化。保證目標(biāo)姿態(tài)變化時(shí)準(zhǔn)確識別對象,可以使用差分鏈碼。
差分鏈碼是指計(jì)算兩個(gè)距離很近的元素兩者間的位置改變后得到的鏈碼序列。在圖14中,是同一圖形,角度相差180°。不難發(fā)現(xiàn),普通鏈碼會隨著圖像的旋轉(zhuǎn)而隨時(shí)發(fā)生變化,而差分鏈碼不會改變[5]。
圖14 形狀識別結(jié)果Fig.14 Shape Recognition Results
這里在對矩形邊框和三角形用于目標(biāo)識別,則Hough轉(zhuǎn)換將會來識別這條線,并且這條線的角度將被用作連接代碼的相關(guān)參數(shù)來生成差分鏈碼。Hough遷移和鏈碼結(jié)合,叫做Hough鏈碼。
Hough鏈碼對三角形還有矩形的識別方式是:
(1)按照目標(biāo)的數(shù)額,相片會被分成許多塊,也就是說,根據(jù)每個(gè)物體的外層的正方形。
(2)Hough鏈碼用的就是一條直線,每一行的方程式也可以被計(jì)算出來。
(3)按照直線方式,對各個(gè)直線間的交點(diǎn)分別核算,再分別對這些交點(diǎn)進(jìn)行判斷,查看交點(diǎn)是否在圖像里,如果在里面說明這個(gè)點(diǎn)是物體的頂點(diǎn),再就能夠計(jì)算他們之間的夾角,否則,不是頂點(diǎn)。
(4)計(jì)算得到的夾角為參數(shù),得到差分鏈碼。
(5)把差分鏈碼與表1中的模板鏈碼分別匹配。
表1 物件模板鏈碼數(shù)據(jù)庫Tab.1 Object Template Chain Code Database
為了降低形狀識別過程中的誤差,設(shè)定夾角閾值,設(shè)置為4。計(jì)算的角度小于閾值,結(jié)果是有效的。
形狀識別結(jié)果,如圖14所示。從圖中可以明顯看到,Hough變換和Hough鏈碼都能識別圓、矩形和三角形,而且它們的識別效果也都很好。同一形狀的物體即使在姿態(tài)發(fā)生變化時(shí)也能被精準(zhǔn)地將形狀識別出來。該文章只測試了三個(gè)規(guī)則幾何對象,即圓、矩形和三角形。然而,Hough單鏈編碼算法也應(yīng)用于不規(guī)則多邊形,但僅用于形狀識別。對于那些形狀一致但大小不同的對象,別的方式仍需改善[6]。
物體的識別只是指物體形狀的識別,只能依據(jù)識別到的形狀知其位置,但是還需要對物體進(jìn)行定位才能夠確定物體的抓取位置。在工業(yè)抓取當(dāng)中,通常以物體的質(zhì)心位置作為抓取位置,這有利于機(jī)器人抓握目標(biāo)物體,使得抓握過程更加穩(wěn)定。在該文本中,對在前一個(gè)攝像機(jī)獲取的圖像進(jìn)行處理,獲取質(zhì)心,再找到目標(biāo)對象,并依據(jù)所獲得的質(zhì)心來獲得目標(biāo)對象的質(zhì)心位置。為了獲得圖像上多個(gè)目標(biāo)的質(zhì)心,第一步就是依據(jù)目標(biāo)分為N個(gè)不同的目標(biāo)塊BlockN(i,j),分兩步進(jìn)行。第一步是找到物體邊緣上的角點(diǎn)。
第二步就是對全部的物體的所有的點(diǎn)都分別對應(yīng)的求x軸和Y軸方向的最小坐標(biāo)值、最大坐標(biāo)值。
在塊分割結(jié)束的時(shí)候,計(jì)算當(dāng)中會出現(xiàn)一些錯(cuò)誤。故而,為了得到更加準(zhǔn)確的結(jié)果,x軸和Y軸的坐標(biāo)區(qū)域增加5個(gè)像素。X軸坐標(biāo)區(qū)域是iN~(imin+5,imax+5),y軸坐標(biāo)范圍為jN~(jmin+5,jmax+5),它們相對應(yīng)的(p+q)階矩定義為:
其中,f(i,j)也就是一個(gè)像素的質(zhì)量,Mpq為不同p、q值下的圖像的矩·零階矩M00的公式為中展示區(qū)域密度的總和。
一階矩M10、M01分別為圖像對j軸和i軸的慣性矩:
M10、M01分別除以M00后的就是物件的質(zhì)心坐標(biāo)(i,j)=(M10/M00,M01/M00)。
按上面的方法計(jì)算出的物體質(zhì)心位置,如圖15所示。從圖中可以得出,已經(jīng)識別的物體是有特殊標(biāo)記的,位置等沒有特別大的變動.實(shí)驗(yàn)證明,這個(gè)算法簡單高效,任意圖像都可以很好的適應(yīng)。
圖15 物件質(zhì)心足位結(jié)果Fig.15 Results of Object Centroid Feet
圖像中物體的形狀識別和質(zhì)心定位之前已經(jīng)進(jìn)行過。但是,機(jī)器人一次只能抓取一個(gè)物體,但是攝像機(jī)拍照不只有一個(gè)物體。所以,從圖像中的很多物體中提取出來一個(gè)物體。由于觸發(fā)器是設(shè)置在攝像機(jī)視圖中的水平軸中心,觸發(fā)器在發(fā)生碰撞時(shí)才可以得到每一個(gè)物體的圖像,所以,在開始接觸的時(shí)候物體就已經(jīng)是目標(biāo)對象了,即橫向中間傾斜到被選為目標(biāo)物體的圖像對象的左側(cè)[8],并標(biāo)出目標(biāo)物體及其質(zhì)心,如圖16所示。
圖16 提取目標(biāo)物件Fig.16 Extracts the Target Object
提取的目標(biāo)物信息,如表2所示。
表2 目標(biāo)物件定位結(jié)果Tab.2 Target Object Positioning Results
單獨(dú)獲取目標(biāo)物體的大小形狀,像素點(diǎn),坐標(biāo)點(diǎn)等信息,獲取圖像在坐標(biāo)系當(dāng)中的中心位置,然后捕捉到對象的位置。
在動態(tài)取數(shù)實(shí)驗(yàn)之前,實(shí)施靜態(tài)取數(shù)的實(shí)驗(yàn)。也就是,當(dāng)物體輸送無法運(yùn)作的時(shí)候,攝像機(jī)安裝在工業(yè)機(jī)器人上,物體在機(jī)器人的運(yùn)作區(qū)域之內(nèi)。靜態(tài)取數(shù),如圖17所示。
圖17 靜態(tài)抓取系統(tǒng)布局示意圖Fig.17 Static Capture System Layout Diagram
其中,XY為參考坐標(biāo)系,XRYR為機(jī)器人坐標(biāo)系,坐標(biāo)系的機(jī)器人可以服務(wù)的范圍是(300×300)mm,攝像機(jī)的攝像范圍是(200×150)mm,放置對象時(shí),根據(jù)不同的對象將它們分別放在不同的位置上。放置矩形物體時(shí),運(yùn)行至機(jī)器人坐標(biāo)系(50,50)的位置,放置圓形物件時(shí)運(yùn)行至機(jī)器人坐標(biāo)系(150,50)的位置,放置三角形物件時(shí)運(yùn)行至機(jī)器人坐標(biāo)系(250,50)的位置。通過這里第三章所述的算法對攝像機(jī)獲取的圖像進(jìn)行處理,傳輸物體位置信息給機(jī)器人,按照信息控制機(jī)器人,保證抓取的順利進(jìn)行[9]。
選擇三張?jiān)陟o止?fàn)顟B(tài)下抓拍到的圖像,經(jīng)過三次圖像處理后的最終圖像,如圖18所示。
圖18 攝像機(jī)采集到的圖像Fig.18 Image Acquired by Camera
經(jīng)過處理后,攝像機(jī)獲取的第一幅圖像,如圖18(a)所示。目標(biāo)物件的形狀是三角形,物體的質(zhì)心坐標(biāo)可以得到是:(103,153)pix,在參考坐標(biāo)系下的坐標(biāo)(x,y)=(-37.6,54.4)mm,機(jī)器人坐標(biāo)系中的捕捉位置為(xR,yR)=(112.4,154.4)mm,放置位置為(250,50)mm。經(jīng)過處理后,攝像機(jī)捕捉的第二幅圖像,如圖18(b)所示。物體是圓形的,目標(biāo)物體的質(zhì)心坐標(biāo)可以得到是:(116,177)pix,在參考坐標(biāo)系下的坐標(biāo)(x,y)=(-29.7,39.4)mm,機(jī)器人坐標(biāo)系中的捕捉位置為(xR,yR)=(120.3,139.4)mm,放置位置為(150,50)mm。一系列處理之后,攝像機(jī)獲取的第三幅圖像,如圖18(c)所示。物件的形狀為矩形,目標(biāo)物體的質(zhì)心坐標(biāo)可以得到是:(90,166)pix,在參考坐標(biāo)系下的坐標(biāo)(x,y)=(-54.5,46.3)mm,機(jī)器人坐標(biāo)系中的捕捉位置為(xR,yR)=(95.5,146.3)mm,放置位置為(50,50)mm。
完成完靜態(tài)抓取試驗(yàn),驗(yàn)證了這里提出的圖像處理還有機(jī)器人控制都有一定的可實(shí)施性,還有精準(zhǔn)性。再實(shí)施抓取實(shí)驗(yàn),也就是在傳送線持續(xù)運(yùn)作的時(shí)候識別并進(jìn)行抓取,選擇從運(yùn)輸傳送開始的到結(jié)束的持續(xù)圖像,然后對他們進(jìn)行識別并對位置進(jìn)行獲取,該文章對圖像里的物件分別抓取放置。抓取系統(tǒng)的主要構(gòu)建圖,如圖19所示。當(dāng)中XY代表坐標(biāo)系,XRYR是機(jī)器人的坐標(biāo)系,直角坐標(biāo)系機(jī)器人的實(shí)施運(yùn)作區(qū)域?yàn)椋?00×300)mm,攝像機(jī)的工作區(qū)域?yàn)椋?00×150)mm,物件輸送線的速度是0.1m/s,觸發(fā)器安裝在相機(jī)拍攝區(qū)域橫軸的中點(diǎn),物體放置位置隨形狀不同而不同,機(jī)器人放置矩形物件時(shí)運(yùn)行至機(jī)器人坐標(biāo)系(50,50)的位置,放置矩形物件時(shí)運(yùn)行至機(jī)器人坐標(biāo)系(150,50)的位置,放置矩形物件時(shí)運(yùn)行至機(jī)器人坐標(biāo)系(250,50)的位置。
圖19 動態(tài)抓取系統(tǒng)布局示意圖Fig.19 Schematic Diagram of Dynamic Capture System Layout
圖20 攝像機(jī)采集到的圖像Fig.20 Image Acquired by Camera
上面分析的結(jié)果大多是理想狀態(tài)下的,假設(shè)坐標(biāo)系里機(jī)器人每一次完成抓放的時(shí)間是ΔT=1s,可事實(shí)上放置當(dāng)中因?yàn)樽ト〉牡攸c(diǎn)不是穩(wěn)定不變的,而且要把各個(gè)形狀的物體全部放在不一樣的位置上,所以這個(gè)過程中使用的時(shí)間也都不一樣,可是要計(jì)算抓放的位置就要清楚抓放一次的時(shí)間,按照機(jī)器人的速度把抓放一個(gè)物體時(shí)間均分為1s,這盡管會讓這一過程產(chǎn)生些許的誤差,不過因?yàn)樗俣群苈?,所以這一誤差對最終結(jié)果不會有什么太大的影響,并且因?yàn)樽ト〉牟牧隙疾恢?,所以抓取的時(shí)候不管是位置還是質(zhì)心的像素點(diǎn)都不會影響最終的結(jié)果[10]。
這里提出了一種基于機(jī)器視覺的工業(yè)機(jī)器人抓取系統(tǒng),針對工業(yè)生產(chǎn)過程中工業(yè)機(jī)器人抓取對象的局限性,構(gòu)建了一套完整的抓取系統(tǒng)。從確定機(jī)器視覺的機(jī)器人抓取系統(tǒng),抓取系統(tǒng)的控制目標(biāo),抓取目標(biāo)物體,定位物體,提取目標(biāo)物體,配置笛卡爾坐標(biāo)系機(jī)器人以及創(chuàng)建更高級別的用戶界面等方面進(jìn)行分析。經(jīng)過系統(tǒng)研究,最后經(jīng)過靜態(tài)以及動態(tài)相結(jié)合的實(shí)驗(yàn)對該文章的構(gòu)建系統(tǒng)分別進(jìn)行了驗(yàn)證,獲得了很理想的結(jié)果,驗(yàn)證了這里構(gòu)建系統(tǒng)存有高效性以及準(zhǔn)確性。