劉家博,曹鵬飛,段元奕
(山東科技大學電氣與自動化工程學院,山東青島 266590)
近年來,隨著人工智能的飛速發(fā)展,智能化家居設備開始成為大眾寵兒,其中能夠自動化清潔的掃地機器人產品備受青睞。市面銷售的掃地機器人大多模式單一,只能按照固定方式進行清掃,且對工作環(huán)境要求相對較高。所以研究并設計一臺具有機器視覺的掃地機器人是市場的迫切需求[1]。文中所研究的內容涉及物體識別、路徑規(guī)劃、無線遙控等多種功能,實現(xiàn)了機器視覺在掃地機器人上的應用,具有廣闊的開發(fā)空間和良好的應用性,適合于相關領域的智能化研究與發(fā)展。
該文設計的掃地機器人硬件系統(tǒng)整體分為三部分,如圖1 所示,分別是掃地機器人硬件主體、直接和單片機相連的各類傳感器和電機控制部分。
圖1 硬件系統(tǒng)結構
該設計需要具備兩個特性:反應速度快和準確度高。設計方案中主控制板上芯片采用搭載ARM Cortex-M4 內核的STM32F407VET6。STM32F407 VET6滿足設計需求的成本較低、主頻高且準確度高的要求,因此選用該芯片作為主控芯片[2]。
電源模塊以12 V 鋰電池為電源,通過降壓模塊穩(wěn)壓后為STM32、各傳感器、電機驅動模塊和風機驅動模塊提供電流電壓。如圖2 所示,只需要調節(jié)R1和R2的大小,LM2596 穩(wěn)壓模塊就可將電源電壓穩(wěn)壓至5 V,為STM32 單片機供電;驅動電機模塊的輸入電壓的獲取方式同上,是由LM2596 穩(wěn)壓模塊將電源電壓穩(wěn)壓至6 V 作為輸入電壓;XL4016E1 穩(wěn)壓模塊將電源電壓穩(wěn)壓至9 V 后輸入風機驅動模塊。
圖2 LM2596穩(wěn)壓模塊原理圖
車模采用兩驅差速三輪車模,底板為以20 cm為半徑的圓形亞克力板,分為上、下兩層,頂層上安裝了攝像頭、無線遙控模塊和電容開關,OpenMV 攝像頭安裝在掃地機器人的前端,斜向下45°,鏡頭中心離地面10 cm 左右處;夾層里是電源模塊、核心板、各驅動模塊、測距模塊、角度傳感器、吸塵電機,機器人正前方、正左側、正右側分別安裝一個超聲波傳感器,右側還安裝一個斜向右前方45°的超聲波傳感器;底層安裝了驅動電機,驅動電機采用的額定電壓為6 V,額定轉速為60 rpm 的370 直流減速電機,車輪由兩個65 mm 的橡膠車輪和一個萬向輪組成[3]。
直接和單片機相連的各類傳感器包括OpenMV攝像頭模塊、測距模塊、電容觸摸開關、角度檢測模塊和無線遙控模塊,并由單片機引出5 V 電壓源為各傳感器供電。
OpenMV 攝像頭模塊采用OpenMV4 H7 Plus,搭載高性能的STM32H7 處理器,可以高效地實現(xiàn)機器視覺算法,并提供了Python 的編程接口方便二次開發(fā)[4]。
測距模塊由HC-SR04 超聲波傳感器組成,探測距離長達600 cm,探測精度為0.1 cm,感應角度小于15°,完全符合家庭使用的標準,文中的超聲波傳感器通過IIC 通信協(xié)議向STM32 單片機傳輸信息[5]。
電容觸摸開關用來代替?zhèn)鹘y(tǒng)的按鍵開關,在進行工作模式選定時可以有效消除機械抖動帶來的誤觸發(fā),并且使用壽命也比傳統(tǒng)按鍵開關長的多。
角度測量模塊采用MPU6050 姿態(tài)傳感器,通過IIC 通信協(xié)議與STM32 單片機建立聯(lián)系,該設計主要運用其三軸陀螺儀功能來檢測機器人的旋轉角度[6]。
無線遙控模塊由遙控器和RX-Q8 超外差解碼無線接收模塊組成。RX-Q8 超外差解碼無線接收模塊不受網(wǎng)絡條件的限制,同時RX-Q8 有效接收距離超過50 m,是一種靈敏度高、兼容性好、抗干擾能力強的高性能無線接收模塊。
電機控制模塊主要由電機驅動模塊和風機驅動模塊組成。電機驅動模塊采用專用芯片L298N 作為電機驅動芯片,L298N 驅動模塊原理圖如圖3 所示[7],L298N 電機驅動芯片可以同時控制兩個直流電機,通過控制使能端還可以實現(xiàn)脈沖寬度調制,從而實現(xiàn)對速度的調節(jié)。
圖3 L298N驅動模塊原理圖
該設計的風機驅動模塊采用大功率電機驅動模塊BTN7960,工作原理和L298N 驅動模塊相似,均采用雙H 橋驅動電路,可以通過與STM32 單片機相連的使能端口控制風機的開關,具有強勁的驅動能力和過熱過流保護功能,該驅動模塊相比L298N 可以更好地驅動大功率風機工作,以此達到吸塵的效果[8]。
該設計實現(xiàn)的功能主要包括垃圾識別、路徑規(guī)劃、智能吸塵和無線遙控。
該設計的垃圾識別采用機器學習的方法來實現(xiàn)。打開OpenMV IDE,在上方欄目的工具里打開數(shù)據(jù)集編輯器,新建四個文件用來存儲不同垃圾的照片,這四個文件夾名分別為“加強”、“減弱”、“停止”、“其他”的漢語全拼,用OpenMV 攝像頭對各類垃圾進行拍照,并分別存入四個文件中,并通過Edge Impulse 在線平臺訓練神經網(wǎng)絡,訓練完成后將代碼復制到OpenMV IDE 中即可運行[9]?!凹訌姟蔽募泻袕U紙的照片,經過機器學習后,機器人可自動識別到廢紙,如圖4 所示,串口輸出為jiaqiang=0.996 094,幀率為6.565 66 fps,識別成功率接近100%,當脫機運行時幀率還會有所提高,幀率基本滿足工作需求。
圖4 “加強”類識別結果
“減弱”文件中含有毛發(fā)的照片,經過機器學習后,機器人可自動識別到毛發(fā),如圖5 所示,串口輸出為jianruo=0.996 094,幀率為6.591 8 fps,識別成功率接近100%。
圖5 “減弱”類識別結果
“停止”文件中含有襪子的照片,經過機器學習后,機器人可自動識別到襪子,如圖6 所示,串口輸出為jianruo=0.996 094,幀率為6.610 89 fps,識別成功率接近100%。
圖6 “停止”類識別結果
“其他”文件中含有電線的照片,經過機器學習后,機器人可自動識別到電線,如圖7 所示,串口輸出為jianruo=0.992 188,幀率為5.923 8 fps,識別成功率接近100%。
圖7 “其他”類識別結果
四類垃圾的成功識別率都接近100%,識別準確度非常高,同時幀率大都在6.5 fps 以上,當脫機運行時幀率還會增加0.6 fps 左右,識別速度大體可以滿足使用要求[10]。
為了減小成本,該設計的路徑規(guī)劃主要通過超聲波傳感器來實現(xiàn):
模式一沿墻清掃,基礎路徑規(guī)劃主要用到機器人正前方的一個超聲波傳感器和右側的一個斜向右前方45°的超聲波傳感器,分別記作“A”和“B”,當機器人前方出現(xiàn)障礙物時,A 就可以測得距離LA(cm)并傳遞給STM32 單片機,這時設置有兩個特殊距離分別為40 cm 和25 cm,當前方障礙物與機器人相距40 cm 時,STM32 單片機開始通過I/O 口向L298N 驅動模塊的EA 口發(fā)出占空比為XA%的信號,此時EA 口收到占空比70%的信號;當前方障礙物與機器人相距25 cm 時,EA 口收到占空比0%的信號,由此可得經化簡得同理,B 設有兩個特殊距離值10 cm 和26 cm,當LB=10 cm 時XB=100,XA=0;當LA=26 cm 時XB=0,XA=10;以上公式均通過C 語言實現(xiàn),XA、XB、LA、LB均定義為浮點型變量[11]。
模式二機器人會自由行進吸塵,機器人的前、左、右都裝有超聲波傳感器,正常情況下機器人保持直行,當有至少一個超聲波傳感器檢測到障礙物距離小于20 cm 或光電管檢測到障礙物時,機器人會向未檢測到障礙物的傳感器所在的方向轉向來躲避障礙物[12]。
模式三是在模式一的基礎上進行拓展來實現(xiàn)房間的全面吸塵,首先機器人會進行模式一,當姿態(tài)傳感器檢測到機器人已經旋轉360°即沿墻清掃一周后,機器人會沿“S”的運動軌跡對房間進行清掃,當距前方障礙物距離25 cm 時觸發(fā)轉向,期間通過姿態(tài)傳感器校正方向,保證機器人每次觸發(fā)轉向時旋轉180°,未觸發(fā)時沿直線行進[13]。
機器人可以識別垃圾并分為四類,每一類對應一種工作模式。當機器人識別到垃圾時會先進行分類,并將分類信息傳遞給STM32 單片機,單片機再控制驅動電機和吸塵電機的工作強度[14]。當識別為“加強”類時,OpenMV 的P0 口輸出低電平,STM32 收到P0 低電平后,通過增加占空比來提高吸塵電機的工作強度,進而吸走諸如廢紙之類較重的垃圾;當識別為“減弱”類時,OpenMV 的P1 口輸出低電平,STM32 收到P1 的低電平后,通過減小占空比來減弱吸塵電機的工作強度,進而吸走諸如毛發(fā)之類的輕型垃圾;當識別為“停止”類時,OpenMV 的P2 口輸出低電平,STM32 收到P2 的低電平后將占空比減為0使吸塵電機停止工作,防止機器人因吸入襪子等物體引起風口堵塞而發(fā)生危險;當識別為“其他”類時,OpenMV 的P3 口輸出低電 平,STM32收到P3 的低電平后,將停止吸塵和前進,并通過蜂鳴器發(fā)出警報,這樣可以防止機器人工作過程中纏入電線而引發(fā)危險,此時只需人為移除電線,機器人就可繼續(xù)工作[15]。
無線遙控模塊主要用來進行工作模式的選擇、運動方向的控制、啟動和停止。RX-Q8 超外差解碼無線接收模塊的Q 類引腳與遙控器的8 個按鍵一一對應,當遙控器發(fā)出信號時,對應的Q 腳從低電平變?yōu)楦唠娖?,進而將電信號傳遞給STM32 單片機,最終實現(xiàn)無線控制[16]。
為了驗證該設計的實用性,針對機器人直行和轉彎時的垃圾清理能力進行測試,以模式3 為例,直行的調試結果如表1 所示,轉彎的調試結果如表2 所示。機器人在直線行駛時的速度大約為0.22 m/s,由表1 可知,直行時的成功率為96.5%;由表2 可知,轉彎時的成功率為92.5%,綜合兩者可知,成功率介于92.5%和96.5%之間。
表1 直行調試結果
表2 轉彎調試結果
文中設計的掃地機器人共有三種工作模式,可通過四路電容觸摸按鍵或遙控器選擇各工作模式,同時也可人為遙控實現(xiàn)定點吸塵。該設計提供了一種簡單、實用、可靠的路徑規(guī)劃方法,創(chuàng)新性地引入了機器視覺和無線遙控技術,極大地提高了掃地機器人的智能化、自動化程度,具有廣闊的應用場景。