張海鋒 ,韓 娟 ,劉炳銘 ,曹敏聰 ,朱文浩 ,張秀妹
(廣東白云學(xué)院機(jī)電工程學(xué)院,廣東 廣州 510450)
近年來(lái),隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,物流行業(yè)發(fā)展迅猛,傳統(tǒng)的倉(cāng)庫(kù)管理方法和管理模式已經(jīng)難以適應(yīng)時(shí)代的發(fā)展需要。因此,推動(dòng)倉(cāng)庫(kù)管理由傳統(tǒng)模式向現(xiàn)代智能模式轉(zhuǎn)變迫在眉睫,倉(cāng)庫(kù)管理機(jī)器人應(yīng)運(yùn)而生。為滿足社會(huì)對(duì)倉(cāng)管機(jī)器人的需求,課題組設(shè)計(jì)了一款基于STM32和樹(shù)莓派的倉(cāng)管機(jī)器人。測(cè)試結(jié)果表明,該倉(cāng)管機(jī)器人極大地方便了人們快速了解倉(cāng)庫(kù)的實(shí)時(shí)情況,及時(shí)發(fā)現(xiàn)問(wèn)題并解決問(wèn)題,在降低企業(yè)成本的同時(shí)還減少了人力的投入。
該倉(cāng)管機(jī)器人系統(tǒng)組成圖如圖1所示。由圖1可知,機(jī)器人倉(cāng)庫(kù)管理系統(tǒng)和4B4GB型樹(shù)莓派是倉(cāng)管機(jī)器人主要的控制系統(tǒng)。驅(qū)動(dòng)系統(tǒng)采用STM32F103單片機(jī),采集和下載部分由溫度傳感器、濕度傳感器、視覺(jué)傳感器、三片機(jī)和云平臺(tái)組成。其不僅可以采集倉(cāng)庫(kù)的溫度、濕度、物料尺寸等信息,還可以通過(guò)Wi-Fi無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn)上位機(jī)與數(shù)據(jù)采集模塊之間的通信。測(cè)試結(jié)果表明,該機(jī)器人能夠準(zhǔn)確檢測(cè)環(huán)境信息且運(yùn)行穩(wěn)定。
圖1 倉(cāng)管機(jī)器人系統(tǒng)組成圖
為了讓倉(cāng)管機(jī)器人完成特定的任務(wù),調(diào)度員可以使用云平臺(tái)遠(yuǎn)程控制倉(cāng)管機(jī)器人的移動(dòng)。運(yùn)動(dòng)控制系統(tǒng)作為倉(cāng)管機(jī)器人的終端系統(tǒng),是保證自主移動(dòng)機(jī)器人高效運(yùn)行的基礎(chǔ)。機(jī)器人的運(yùn)動(dòng)控制主要基于管理員的輸出指令,利用CUP計(jì)算機(jī)處理數(shù)據(jù)信息,實(shí)現(xiàn)了倉(cāng)管機(jī)器人的真實(shí)運(yùn)動(dòng),從而能夠順利、穩(wěn)定、準(zhǔn)確地完成理論軌跡控制。該系統(tǒng)功能以ROS節(jié)點(diǎn)的形式顯示,導(dǎo)航調(diào)度程序和驅(qū)動(dòng)器控制節(jié)點(diǎn)位于機(jī)箱控制系統(tǒng)中,交互層控制節(jié)點(diǎn)位于遠(yuǎn)程客戶端中[1]。主控制系統(tǒng)又分為控制器、運(yùn)算器、存儲(chǔ)器和輸入/輸出接口。
1.1.1 控制器
控制器是計(jì)算機(jī)的控制核心,控制器的電路圖如圖2所示。由圖2可知,控制器從內(nèi)存中提取指令,分析和判斷指令,根據(jù)指令發(fā)送控制信號(hào),使計(jì)算機(jī)能夠有序協(xié)調(diào)地完成指令。此外,控制器有邏輯控制器和微處理器控制器,兩者各有優(yōu)缺點(diǎn)。具體比較如下:組合邏輯控制器又稱硬線控制器,由邏輯電路構(gòu)成,指令功能由硬件實(shí)現(xiàn),其設(shè)計(jì)結(jié)構(gòu)復(fù)雜,且設(shè)計(jì)完成后不能修改或擴(kuò)展,但其速度非???。微處理器控制器設(shè)計(jì)簡(jiǎn)便,結(jié)構(gòu)簡(jiǎn)單,易于修改和擴(kuò)展。如果要更改機(jī)器指令的功能,僅需重新組織相應(yīng)的微處理器;如果要添加機(jī)器命令,僅需將微程序添加到控制內(nèi)存中,運(yùn)行微程序。
圖2 控制器電路圖
1.1.2 運(yùn)算器
在計(jì)算機(jī)上可以執(zhí)行各種算術(shù)和邏輯運(yùn)算,算術(shù)單位也稱為算術(shù)邏輯單位,由算術(shù)邏輯單元(ALU)、插件、狀態(tài)寄存器、通用寄存器組等構(gòu)成。算術(shù)邏輯運(yùn)算單元的基本功能包括加法、減法、乘法、除法和AND、OR、NOT、XOR等邏輯運(yùn)算以及移動(dòng)、代碼補(bǔ)正等運(yùn)算。計(jì)算機(jī)配置CPU的核心和控制單元,在運(yùn)行時(shí),控制器決定計(jì)算單元的操作和操作模式。計(jì)算單元處理的數(shù)據(jù)來(lái)自陣列,處理后的結(jié)果數(shù)據(jù)通常返回內(nèi)存或暫時(shí)存儲(chǔ)在計(jì)算單元中,計(jì)算單元是計(jì)算機(jī)處理數(shù)據(jù)的功能部件。數(shù)據(jù)處理主要包括數(shù)據(jù)的算術(shù)運(yùn)算和邏輯數(shù)據(jù)的邏輯運(yùn)算,所以實(shí)現(xiàn)數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算是求解器的核心功能。
1.1.3 存儲(chǔ)器
存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用于存儲(chǔ)程序和數(shù)據(jù)。計(jì)算機(jī)存儲(chǔ)記憶分為內(nèi)部和外部?jī)煞N,內(nèi)部?jī)?nèi)存直接連接到處理器,將當(dāng)前程序和數(shù)據(jù)存儲(chǔ)在稱為主內(nèi)存的處理器中,其特點(diǎn)是訪問(wèn)速度快,基本上支持處理器的速度,但價(jià)格高、存儲(chǔ)容量小。外部?jī)?nèi)存主要用于存儲(chǔ)暫時(shí)不使用但長(zhǎng)期保存的數(shù)據(jù)和進(jìn)程,存儲(chǔ)在外部?jī)?nèi)存中的數(shù)據(jù)必須傳送到內(nèi)部?jī)?nèi)存以供執(zhí)行,其特點(diǎn)是內(nèi)存容量大、成本低,但訪問(wèn)速度相對(duì)較慢。
1.1.4 輸入/輸出接口
輸入/輸出接口也稱為I/O接口,是將處理器連接到外部設(shè)備的邏輯電路,同時(shí)集成了隨機(jī)存儲(chǔ)器(RAM)、存儲(chǔ)器程序(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、I/O接口、計(jì)時(shí)計(jì)數(shù)器、中斷控制器和系統(tǒng)時(shí)鐘電路。每個(gè)I/O接口都有一個(gè)處理器地址,處理器使用不同的I/O接口執(zhí)行外部操作。單個(gè)計(jì)算機(jī)使用總線在CPU、RAM、ROM和I/O模塊之間傳輸信息。內(nèi)置于特定類型計(jì)算機(jī)中的RAM和ROM集成芯片的尺寸、I/O接口的數(shù)量、計(jì)時(shí)計(jì)數(shù)器的類型均不同,但CPU只有一個(gè)。I/O門戶是單個(gè)系統(tǒng)的重要資源,是衡量單個(gè)系統(tǒng)性能的重要指標(biāo)之一。I/O接口又分為并行口和串行口,并行I/O接口通常是可從軟件輸入或輸出的獨(dú)立雙向I/O接口;串行I/O接口用于單個(gè)設(shè)備與串行設(shè)備或其他單個(gè)系統(tǒng)的通信。
傳感器電路板結(jié)構(gòu)圖如圖3所示,樹(shù)莓派的主要連接引腳圖如圖4所示。從圖中,我們可以看到傳感器內(nèi)部電路的結(jié)構(gòu)設(shè)計(jì)及其與樹(shù)莓派的關(guān)系。
圖3 傳感器電路板結(jié)構(gòu)圖
圖4 樹(shù)莓派引腳圖
對(duì)于大型倉(cāng)庫(kù)而言,為了保護(hù)倉(cāng)庫(kù)的安全,避免突發(fā)事故的發(fā)生,仍需要大量人員晝夜不停地巡邏。因此,課題組在機(jī)器人上安裝了紅外傳感器系統(tǒng),使用了HC-SR501人體紅外感應(yīng)模塊。如果在延遲時(shí)間內(nèi)有人在感應(yīng)范圍內(nèi)活動(dòng),則將持續(xù)輸出高電平;當(dāng)人離開(kāi)感應(yīng)區(qū)后,高電平又會(huì)轉(zhuǎn)為低電平。
溫度傳感器內(nèi)部電路分析圖如圖5所示。根據(jù)溫度傳感器感應(yīng)的溫度,調(diào)節(jié)內(nèi)部滑動(dòng)電阻的阻值,計(jì)算出工作電壓,如式(1)所示。當(dāng)溫度為24 ℃,R1和R2均取值為1 000 Ω。
圖5 溫度傳感器內(nèi)部電路分析圖
目前,企業(yè)對(duì)于產(chǎn)品的生產(chǎn)、庫(kù)存管理和倉(cāng)儲(chǔ)管理越來(lái)越重視,許多倉(cāng)庫(kù)都存有企業(yè)生產(chǎn)中非常重要的材料。為了保持良好的庫(kù)存質(zhì)量,并為貨物提供適合的儲(chǔ)存溫度和濕度等有利條件,應(yīng)盡可能避免倉(cāng)庫(kù)外天氣條件的不利影響。如果倉(cāng)庫(kù)的溫度和濕度不適合儲(chǔ)存貨物,應(yīng)采取有效措施控制倉(cāng)庫(kù)的溫度、濕度。因此,制定相關(guān)行業(yè)標(biāo)準(zhǔn),建立實(shí)時(shí)溫度和濕度監(jiān)測(cè)系統(tǒng),并保存完整的歷史溫度和濕度數(shù)據(jù)具有非常重要的作用。在此實(shí)驗(yàn)中,課題組使用了熱電偶的溫度傳感器,其可以在大溫度范圍和各種大氣壓下進(jìn)行溫度測(cè)量。當(dāng)導(dǎo)體形成回路時(shí),有了溫度梯度,回路中的電流通過(guò)兩端形成電動(dòng)勢(shì),再根據(jù)傳輸?shù)碾娏鞔笮★@示溫度高低。然后通過(guò)無(wú)線電的方式上傳至無(wú)線電環(huán)境監(jiān)控主機(jī),環(huán)境監(jiān)控主機(jī)接收到無(wú)線電后,通過(guò)網(wǎng)口上傳至電腦軟件平臺(tái),或者通過(guò)以太網(wǎng)、GPRS上傳的方式上傳至互聯(lián)網(wǎng),再由互聯(lián)網(wǎng)上傳至軟件平臺(tái)[2]。
課題組設(shè)計(jì)的倉(cāng)管機(jī)器人選用了OpenCV視覺(jué)系統(tǒng),該視覺(jué)系統(tǒng)擁有龐大的視覺(jué)庫(kù)和多種常用算法。在視覺(jué)系統(tǒng)中配備有紅外投影模組、面部接近感知系統(tǒng)、計(jì)算機(jī)監(jiān)測(cè)信息控制系統(tǒng)(MIC)以及兩個(gè)相機(jī)模組的LeTMC-520S三合一體感攝像頭和RGBD深度相機(jī),為產(chǎn)品提供了優(yōu)良的視覺(jué)感應(yīng)。樹(shù)莓派的CSI接口攝像頭及LeTMC-520S三合一體感攝像頭可以獲取小車附近環(huán)境的圖像,并通過(guò)OpenCV視覺(jué)系統(tǒng)中提供的Canny函數(shù)運(yùn)算對(duì)獲取的圖像濾除噪聲后[3],計(jì)算出圖像中每個(gè)像素點(diǎn)的梯度強(qiáng)度和方向;應(yīng)用非極大值抑制(Non-Maximum Suppression),消除邊緣檢測(cè)帶來(lái)的雜散響應(yīng),再應(yīng)用雙閾值(Double-Threshold)檢測(cè)以確定真實(shí)的和潛在的邊緣,通過(guò)抑制孤立的弱邊緣最終完成邊緣檢測(cè);結(jié)合Turbot-VSLAM的三維色彩建圖,最后通過(guò)Wi-Fi網(wǎng)絡(luò)實(shí)時(shí)反饋到管理者屏幕上[4]。Canny函數(shù)運(yùn)算的效果較好,更適合用于檢測(cè)真正的弱邊緣,Canny算子給出了一個(gè)好的邊緣檢測(cè)算子的3個(gè)指標(biāo):1)低失誤率,即真正的邊緣點(diǎn)盡可能提取,非邊緣點(diǎn)盡可能不提??;2)高位置精度,檢測(cè)的邊緣應(yīng)盡可能接近真實(shí)邊緣;3)對(duì)每一個(gè)邊緣點(diǎn)有唯一的響應(yīng),即得到單像素寬度的邊緣。還有其他的算法,如Shen-Castan算法,雖然計(jì)算出的效果和Canny算法的效果大致相同,但該算法更為復(fù)雜,因而采用Canny函數(shù)運(yùn)算[5]。OpenCV視覺(jué)系統(tǒng)代碼的部分展示如下[6]:
倉(cāng)管機(jī)器人的監(jiān)控系統(tǒng)的各個(gè)模塊及組成部分如圖6所示。
圖6 監(jiān)控系統(tǒng)的各個(gè)模塊及組成部分
智能調(diào)度控制系統(tǒng)的實(shí)時(shí)監(jiān)控與預(yù)警類應(yīng)用為倉(cāng)庫(kù)管理的實(shí)時(shí)在線監(jiān)視、運(yùn)行分析、操作和控制等提供了核心支撐,是倉(cāng)庫(kù)管理安全穩(wěn)定運(yùn)行的重要技術(shù)保障。實(shí)時(shí)監(jiān)控系統(tǒng)分為實(shí)時(shí)監(jiān)控、網(wǎng)絡(luò)傳輸、實(shí)時(shí)操作三個(gè)模塊。課題組設(shè)計(jì)的監(jiān)控系統(tǒng)由機(jī)器人中帶有的視覺(jué)傳感器對(duì)物體進(jìn)行觀測(cè),通過(guò)樹(shù)莓派的CSI接口攝像頭獲取圖像信息后,數(shù)據(jù)會(huì)傳遞到后臺(tái)并自動(dòng)運(yùn)行Python腳本,在局域網(wǎng)構(gòu)建一個(gè)視頻監(jiān)控系統(tǒng);之后將處理后的信息傳輸?shù)骄钟蚓W(wǎng),任何設(shè)備連上局域網(wǎng)后,打開(kāi)瀏覽器地址欄輸入樹(shù)莓派的IP地址即可打開(kāi)網(wǎng)絡(luò)監(jiān)控系統(tǒng),在設(shè)備上可以安裝帶有SSH(安全外殼協(xié)議)的App,管理者就可以隨時(shí)發(fā)送指令給樹(shù)莓派執(zhí)行視頻監(jiān)控腳本,也有利于對(duì)機(jī)器人進(jìn)程任務(wù)的管理。
在網(wǎng)絡(luò)傳輸上,相較于平常使用的串口和USB等數(shù)據(jù)傳輸方式,網(wǎng)卡的快速傳輸大量數(shù)據(jù)、準(zhǔn)確性高、傳輸距離遠(yuǎn)等一系列優(yōu)勢(shì)表明其更適用于遠(yuǎn)程傳輸?;诖?,課題組為倉(cāng)管機(jī)器人選用千兆網(wǎng)卡RTL8211EG芯片,將數(shù)據(jù)通過(guò)網(wǎng)線以及交換機(jī)傳輸?shù)竭h(yuǎn)程圖像拼接與顯示單元中,RTL8211EG到MAC(FPGA)之間的傳輸接口采用GMII接口[7]。其向FPGA輸出125 MHz,可與遠(yuǎn)程圖像拼接與顯示單元自動(dòng)協(xié)商匹配成千兆網(wǎng)傳輸模式進(jìn)行傳輸,再通過(guò)交換機(jī)進(jìn)行擴(kuò)展,可完成無(wú)限多個(gè)攝像頭數(shù)據(jù)的傳輸。網(wǎng)卡只具有PHY(物理層)功能,所以需要在FPGA內(nèi)部完成對(duì)數(shù)據(jù)包的打包,傳輸視頻采集模塊處理完畢的數(shù)據(jù)[8]。實(shí)時(shí)操作系統(tǒng)可以管理當(dāng)前機(jī)器人執(zhí)行的所有任務(wù),其多任務(wù)管理能力體現(xiàn)在決定任務(wù)執(zhí)行次序以及強(qiáng)制中斷正在執(zhí)行的任務(wù)的權(quán)利[9-10]。
倉(cāng)管機(jī)器人的出現(xiàn)可以極大地減少人力和物力的支出,為企業(yè)降低成本并帶來(lái)可靠的收益。課題組設(shè)計(jì)的機(jī)器人可以應(yīng)用于各大型低溫倉(cāng)庫(kù)、藥品倉(cāng)庫(kù)和快遞倉(cāng)庫(kù)等,通過(guò)倉(cāng)管機(jī)器人的智能管理,有效地保障了倉(cāng)庫(kù)的安全以及貨物的質(zhì)量。同時(shí),此機(jī)器人是較為先進(jìn)的現(xiàn)代化設(shè)計(jì)產(chǎn)品,可以有效完善倉(cāng)庫(kù)的管理并使之更具簡(jiǎn)便性和智能性。