仙工智能技術(shù)干貨,識(shí)別專欄之料籠識(shí)別
所屬頻道:新聞中心
仙工智能識(shí)別料籠需要依賴二維碼,為什么要使用二維碼識(shí)別?
視覺(jué)傳感器作為一種可以獲取豐富紋理和色彩的傳感器,在識(shí)別和定位方面可以起到很大的作用,如果直接去識(shí)別料籠,在不提升控制器計(jì)算性能的前提下難度較大。二維碼識(shí)別作為視覺(jué)傳感器的一種典型應(yīng)用,根據(jù)其顯著的特征,能夠做到快速、準(zhǔn)確的識(shí)別。仙工智能目前支持AprilTag種類中的16h5,25h7 以及 36h11。
AprilTag:
下圖左邊為16h5,右邊為36h11:
16h5 相比于 36h11 的優(yōu)勢(shì)在于相同尺寸時(shí)分辨率更低,因此可被觀測(cè)距離更遠(yuǎn),但同時(shí)缺點(diǎn)是更容易被誤識(shí)別,因此需要根據(jù)需要選擇不同種類的 tag。
識(shí)別文件配置說(shuō)明:
實(shí)際使用二維碼時(shí),通常將兩個(gè)二維碼對(duì)稱貼在目標(biāo)物體上,識(shí)別的位置為兩個(gè)二維碼的中點(diǎn),因此需要指定二維碼與目標(biāo)物體之間的空間關(guān)系。將坐標(biāo)關(guān)系描述記錄在描述文件,后綴名為.tag,存放于 Robokit /resource/objects/tag/目錄下,或在 Roboshop 識(shí)別文件中“tag”標(biāo)簽下編輯。
打開 Roboshop 軟件,點(diǎn)擊【識(shí)別文件】標(biāo)簽頁(yè)進(jìn)入配置界面,選擇一個(gè)【tag】文件,在右側(cè)的屬性窗進(jìn)行貨架描述文件的參數(shù)配置。如下圖所示:
其中,【屬性窗口】的各個(gè)參數(shù)釋義如下
X_Dis:二維碼中心在貨架坐標(biāo)系中x方向的坐標(biāo);
Y_Dis:二維碼中心在貨架坐標(biāo)系中y方向的坐標(biāo);
Z_Dis:二維碼中心在貨架坐標(biāo)系中z方向的坐標(biāo);
goodsWidth:貨架寬度;
goodsLength:貨架長(zhǎng)度;
tagDistance:兩二維碼中心的水平距離(默認(rèn)在同一高度);
enable_cargoContacDI:默認(rèn)勾選;
enable_back_dist:是否允許在識(shí)別之后后退調(diào)整;
back_dist:后退的距離;
blackBorder:最外層黑邊的層數(shù),默認(rèn)為1;
tag_rows:tag列數(shù),默認(rèn)為1;
tag_cols:tag行數(shù),默認(rèn)為1;
tagSize:二維碼大小;
tagSpacing:在其他識(shí)別中使用,這里不做說(shuō)明。
Tagtype:二維碼種類。
使用說(shuō)明:
將兩個(gè)二維碼對(duì)稱貼在待識(shí)別物體表面,如下圖所示:
在完成上述二維碼識(shí)別的配置之后,只需要在貨架點(diǎn)位對(duì)應(yīng)的前置點(diǎn)屬性中配置識(shí)別模型文件,即tag文件,然后將線路屬性中的ObsExpansion設(shè)置為0,避免行進(jìn)過(guò)程中機(jī)器人停障。接著要進(jìn)行執(zhí)行動(dòng)作的配置:
1.需要識(shí)別料籠所在位置,并將料籠插取起來(lái),需要勾選Recognize,點(diǎn)擊Load.
2.不需要識(shí)別料籠所在位置,開環(huán)的插入到一個(gè)固定位置上,并插取起來(lái),不需要勾選Recognize,直接點(diǎn)擊Load.
3.需要識(shí)別位置上有沒(méi)有料籠,并放置料籠,勾選Recognisze,點(diǎn)擊Unload,若有料籠占用的話,會(huì)報(bào)錯(cuò);不需要識(shí)別,直接開環(huán)放置,不用勾選Recognisze,直接點(diǎn)擊Unload.
4.需要點(diǎn)擊Wait的情況比較少,若勾選了Recognize,再點(diǎn)擊Wait,機(jī)器人就會(huì)識(shí)別料籠位置,插入料籠,然后結(jié)束任務(wù),不會(huì)動(dòng)作插取模塊;若不勾選Recognize,直接點(diǎn)擊Wait,機(jī)器人就會(huì)固定路徑導(dǎo)航到工作站,然后結(jié)束任務(wù),不會(huì)動(dòng)作插取。
那么在執(zhí)行路徑規(guī)劃的時(shí)候選擇執(zhí)行動(dòng)作,AGV在這個(gè)前置點(diǎn)上會(huì)自動(dòng)切換到識(shí)別模式,根據(jù)識(shí)別到二維碼的位置來(lái)推算出料籠的中心位置并自動(dòng)生成到達(dá)此位置的路線。
其他說(shuō)明:
二維碼需要粘貼平整,其中二維碼應(yīng)垂直正確貼在目標(biāo)物體表面,二維碼最好保持橫平豎直貼放,即有數(shù)字和 id 的需要朝下水平放置,方向如下:
對(duì)于二維碼識(shí)別而言,識(shí)別的位置精度隨著距離增加而減小,在二維碼離相機(jī)超過(guò)最大識(shí)別距離時(shí),就無(wú)法識(shí)別到二維碼。在通常比較好的情況下,相機(jī)的 Z 方向垂直于二維碼平面,相機(jī)距離二維碼 2m 以內(nèi)時(shí),測(cè)量出的位置在垂直方向的精度小于 2cm,水平方向的精度小于 1.5cm。
對(duì)于二維碼識(shí)別而言,識(shí)別的位置精度隨著距離增加而減小,在二維碼離相機(jī)超過(guò)最大識(shí)別距離時(shí),就無(wú)法識(shí)別到二維碼。
對(duì)于 AprilTag 而言,其中每個(gè)模塊的大小為:S=t/r,其中 t 是二維碼的大小,r 是模塊的在 x 方向的數(shù)量。而在像素坐標(biāo)系里,需要識(shí)別出每個(gè) tag,每個(gè)模塊至少為 55 個(gè)像素, 因此最大觀測(cè)距離可以近似表示為:D=ft/u,其中 f 為相機(jī)的焦距,t 為 tag 的實(shí)際尺寸,u 為二維碼的最小像素?cái)?shù)量。因此如果二維碼的尺寸為 10cm*10cm,假設(shè)相機(jī)的焦距為 1075,對(duì)于不同種類的二維碼的最大觀測(cè)距離分別為:
(審核編輯: 小王子)
分享