周志霄 王 宸② 張秀峰 劉 超 唐 禹 張 偉
(①湖北汽車工業(yè)學(xué)院機械工程學(xué)院,湖北 十堰 442000;②上海大學(xué)上海市智能制造與機器人重點實驗室, 上海 200072)
零件分揀在工業(yè)生產(chǎn)過程中是非常重要的一個環(huán)節(jié),傳統(tǒng)的人工分揀不僅效率低下,而且耗時耗力,已經(jīng)無法滿足現(xiàn)代化生產(chǎn)需要。目前已有部分企業(yè)將工業(yè)機器人應(yīng)用在分揀作業(yè)中,但是其分揀方式單一,無法適應(yīng)復(fù)雜的場景。機器視覺技術(shù)具有自動化、非接觸和高精度等特點,將機器視覺應(yīng)用到工業(yè)機器人分揀過程中能有效提高工作效率。
彭剛等人[1]提出了一種基于Surf和 Freak算法的元器件分揀方法,該算法加快了模型的建立,減少了目標(biāo)分類的時間。廖家驥等人[2]設(shè)計了一種針對不同形狀的工件分揀系統(tǒng),主要采用模板匹配對工件進行分類和定位,該系統(tǒng)可對任意位置的工件進行分類。伍錫如等人[3]針對工業(yè)分揀機器人識別工件速度慢、精度低等問題,提出了一種基于深度學(xué)習(xí)的識別工件算法,該算法具有良好的可行性。以上基于機器視覺的自動分揀方法,相較于人工分揀在速度和效率上都有了較大提高,但沒有考慮優(yōu)化分揀路徑進一步完善分揀系統(tǒng)。
零部件分揀[4]、無人機隊列調(diào)整[5]等路徑規(guī)劃問題可以歸約到旅行商問題(travel sale problem,TSP)的研究上來,TSP是一類經(jīng)典的組合優(yōu)化問題,該問題可以描述為一個商人要去若干個城市,且每座城市只能經(jīng)過一次,最終返回出發(fā)點城市所經(jīng)過的最短路徑。
目前許多學(xué)者對TSP求解算法進行了研究,由于單一的智能優(yōu)化算法存在局限性,因此此類算法多采用幾種算法相結(jié)合或者對原有算法的算子改進的辦法。Wu C等人[6]在頭腦風(fēng)暴(BSO)算法的基礎(chǔ)上設(shè)計了一種新型交叉算子來求解TSP,該算法求解精度高,不易陷入局部最優(yōu)。呂文壯等人[7]設(shè)計了一種改進蟻群(PSO-ACO)算法解決TSP,該算法利用粒子群算法對蟻群算法產(chǎn)生的較優(yōu)解進行交叉和變異,得到更加優(yōu)質(zhì)的種群,但是該算法在實際應(yīng)用時求解速度較慢。Wei B等人[8]將概率策略和遺傳算子引入粒子群優(yōu)化算法中,設(shè)計出了混合粒子群優(yōu)化算法(IHPSO),并應(yīng)用于求解TSP,該算法保證了種群的多樣性,具有較高的收斂精度。Jiang X Y等人[9]于2018年提出了天牛須搜索算法( beetle antennae search algorithm, BAS),該算法原理簡單、計算量少,求解速度快,然而當(dāng)前將BAS用于求解TSP問題的研究還較少。
基于以上分析,通過改進智能優(yōu)化算法的算子能夠有效解決TSP問題,然而上述算法存在算法復(fù)雜度較高、求解速度慢等缺陷,因此本文在遺傳算法的基礎(chǔ)上設(shè)計了一種基于天牛須算法的啟發(fā)式變異算子求解TSP,并應(yīng)用到零件自動分揀中,提高了規(guī)劃路徑的速度,縮短機械臂運動軌跡的長度。
本文采用如圖1所示的實驗系統(tǒng),該實驗系統(tǒng)包括:機械手、工業(yè)攝像頭和計算機。具體型號如表1所示。


表1 實驗平臺硬件及軟件型號
本文基于機器視覺技術(shù),采用改進遺傳算法(BAS-GA)規(guī)劃機械手抓取的路徑,主要為以下3個步驟:第一步,使用圖像處理軟件對零件圖像進行預(yù)處理;第二步,對零件進行識別和定位,得到目標(biāo)零件坐標(biāo);第三步,使用BAS-GA算法對機械手的抓取路線進行規(guī)劃,實現(xiàn)機械手對零部件進行快速分揀。
由于噪聲、光照等外界環(huán)境或設(shè)備本身的原因,通常所獲取的原始圖像質(zhì)量不是非常高,為了使圖像更加清晰,突出圖像特征,便于進一步對圖像進行識別和分析,需要對模板零件和待匹配零件圖像預(yù)處理。主要包括灰度化處理[10]、中值濾波[11]、自適應(yīng)閾值[12]和開操作處理[13]。

本文采用文獻[14]的方法對零件進行識別與定位,該方法首先使用Sift算法對模板零件圖像和待匹配零件圖像進行識別,找到目標(biāo)零件,然后通過仿射矩陣將模板零件中心坐標(biāo)轉(zhuǎn)換為目標(biāo)零件的中心坐標(biāo)。
選取20個零件作為實驗對象,其中包括4個方斜墊片,4個圓形墊片,4個彈墊以及8個螺母。隨機將這些零件散落在抓取區(qū)域內(nèi),將其中8個螺母作為目標(biāo)零件,啟動工業(yè)攝像頭采集圖像并顯示在交互界面上,使用Halcon 20.1軟件采用前文的方法,獲取螺母的位置坐標(biāo)。圖3為零件定位圖像,表2為得到的螺母中心坐標(biāo)。

表2 螺母中心坐標(biāo)

在完成螺母零件識別和定位后,開始對機械手分揀螺母零件路徑進行規(guī)劃。設(shè)f為一組移動序列,v1,v2,...,vn為n個目標(biāo)零件,Rd為這個移動序列下的機械手分揀路徑:
f=(v1,v2,…,vn)
(1)
(2)
其中:d(vi,vi+1)為零件vi到vi+1零件的距離。可以看出此模型可歸結(jié)為TSP問題。
遺傳算法(genetic algorithm,GA)是模擬自然界中生物進化的過程,根據(jù)優(yōu)勝劣汰原理,通過種群進化得到最優(yōu)解。
GA算法求解過程為:首先對每個目標(biāo)零件進行編碼,各個編碼在基因序列中出現(xiàn)的先后順序作為個體,即一個機械手分揀路徑。編碼完成后,隨機產(chǎn)生一個有規(guī)模限制的種群,相當(dāng)于各種分揀路徑的集合。適應(yīng)度函數(shù)在尋優(yōu)過程中有著重要作用,在機械手分揀路徑優(yōu)化過程中以分揀路徑最短為目的,由式(2)定義適應(yīng)度函數(shù)為:
(3)
在確定適應(yīng)度函數(shù)后,開始對種群進行多次選擇、交叉、以及變異操作,計算每個個體的適應(yīng)度,輸出適應(yīng)度最高的個體,即機械手分揀的最優(yōu)路徑。其中的變異操作是隨機改變種群中個體的基因位置,常見的變異操作有交換變異、逆轉(zhuǎn)變異和倒換變異。逆轉(zhuǎn)變異包括以下步驟:
第一步:隨機選擇2個插入點(a和b),如圖4所示。
第二步:將兩個插入點中間部分的編碼順序顛倒得到子代,如圖5所示。

天牛須搜索算法(BAS)是根據(jù)天牛覓食的原理而開發(fā)的算法。天牛長有兩只觸角,在天牛搜尋食物時,兩只觸角感知食物氣味的濃度,如果右邊觸角感受到的氣味濃度比左邊大,則往右移動,反之亦然。天牛須搜索算法具有全局搜索速度快、求解精度高等特點,目前已在各工業(yè)領(lǐng)域得到廣泛應(yīng)用[15~18]。
如3.2所述GA算法中的逆轉(zhuǎn)變異是以一定的概率改變種群中個體的某些基因的值,具有較大的隨機性,容易產(chǎn)生適應(yīng)度較差的子代,影響著算法的效率和速度。為提高算法效率,根據(jù)本文問題結(jié)合BAS算法的思想,設(shè)計了一種啟發(fā)式變異算子。即在每個操作回路中,只能選擇距離最近的相鄰目標(biāo)零件作為下一個到達的位置。
過程為父代記作A= (a1,a2,…,an),即一種分揀路徑。所產(chǎn)生的新個體記作B,從父代A中隨機選擇一個目標(biāo)零件,將此零件記為α,并將α記作B的起點。α兩邊的零件記作αl、αr,零件αl、αr與α的距離分別為dl、dr。這里α可以理解為天牛當(dāng)前的位置,αl和αr對應(yīng)著天牛的左須跟右須,dl和dr則對應(yīng)著左右須氣味的強度。通過比較兩邊氣味強度來確定天牛下一步的位置,并將得到的位置添加到B中。流程如圖6所示。

BAS-GA算法具體流程如圖7所示。

為了驗證所提出算子的有效性,采用國際標(biāo)準(zhǔn)TSPLIB標(biāo)準(zhǔn)數(shù)據(jù)集中burma14進行實驗, burma14已知最優(yōu)解為30.87,最優(yōu)路徑圖如圖8所示。

隨機選取父代P作為實驗對象,父代P的路徑為[5 7 13 10 9 11 8 1 2 3 4 14 12 6],如圖9所示,對應(yīng)的路徑長度為32.567 6。

使用BAS-GA算法中特定的變異算子對父代P進行排序,隨機選取了父代P中序列為7的基因作為子代起點,即城市8,比較父代P中與城市8相鄰兩城市的距離,取其中距離近的城市作為子代下一個城市,經(jīng)過多輪迭代,可得到路徑:[8 1 11 9 10 2 13 7 3 4 14 12 6 5],路徑長度為31.299 8。可以看出改進后的變異算子得到了適應(yīng)度更好的子代,從而以更快的速度找到最優(yōu)解。
為驗證BAS-GA算法的性能,選取TSPLIB中的數(shù)據(jù)Ulysses22、att48、eil101進行仿真實驗,以上數(shù)據(jù)為旅行商問題實例的城市坐標(biāo),主要用來測試TSP相關(guān)算法性能。本文采用不同算法進行對比實驗,為了保證實驗的公平性,所有實驗都在同一環(huán)境下進行,具體仿真環(huán)境為:操作系統(tǒng)Windows 10,CPU型號為AMD 3100,運行環(huán)境為Matlab2020a。BAS-GA算法中種群數(shù)量為100,交叉率為0.3,變異率為0.7,最大迭代次數(shù)為500。比較對象為模擬退火算法(SA),遺傳算法(GA)以及文獻[7]中的改進蟻群算法(PSO-ACO)。測試結(jié)果如表3所示。

表3 BAS-GA算法與其他算法實驗結(jié)果比較
表3中Set表示集合類型,Opt表示官方公布的最優(yōu)解,Best表示實驗得到的最優(yōu)路徑長度,Time表示得到最優(yōu)路徑的時間。為了使得到的數(shù)據(jù)更直觀,本文采用相對誤差ER對算法求解準(zhǔn)確性進行評估,即絕對誤差與真值的比值乘以100%得到的數(shù)值:
(4)
根據(jù)相對誤差公式,對表3中數(shù)據(jù)進行處理,得到表4。

表4 算法性能對比
從表3和表4可以看出,針對中小型數(shù)據(jù)集Ulysses22、att48,對比SA算法、GA算法和PSO-ACO算法,BAS-GA算法的求解精度更高、求解時間更短。同時,對數(shù)據(jù)集Ulysses22,BAS-GA算法搜索到比官方數(shù)據(jù)更短的路徑。但從數(shù)據(jù)集eil101來看,BAS-GA算法在處理大型數(shù)據(jù)集時,可能會陷入局部最優(yōu),且與PSO-ACO算法相比,雖然BAS-GA算法在求解時間上有所領(lǐng)先,但在求解精度上略微落后,后期有待改進。
將表2中的螺母零件中心坐標(biāo)輸入分揀程序中,然后分別采用初始路徑和經(jīng)過優(yōu)化后的路徑控制機械手進行抓取,并記錄兩種路徑下機械手運動軌跡的長度。

實驗表明機械手抓取的初始路徑為1 510.89mm,經(jīng)過改進遺傳算法優(yōu)化后,得到長度為1 330.1mm的路徑,路徑縮短了11%。
本文為提高零部件自動分揀效率,運用機器視覺技術(shù)識別并定位零件,對得到的目標(biāo)零件坐標(biāo)建立TSP模型,設(shè)計了BAS-GA算法對模型進行求解。通過BAS-GA算法與多種算法比較,BAS-GA算法路徑規(guī)劃時間短,求解精度較高。該算法具有較好的優(yōu)越性和可行性,適合工程實際應(yīng)用。