徐 慶, 徐志偉, 杜曉峰
(1.南京航空航天大學(xué) 機(jī)械結(jié)構(gòu)力學(xué)與控制國家重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210016;2.江蘇法爾勝光通有限公司,江蘇 無錫 214433)
自動導(dǎo)引車(automated guided vehicle,AGV)是指以各類電、磁、聲、光學(xué)傳感器為導(dǎo)引裝置,能夠按照預(yù)定的導(dǎo)引路徑自動運(yùn)行,并完成一系列規(guī)定任務(wù)的運(yùn)輸車。1973年,Volvo轎車裝配廠使用AGV進(jìn)行裝配,使裝配時(shí)間減少了57 %,裝配故障減少39 %,投資回報(bào)時(shí)間減少57 %,勞動力減少5 %[1]。2000年,海爾集團(tuán)使用9臺AGV組成一個(gè)柔性庫內(nèi)搬運(yùn)系統(tǒng)完成每天23 400件貨物的搬運(yùn)[1]。AGV在物流行業(yè)有著突出的優(yōu)勢[2],已被國內(nèi)各大物流公司成熟應(yīng)用。2016年,我國AGV的銷量超過11 000臺,市場規(guī)模突破11億元。
AGV導(dǎo)航方式有磁導(dǎo)航、慣性導(dǎo)航、視覺導(dǎo)航、激光導(dǎo)航和超聲導(dǎo)航。激光導(dǎo)航[3]和超聲導(dǎo)航[4]易受環(huán)境干擾,應(yīng)用相對較少;磁導(dǎo)航運(yùn)用電磁感應(yīng)原理,技術(shù)成熟,導(dǎo)航元件多種多樣,如導(dǎo)線[5]、磁條[6]、地標(biāo)磁釘[7]、電渦流線圈[8]和射頻器件[9]。慣性導(dǎo)航利用慣性傳感器,以非接觸方式測量載體的位姿[10,11],實(shí)現(xiàn)導(dǎo)航功能;視覺導(dǎo)航通常采用圖像處理技術(shù)作為AGV導(dǎo)航的核心技術(shù),可分為視覺尋跡導(dǎo)航[12,13]和視覺避障導(dǎo)航[14]兩類。磁導(dǎo)航目前在AGV行業(yè)中應(yīng)用最多,但初期設(shè)備架設(shè)成本高,運(yùn)行線路的后期修繕與調(diào)整困難,無法滿足生產(chǎn)操作序列和工廠布局多變的要求,因而企業(yè)對慣性導(dǎo)航、視覺導(dǎo)航等具有高度自主性的AGV更青睞[15]。
與慣性導(dǎo)航相比,視覺導(dǎo)航AGV在定位精度、生產(chǎn)成本等方面更占優(yōu)勢,因此,本文利用快速響應(yīng)代碼(quick response code,QR code)和車載攝像頭構(gòu)成AGV的視覺導(dǎo)航組件,并設(shè)計(jì)了一種能夠自主高精度定位的視覺導(dǎo)航的AGV控制系統(tǒng)。
本文所研究的AGV在不同的站點(diǎn)之間運(yùn)行,站點(diǎn)處進(jìn)行轉(zhuǎn)向,相鄰站點(diǎn)間直線運(yùn)行。在站點(diǎn)處采用QR碼圖像識別進(jìn)行導(dǎo)航,利用車載攝像頭采集站點(diǎn)QR碼以計(jì)算AGV站點(diǎn)姿態(tài)誤差,包括橫、縱向位置偏差、航向角誤差,隨后進(jìn)行站點(diǎn)誤差修正和站點(diǎn)轉(zhuǎn)向,從而實(shí)現(xiàn)對AGV相應(yīng)的導(dǎo)航控制,相鄰站點(diǎn)之間通過驅(qū)動電機(jī)的編碼器對行進(jìn)距離和方向進(jìn)行精確控制。
QR碼是一類矩陣式二維碼,其符號由功能圖形和編碼區(qū)域組成。每個(gè)QR碼都有3個(gè)相同的位置探測圖形,分別位于符號的左上角、右上角和左下角,如圖1所示。
圖1 位置探測圖形
每個(gè)位置探測圖形可以看作是由3個(gè)重疊的同心正方形組成。在QR碼符號中,遇到類似探測圖形的可能性極小,因此QR碼可以在視場中迅速地識別,并準(zhǔn)確地確定視場中符號的位置和方向。利用位置探測圖形確定AGV的站點(diǎn)誤差。
實(shí)際應(yīng)用中,采集的圖像通常為真彩圖,需要轉(zhuǎn)換為灰度圖像以保證在受到光線干擾時(shí),上述算法仍具有較高的成功率和效率。因此本文先對采集的圖像通過閾值化處理,將初始圖像轉(zhuǎn)化為灰度圖像。閾值化處理時(shí)需要設(shè)定初始閾值,經(jīng)多次試驗(yàn),初始閾值設(shè)定為120時(shí)算法解算的成功率和效率相對較高。
當(dāng)圖像解算不成功時(shí),將適當(dāng)減小當(dāng)前閾值化處理的閾值,同時(shí)與最小閾值比較,若大于最小閾值,則對采集的原始圖像重新進(jìn)行閾值化后繼續(xù)解算;否則給出錯(cuò)誤提示。因此,圖2(a)中的最小閾值用于控制圖像解算時(shí)嘗試的最多次數(shù)。最小閾值越小,成功率越高,但越耗時(shí)。經(jīng)多次試驗(yàn),最小閾值設(shè)定為30較為合理。
圖2 QR碼解算流程與解算結(jié)果
對于規(guī)則圖形而言,圖像輪廓的中心坐標(biāo)即為圖像的一階中心矩,即
(1)
(2)
站點(diǎn)橫、縱向位置誤差為
(3)
式中 Δx和Δy分別為橫、縱向位置誤差,實(shí)際采集QR碼的中心坐標(biāo)為o(ox,oy),車載攝像頭分辨率為(2X)×(2Y),Sx為QR碼的位置探測圖形像素面積,S0為QR碼的實(shí)際面積,D為圖2(b)中位置探測圖形輪廓實(shí)際邊長。
本文所設(shè)計(jì)的AGV系統(tǒng)采用2個(gè)萬向輪導(dǎo)向和2個(gè)驅(qū)動輪差動驅(qū)動方式。
AGV結(jié)構(gòu)設(shè)計(jì)如圖3所示。其中,驅(qū)動輪直徑150 mm,輪間距476 mm;傳動帶傳送比1∶2;減速器減速比1∶8;驅(qū)動電機(jī)采用無刷直流伺服電機(jī),額定功率1.5 kW,額定轉(zhuǎn)速1 500 r/min,額定扭矩9.6 N·m;車載攝像頭分辨率320×240,距地面17.5 cm;通信模塊采用ZigBee無線通信協(xié)議[16]。驅(qū)動電機(jī)轉(zhuǎn)速n(r/min)(由光電編碼器測量得到)與AGV車速vAGV(m/s)換算關(guān)系為vAGV=4.908 7×10-4n。
圖3 AGV結(jié)構(gòu)設(shè)計(jì)
AGV測控系統(tǒng)硬件設(shè)計(jì)如圖4所示。
圖4 AGV測控系統(tǒng)設(shè)計(jì)
圖4中,AGV測控系統(tǒng)由PC主站和車載從站組成,彼此通過ZigBee無線協(xié)議通信。車載從站控制器包括STM32控制器和S5PV210控制器。其中,STM32控制器是基于CortexM3內(nèi)核的ARM處理器,適用于系統(tǒng)底層硬件的驅(qū)動控制,負(fù)責(zé)接收來自PC主站的系統(tǒng)指令、AGV驅(qū)動控制以及AGV站點(diǎn)誤差修正控制,但無法進(jìn)行數(shù)據(jù)運(yùn)算量很大的圖像處理任務(wù);S5PV210控制器是基于CortexA8架構(gòu)的ARM處理器,可移植嵌入式Linux操作系統(tǒng)以及各類圖像處理插件和集成開發(fā)庫,用于QR碼的圖像處理和站點(diǎn)誤差解算。兩處理器通過串口通信。PC主站的功能包括:系統(tǒng)指令和運(yùn)行地圖的下發(fā),接收并存儲從站實(shí)時(shí)上傳的相關(guān)數(shù)據(jù)等。
視覺導(dǎo)航AGV控制流程如圖5所示。各站點(diǎn)誤差修正時(shí),先利用車載攝像頭檢測AGV的橫、縱向位置誤差和航向角誤差;控制AGV進(jìn)行一系列的旋轉(zhuǎn)和直行操作,實(shí)現(xiàn)站點(diǎn)誤差的修正。
為了能夠?qū)崿F(xiàn)AGV精確控制,并保證AGV調(diào)速時(shí)的平滑性、可靠性,本文將其正常運(yùn)行狀態(tài)細(xì)分為7種,包括靜止、勻加速直線、勻速直線、勻減速直線、勻加速旋轉(zhuǎn)、勻速旋轉(zhuǎn)、勻減速旋轉(zhuǎn)。此外,鑒于驅(qū)動電機(jī)的轉(zhuǎn)速響應(yīng)存在明顯的遲滯現(xiàn)象,因此,AGV驅(qū)動控制器設(shè)計(jì)時(shí)通過定時(shí)調(diào)速的方法擬合驅(qū)動電機(jī)的轉(zhuǎn)速響應(yīng)參數(shù),從而進(jìn)一步提高AGV直行運(yùn)行和旋轉(zhuǎn)運(yùn)行的控制精確。
圖5 視覺導(dǎo)航AGV控制流程
實(shí)驗(yàn)用AGV實(shí)物如圖6所示。在進(jìn)行導(dǎo)航實(shí)驗(yàn)之前,首先對AGV導(dǎo)航系統(tǒng)中各組成部件的測量及控制精度進(jìn)行了測定。
圖7為AGV站點(diǎn)誤差修正前,在站點(diǎn)處采集的QR碼(攝像機(jī)拍攝的圖片),其圖像處理過程如圖8所示(參照圖2)。
圖6 AGV實(shí)物 圖7 修正前站點(diǎn)誤差
圖8 圖像提取和處理過程
實(shí)驗(yàn)所用車載攝像頭視野范圍:22.5 cm×16.9 cm,可求出AGV相對于QR碼的航向角為-8.6°,求出AGV橫、縱向位置誤差分別為-5.5,-0.5 cm。
AGV直線運(yùn)行距離、旋轉(zhuǎn)角度的精確控制是利用高精度的驅(qū)動電機(jī)光電編碼器實(shí)現(xiàn),實(shí)際運(yùn)行測試結(jié)果如表1、表2所示。
表1 直線運(yùn)行測試
根據(jù)表1和表2,AGV直線運(yùn)行時(shí),位移誤差小于±0.3 cm;±90°旋轉(zhuǎn)時(shí),誤差在±0.6°以內(nèi)。
表2 旋轉(zhuǎn)運(yùn)行測試
AGV位于各個(gè)站點(diǎn)時(shí),根據(jù)所檢測到的航向角和位置誤差信息,進(jìn)行站點(diǎn)誤差修正。修正方法如下所述:
1)控制AGV直線運(yùn)行,修正縱向位置誤差;同時(shí),結(jié)合航向角誤差計(jì)算出此直線運(yùn)行操作對于橫向位置誤差產(chǎn)生的修正量,并與初始橫向位置誤差疊加,從而得到橫向位置誤差更新值;
2)將航向角誤差作為站點(diǎn)轉(zhuǎn)向補(bǔ)償值,通過站點(diǎn)轉(zhuǎn)向?qū)崿F(xiàn)航向角誤差的修正;
3)將方法(1)中橫向位置誤差更新值作為AGV轉(zhuǎn)向后前往下一站點(diǎn)的直線運(yùn)行補(bǔ)償值,從而修正橫向位置誤差。
本文利用上述誤差方案,對AGV在站點(diǎn)位置處的人為擺放誤差進(jìn)行修正測試,得到結(jié)果如表3所示。可知,站點(diǎn)誤差均能夠得到較好的修正,修正后的位置誤差小于1.2 cm,角度誤差小于±1°。
表3 起始站點(diǎn)修正前后誤差比較
為了驗(yàn)證本文所設(shè)計(jì)AGV系統(tǒng)性能,設(shè)計(jì)了如圖9所示的方形運(yùn)行軌跡地圖(不規(guī)則的多邊形軌跡也可),其中,A0既是起始站點(diǎn),也是實(shí)驗(yàn)終點(diǎn),A1~A3均為中間站點(diǎn),在各站點(diǎn)處布置QR碼,AGV運(yùn)行方向?yàn)閳D中虛線箭頭。
圖9 AGV實(shí)驗(yàn)地圖
AGV回到A0站點(diǎn)后,利用QR碼站點(diǎn)標(biāo)定方法測量得到:AGV運(yùn)行結(jié)束時(shí)的航向角誤差0.9°;橫向位置誤差-1.1 cm;縱向位置誤差-0.5 cm,能夠按照地圖的軌跡穩(wěn)定運(yùn)行。考慮到直線運(yùn)行時(shí)的航向角誤差與轉(zhuǎn)向后的航向角誤差的疊加,最大直線運(yùn)行距離是5.7 m。
本文對利用QR碼進(jìn)行視覺導(dǎo)航的AGV系統(tǒng)進(jìn)行了研究,理論和實(shí)驗(yàn)研究表明:AGV在站點(diǎn)處的位置誤差修正后可控制在±12 mm以內(nèi),航向角修正后誤差可控制在±1°以內(nèi),直線運(yùn)行距離小于5.7 m,能夠保證AGV沿既定軌跡穩(wěn)定可靠的運(yùn)行。該導(dǎo)航方法簡單、成本低,AGV的航向角和位置累積誤差能夠在站點(diǎn)處被有效的修正,并保證AGV能夠準(zhǔn)確的到達(dá)下一個(gè)目標(biāo)站點(diǎn),具有較強(qiáng)的實(shí)際應(yīng)用價(jià)值。