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