李亞軍,吳振強(qiáng),徐 慧,邱 野,侯 偉
(北京機(jī)械工業(yè)自動(dòng)化研究所有限公司,北京 100120)
在某制藥廠項(xiàng)目中,機(jī)器人碼垛系統(tǒng)采用的是ABB碼垛機(jī)器人,具有多機(jī)器人,多工位,多箱型,多跺型的特點(diǎn),為了方便產(chǎn)品的輸送,儲(chǔ)存,銷(xiāo)售和管理,該機(jī)器人碼垛不但具有操作簡(jiǎn)單,運(yùn)行穩(wěn)定,可視性強(qiáng),維修方便,而且還具有增加箱型簡(jiǎn)單等優(yōu)點(diǎn)。它通過(guò)與PLC和觸摸屏的連接,能夠?qū)崿F(xiàn)信息實(shí)時(shí)追蹤,信息傳遞,遠(yuǎn)程診斷和方便WMS,EMS管理。下面結(jié)合實(shí)例,綜合分析碼垛的算法,比較其優(yōu)缺點(diǎn),分析碼垛的應(yīng)用范圍,掌握編程的思路,這樣可以在安裝調(diào)試階段減少大量人力物力,降低勞動(dòng)強(qiáng)度,提高生產(chǎn)效率,節(jié)約成本。
某制藥廠項(xiàng)目是紙箱碼垛,采用3臺(tái)ABB公司IRB460機(jī)器人,其中每臺(tái)機(jī)器人完成4工位碼垛任務(wù),即2條產(chǎn)品拾取工位和4個(gè)產(chǎn)品碼垛工位,機(jī)器人碼垛布置圖如圖1所示。
其中,L0為左側(cè)拾取工位,對(duì)應(yīng)碼垛放置工位L11和L12;R0為右側(cè)拾取工位,對(duì)應(yīng)右側(cè)碼垛放置工位R11和R12。
在實(shí)際應(yīng)用中,機(jī)器人在碼垛過(guò)程中,影響機(jī)器人碼垛放置順序的主要因素有:
圖1 機(jī)器人碼垛布置圖
1)機(jī)器人卡具的影響。常用的機(jī)器人卡具主要有鉤爪式,真空吸盤(pán)式和夾抱式等。若采用鉤爪式卡具,在放置時(shí),要考慮鉤爪的位置,否則有可能會(huì)壓箱子,損壞設(shè)備;
2)箱子尺寸的影響。箱子的尺寸應(yīng)在機(jī)器人卡具的工作變徑范圍內(nèi),若箱子的長(zhǎng)度小于機(jī)器人卡具的長(zhǎng)度時(shí),箱子被夾在卡具內(nèi)部,在放置時(shí)應(yīng)考慮卡具對(duì)已碼跺型的影響。
3)條碼標(biāo)簽的影響。為便于操作,客戶(hù)要求標(biāo)簽朝外,方便手持掃碼拼盤(pán)。
最后,綜合工藝流程和現(xiàn)場(chǎng)因素,確定了左右放置工位的奇數(shù)層偶數(shù)層的“32跺型”碼垛順序,如圖2所示。其他跺型不在贅述。
圖2 碼垛工位順序圖
在圖2中,(a)為左側(cè)工位碼垛奇數(shù)層順序,(b)為左側(cè)工位碼垛偶數(shù)層順序,(c)為右側(cè)工位碼垛奇數(shù)層順序,(d)為右側(cè)工位碼垛偶數(shù)層順序。
拾取參考點(diǎn)選擇如圖3所示。由于拾取工位箱子定位的對(duì)稱(chēng)性,所以,覺(jué)得碼放位置碼放的對(duì)稱(chēng)性,使左右放置工位位置的不一致,決定拾取參考點(diǎn)選擇的對(duì)稱(chēng)性,所以引入碼垛算法比例系數(shù)K。在L0拾取工位,箱子靠右側(cè)定位,K=1;在R0拾取工位,箱子靠左側(cè)工位,K=-1。
圖3 拾取參考點(diǎn)選擇
3.2.1 基于放置位置的碼垛算法放置基準(zhǔn)點(diǎn)選擇
基于放置位置的碼垛算法,就是要求在工具坐標(biāo)系中,要求放置基準(zhǔn)點(diǎn)pBase0與放置位置點(diǎn)1重合,放置基準(zhǔn)點(diǎn)pBase90與放置位置3重合。
L11號(hào)棧板的放置基準(zhǔn)位置pBase0,如圖4(a)中1位置,此棧板的上其他位置若姿態(tài)與此基準(zhǔn)相同,則可以通過(guò)偏移算法得出。示教時(shí)使用工具坐標(biāo)系tGripper,工件坐標(biāo)系Wobj0。
L13號(hào)棧板的放置基準(zhǔn)位置pBase90,如圖4(c)中3位置,此棧板的上其他位置若姿態(tài)與此基準(zhǔn)相同,則可以通過(guò)偏移算法得出。示教時(shí)使用工具坐標(biāo)系tGripper,工件坐標(biāo)系Wobj0。
右側(cè)棧板與此類(lèi)似,不再贅述。
3.2.2 基于棧板位置的碼垛算法放置基準(zhǔn)點(diǎn)選擇
基于棧板位置的碼垛算法,就是要求在工具坐標(biāo)系中,要求放置基準(zhǔn)點(diǎn)pBase0,pBase90, pBase180,pBase270棧板的角位置重合。
L11號(hào)棧板的放置基準(zhǔn)位置pBase0,如圖4(b)中1位置,此棧板的上其他位置若姿態(tài)與此基準(zhǔn)相同,則可以通過(guò)偏移算法得出。示教時(shí)使用工具坐標(biāo)系tGripper,工件坐標(biāo)系Wobj0。
L13號(hào)棧板的放置基準(zhǔn)位置pBase90,如圖4(d)中3位置,此棧板的上其他位置若姿態(tài)與此基準(zhǔn)相同,則可以通過(guò)偏移算法得出。示教時(shí)使用工具坐標(biāo)系tGripper,工件坐標(biāo)系Wobj0。
右側(cè)棧板與此類(lèi)似,不再贅述。
圖4 放置基準(zhǔn)位置圖
以左側(cè)工位L11為例說(shuō)明,放置位置的順序如圖2(a)和圖2(b)所示。
首先,位置1和位置3分別是需要示教位置的放置基準(zhǔn)點(diǎn)pBase0和pBase90。
其中,位置1與創(chuàng)建好的放置基準(zhǔn)點(diǎn)pBase0重合,則直接將pBase0各項(xiàng)數(shù)據(jù)賦值給當(dāng)前的放置目標(biāo)點(diǎn);相對(duì)于放置基準(zhǔn)點(diǎn)pBase0,位置2只是在X正方向偏移了一個(gè)產(chǎn)品長(zhǎng)度,只需要在pBase0目標(biāo)點(diǎn)X數(shù)據(jù)上面加上一個(gè)產(chǎn)品長(zhǎng)度即可;位置3則和pBase90重合,以此類(lèi)推,則可計(jì)算出剩余的全部碼放位置。
在碼垛應(yīng)用過(guò)程中,通常奇數(shù)層跺型一致,偶數(shù)層跺型一致,這樣只要算出第一層和等二層,三層及其以上奇數(shù)層位置是可以直接復(fù)制第一層各項(xiàng)X,Y軸位置,然后在Z軸正方向上面疊加相應(yīng)產(chǎn)品碼垛高度(通常為箱子高度整數(shù)倍)即可完成。四層及其以上偶數(shù)層,則直接復(fù)制第二層各項(xiàng)X,Y軸位置,然后,在Z軸的基礎(chǔ)正方向上疊加相應(yīng)產(chǎn)品的碼垛高度即可完成。這樣即可完成整個(gè)跺型的碼放位置,如表1所示。
其次,為方便對(duì)各箱型碼放位置進(jìn)行調(diào)整,利用Offs功能在已經(jīng)計(jì)算好的碼放位置基礎(chǔ)上,沿X,Y,Z再進(jìn)行微調(diào),其中調(diào)用的是已創(chuàng)建好的三維數(shù)組Compensation,例如碼放不同類(lèi)型箱型,nBoxType不同,第一個(gè)位置時(shí),則拍Target:=Offs(pTarget,Compensation{nBoxType,1}, Compensation{nBoxType,2},Compensation{nBoxType,3})。
表1 碼垛算法1放置目標(biāo)點(diǎn)位置計(jì)算表
以左側(cè)工位L11為例說(shuō)明,放置位置的順序如圖2(a)和圖2(b)所示。
首先,位置1和位置3分別是需要示教位置的放置基準(zhǔn)點(diǎn)pBase0和pBase90,但是,考慮到棧板尺寸的影響,要求放置基準(zhǔn)點(diǎn)的參考點(diǎn)與棧板的頂點(diǎn)重合,箱子的邊緣與棧板的邊緣平行。
表2 碼垛算法2放置點(diǎn)目標(biāo)位置計(jì)算表
其中,位置1的放置目標(biāo)點(diǎn),其姿態(tài)與放置基準(zhǔn)點(diǎn)即是pBase0一致,位置也即是在其X,Y,兩個(gè)方向偏移了箱子邊緣與棧板邊緣之間的距離。
表3 碼垛算法總結(jié)
X軸方向偏移距離為:
Delta X:=0.5*(TL-2*nBoxSize{nBoxType,1}-Compensation{nBoxType,1})
Y軸方向偏移距離為:
Delta Y:=0.5*(TW-nBoxSize{nBoxType,1}-nBoxSize{nBoxType,2}-Compensation {nBoxType,2});
位置2的放置目標(biāo)點(diǎn),其姿態(tài)與放置基準(zhǔn)點(diǎn)pBase0一致,位置2是在位置1的基礎(chǔ)上在X軸方向便移了箱子長(zhǎng)度的距離,Y軸與位置1一致。
X軸方向偏移距離為:
Delta X :=0.5*(TL-2*nBoxSize{nBoxType,1}-Compensation{nBoxType,1})+ nBoxSize{nBoxType,1}+C ompensation{nBoxType,1}
位置3的放置目標(biāo)點(diǎn),其姿態(tài)與放置基準(zhǔn)點(diǎn)即是pBase90一致,位置也即是在其X,Y兩個(gè)方向偏移了一定的距離。即X軸方向偏移距離為:箱子上長(zhǎng)邊邊緣與棧板上寬邊邊緣之間的距離。
Delta X :=0.5*(TL-2*nBoxSize{nBoxType,1}-Compensation{nBoxType,1})
Y軸方向偏移距離為:箱子右短邊邊緣與棧板右長(zhǎng)邊邊緣之間的距離。
Delta Y :=0.5*(TW-nBoxSize{nBoxType,1}-nBoxSize{nBoxType,2}-Compensation {nBoxType,2}) +nBoxSize{nBoxType,2}+Compensation{nBoxType,2};
以此類(lèi)推,則可計(jì)算出剩余的全部碼放位置,如表2所示。
基于放置位置的碼垛算法,雖然計(jì)算簡(jiǎn)單,易于理解,但是適用品種單一,增加跺形不便,后期工作量比較大,影響效率;而基于棧板位置的碼垛算法,程序算法復(fù)雜,前期編程工作量比較大,但是適用于多箱型的碼垛,增加跺形方便。因此可以根據(jù)項(xiàng)目實(shí)際應(yīng)用的要求,針對(duì)具體作業(yè)方案,選擇具體算法。