陳 楊,彭友玉,謝邵春,鄭辰雅,張雯麗
(合肥工業(yè)大學(xué) 儀器科學(xué)與光電工程學(xué)院,安徽 合肥 230009)
家用清潔機器人是一款能夠把人從家庭地面清潔工作中解放出來的,可以在地面自主移動,同時完成地面清掃、吸塵任務(wù),而不需要人類監(jiān)督的機器人[1]。目前,市場上的清潔機器人僅適用于家庭環(huán)境[2-4],對于科技館、科研所、醫(yī)院、辦公樓等公共場所,沒有適用的清潔產(chǎn)品,而在公用場所使用家用清潔機器人多有不便。在人工智能越來越普及的今天,各種用途的樓宇也陸續(xù)實現(xiàn)智能化,讓人們的生活更加便捷。在這種大趨勢下,清潔機器人也必將向智能化邁進。因此,結(jié)合公共場所清潔機器人的市場空缺以及人工智能的普及,智能化的樓宇清潔機器人將有巨大的發(fā)展前景[5]。鑒于目前ARM微處理器在國內(nèi)市場上的廣泛使用及其廣闊的發(fā)展前景,本研究選擇STM32F407微處理器作為系統(tǒng)核心,設(shè)計了一款可以在智能樓宇的公共場所中進行地面清潔的公共場所清潔機器人,它具有自動清潔、智能防盜報警、智能語音控制等功能。
本設(shè)計中,清潔機器人由7部分組成,包括主控系統(tǒng)、移動系統(tǒng)、感知系統(tǒng)、電源系統(tǒng)、清潔系統(tǒng)、智能語音控制系統(tǒng)和智能防盜報警系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖1所示。
主控系統(tǒng)由STM32F407單片機開發(fā)板構(gòu)成,功能包括對感知系統(tǒng)獲得的環(huán)境信息進行處理,對清潔系統(tǒng)和移動系統(tǒng)進行控制。內(nèi)部也燒錄進了模糊規(guī)則算法和PID控制算法等軟件程序,對機器人的前進路徑進行規(guī)劃。移動系統(tǒng)包括2個直流電機控制的橡膠輪和1個萬向輪,直流電機使用L298N驅(qū)動芯片進行PWM控制,同時使用PID算法來保證輪子的精確轉(zhuǎn)向。電源系統(tǒng)即為單片機、移動機構(gòu)的直流電機、清掃機構(gòu)的直流電機等部件供電的整體設(shè)計。在感知系統(tǒng)中,使用避障傳感器和防跌落傳感器來保證機器人能夠獲得環(huán)境信息,使用光電編碼器獲取機器人移動的數(shù)據(jù)。清潔系統(tǒng)包括2個旋轉(zhuǎn)刷毛、1個拖布和1個塵盒,使用大功率的電機來實現(xiàn)強力清掃吸塵。智能語音控制系統(tǒng)使用LD3320芯片獲取聲音信息,單片機處理信息后向移動系統(tǒng)發(fā)出相應(yīng)的指令。智能防盜報警系統(tǒng)使用ESP8266WIFI模塊,當智能樓宇中的清潔機器人離開大樓時,WIFI連接會斷開,從而出發(fā)警報。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
STM32F4系列是意法半導(dǎo)體出品的一款高性能、低成本、低功耗的微控制器。本次設(shè)計選用STM32F407ZGT6芯片,該芯片基于最新的ARM Cortex-M4內(nèi)核,最高時鐘頻率為168 MHz,支持單周期DSP指令和浮點單元、192 KB的SRAM容量、512 KB~1 MB的嵌入式閃存和影像、網(wǎng)絡(luò)接口、數(shù)據(jù)加密等更先進的外設(shè),其強大的功能以及豐富的外設(shè)資源滿足本次設(shè)計的要求[6]。
移動機構(gòu)由機器人底部的1個萬向輪和2個12 V直流電機驅(qū)動的橡膠輪組成。直流電機使用L298N電機驅(qū)動模塊驅(qū)動,模塊如圖2所示。L298N是雙H橋直流電機驅(qū)動芯片,供電范圍為+5~+35 V。本設(shè)計采用+12 V可充電機器人鎳氫電池供電。通過STM32F407中的通用定時器TIM2產(chǎn)生PWM波,經(jīng)過GPIOF2/3引腳輸出,再通過GPIOF0/1引腳和GPIO9/10引腳分別控制電機的正轉(zhuǎn)和反轉(zhuǎn)。實現(xiàn)機器人轉(zhuǎn)向的方式是,當2個輪子轉(zhuǎn)向相反時,機器人原地旋轉(zhuǎn)。
圖2 L298N驅(qū)動直流電機電路原理圖
3.3.1 避障傳感器
5個紅外傳感器均勻分布在機器人前端。當紅外傳感器前方出現(xiàn)障礙物時,接收管接收到反射信號,經(jīng)過LM339比較器處理后,輸出1個低電平給單片機,單片機根據(jù)內(nèi)置的算法控制機器人的移動系統(tǒng)。電位器旋鈕可以調(diào)節(jié)障礙物的探測距離,本設(shè)計中調(diào)整探測距離為5 cm。工作電壓為+3~+5 V,采用STM32F407單片機上的+5 V電源進行供電。紅外線傳感器的工作原理如圖3所示。
3.3.2 防跌落傳感器
2個紅外線傳感器位于機器人前端的底部。通過調(diào)節(jié)電位器,當?shù)孛婢嚯x傳感器大于5 cm時,傳感器向單片機對應(yīng)GPIO口輸出低電平。單片機控制機器人向后移動,防止機器人跌落。
3.3.3 光電編碼器
光電編碼器和光電碼盤均安裝在移動機構(gòu)12 V直流電機上,車輪轉(zhuǎn)動時帶動碼盤轉(zhuǎn)動,編碼器采集電平變化,再使用STM32F407單片機的通用定時器TIM2的輸入捕獲功能,使用計數(shù)器的脈沖計數(shù)記錄編碼器采集到的電平上升沿的數(shù)量,從而計算出清潔機器人單個車輪移動的距離。據(jù)此結(jié)合PID算法可以精確控制清潔機器人的轉(zhuǎn)向。
語音識別部分采用LD3320語音識別芯片。該芯片是一顆基于非特定人語音識別芯片,芯片上集成了高精度的A/D接口和D/A接口,不再需要外接輔助的Flash和RAM即可以實現(xiàn)語音識別功能,并且識別的關(guān)鍵詞語列表可以動態(tài)編輯。因此,其語音識別率比較穩(wěn)定,準確率也比較高[7,8]。智能語音識別模塊系統(tǒng)及其工作原理如圖4所示。
圖3 紅外線傳感器電路原理圖
圖4 LD3320系統(tǒng)框圖及原理圖
在本設(shè)計中,LD3320芯片采用并行方式直接與STM32F407單片機相接,并均采用1 K電阻上拉。在圖5中,A0用于判斷是數(shù)據(jù)段還是地址段控制信號。RDB、WRB、CSB、STB(復(fù)位信號)以及中斷返回信號INTB與STM32F407直接相連,為了輔助系統(tǒng)穩(wěn)定工作,均采用10 K電阻上拉。
LD3320芯片內(nèi)部的語音識別原理是:①將通過MIC輸入的聲音進行頻譜分析;②提取語音特征,通過以上2步后將得到語音(即關(guān)鍵詞)的特征信息;③將關(guān)鍵詞語列表(即訓(xùn)練模板)中的數(shù)據(jù)與特征信息進行對比匹配;④找出得分最高的關(guān)鍵詞語作為識別結(jié)果輸出,進而控制清潔機器人執(zhí)行相應(yīng)的語音動作。
總電源采用12 V、3 500 mAh的清潔機器人鎳氫充電電池,分別為STM32F407、清潔刷直流電機、吸塵器直流電機和移動結(jié)構(gòu)直流電機直接提供+12 V電壓。5個避障傳感器、2個防跌落傳感器和2個光電編碼器則采用STM32F4單片機上提供的+5 V、+3.3 V電源引腳供電。
智能防盜報警模塊使用ATK-ESP8266WFI模塊。該模塊采用串口(LVTTL)與STM32F407單片機通信,內(nèi)置TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)串口與WIFI之間的轉(zhuǎn)換。選擇串口無線STA(COM-STA)模式,模塊作為無線WIFI-STA,用于連接到無線網(wǎng)絡(luò),實現(xiàn)串口與其他設(shè)備之間的無線(WIFI)數(shù)據(jù)轉(zhuǎn)換互傳。在該模式下,根據(jù)應(yīng)用場景的不同,可以設(shè)置3個子模式,即TCP服務(wù)器、TCP客戶端、UDP。選擇TCP服務(wù)器,此時,程序會配置模塊為WIFI-AP模式,待配置好后,進入TCP服務(wù)器測試界面。此時,模塊的TCP服務(wù)器已經(jīng)開啟,但是,由于沒有TCPClient來連接,所以狀態(tài)顯示“連接失敗”。
打開智能手機的WIFI功能,設(shè)置無線網(wǎng)絡(luò),即可在WLAN網(wǎng)絡(luò)里面看到有ATK-ESP8266的網(wǎng)絡(luò)SSID。點擊該網(wǎng)絡(luò),輸入密碼,再點擊連接,即可連接到WIFI模塊。稍等片刻,手機便會連接到ATK-ESP8266模塊,然后在手機上安裝相應(yīng)的配套軟件,之后在手機上運行該程序,依次設(shè)置。連接成功建立后,可以看到相互的連接狀態(tài),當兩者相距太遠,則在手機上會顯示disconnect,蜂鳴器響起,從而達到防盜報警功能。WIFI模塊連接情況如圖6所示。
圖5 LD3320電路原理圖
圖6 WIFI模塊連接示意圖
軟件部分主要實現(xiàn)機器人的避障、柵格法遍歷算法、路徑優(yōu)化和移動機構(gòu)的PID控制。程序采用STM32F407的固件函數(shù)庫在Keil5環(huán)境下編寫,主要包括以下內(nèi)容。
先完成單片機的資源分配,配置GPIO口的模式,初始化相應(yīng)的GPIO口。單片機資源分配如表1所示。
表1 STM32F407單片機資源分配
本設(shè)計采用紅外傳感器避障,5個紅外線傳感器均布在機器人前端180°的范圍內(nèi)。當紅外傳感器未檢測到障礙物時,單片機對應(yīng)引腳獲取高電平;當紅外傳感器探測到障礙物時,單片機對應(yīng)引腳獲取低電平。避障規(guī)則如表2所示。其中,0代表無障礙物,1代表有障礙物,電機部分1代表電機正轉(zhuǎn),-1代表電機反轉(zhuǎn)。運用PID算法能夠保證機器人準確旋轉(zhuǎn) 90°。
表2 模糊規(guī)則避障表格
柵格法是目前應(yīng)用最廣泛、最可靠的一種局部區(qū)域規(guī)劃算法。該方法將機器人的工作區(qū)域劃分成為與機器人大小相同的一系列網(wǎng)格,并將網(wǎng)格進行二值化,即有障礙物的區(qū)域記錄為1,無障礙物的區(qū)域記錄為0.在機器人運動的過程中,障礙物的大小和位置不發(fā)生變化。機器人通過內(nèi)置的算法在無障礙物區(qū)域中計算出1條可以遍歷的路徑,從而完成清掃工作。
4.3.1 環(huán)境建模
機器人采用2種方法熟悉當前環(huán)境:①將已知的環(huán)境平面圖和障礙物信息進行網(wǎng)格劃分,并以環(huán)境的某個指定角落為原點,形成二維坐標,將二值化后的信息以二維數(shù)組的方式導(dǎo)入到機器人中。②讓機器人從原點開始對環(huán)境進行遍歷運動,通過自身移動路徑來記錄環(huán)境信息,如圖7(a)所示。這種方法的具體操作過程是,機器人從(0,0)開始,沿y軸方向移動,根據(jù)光電編碼器記錄的車輪移動距離信息計算出當前所在的柵格位置,并且在已通過區(qū)域的二維數(shù)組的對應(yīng)位置記錄下0.當機器人遇到障礙物時,繞過障礙物繼續(xù)沿y軸方向移動,并在有障礙物的位置記錄下1.當y值無法增大后,機器人沿x方向移動一個車身,并向y軸負方向移動。由此往復(fù)運動,記錄下當前地圖的信息,最終當機器人遍歷當前地圖后,完成環(huán)境建模,信息存儲在二維數(shù)組當中,如圖7(b)所示。
4.3.2 矩形搜索算法
對機器人獲取的二維數(shù)組進行劃分處理,利用矩形搜索算法將可清掃區(qū)域劃分成若干個矩形。具體過程是,從原點開始在y=0行沿x軸方向依次尋找二維數(shù)組中值為0的柵格,并記錄下來,直到遇到值為1的柵格后,開始搜尋y=1行,搜索到上一行值為1的柵格的x值位置便停止,之后y值再次加1,如此循環(huán)。
如果過程中遇到值為1的柵格,便停止搜索,把此時y值行記錄下來的柵格記錄取消,之前記錄下的柵格便是一個可清掃矩形區(qū)域,記錄為A1,并將該區(qū)域的柵格值全部替換成1,形成新的環(huán)境二維數(shù)組。之后對新的環(huán)境二維數(shù)組進行矩形區(qū)域搜索,直到所有柵格的值均為1.如此便可劃分出若干個可清掃區(qū)域的數(shù)組Ai,具體算法流程如圖8所示。隨后機器人按照數(shù)組的命名順序依次清掃各區(qū)域,區(qū)域劃分如圖7(c)所示。
由本次采集的光電編碼器數(shù)據(jù)與設(shè)定值進行比較得出偏差e(n),對偏差進行PID運算,最終利用運算結(jié)果控制PWM脈沖的占空比來實現(xiàn)對加在電機兩端電壓的調(diào)節(jié),進而控制電機轉(zhuǎn)速。機器人的移動由2個獨立直流電機負責(zé),這2個電機的PID控制系統(tǒng)結(jié)構(gòu)是一樣的,如圖9所示。
圖7 環(huán)境信息獲取及處理示意圖
圖8 矩形搜索算法軟件流程圖
圖9 機器人的PID控制系統(tǒng)結(jié)構(gòu)
圖9中,Vin為給定信號,Vout為實際信號。PID控制系統(tǒng)參數(shù)整定采用經(jīng)驗湊試法,因系統(tǒng)采用PI調(diào)節(jié)規(guī)律,即先確定一個調(diào)節(jié)器的參數(shù)值PB和Ti,通過改變給定值對控制系統(tǒng)施加一個擾動,現(xiàn)場觀察判斷控制曲線形狀。如果曲線不夠理想,可以改變PB或Ti,再記錄控制過程曲線,反復(fù)湊試,直到出現(xiàn)4∶1衰減曲線為止,這時的PB和Ti就是最佳值。
該算法有2個優(yōu)點:①控制系統(tǒng)的測量精度在PI整定參數(shù)合適的情況下,控制精度非常高,控制量很快就能穩(wěn)定在設(shè)定值上;②控制系統(tǒng)應(yīng)采用PI控制規(guī)律,系統(tǒng)稍有誤差就會立刻調(diào)節(jié),可消除周圍環(huán)境對控制系統(tǒng)的影響[9-10]。
本文設(shè)計了一款適用于智能樓宇的公共場所清潔機器人。其核心控制器采用STM32F407單片機,通過移動機構(gòu)、清潔機構(gòu)、電源系統(tǒng)、智能防盜報警系統(tǒng)等硬件部分與PID控制、避障算法等軟件程序的結(jié)合可以實現(xiàn)清潔機器人對公共場所環(huán)境的規(guī)劃以及自動清掃,并且能通過語音識別系統(tǒng)對非特定人的語音指令做出相應(yīng)的動作。在機器人離開樓宇,WIFI連接斷開后,還會啟動蜂鳴器報警,實現(xiàn)智能防盜報警功能。這個設(shè)計為清潔機器人向智能化邁進做了一些工作,也填補了目前市場上沒有公共場所清潔機器人的空白。
參考文獻:
[1]周盛榮.智能家庭清掃機器人的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2006.
[2]曾岑,陳進,蔣玉杰.智能型室內(nèi)清潔機器人的研究和發(fā)展探析[J].機械制造,2008(10):63-67.
[3]石為人,周學(xué)益.室內(nèi)清潔機器人避障路徑規(guī)劃研究[J].計算機應(yīng)用,2007(S1):378-379.
[4]譚定忠,王啟明,李金山,等.清潔機器人研究發(fā)展現(xiàn)狀[J].機械工程師,2004(06):9-11.
[5]林旭斌.樓宇智能化技術(shù)在智能建筑中的應(yīng)用研究[J].江西建材,2017(13):67-68.
[6]張洋.精通STM32F4[M].北京:北京航空航天大學(xué)出版社,2015.
[7]金鑫,田犇,闕大順.基于LD3320的語音控制系統(tǒng)設(shè)計實現(xiàn)[J].電腦與信息技術(shù),2011,19(06):22-25.
[8]劉天順,丁騰騰,毛強.基于LD3320語音控制智能車的設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2015(10):5-7.
[9]余莎麗,劉小龍,周健民.基于模糊PID與算法控制智能小車速度[J].自動化與儀器儀表,2012(02):76-77.
[10]孫揚智.基于雙層模糊邏輯控制的智能小車研究[D].成都:西南交通大學(xué),2016.