張少杰 艾宇 張冰 孫軒 張銘 張?zhí)祉槨∷螄?/p>
摘要:倉庫中醇化的煙葉因含有水分,在微生物作用下會發(fā)生霉變。為降低煙葉霉變檢測的勞動強度,提高煙葉檢測效率,我們基于機器視覺研發(fā)了一款搭載FLIR C3紅外熱成像檢測儀的煙倉機器人。本研究主要介紹了煙倉機器人軟硬件控制系統(tǒng)的設(shè)計,并對機器人行進路徑的識別與控制進行研究。煙倉機器人的硬件控制系統(tǒng)采用32位ARM處理器STM32F103ZET6,利用OV2640傳感器進行圖像的采集與傳輸;軟件控制系統(tǒng)基于Microsoft Visual Studi0 2010開發(fā)環(huán)境,調(diào)用OpenCV等圖像處理函數(shù),實現(xiàn)圖像分割、邊緣檢測及路徑識別與規(guī)劃。路徑識別采用基于機器視覺的方法,利用高斯濾波去除圖像中的噪音、干擾,經(jīng)閾值化處理后采用Canny算子進行圖像邊緣檢測處理,通過Hough變換,提取出車道的邊緣線及車道中心線,根據(jù)車道中心線的角度偏差和像素偏差制定控制策略,從而實現(xiàn)煙倉機器人的自控行走,實際運行試驗結(jié)果表明,該系統(tǒng)能夠很好地實現(xiàn)路徑識別和運動控制。本研究可為無線通訊和路徑識別控制類機器人的相關(guān)設(shè)計研兗提供參考。
關(guān)鍵詞:煙倉機器人;機器視覺;路徑識別;STM32處理器;WIFI通訊
Path Recognition and Control of TobaccoWarehouse Robot Based on Machine VisionZhang Shaojiel , Ai Yul , Zhang Bingl , Sun Xuanl , Zhang Mingl , Zhang Tianshunl , Song Guoping2
Abstract The alcoholized tobacco leaves in the warehouse could mildew due to the presence of water.In order to reduce the labor intensity of tobacco leaf mold detection and improve the detection efficiency, wedeveloped a cigarette warehouse robot equipped with FLIR C3 infrared thermal imaging detector based on ma-chine vision. In this paper,the design of the software and hardware control system of the smoke bin robot wasintroduced, and the identification and control of the robot travel path were studied. The hardware control sys-tem adopted 32 - bit ARM processor STM32F103ZET6 , and used OV2640 sensor to collect and transmit ima-ges. The software control system was developed based on the Microsoft Visual Studi0 2010 development envi-ronment, and called the image processing functions such as OpenCV to realize image segmentation, edge de-tection and path recognition and planning. Path recognition adopted a machine vision - based method, whichused Gaussian filtering to remove noise and interference in the image. After thresholding, the Canny operatorwas used to detect the image edge, and the edge line and center line of the lane were extracted by Houghtransform. According to the angular deviation of the lane centerline and the pixel deviation to develop a controlstrategy, the smoke bin robot achieved the self - controlled walking. The actual operation test results showedthat the system could realize path recognition and motion control. This study could provide reference for the re-lated design research of wireless communication and path recognition control robots.
Keywords Tobacco warehouse robot; Machine vision; Path identification; STM32 processor; WiFicommunication
煙葉霉變是全球煙草行業(yè)普遍存在的問題[1]。隨著我國倉儲煙葉的總量和規(guī)模不斷增加,每年因煙葉霉變造成的經(jīng)濟損失達70多億[2]。而且引起霉變的微生物所分泌的真菌毒素嚴重威脅人類健康。所以研究如何快速檢測和預(yù)防倉儲煙葉霉變具有重要意義。人工智能的發(fā)展為實現(xiàn)煙倉煙葉霉變的智能化監(jiān)測提供了技術(shù)手段。我們利用煙葉霉變區(qū)域溫度會升高的特點,研發(fā)了一款搭載紅外熱成像檢測儀的煙倉機器人,可以通過監(jiān)測煙箱煙葉的溫度變化,實現(xiàn)對倉儲煙葉霉變的自動化檢測,為預(yù)防和控制倉儲煙葉霉變提供了有效的檢測方法。其中,如何實現(xiàn)煙倉機器人的路徑自動識別、規(guī)劃和導(dǎo)航,是保障其良好運作的關(guān)鍵。目前常用的路徑導(dǎo)航系統(tǒng)有自動尋跡控制系統(tǒng)、利用導(dǎo)航的控制系統(tǒng)、基于機器視覺的路徑識別系統(tǒng)等。根據(jù)室內(nèi)煙倉存儲特點,若利用自動尋跡控制系統(tǒng),需要在煙草中安裝配套設(shè)施,實現(xiàn)比較困難;而在堆滿煙箱的煙倉中使用導(dǎo)航控制系統(tǒng),同樣比較困難,而且造價較高。因此,我們選擇利用機器視覺實現(xiàn)煙倉機器人的路徑導(dǎo)航。
機器視覺是近年人工智能研究的熱點,具有成本低、安裝便捷、識別精度高等優(yōu)勢,國內(nèi)外學(xué)者已利用機器視覺技術(shù)研制出自動導(dǎo)航的機器人[3]。美國研究者制作的NavLab機器人,能夠通過機身安裝的CCD攝像機采集道路圖像,并經(jīng)圖像處理成功識別出路徑中的S型道路;Ativa等基于前人的視覺理論研究,利用機器視覺實時識別并采集圖像,根據(jù)實時采集的圖像與運動著的物體保持某種相對不變的特征,獲得物體在實際環(huán)境中的位置坐標(biāo),成功搜索出了路徑[4];楊為民等[5]用基于機器視覺的動態(tài)窗口跟蹤技術(shù)大大減少了圖像處理的工作量,并利用霍夫變換獲取了自然導(dǎo)航路徑;張磊等[6]利用機器視覺成功對麥田的收割邊界進行邊緣檢測,為機車的行進提供了有力依據(jù);張成濤等[7]同樣利用機器視覺算法對目標(biāo)直線進行檢測,成功為谷物收割機行進進行導(dǎo)航。
本文主要對我們研發(fā)的煙倉機器人的軟硬件系統(tǒng)、無線通訊系統(tǒng)進行介紹,并對其如何基于機器視覺實現(xiàn)路徑識別、規(guī)劃和控制進行分析研究和試驗驗證,以期為無線通訊類機器人更好地實現(xiàn)路徑導(dǎo)航提供參考。
1 煙倉機器人的機體設(shè)計
1.1 煙倉機器人平臺的搭建
基于機器視覺的煙倉機器人由兩部分組成:硬件端和軟件系統(tǒng)。硬件端以ARM系統(tǒng)中的STM32處理器為控制核心,輔以WIFI通信模塊、攝像頭模塊、驅(qū)動模塊等。軟件系統(tǒng)在PC端運行,實現(xiàn)圖像處理、路徑識別與規(guī)劃、機器人控制等功能。總體設(shè)計框圖如圖1所示。
ARM系統(tǒng)將采集的煙倉平面圖像數(shù)據(jù)通過WIFI模塊發(fā)送給PC端的軟件系統(tǒng),然后利用VC++、OpenCV等圖像處理技術(shù)實現(xiàn)圖像的分割、邊緣檢測、Hough變換等,獲得標(biāo)定煙倉通道的圖像信息,進而換算出煙倉過道的中心線作為煙倉機器人的運動軌跡,并結(jié)合中心線控制算法在運動過程中進行實時控制。
1.2 ARM控制系統(tǒng)
ARM系統(tǒng)采用的是由STMicroelectronics公司生產(chǎn)的STM32系列處理器,該系列處理器為ARM V7構(gòu)架,Cortex - M3內(nèi)核,支持Thumb-2指令集。開發(fā)環(huán)境為Keil uVision V 4.10。
本研究的煙倉機器人硬件系統(tǒng)主芯片采用的是STM32系列的STM32F103RET6處理器,有OV2640接口、WIFI模塊接口、串行通訊接口、JTAG接口等。通過編寫功能程序?qū)崿F(xiàn)無線通訊、圖像采集、行走控制等功能。
1.3 攝像頭模塊
攝像頭模塊采用OV2640傳感器,并可對傳感器窗口、圖像尺寸、圖像窗口和圖像輸出大小進行設(shè)置。OV2640具有感光整列、模擬信號處理、數(shù)字信號處理器、SCCB接口等功能模塊。
1.4 驅(qū)動模塊
煙倉機器人驅(qū)動電路主芯片采用L293D[8,9],電機用有抗干擾功能的直流減速電機。L293D的工作電壓可從4.5 V至36 V,使能端兼容所有的TTL輸入。煙倉機器人的驅(qū)動系統(tǒng)配有兩個直流減速電機,每個電機型號相同,通過驅(qū)動板進行驅(qū)動。
2 通訊系統(tǒng)的設(shè)計
通過構(gòu)建煙倉局域網(wǎng),利用WIFI實現(xiàn)煙倉機器人的通訊功能。
WIFI模塊采用Marvell8686 MR09[10芯片,內(nèi)置IEEE802. 11協(xié)議棧,采用SDIO接口傳輸數(shù)據(jù)。MR09WIFI芯片模塊通過SDIO接口連接ARM芯片,網(wǎng)絡(luò)標(biāo)準(zhǔn)采用IEEE 802. llb/g。
2.1 搭建平臺
下位機(即服務(wù)器端)以STM32為核心的硬件端運行LWIP協(xié)議,內(nèi)嵌TCP/IP協(xié)議棧,支持MR09EIFI WIFI模塊芯片。
PC端(即客戶端)模式用VS2010編程軟件、MFC框架編寫程序.網(wǎng)卡為Intel( R) Centrino(R) Wireless -N 1030,網(wǎng)絡(luò)頻帶為2.4 GHz,支持802. lln協(xié)議。
2.2 構(gòu)建通訊網(wǎng)絡(luò)
下位機通過Marvell8686 MR09芯片模塊與電腦建立WIFI局域網(wǎng)系統(tǒng)[ll],PC端上位機則在Visual C++開發(fā)環(huán)境中實現(xiàn)網(wǎng)絡(luò)編程。兩者間通過WIFI實現(xiàn)局域網(wǎng)內(nèi)數(shù)據(jù)信息的傳輸。
2. 2.1 設(shè)置下位機 通過STM32處理器運行LWIP協(xié)議[12-14],應(yīng)用TCP/IP進行數(shù)據(jù)通訊,由LWIP協(xié)議提供的一系列函數(shù)(tcp_new建立控制塊;tcp_bind綁定本地IP地址;tcp_listen;tcp_ac-cept調(diào)用指定回調(diào)函數(shù);tcp_write發(fā)送TCP數(shù)據(jù);tcp_recv調(diào)用新數(shù)據(jù)的回調(diào)函數(shù))完成數(shù)據(jù)傳輸。其操作流程如下:
(1)網(wǎng)卡初始化,設(shè)置網(wǎng)絡(luò)信息;
(2)在tcp_accept()函數(shù)中注冊tcp_recv()的回調(diào)函數(shù);
(3)在回調(diào)函數(shù)中調(diào)用tcp_recved()函數(shù)控制機器人;
(4)讀取數(shù)據(jù)通過tcp_write()函數(shù)發(fā)送,實現(xiàn)網(wǎng)絡(luò)通訊。2.2.2設(shè)置上位機使用MFC中封裝的套接字函數(shù)與類CSocket在Visual C++開發(fā)環(huán)境中實現(xiàn)網(wǎng)絡(luò)編程,使用Windows API函數(shù)進行程序開發(fā)。套接字函數(shù)包括connect發(fā)送連接函數(shù);send發(fā)送數(shù)據(jù)函數(shù);接受數(shù)據(jù)報函數(shù)。
上位機網(wǎng)絡(luò)通訊的操作步驟如下:
(1)創(chuàng)建CMysocket類對象繼承于CSocket類;
(2)創(chuàng)建CAboutDlg類對象繼承于CDialog類;
(3)在CAboutDlg類的OnInitDialog()函數(shù)中,創(chuàng)建套接字對象pMysocket=new CMysocket( this);
(4)如果創(chuàng)建套接字對象失敗,發(fā)送消息提示創(chuàng)建套接字對象失敗;
(5)點擊“連接”按鍵,調(diào)用connect函數(shù),通過指定端口連接服務(wù)器,連接失敗,彈出提示消息;
(6)點擊“視頻打開”按鍵,調(diào)用send函數(shù),發(fā)送控制指令,請求實現(xiàn)圖像傳輸;
(7)點擊“視頻關(guān)閉”按鍵,關(guān)閉圖像傳輸。
2.3 通訊工作流程
通過構(gòu)建煙倉局域網(wǎng)建立PC客戶端與下位機服務(wù)器端的連接,實現(xiàn)數(shù)據(jù)的接收和控制命令的發(fā)送。通訊流程如圖2所示。
3 圖像采集與驅(qū)動控制功能實現(xiàn)
基于機器視覺的煙倉機器人PC端操控界面如圖3所示,可實現(xiàn)無線通訊、圖像顯示、圖像處理、遠程控制等功能。
3.1 圖像采集與傳輸
OV2640圖像輸出是在行輸出時序與幀輸出時序的控制下進行,HREF在高電平時為行參考信號輸出,VSYNC在低電平時為幀同步信號輸出。OV2640的幀同步信號接到STM32處理器的引腳,OV2640系統(tǒng)通過中斷方式捕捉幀同步信號。讀取JPEG數(shù)據(jù)時,只需要在HREF為高電平時,在PCLK上升沿讀取數(shù)據(jù),直到VSYNC為低電平,完成一幀JPEG圖像數(shù)據(jù)采集。STM32處理器通過PB、PC等接口與OV2640圖像模塊連接,實現(xiàn)圖像的采集。圖像采集流程如圖4所示。
采集到的圖像馬上進入圖像傳輸程序,MR09WIFI芯片模塊通過SDIO接口連接ARM芯片,初始化網(wǎng)卡與攝像頭模塊,進入服務(wù)器模式,客戶端與服務(wù)器建立連接后,發(fā)送命令到服務(wù)器,回調(diào)函數(shù)判斷命令是否正確,執(zhí)行相對應(yīng)的運行功能程序,其具體流程如圖5所示。
3.2 驅(qū)動控制
驅(qū)動控制包括控制命令與控制信號兩部分,控制命令為PC端發(fā)送給煙倉機器人的控制指令,下位機接收控制指令后,通過字符串判斷函數(shù),確定命令發(fā)出的控制信號,通過L293D驅(qū)動電機進行運動。
引腳EN1、EN2為使能引腳。當(dāng)EN1、EN2引腳為高電平時,輸出引腳OUT隨輸入引腳IN的變化而變化;當(dāng)ENI、EN2引腳為低電平時,輸出引腳OUT不受輸入引腳IN的變化而變化。引腳輸入輸出狀態(tài)如表1所示。
電機1控制接口接OUT1、OUT2,電機2控制接口接OUT3、OUT4,通過控制L293D輸入端引腳IN實現(xiàn)不同的運行功能??刂菩盘柨刂芁293D引腳電平的高低,實現(xiàn)前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、暫停??刂泼罡袷脚c控制信號狀態(tài)見表2。
4 路徑識別與控制
4.1 閾值化處理
閾值化處理是對圖像中的像素進行取舍,利用圖像中物體與背景的較大灰度差異實現(xiàn)像素級的分割,提取需要的部分。在進行閾值化處理[15,16]時,將圖像中每一個像素點的灰度值與設(shè)定的閾值比較,找到需分割的圖像所對應(yīng)的像素點,對需要的像素點設(shè)定特定的數(shù)值表示。給定一個數(shù)組與閾值,根據(jù)數(shù)組中的數(shù)值是否高于閾值進行處理。
例如對8位灰度圖進行閾值化處理時,應(yīng)用Open CV中的閾值化函數(shù)thershold,預(yù)先設(shè)定好特定的閾值量thresh,閾值化操作只需要將大于thresh的灰度值設(shè)定為max val,將低于thresh的灰度值設(shè)定為O,即可提取出需要的部分。該閾值化類型如(1)式所示。
4.2 邊緣檢測
系統(tǒng)采用Canny算子進行邊緣檢測[17]。通過消除噪聲、計算梯度幅值與方向、非極大值抑制、滯后閾值,使其達到最優(yōu)檢測。邊緣檢測效果如圖6所示。
4.3 高斯濾波與Hough變換
高斯濾波是一種線性平滑濾波[18],用來消除高斯噪音,實現(xiàn)減噪功能。本研究采用二維零均值離散高斯函數(shù)作為平滑濾波器,函數(shù)如下:
哈夫( Hough)變換是檢測圖像的一種主要方法,是通過點一線對偶性,把圖像空間中的檢測問題放到參數(shù)空間中進行累加的一種參數(shù)估計技術(shù)。通過建立二維累加數(shù)組,使哈夫變換檢測直線。其實現(xiàn)效果如圖7所示。
4.4 路徑規(guī)劃
為保證機器人始終在車道線內(nèi)行走,需對行走路徑進行實時規(guī)劃[19],即建立坐標(biāo)系,根據(jù)左右車道線在坐標(biāo)系中的坐標(biāo)點構(gòu)建出車道中心線[20]。首先利用Hough變換,獲得左車道兩端坐標(biāo)為(Xl,y1)、(x2,y2),右車道兩端坐標(biāo)為(X3,y3)、(X4,y4),進而求得車道中心線兩點坐標(biāo)為(x5,Ys)、(X6,y6),其中,
x5=(Xl+x3)/2;
(3)
Ys=(Yi +y3)/2;
(4)
X6=(X2+X4 )/2;
(5)
y6=(y2+y4 )/2。
(6)
Hough變換提取到的路徑坐標(biāo)點數(shù)可能大于理論坐標(biāo)點數(shù),這時需先采用排序算法對Hough變換后存在的坐標(biāo)點進行排序,之后再通過公式(3)、(4)、(5)、(6)進行換算,從而得到車道中心線的坐標(biāo),最后由圖形繪制函數(shù)規(guī)劃出運動路徑。
4.5 運行控制
通過路徑規(guī)劃得到煙倉機器人的運動軌跡后,為保證煙倉機器人沿著車道線中心線行進,還需根據(jù)車道中心線在坐標(biāo)系內(nèi)的角度偏差與像素偏差,制定控制策略,控制運動過程。車道中心線的斜率為:角度偏差與像素偏差的推算公式分別為:
當(dāng)角度偏差為正值時,發(fā)送左轉(zhuǎn)命令;為負值時,發(fā)送右轉(zhuǎn)命令;為零時,根據(jù)像素偏差進行控制,依像素偏差正負值,分別發(fā)送左轉(zhuǎn)、右轉(zhuǎn)命令。煙倉機器人行進偏差與控制策略見表3。
5 試驗驗證
驗證試驗結(jié)果表明,本研究開發(fā)的系統(tǒng)能夠很好地完成對煙倉機器人行進路徑的識別、規(guī)劃及機器人運動的控制。如角度偏差為正,機器人運動方向偏右,則驅(qū)動機器人左轉(zhuǎn)(圖8);角度偏差為負,機器人運動方向偏左,則驅(qū)動機器人右轉(zhuǎn)(圖9)。
6 結(jié)論
(1)硬件控制平臺選取32位的ARM處理器STM32F103ZET6,外圍芯片主要有攝像頭模塊OV2640、無線通訊模塊Marvell8686 MR09、驅(qū)動芯片L293D等。軟件運用LWIP協(xié)議、TCP/IP協(xié)議、Socket網(wǎng)絡(luò)編程,建立局域網(wǎng)實現(xiàn)下位機與PC間的WIFI無線通訊。
(2)PC端軟件的開發(fā)在MFC框架下進行,調(diào)用OpenCV等的圖像處理函數(shù),實現(xiàn)圖像的分割、邊緣檢測、Hough變換,進而實現(xiàn)路徑的識別與規(guī)劃。
(3)基于角度和像素偏差,通過建立數(shù)學(xué)模型生成控制決策,實現(xiàn)煙倉機器人自控行走。
本研究開發(fā)的煙倉機器人利用機器視覺實現(xiàn)了對路徑的自動識別和規(guī)劃,對路徑識別控制類機器人和車輛的相關(guān)研究具有一定的參考價值。
參考文獻:
[1] David K.Muller Stored Product[M].USA, 1998: 97 - 103.
[2] 金聞博.卷煙儲運學(xué)(校內(nèi)教材)[M].合肥:中國科學(xué)技術(shù)大學(xué),1998:25-40.
[3] Zou X J,Zou H X.Lu J,et al.Virtual manipulator - basedhinoular stereo vision positioning syste.m and errors modeling[J]. Machine Vision and Aplications, 2012, 23(1):43 - 46.
[4] Atiya S,Hager G.Real - time vision - based robot localization[C]∥Proceedings. IEEE International Conference on Robot-ics and Automation. 1991.
[5] 楊為民,李天石,賈鴻社,等.農(nóng)業(yè)機械機器視覺導(dǎo)航研究[J].農(nóng)業(yè)工程學(xué)報,2004 ,20(1):160 - 165.
[6] 張磊,王書茂,陳兵旗,等.基于機器視覺的麥田邊界檢測[J].農(nóng)業(yè)機械學(xué)報,2007,38(2):111-114.
[7] 張成濤,譚或,吳剛,等.基于達芬奇平臺的聯(lián)合收獲機視覺導(dǎo)航系統(tǒng)路徑識別[J].農(nóng)業(yè)機械學(xué)報,2012,43(增刊):271 - 276.
[8] 董靖川,張朝,溫洋,等.基于STM32的低碳避障實驗小車電控設(shè)計[J].實驗技術(shù)與管理,2017,34(12):45 - 49.
[9] 王輝,于立君,董澤全,等.基于STM32的循跡平衡小車實驗教學(xué)平臺研究[J].實驗技術(shù)與管理,2017,34(5):136 -139.
[10] 高杰.基于WIFI的無線視頻監(jiān)控硬件電路設(shè)計[J].電子測試,2017(1):22 -23.
[11] 馬捷,鄂金龍.基于近場通信的WiFi傳輸連接方案[J].計算機工程,2013(6):1-6.
[12] Thomas Valerrian Pasca Santhappa, Sumanta Patro, Bheemarju-na Reddy Tamma. Network coordination function for uplink traf-fic steering in tightly coupled LTE Wi-Fi networks[J].Com-puter Networks,2017, 127: 296 - 316.
[13] Qi Hui, Li Qi. Implementation of LWIP TCP/IP protocol stackbased on Sl C33 E07[M]//Wu Y W. Software Engineering andKnoWledge Engineering: Theory and Practice. SpringerBerlin - Heidelberg,2012:635 - 642.
[14] 龔正,沈建新.WIFI鏡頭機無線圖像采集系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2016,25(4):263 -267.
[15] Ding X L,Zhao Q, Li Y B,et al.A real - time and effectiveobject recognition and localization method[J].Applied Me-chanics and Materials, 2014, 3372( 615): 82 - 87.
[16] 林開顏,吳軍輝,徐立鴻,等.彩色圖像分割方法綜述[J].中國圖象圖形學(xué)報,2005,10(1):1-10.
[17] 丁文,李勃,陳啟美.Canny色彩邊緣檢測及分類新方法[J].北京郵電大學(xué)學(xué)報,2012,35(1):115 -119.
[18] 樊可霞,周一軍,涂煊,等.基于OpenCV的社??ㄌ柎a識別算法的研究[J].信息技術(shù),2014(3):175 -178.
[19] 聶瑞柱.基于視覺的A(;V路徑跟蹤技術(shù)研究[D].青島:青島科技大學(xué),2015.
[20] 李天劍,王會香,黃民.基于機器視覺的倉儲機器人控制方法研究[J].北京信息科技大學(xué)學(xué)報(自然科學(xué)版),2015,30(6):12-17.