郝 麗, 冷春濤, 武書昆, 劉彥博
(上海交通大學(xué)學(xué)生創(chuàng)新中心,上海200240)
隨著以智能制造為主導(dǎo)的工業(yè)4.0 觀念普及和人工智能領(lǐng)域快速發(fā)展,機器人及機械臂的智能控制和研究已經(jīng)成為當(dāng)下的熱門領(lǐng)域,同時也對社會產(chǎn)生了深遠的影響,特別是在生活及工業(yè)生產(chǎn)中,機械臂智能控制的應(yīng)用日益廣泛,越來越成為現(xiàn)代生活生產(chǎn)中不可或缺的工具[1-3]。隨之而來的機械臂控制相關(guān)的實驗教學(xué),也逐步在各大高校中展開[4-6]。胡幸江等[7]通過將單片機實驗融入機械臂控制實驗中,使學(xué)生對于機械臂控制系統(tǒng)的整體架構(gòu)及搭建有了直觀感受,并通過結(jié)合CAD 教學(xué)讓學(xué)生自行設(shè)計機械臂的機械結(jié)構(gòu),提高學(xué)生的學(xué)習(xí)興趣,注重動手能力的培養(yǎng)。楊楊等[8]則利用Matlab/Simulink仿真工具箱,為學(xué)生呈現(xiàn)了操作簡便的機械臂控制用戶界面,學(xué)生可以通過修改參數(shù)觀察機械臂運動的仿真結(jié)果,節(jié)約了教育成本的同時,加深了學(xué)生對理論算法的理解,并且安全可靠。
不可否認(rèn)這些做法有利于提高學(xué)生的創(chuàng)新與實踐能力,但是機械臂的控制方法仍偏向傳統(tǒng),例如通過手動點擊按鈕而使機械臂完成物體抓取等一系列動作,沒有結(jié)合計算機視覺等將智能自動控制方法引入機械臂教學(xué)中。楊亮等[9]將視覺伺服添加進機械臂控制系統(tǒng),通過攝像頭采集目標(biāo)物體圖像信息,并將位置信息轉(zhuǎn)換控制指令,控制機械臂自動完成物體抓取任務(wù),具有成本低,控制效果好的優(yōu)點,但是此結(jié)構(gòu)要求學(xué)生在Linux系統(tǒng)下進行控制系統(tǒng)搭建、指令發(fā)送等一系列操作,對學(xué)生的計算機專業(yè)知識要求較高,對于一些初涉計算機和非理工科專業(yè)的學(xué)生,會對此感到難以理解和適應(yīng),難以面向全校各專業(yè)推廣。
為此,開發(fā)了基于視覺輔助的機械臂抓取目標(biāo)物實驗平臺,通過機械臂和工業(yè)相機構(gòu)建一套機械臂智能控制機構(gòu),能夠自動感知一定區(qū)域內(nèi)的目標(biāo)物所在位置,在自動定位后實現(xiàn)目標(biāo)物的識別、抓取與搬運,并且此平臺運行于Windows系統(tǒng),具有成本低,趣味性高,入門快,各專業(yè)學(xué)生接受度高的優(yōu)點。通過將計算機視覺等智能控制知識融入傳統(tǒng)的機械臂控制課程,可以增強學(xué)生對機械臂智能控制知識和理論的理解,提高學(xué)生的動手能力和深入思考能力,激發(fā)學(xué)生的學(xué)習(xí)興趣和創(chuàng)造性思維。
本課程主要面向全校各專業(yè)本科生,在學(xué)生動手搭建并操作機械臂智能控制系統(tǒng)的同時,學(xué)會基本的機械結(jié)構(gòu)搭建和原理、機械臂控制知識以及計算機視覺的基礎(chǔ)知識等,開拓學(xué)生跨學(xué)科知識應(yīng)用的思路,提高學(xué)生的動手能力與培養(yǎng)學(xué)生的創(chuàng)新思維。
平臺分為執(zhí)行系統(tǒng)及圖像處理系統(tǒng)。執(zhí)行系統(tǒng)即機械臂本體,整個機械臂一共有4 個自由度,分別由4個步進電動機控制,并配有吸盤,機械爪,畫筆等末端執(zhí)行器來匹配不同的任務(wù),在實驗平臺中,需用到一個氣泵控制吸盤,以實現(xiàn)物體的抓取及搬運。
圖像處理系統(tǒng)配置了USB工業(yè)攝像頭,用來采集目標(biāo)物的圖像信息,并將圖像信息傳輸至計算機,用來進行目標(biāo)定位及目標(biāo)識別處理。此系統(tǒng)的整體架構(gòu)如圖1 所示。
圖1 系統(tǒng)整體架構(gòu)框圖
為了使實驗更具普適性,尤其是針對使用視野范圍較小的USB工業(yè)攝像頭的場景下,圖像采集不完整的問題,本課題采用遍歷搜索的方式尋找目標(biāo)物硬幣。具體操作如下:在機械臂末端固定攝像頭并連接至計算機,隨著機械臂末端的蛇形遍歷搜索運動,攝像頭視野將遍歷整個工作區(qū),計算機通過Python 調(diào)用OpenCV得到目標(biāo)物中心坐標(biāo),通過坐標(biāo)轉(zhuǎn)換,定位目標(biāo)物的位置,控制機械臂的動作,從而完成目標(biāo)物的自動抓取。
本實驗平臺中,機械機構(gòu)以Dobot機械臂為主體,該機械臂由底座、大臂、小臂、末端工具等部分組成,如圖2 所示。機械臂末端在運動過程中保持水平,可通過加裝末端夾具實現(xiàn)物體抓取,寫字等功能。在實際使用中,可使用LabVIEW、Python 等語言對機械臂關(guān)節(jié)進行單獨或協(xié)同控制,便于日常應(yīng)用和教學(xué)。
圖2 機械臂主體結(jié)構(gòu)示意圖
在實驗平臺中,視覺系統(tǒng)的硬件部分主要由工業(yè)攝像頭,計算機組成。攝像頭結(jié)構(gòu)使用30 ×40 ×15 的工業(yè)攝像頭,分辨率為640 ×480,采用USB接口,即插即用,鏡頭可以旋轉(zhuǎn)調(diào)焦,如圖3 所示。
在安裝攝像頭時,需確定正方向,在本文中,規(guī)定數(shù)據(jù)線頭在右上角時,攝像頭所取得圖像視野的左上角視為笛卡爾坐標(biāo)系的原點,向右為X 軸正方向,向下為Y軸正方向,正方向示意圖及攝像頭視野示意圖如圖4 所示。
圖3 USB工業(yè)攝像頭實物圖
圖4 攝像頭正方向與視野的確定
在安裝時需注意,攝像平面應(yīng)與桌面平行,并使用膠帶將USB 線纜、氣泵橡膠管等配件沿機身固定,然后將攝像頭線纜連接到計算機的USB端口。
在視覺輔助機械臂控制系統(tǒng)中,準(zhǔn)確檢測目標(biāo)物位置是關(guān)鍵的一環(huán)[10]。在本實驗中的目標(biāo)物識別方面,視覺模塊將圖像信息傳輸至計算機進行處理,為了易于描述及理解,使用一元硬幣作為目標(biāo)物,在具體算法實現(xiàn)上,采用Python +OpenCV 框架,通過霍夫圓變換進行處理。在目標(biāo)物定位方面,通過坐標(biāo)變換過程,使用“逐步遍歷搜索”的方法,確定目標(biāo)物的坐標(biāo)位置。整體算法流程如圖5 所示。
設(shè)置機械臂末端搜索點是目標(biāo)物定位的關(guān)鍵步驟,若搜索點設(shè)置不合理,會出現(xiàn)目標(biāo)物定位失敗的問題,因此,需要設(shè)置合理的搜索方式。首先測量攝像頭視野的尺寸,再根據(jù)一幀畫面的實際大小尺寸,對工作區(qū)域進行蛇形遍歷,進而設(shè)置合理的遍歷搜索“步長”與總“步數(shù)”。遍歷搜索示意圖如圖6 所示。
在設(shè)置遍歷搜索點時,由于視覺系統(tǒng)檢測得到的硬幣圓心需與機械臂吸盤投影點坐標(biāo)保持一致,因此,需計算攝像頭與吸盤投影點的坐標(biāo)轉(zhuǎn)換關(guān)系[11]。
圖5 整體算法流程圖
圖6 遍歷工作區(qū)域示意圖
攝像頭與吸盤投影點的坐標(biāo)關(guān)系圖如圖7 所示。
圖7 坐標(biāo)關(guān)系圖
攝像頭坐標(biāo)用x,y 表示,機械臂的坐標(biāo)用X,Y 表示。易知,兩個坐標(biāo)系的轉(zhuǎn)化關(guān)系,與此時機械臂的底盤旋轉(zhuǎn)角度J1有關(guān),如圖8 所示。
設(shè)從吸盤投影點到硬幣中心的向量,在攝像頭坐標(biāo)系下為(Δx,Δy),在機械臂坐標(biāo)系下為(ΔX,ΔY),根據(jù)坐標(biāo)關(guān)系,可以得出:
圖8 關(guān)節(jié)坐標(biāo)系示意圖
根據(jù)測定,吸盤投影點在攝像頭坐標(biāo)系中的像素坐標(biāo)為(x0,y0),在程序中,可以通過OpenCV 得到硬幣中心的像素坐標(biāo),設(shè)為(x1,y1)。
于是,這兩點之間的向量為(x0-x1,y0-y1),由于這是以像素為單位的向量,若要轉(zhuǎn)化為實際尺寸,需要乘以一個系數(shù)。在本文中,攝像頭的分辨率是640×680,設(shè)攝像頭視野尺寸為L·W,則系數(shù)為:L/640,W/680。綜上,
因此可得:
或者寫成如下的矩陣形式:
利用硬幣作為目標(biāo)物,由于硬幣外觀呈圓形,因此,選擇霍夫圓變換對采集到的圖像進行處理,以檢測出圓形形狀,進而識別硬幣[12]。
霍夫圓變換是一種迄今為止較為優(yōu)秀的圓檢測算子[13-14],其教學(xué)及理解難度適中,相比于更加簡單但更易受噪聲干擾的基本邊緣檢測器,如Roberts、Prewitt等,霍夫圓變換更適合應(yīng)用在本實驗的教學(xué)及實驗算法中。
霍夫圓變換識別硬幣的具體步驟為[15]:
(1)檢測圓心。①對輸入圖像進行邊緣檢測,檢測到硬幣的邊緣線;② 計算硬幣圖形的梯度,并確定圓周線,其中圓周的梯度就是它的法線;③ 在二維霍夫空間內(nèi),繪出所有圖形的梯度直線,某坐標(biāo)點上累加和的值越大,說明在該點上直線相交的次數(shù)越多,也就是越有可能是圓心;④在霍夫空間的4 鄰域內(nèi)進行非最大值抑制;⑤設(shè)定一個閾值,霍夫空間內(nèi)累加和大于該閾值的點就對應(yīng)于硬幣的圓心。
(2)檢測圓半徑。① 計算某一個硬幣的圓心到所有圓周線的距離,這些距離中就有該圓心所對應(yīng)的圓的半徑的值,這些半徑值當(dāng)然是相等的,并且這些圓半徑的數(shù)量要遠遠大于其他距離值相等的數(shù)量;②設(shè)定兩個閾值,定義為最大半徑和最小半徑,保留距離在這兩個半徑之間的值,閾值的取值以硬幣實際測量得到的半徑為準(zhǔn);③對保留下來的距離進行排序;④ 找到距離相同的那些值,并計算相同值的數(shù)量;⑤ 設(shè)定一個閾值,只有相同值的數(shù)量大于該閾值,才認(rèn)為該值是該圓心對應(yīng)的圓半徑;⑥ 對每一個硬幣的圓心,完成上述步驟,得到所有的硬幣半徑。
對硬幣圖像進行霍夫圓變換的過程及結(jié)果如圖9所示,圖9(a)~(d)分別為原圖像、灰度變換后圖像、圖像的灰度直方圖及變換的最終結(jié)果。
圖9 霍夫圓變換
在目標(biāo)抓取及搬運過程中,需將氣泵及吸盤安裝至機械臂相應(yīng)位置,當(dāng)硬幣的位置信息被視覺系統(tǒng)識別后,機械臂收到指令開始運動至目標(biāo)物上方,并使用氣泵及吸盤進行目標(biāo)物的抓取及搬運。
在抓取過程中,機械臂末端使用門型軌跡的點到點的運動模式,具體形式如圖10 所示。
設(shè)A點為機械臂末端起始點,B 點為目標(biāo)物所在處,當(dāng)位于B處的目標(biāo)物坐標(biāo)信息傳輸至機械臂控制系統(tǒng)后,機械臂末端吸盤從起始點出發(fā),上升至一定高度后,平移至目標(biāo)物上方,然后下降至目標(biāo)物所在位置,通過氣泵控制吸盤,完成目標(biāo)物的抓取,當(dāng)目標(biāo)物抓取成功后,再以相同的門型運動方式運載目標(biāo)物至預(yù)先設(shè)置好的放置點。
圖10 門型軌跡示意圖
開發(fā)的基于視覺輔助的機械臂智能抓取實驗平臺支持自動抓取目標(biāo)物,控制效果如圖11 所示。將硬幣置于機械臂的工作半徑之內(nèi),機械臂上方安裝USB 工業(yè)攝像頭,用于捕獲現(xiàn)場信息,系統(tǒng)能夠自動識別目標(biāo)位置,并使用機械臂末端吸盤將物體搬運至指定位置。
圖11 控制效果圖
在教學(xué)實踐中,需要通過完成智能控制軟硬件系統(tǒng)搭建及分組進行目標(biāo)物抓取實驗并分析結(jié)果,考查學(xué)生對于機械臂運動原理和智能控制過程的理解及靈活應(yīng)用程度。
學(xué)生兩人1 組進行實驗,需自行完成搭建視覺及機械臂抓取控制系統(tǒng)的軟硬件部分,通過視覺系統(tǒng)識別定位目標(biāo)物,并完成將目標(biāo)物采用門式運動運送至指定位置并疊放的操作。在完成5 枚1 元硬幣的自動識別并搬運實驗后,將目標(biāo)物由5 枚1 元硬幣換為2枚1 元硬幣與3 枚5 角硬幣的混合硬幣,和2 枚1 元硬幣與3 枚相同硬幣大小但是厚度為10 mm 的亞克力片,擺放于相同的位置,分別進行實驗并記錄成功搬運次數(shù)。在分別完成10 次實驗后,將3 組實驗的成功率進行對比分析。
10 組對比實驗后,成功次數(shù)統(tǒng)計結(jié)果如表1所示。
由表1 可見,在目標(biāo)物的半徑尺寸大小相同、厚度均勻時,抓取搬運的成功率最高;在厚度不同,半徑尺寸大小相同時,抓取搬運的成功率次之;在有明顯目標(biāo)物半徑尺寸差異的情況中,成功率最低。
在實驗中,通過圖表對比,可以使學(xué)生直觀地感受到機械臂智能控制的優(yōu)越性與不足之處,進而引導(dǎo)學(xué)生思考并提出改進方向,對于深入學(xué)習(xí)機器智能理論知識及提高實踐能力大有好處。
表1 成功搬運次數(shù)統(tǒng)計表
桌面型機械臂具有成本低,重量輕,占地空間小的特點[16]?;谝曈X的桌面型機械臂創(chuàng)新實驗平臺可以通過工業(yè)攝像頭采集圖像信息,通過遍歷搜索的方式定位硬幣方位,輔助機械臂完成目標(biāo)物抓取等任務(wù),具有反應(yīng)時間短,穩(wěn)定性高,操作簡便等特點,非常適合創(chuàng)新實驗教學(xué)。另外,相比于Linux 系統(tǒng),對于廣大本科學(xué)生來說,在Windows 系統(tǒng)上的智能控制編程及操作更具有普適性,適用于大多數(shù)學(xué)生的計算機操作習(xí)慣,更易于理解與掌握,便于課程在全校各學(xué)院各專業(yè)之間順利展開。目前,該創(chuàng)新平臺已應(yīng)用于本校機械臂智能控制等選修課程中,并已開設(shè)兩個學(xué)期,根據(jù)學(xué)生反饋,該課程及實驗平臺可以有效調(diào)動學(xué)生的學(xué)習(xí)積極性以及提高動手能力,使學(xué)生從被動的簡單實驗驗證轉(zhuǎn)變?yōu)橹鲃訉W(xué)習(xí),深入思考與探索新知識,提高了授課質(zhì)量。