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