本發(fā)明涉及物體識別分揀領(lǐng)域。尤其涉及一種基于機(jī)械臂智能分揀系統(tǒng)。
背景技術(shù):
1、目前,機(jī)械臂因高效和低成本廣泛應(yīng)用于工業(yè)分揀領(lǐng)域。針對不同的應(yīng)用場景和任務(wù)目標(biāo),如何實(shí)現(xiàn)機(jī)械高速、高精度運(yùn)動是一個重要的挑戰(zhàn)。傳統(tǒng)工業(yè)機(jī)械臂主要利用預(yù)設(shè)固定位置工件的點(diǎn)位模型來規(guī)劃運(yùn)動軌跡,當(dāng)機(jī)械臂需要對位置變化的多種類工件執(zhí)行分揀任務(wù)時,需要重新構(gòu)建復(fù)雜點(diǎn)位模型,缺乏靈活性和智能化處理能力。
2、為了實(shí)現(xiàn)機(jī)械臂對多類別工件在非固定位置的高效分揀,智能化和自主化控制方向是研究的重點(diǎn)。目前,計算機(jī)視覺和傳感器技術(shù)正向著人類認(rèn)知方面演進(jìn),同時隨著機(jī)器學(xué)習(xí)與深度學(xué)習(xí)技術(shù)的發(fā)展被應(yīng)用于機(jī)械臂分揀領(lǐng)域,如利用二維攝像頭捕捉工件的平面圖像,通過圖像處理技術(shù)識別工件的形狀、顏色和標(biāo)識。這種做法可用于簡單的分揀任務(wù),在平面內(nèi)識別和定位工件,但無法獲得工件的深度信息,導(dǎo)致機(jī)械臂錯誤估計距離,在處理形狀、尺寸、材質(zhì)各異的工件時,適應(yīng)性仍有不足,容易出現(xiàn)誤識別和抓取失敗。同時,在工件位置發(fā)生變化時,機(jī)械臂的實(shí)時響應(yīng)能力有限,影響分揀效率。
技術(shù)實(shí)現(xiàn)思路
1、針對以上技術(shù)問題,本發(fā)明提供一種基于機(jī)器視覺的機(jī)械臂智能分揀方法及分揀系統(tǒng),通過結(jié)合機(jī)器視覺技術(shù)和機(jī)械臂操作,實(shí)現(xiàn)高效、精準(zhǔn)的目標(biāo)識別和物體分揀,以提升分揀效率和分揀精度,減少對人力的依賴,節(jié)約人力成本,提高生產(chǎn)安全性。
2、本發(fā)明提供一種基于機(jī)器視覺的機(jī)械臂智能分揀方法,所采用的技術(shù)方案包括以下步驟:
3、步驟1,通過深度相機(jī)獲取環(huán)境點(diǎn)云信息,構(gòu)建實(shí)時的三維環(huán)境模型;
4、步驟2,采用目標(biāo)檢測算法對三維環(huán)境模型進(jìn)行檢測,標(biāo)定指定目標(biāo),獲取指定目標(biāo)的位置和大??;
5、步驟3,建立指定目標(biāo)位置的預(yù)測模型,通過機(jī)器視覺和位置計算融合的方式預(yù)測目標(biāo)的未來位置,對目標(biāo)進(jìn)行鎖定;
6、步驟4,建立機(jī)械臂運(yùn)動模型,根據(jù)鎖定目標(biāo)的位置,求解機(jī)械臂的各關(guān)節(jié)旋轉(zhuǎn)角度,選擇延時時間獲取機(jī)械臂的抓取時間和姿態(tài);
7、步驟5,使用視覺伺服控制方法實(shí)現(xiàn)機(jī)械臂的控制和引導(dǎo),完成目標(biāo)夾取與釋放任務(wù)。
8、步驟2中,選用yolov8模型對目標(biāo)進(jìn)行檢測,具體步驟如下:
9、首先,圖像分割:根據(jù)yolov8模型,將所輸入目標(biāo)環(huán)境圖像像素設(shè)置為640×640,再將圖像劃分成8×8個等大單元格,每個單元格設(shè)置兩個預(yù)測框,根據(jù)單元格中心點(diǎn)確定預(yù)測框的位置,預(yù)測框的尺寸為目標(biāo)的所有單元格的外邊框尺寸;每個預(yù)測框有四個角坐標(biāo)和一個置信度,共五個參數(shù);預(yù)測圖像的類別數(shù)量設(shè)為n,則最終的預(yù)測結(jié)果是長度為8×8×(2×5+n)的向量;
10、然后,設(shè)計網(wǎng)絡(luò)模型:選用googlenet網(wǎng)絡(luò)模型,卷積層用于視覺元素特征提取,全連接層用于目標(biāo)類別概率和坐標(biāo)的預(yù)測;替換googlenet網(wǎng)絡(luò)模型中inception模塊的卷積操作,使用1x1卷積降低通道維度,再使用3x3卷積提取空間特征,在googlenet網(wǎng)絡(luò)模型中設(shè)置24個卷積層、4個最大池化層和2個全連接層;
11、接著,設(shè)計損失函數(shù),將坐標(biāo)預(yù)測誤差、置信度虧損與預(yù)測類別錯誤三部分損失相加,得到損失函數(shù);其中,坐標(biāo)預(yù)測誤差為預(yù)測框與真實(shí)目標(biāo)之間的坐標(biāo)差,置信度虧損使用二元交叉熵?fù)p失計算真實(shí)置信度與預(yù)測置信度的差值,預(yù)測類別錯誤使用多元交叉熵?fù)p失計算預(yù)測類別與真實(shí)類別之間的差值;
12、最后,對googlenet網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,優(yōu)化損失函數(shù),以提升googlenet網(wǎng)絡(luò)模型在目標(biāo)檢測中的性能;損失函數(shù)中,將坐標(biāo)預(yù)測誤差分為預(yù)測框中心坐標(biāo)誤差losscenter和預(yù)測框的尺寸誤差losssize,置信度虧損在單元包含目標(biāo)的情況下為lossobj,不含目標(biāo)的情況下為lossno_obj,預(yù)測類別錯誤為lossclass,優(yōu)化后的損失函數(shù)如下:
13、loss=losscenter+losssize+lossobj+lossno_obj+lossclass
14、
15、
16、其中,xi、yi、wi、hi分別為預(yù)測框的中心點(diǎn)x坐標(biāo)、y坐標(biāo)、寬度和高度,為真實(shí)目標(biāo)邊界框的中心點(diǎn)x坐標(biāo)、y坐標(biāo)、寬度和高度,表示第i個檢測框包含第j個目標(biāo)時取1,不包含時取0,表示當(dāng)?shù)趇個檢測框包含任意目標(biāo)時取1,不包含時取0,ci是預(yù)測的置信度,是真實(shí)的置信度,pi(n)是預(yù)測的類別概率,是真實(shí)的類別概率,λcoord和λno_obj是平衡因子,優(yōu)化后分別取5和0.5;
17、步驟3中,所述目標(biāo)位置預(yù)測模型采用基于singer模型的統(tǒng)計模型,singer模型設(shè)定目標(biāo)加速度為高斯白噪聲wc(t),wc(t)是一種零均值的隨機(jī)噪聲,服從正態(tài)分布n(0,σ2),設(shè)x(t)為目標(biāo)運(yùn)動路徑,則目標(biāo)加速度為x(t)的二階導(dǎo)數(shù)則:
18、在singer模型的基礎(chǔ)上,將目標(biāo)加速度的平均值設(shè)為非零值并將作為當(dāng)前目標(biāo)加速度的預(yù)測值且目標(biāo)加速度仍受wc(t)影響,與目標(biāo)加速度相關(guān)聯(lián);
19、對于所述目標(biāo)位置預(yù)測模型,采用卡爾曼濾波進(jìn)行目標(biāo)狀態(tài)預(yù)測;
20、步驟4中,所述機(jī)械臂為六自由度機(jī)械臂;針對機(jī)械臂運(yùn)動模型,建立世界坐標(biāo)系(a),基坐標(biāo)系(b);所述機(jī)械臂運(yùn)動模型采用d-h法對機(jī)械臂的六個關(guān)節(jié)建立關(guān)節(jié)坐標(biāo)系;基坐標(biāo)系的坐標(biāo)軸記為x0、y0、z0;xi、zi分別為第i個關(guān)節(jié)的關(guān)節(jié)坐標(biāo)系的x軸、z軸;各關(guān)節(jié)坐標(biāo)系的y軸由x軸沿右手定則方向旋轉(zhuǎn)90°得到,z軸為右手定則大拇指指向方向;
21、以基坐標(biāo)系為基準(zhǔn),確定各關(guān)節(jié)坐標(biāo)系的坐標(biāo)軸,具體過程如下:
22、根據(jù)第1個關(guān)節(jié)的旋轉(zhuǎn)方向,采用右手定則可得z1方向,z0與z1之間有一條唯一公垂線且公垂線方向?yàn)閤1方向;同第1個關(guān)節(jié),第2個關(guān)節(jié)處z2根據(jù)第2個關(guān)節(jié)的旋轉(zhuǎn)方向,采用右手定則確定,x2為z1、z2公垂線;
23、同所述第1、2個關(guān)節(jié),第3、4、5關(guān)節(jié)的z3、z4、z5都可由對應(yīng)關(guān)節(jié)的旋轉(zhuǎn)方向來確定,第6關(guān)節(jié)固定在末端執(zhí)行器上,因此z6由末端執(zhí)行器的運(yùn)動方向確定;x3、x4、x5和x6分別由z2和z3、z3和z4、z4與z5、z5與z6之間公垂線方向決定;
24、通過四個運(yùn)動矩陣相乘得到兩個相鄰關(guān)節(jié)間的轉(zhuǎn)換矩陣t(n+1)n:
25、t(n+1)n=an+1=rot(z,θn+1)t(0,0,dn+1)t(an+1,0,0)rot(x,αn+1)
26、四個運(yùn)動矩陣分別為rot(z,θn+1),t(0,0,dn+1),t(an+1,0,0),rot(z,θn+1);an+1為第n+1個關(guān)節(jié)的轉(zhuǎn)換矩陣;rot(z,θn+1)表示繞z軸轉(zhuǎn)動θn+1度,t(0,0,dn+1)表示沿向量(0,0,dn+1)t做平移變換,t(an+1,0,0)表示沿向量(an+1,0,0)t做平移變換,rot(x,αn+1)表示繞x軸旋轉(zhuǎn)αn+1度;θ為關(guān)節(jié)的旋轉(zhuǎn)角度,d為沿z軸的偏移量,a為兩個關(guān)節(jié)之間的連桿長度,α表示連桿扭角;n+1為關(guān)節(jié)數(shù),n+1的取值為1、2、3、4、5、6;
27、通過多次矩陣轉(zhuǎn)換得到不相鄰兩關(guān)節(jié)坐標(biāo)系的轉(zhuǎn)換矩陣tmn:
28、tmn=an+1an+2…am-1am(m≥n+1),m和n+1為任意兩個不相鄰的關(guān)節(jié);
29、t60表示從基坐標(biāo)系轉(zhuǎn)換到第6個關(guān)節(jié)坐標(biāo)系的轉(zhuǎn)換矩陣,定義基坐標(biāo)系到第6個關(guān)節(jié)坐標(biāo)系的轉(zhuǎn)換公式t60=a1a2a3a4a5a6為正運(yùn)動學(xué)方程,通過正運(yùn)動學(xué)方程得到六自由度機(jī)械臂運(yùn)動學(xué)的模型正解:
30、
31、式中:
32、
33、turn_x表示機(jī)械臂末端執(zhí)行器的x方向向量,turn_y表示機(jī)械臂末端執(zhí)行器的y方向向量,turn_z表示機(jī)械臂末端執(zhí)行器的z方向向量,p表示末端執(zhí)行器在基坐標(biāo)系中的位置;
34、建立所述機(jī)械臂運(yùn)動模型后,當(dāng)目標(biāo)固定時,為控制機(jī)械臂達(dá)到期望位置和姿態(tài),通過對正運(yùn)動學(xué)方程各矩陣求逆得到逆運(yùn)動學(xué)方程組,求解逆運(yùn)動學(xué)方程組得到各關(guān)節(jié)運(yùn)動數(shù)值,逆運(yùn)動學(xué)方程組包含以下逆運(yùn)動學(xué)方程:
35、逆運(yùn)動學(xué)方程中,等號兩邊均為矩陣運(yùn)算,兩邊的計算結(jié)果均為矩陣,設(shè)等號左邊矩陣第3行第4列的元素和等號右邊矩陣第3行第4列的元素對應(yīng)相等,得到:
36、
37、式中,θ1為正數(shù);若θ1為負(fù)數(shù)時,則θ1的取值為θ1′,θ1′=θ1+180°;
38、設(shè)逆運(yùn)動學(xué)方程中,等號左右兩邊矩陣第1行第2列的元素對應(yīng)相等,等號左右兩邊矩陣第2行第4列的元素對應(yīng)相等,得到方程組如下:
39、
40、對式中兩個方程的兩邊進(jìn)行平方相加求出第3個關(guān)節(jié)轉(zhuǎn)角的值如下:
41、
42、其中,
43、化簡得出新的方程組:
44、
45、設(shè)逆運(yùn)動學(xué)方程中,等號左右兩邊矩陣第1行第4列的元素對應(yīng)相等,等號左右兩邊矩陣第2行第4列的元素對應(yīng)相等,得到的方程組和求出的θ2如下:
46、
47、設(shè)逆運(yùn)動學(xué)方程中,等號左右兩邊矩陣第1行第3列的元素對應(yīng)相等,等號左右兩邊矩陣第2行第3列的元素對應(yīng)相等,得到的結(jié)果如下:
48、
49、求出的θ4為:
50、
51、設(shè)逆運(yùn)動學(xué)方程中,等號左右兩邊矩陣第1行第3列的元素對應(yīng)相等,等號左右兩邊矩陣第2行第3列的元素對應(yīng)相等,得到:
52、
53、求得θ5的解:
54、設(shè)逆運(yùn)動學(xué)方程中,等號左右兩邊矩陣第2行第1列的元素對應(yīng)相等,等號左右兩邊矩陣第2行第2列的元素對應(yīng)相等,得到:
55、
56、求得θ6的解為:
57、由所得逆運(yùn)動學(xué)方程解知,只需要已知機(jī)械臂預(yù)期位置和姿態(tài)即可由求解機(jī)械臂逆運(yùn)動學(xué)方程求出各關(guān)節(jié)移動量,進(jìn)而由控制關(guān)節(jié)移動要求移動量使機(jī)械臂移動至預(yù)期位置和姿態(tài)。
58、步驟5中,所述基于位置的視覺伺服抓取系統(tǒng)根據(jù)移動目標(biāo)的運(yùn)動狀態(tài)進(jìn)行機(jī)械臂運(yùn)動軌跡規(guī)劃,包括關(guān)節(jié)空間軌跡規(guī)劃和笛卡爾空間軌跡規(guī)劃;
59、所述關(guān)節(jié)空間軌跡規(guī)劃采用五次插值法,根據(jù)五次插值法公式求得運(yùn)動角度:
60、θ(t)=q0+q1t+q2t2+q3t3+q4t4+q5t5
61、其中,q0、q1、q2、q3、q4、q5為相關(guān)系數(shù),t為機(jī)械臂運(yùn)行時間,對關(guān)節(jié)旋轉(zhuǎn)角度θ(t)求一階導(dǎo)得到機(jī)械臂關(guān)節(jié)處的角速度:
62、θ′(t)=q1+2q2t+3q3t2+4q4t3+5q5t4
63、對關(guān)節(jié)旋轉(zhuǎn)角度θ(t)求二階導(dǎo)得到機(jī)械臂關(guān)節(jié)處的角加速度公式:
64、θ″(t)=2q2+6q3t+12q4t2+20q5t3
65、對機(jī)械臂關(guān)節(jié)的起始位置θ0和關(guān)節(jié)終點(diǎn)位置θf進(jìn)行條件給定,設(shè)t0為機(jī)械臂運(yùn)行的起始時刻,t0=0,tf為機(jī)械臂運(yùn)行的最終時刻,分別代入所述速度和加速度公式,起始位置的速度θ′(t0)和最終時刻的速度θ′(tf)為0,得到:
66、
67、求出q0、q1、q2、q3、q4、q5六個未知量,將q0、q1、q2、q3、q4、q5帶入運(yùn)動角度公式θ(t)=q0+q1t+q2t2+q3t3+q4t4+q5t5中,求得機(jī)械臂各個關(guān)節(jié)在運(yùn)行中的運(yùn)動角度θ(t);
68、將q1、q2、q3、q4、q5帶入角速度公式θ′(t)=q1+2q2t+3q3t2+4q4t3+5q5t4中,求得機(jī)械臂各個關(guān)節(jié)在運(yùn)行中的角速度θ′(t);
69、將q2、q3、q4、q5帶入角加速度公式θ″(t)=2q2+6q3t+12q4t2+20q5t3中,求得機(jī)械臂各個關(guān)節(jié)在運(yùn)行中的角加速度θ″(t)。
70、本發(fā)明還提供了一種采用上述分揀方法所形成的分揀系統(tǒng)。分揀系統(tǒng)架構(gòu)如圖1所示,包括攝像頭、控制器、機(jī)械臂和目標(biāo)。攝像頭安裝在機(jī)械臂的工作區(qū)域上方,實(shí)時采集分揀區(qū)域的圖像,將采集到的數(shù)據(jù)實(shí)時傳輸給控制器,并由控制器下達(dá)指令控制機(jī)械臂的運(yùn)動,抓取目標(biāo)。
71、本發(fā)明的有益效果如下:
72、本發(fā)明集成了實(shí)時圖像識別與視覺伺服控制、高精度機(jī)械臂運(yùn)動算法以及d-h參數(shù)法標(biāo)準(zhǔn)化建模技術(shù),能夠迅速響應(yīng)并準(zhǔn)確追蹤目標(biāo)位置,實(shí)現(xiàn)靈活多變的分揀任務(wù);
73、本發(fā)明通過閉環(huán)控制機(jī)制,系統(tǒng)進(jìn)行不斷優(yōu)化調(diào)整,確保了操作的精確性和穩(wěn)定性;
74、本發(fā)明不僅顯著提高了分揀效率與準(zhǔn)確性,還降低了人力成本,增強(qiáng)了工作場所的安全性,為企業(yè)帶來了智能化、高效化的生產(chǎn)解決方案。
75、本發(fā)明通過深度相機(jī)的實(shí)時數(shù)據(jù)采集,可以實(shí)時感知周圍環(huán)境的三維結(jié)構(gòu)和物體的距離信息,能夠捕捉到物體的深度信息,結(jié)合rgb圖像可以生成精確的三維點(diǎn)云模型,便于下一步的圖像處理;
76、本發(fā)明通過選擇合理的延時時間,能夠精確控制機(jī)械臂抓取的時機(jī)和姿態(tài),確保機(jī)械臂在最佳時刻進(jìn)行操作,提高抓取成功率和效率;結(jié)合機(jī)械臂運(yùn)動模型和逆運(yùn)動學(xué)方程的求解,能夠精確計算機(jī)械臂各關(guān)節(jié)的運(yùn)動數(shù)值,從而使機(jī)械臂達(dá)到期望的位姿,實(shí)現(xiàn)高精度的操作;精確的運(yùn)動控制能夠減少機(jī)械臂操作過程中的震動和抖動,增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性。