楊向東,潘文彬,麥鎧芮,張陳宏,周汶鋒
(廣州華立學院 機電工程學院,廣東 廣州 511325)
目前,具有爬墻功能的機器人仍處在從理論研發(fā)向?qū)嶋H產(chǎn)品過渡階段,市場上的擦窗機器人產(chǎn)品并不多,且價格昂貴,很容易留下清潔死角。本項目根據(jù)玻璃幕墻清潔的需求,利用機械視覺和負壓吸收基本原理,設計了一款負壓吸收式手動擦窗機器人,從而達到了對玻璃窗不同范圍內(nèi)的凈化功效。通過樣機負載測試與擦試效果測試,取得了較好的試驗效果。
視覺智能擦玻璃機器人通過OpenMV采集周圍環(huán)境的信息情況,然后對采集到的目標圖像進行識別與定位,再結(jié)合攝像頭不同角度的反饋測得目標與擦玻璃機器人直接的距離,最后通過驅(qū)動來控制機器人履帶的電機,機器人將會運動到目標位置進行清潔工作。
采用了嵌入式機械視覺的智能擦玻璃機器人,系統(tǒng)主要包含了硬件電路部分和軟件部分。系統(tǒng)硬件電路大致分為主控芯片STM32 F103及其外圍集成電路、OpenMV、風機、電源、操舵裝置、超聲波傳感器和L298N電機,硬件的運作流程如圖1所示。
圖1 運作流程
視覺擦玻璃機器人一般使用的STM32 F103為主控制設備,而STM32 F103則包括較中低端的3個ARM微控制器,其核心為Cortex-M3,最大運算頻率達7 MHz,在存儲器的零等待循環(huán)使用時限內(nèi)可達到1.5 DMIPS/MHz。
采 用 了OpenMV3與CamM7,OpenMV開 源,特別適用于機械視覺,軟件功能強勁且性價比高。以STM3F767CPU為內(nèi)核,并整合了OV7725攝像機芯片,在小巧的硬件系統(tǒng)模組上,可以通過C語言所提供的簡單算法完成機械圖像視覺功能,同時支持Python編程,實現(xiàn)更多功能。
智能擦玻璃機器人的外觀主要采用長方形機器人構(gòu)造,其機構(gòu)主要分為攝像頭轉(zhuǎn)動部分舵機、機器人行駛部分電動機和底盤吸附部分風機。
智能擦玻璃機器人的底盤采用正方形底盤結(jié)構(gòu),底盤由一對履帶輪進行帶動,由STM32 F103信號輸出,兩個履帶由PWM控制,1 V供電的L298N直流電機驅(qū)動,通過控制兩條平行履帶輪實現(xiàn)機器人差速轉(zhuǎn)動,可以實現(xiàn)360°無死角的旋轉(zhuǎn)與移動。
吸附部件采用無刷電機,利用STM32 F103對轉(zhuǎn)速進行控制,實現(xiàn)對玻璃的吸附。OpenMV能夠?qū)崿F(xiàn)全方位旋轉(zhuǎn)的,其旋轉(zhuǎn)過程主要是由OpenMV通過驅(qū)動控制來完成,而該結(jié)構(gòu)也可以使機器人的視野更加寬廣。OpenMV質(zhì)量較輕巧,所以可以選用工作力矩略小的MG90S模擬操舵裝置來對質(zhì)量較輕的OpenMV的轉(zhuǎn)動方向加以控制。
主控芯片STM32 F103CPU,通過調(diào)節(jié)PWM脈沖信號的最高電平占比,達到準確調(diào)節(jié)舵機旋轉(zhuǎn)的角度,舵機裝置所需要電流的多少和反應速度相關(guān),所以MG90S模擬操舵設備的電源使用4.8 V的電流進行輸出以保證操舵裝置順利工作。
該機器人采用C語言編程STM32 F103主板,運用Keil uVision5編程軟件以及ST-LINK仿真器燒錄。OpenMV采用MicroPython并用OpenMV IDE軟件進行編程,同時STM32 F103與OpenMV通信,OpenMV將位置信息傳遞到STM32 F103,再由STM32 F103進行一系列的運作。
圖像識別模塊通過OV7725攝像頭芯片實現(xiàn)圖像采集,并通過OpenMV-IDE對所采集圖像信息進行了編程和管理,包括顏色空間變換、圖像增強、消除陰影、目標分離、特征提取和目標辨識。
OpenMV主要用于識別以及跟蹤污點,當識別到污點時,通過與MG90S舵機共同運作,OV7725攝像頭會鎖定此污點,且保持讓此污點在可識別范圍內(nèi),當機器人行走到污點位于視覺盲區(qū)內(nèi)時,則會繼續(xù)直行。
在OpenMV IDE里,運用了Lab色彩空間進行圖像處理。Lab色彩空間既是一個與設備無關(guān)的色彩模型,也是一個基于人類生理特性的色彩模式。
亮度(L),a 和b是兩個顏色通道。a包括的色彩范圍從深翠綠(低亮度值)到灰度(中光度值)再到亮粉紅色(高亮度值);b由亮藍(低亮度值)到灰白(中亮度值)再到黃色(高亮度值)。經(jīng)過閾值調(diào)試后,污點的Lab閾值為(13,49,18,61,6,47)。OpenMV機器視覺模塊硬件如圖2所示。
圖2 OpenMV機器視覺模塊硬件
通過舵機轉(zhuǎn)動攝像頭識別玻璃上的污點,獲取到污點的信息后,通過PID算法把污點信息傳送至STM32 F103,進而使用STM32 F103控制機器人的電機來移動機器人,機器人到達目的位置后,擦除污點,完成任務。
定位目標視覺既需要準確又要具有成本效益。在最常見的視覺定位中,為了獲得目標污點的位置,必須測量圖片中的目標污點,從而把圖片位置轉(zhuǎn)化為實際位置坐標系。在電腦視覺中,主要包括了四種坐標系間的切換,即圖形坐標系、攝影機坐標系、像素坐標系及其世界坐標系。目標位置都采用了雙目視覺,但由于采用雙目視覺的所匹配算法比較煩瑣,所以在本文中把單眼視覺直接用到了圖形位置中,并采用了相似的三角形原理,并且利用相機角度反饋和設置高度來定位目標。
如圖3所示,機器人到目標的一段距離使用的是攝像機頭視角反饋定距法,該計算使用正切函數(shù)公式,如圖3中點B為攝像機的安裝位置,點A為目標所在地點,BC為攝像機到地面的垂直距離;使用MG90S進行舵機反饋的角度測量可以得到θ,在實際觀測后得到攝像機頭的離地高度BC,即可得出工業(yè)自動化機器人離目標的間距AC。
圖3 OpenMV模塊擺放位置
在整個過程系統(tǒng)中,按誤差的比率(Proportion)、面積(Integral)和微分(Derivative)加以限制的PID控制器,是目前使用得較為普遍的一類0.5自動控制器。
在STM32 F103zet6開發(fā)板中運用PID算法對于本項目的擦玻璃機器人的電機提供了準確的速度和RAM計算。
通用加速分割檢測(Adaptive and Generic Accelerated Segment Test,AGAST)算法相對于角點探測(Features from Accelerated Segment Test,F(xiàn)AST)算法準確率高、像素延遲低、追蹤效果好。同時,AGAST算法(AGAST)對特征點的提取進行了細化處理,如式(3)所示,AGAST算法采用“非較亮”與“非較暗”對P點鄰域像素點的狀態(tài)進行擴展。
當圖像像素點過多時,為提高檢測效率,可以只檢測1,5,9,13這四個像素點的灰度值,如圖4所示,當四個點中有三個滿足成為特征點的條件后,在檢測該點的全部鄰近點,運用此方法進行初篩,可以快速遍歷圖像中所有的像素點,只保留特征明顯的像素點。
圖4 算法演示
因此,在STM32 F103zet6開發(fā)板中運用AGAST算法,目的是使機器人準確地捕捉到污漬。
將玻璃放在室內(nèi)玻璃上,根據(jù)玻璃上的污跡來擦拭玻璃,擦玻璃機器人既有固定的行走路程,又可以按照玻璃上的污跡準確地完成擦拭。
試驗場地尺寸為100 cm×100 cm,出發(fā)區(qū)在玻璃右下角約30 cm×30 cm的地方;機器人尺寸(長×寬×高)為30 cm×30 cm×8.5 cm;機器人全自主完成擦拭工作;在實驗時將機器人置于模擬區(qū)域,場地中有不同顏色深度的目標污點,機器人將目標污點擦除,統(tǒng)計目標污點擦除數(shù)目。機器人實物圖如圖5所示。
圖5 機器人實物圖
將擦玻璃機器人啟動并吸附在玻璃上,并且使用彈簧測力計將擦玻璃機器人從玻璃上拉開,f為履帶與玻璃面的產(chǎn)生的驅(qū)動摩擦力,G為重力,S為受力面積(此處選整個機器人的底面為受力面積)。
圖6 機器人吸附力試驗原理圖
擦玻璃機器人通過把污點作為目標物進行擦拭,在處于不同的環(huán)境的玻璃反復進行測試,并于未優(yōu)化的算法進行比較,得出的結(jié)果見表1。
由表1可知,機器人通過改進前的算法,在正常光照的狀況下對污點的識別率為66%,對污點的擦除率則為77%;在強光照耀下污點的識別率約為50%,而污點擦除率則為66%,但在弱光環(huán)境中,污點的識別率為50%,污點擦除率為66%。
表1 試驗數(shù)據(jù)對比
由表1可知,機器人采用改進后的算法,在正常光照射的情況下,污點的識別率為93%,污點擦除率為100%;在強光照射下其中有五個污點未能識別;在弱光環(huán)境中,由于環(huán)境太暗,未能識別其中六個污點。
試驗對比了機器人改進前與改進后的算法得出,識別率與擦除率都極大地提高了,達到預期的試驗設計效果,實現(xiàn)了對玻璃污跡的擦除,節(jié)省了人力資源,降低了高空作業(yè)的危險性,提高了人工智能化的運用。
項目通過上述算法與試驗驗證,結(jié)論如下:
1)在正常光照射的情況下,污點的識別率為93%,污點擦除率為100%。
2)采用像素延遲低的通用加速分割檢測算法(AGAST),可提高樣機的定位準確度。