一、為什么要進行形狀識別?
貨架的擺放不是一直都能固定在某個位置上的,當AGV要對貨架進行一些拉取或者頂升等操作時,需要精準的知道貨架的位置,此時AGV自身在地圖上的定位是準確的,但是貨架的位置在地圖上卻是未知的,這樣我們需要對貨架進行識別來確定貨架的位置。而某些場景要求不能對貨架腿進行改造(如粘貼反光膜等),這個時候就需要對貨架腿的形狀做識別。
二、貨架腿形狀識別要求
1、一般情況下,貨架是有四條腿,要求四腿形成一個矩形;
2、貨架設(shè)計的其他部分都要求成軸對稱的形式,包含:和頂升機構(gòu)配合的限位孔、貨架腿上支撐的貨架部分;
3、貨架內(nèi)側(cè)寬度要比機器人最大寬度寬20cm,也就是左右各冗余10cm的鉆貨架調(diào)整空間;
4、貨架高度要求,根據(jù)頂升模塊的行程確定;
5、貨架腿的表面要求為光滑平整的;
6貨架腿的形狀最好為規(guī)則型的方體;
6、貨架腿的表面不能為呈鏡面反射的材料;
7、貨架腿的表面不能為半透明的材料;
8、貨架腿的表面不能為黑色的材料;
下圖為比較典型的可用的貨架腿。
三、參數(shù)配置說明:
上圖為激光雷達形狀識別示意圖,圖中藍色坐標系為AGV的車體坐標系,虛線方形為可配置的激光雷達識別區(qū)域,方形中的虛線為激光雷達掃描scan的示意圖。
在使用激光雷達形狀識別的時候,要保證激光雷達的識別范圍內(nèi)存在待識別的貨架腿,識別區(qū)域可根據(jù)現(xiàn)場環(huán)境進行配置;
如上圖所示的幾個參數(shù)表示激光雷達的識別區(qū)域,該參數(shù)需要根據(jù)現(xiàn)場實際環(huán)境進行配置,
ValidShapeX:車體坐標系下的最大識別距離,單位為m;
ValidShapeBias:偏差量;
根據(jù)不同的識別方向,系統(tǒng)會自動計算識別范圍,如識別示意圖上所示的虛線框。
當detect_direction為x的時候,ValidShapeX為車體坐標系下x方向的最大距離,即: 0
當detect_direction為-x的時候,ValidShapeX為車體坐標系下x方向的最大距離,即: -ValidShapeX
當detect_direction為y的時候,ValidShapeX為車體坐標系下y方向的最大距離,即: 0
當detect_direction為-y的時候,ValidShapeX為車體坐標系下y方向的最大距離,即: -ValidShapeX
注:車體坐標系為右手坐標系,即正前方為X正方向,正左方為Y正方向。
ValidShapeDistanceThreshold:該值代表著識別算法內(nèi)部計算出來的貨架腿之間的距離和實際距離之間的差值;
ValidShapeLineThreshold:該值代表著識別算法內(nèi)部計算出來的貨架腿的長度和實際長度之間的差值。
ValidShapeLineSplidThreshold:該值代表著貨架腿對角線長度的一半,需要根據(jù)貨架腿大小更改。
ValidShapeValidShelfAngle:該值表示車身與貨架最大的傾斜角度,當識別方向為車頭和車尾的時候,表示車頭和車尾與貨架最大的傾斜角度,側(cè)向識別是表示為車身側(cè)邊與貨架的最大傾斜角度。
ValidShapeDetertorNum:該值表示連續(xù)識別的次數(shù),當連續(xù)識別多少次的結(jié)果都很接近的時候,認為是識別到了,該參數(shù)僅對鉆貨架有效。
使用我司Roboshop 軟件,點擊【識別文件】標簽頁進入配置界面,選擇一個【shelf】文件,在右側(cè)的屬性窗進行貨架描述文件的參數(shù)配置。如下圖所示:
鉆入屬性參數(shù)說明:
1. align_depth:車頭識別(x方向)鉆貨架的深度;
2. anti_align_depth:車尾識別(-x方向)鉆貨架的深度;
3. y_align_depth:車頭側(cè)向識別(y方向)鉆貨架的深度;
4. y_anti_align_depth:車尾側(cè)向識別(-y方向)鉆貨架的深度;
5. continue_detect:是否開啟持續(xù)檢測
6. recDist:如果前置點距離貨架的位置比較遠,可以配置recDist,該值表示距離貨架多遠的距離開始識別,可以在一定程度上減緩地面不平、激光雷達安裝不水平等因素的影響,提高識別精度。
需要配置如圖上所示的5個參數(shù):
1:rightStandardLength,右側(cè)貨架腿的長度;
2:rightVerticalLength,右側(cè)貨架腿的寬度
3:leftVerticalLength,左側(cè)貨架腿的寬度;
4:leftStandardLength,左側(cè)貨架腿的長度;
5:distance,貨架腿內(nèi)側(cè)之間的距離;
6:use_optimization,默認勾選,代表使用優(yōu)化。
此外,貨架腿長和寬之間的夾角默認為90°,也可以額外配置,當貨架腿的長寬大于6cm時,勾選use_optimization,可以提高識別精度。
四、使用說明:
在完成上述反光膜或者形狀識別的配置之后,只需要在貨架點位對應(yīng)的前置點屬性中配置識別模型文件,即shelf文件,然后將線路屬性中的ObsExpansion設(shè)置為0,避免鉆貨架過程中機器人停障。接著要進行執(zhí)行動作的配置:
1.需要識別貨架所在位置,并鉆入貨架頂升起來,需要勾選Recognize,點擊Load.
2.不需要識別貨架所在位置,開環(huán)的鉆入到一個固定位置上,并頂升起來,不需要勾選Recognize,直接點擊Load.
3.需要識別位置上有沒有貨架,并放置貨架,勾選Recognisze,點擊Unload,若有貨架占用的話,會報錯;不需要識別,直接開環(huán)放置,不用勾選Recognisze,直接點擊Unload.
4.需要點擊Wait的情況比較少,若勾選了Recognize,再點擊Wait,機器人就會識別貨架位置,鉆入貨架底部,然后結(jié)束任務(wù),不會動作頂升模塊;若不勾選Recognize,直接點擊Wait,機器人就會固定路徑導(dǎo)航到工作站,然后結(jié)束任務(wù),不會動作頂升。
那么在執(zhí)行路徑規(guī)劃的時候選擇執(zhí)行動作,AGV在這個前置點上會自動切換到識別模式,根據(jù)識別到貨架腿的位置來推算出貨架的中心位置并自動生成到達此位置的路線。
針對車頭車尾都安裝激光雷達的全向車,還可以通過配置實現(xiàn)車頭、車尾、車左側(cè)和車右側(cè)各個方向的識別,配置如下圖所示:
五、其他說明:
為了減小誤識別的情況,使用激光識別料架時要求貨架的前面兩條腿中心距離和前置識別點的距離小于2m,中心點到識別位置激光的連線和車體的角度偏差小于10°,料架本身的角度和識別時的AGV的角度偏差小于20°.
使用激光點云形狀識別功能,需要將參數(shù)配置method_type配置為by_legShape,在激光雷達的識別區(qū)域要避免遮擋住貨架腿;
識別精度:x,y方向精度高于±1cm,角度精度高于1°.(識別距離越近、貨架腿越寬,識別越準,該精度為識別距離1m,長寬6cm處測得)
(轉(zhuǎn)載)