徐能文,黃繼霆,田順,王棋,劉芯洋,孫浩松,唐攀,李欽林
(電子科技大學(xué) 成都學(xué)院 工學(xué)院,四川成都, 611731)
由世界高層建筑與都市人居學(xué)會(CTBUH)發(fā)布的《2020 高層建筑年度回顧》,2020 年中國共完成56 座200m 以上的高層建筑,總量達(dá)到823 座,位列全球首位。高層建筑數(shù)量的增加催生大量建筑外墻安全檢測的需求[1]。例如:高樓外墻瓷磚脫落、高層建筑墻體滲水問題、全球暖帶來極端天氣造成的墻體鼓包問題。如今,通過引入先進(jìn)的技術(shù),如通訊技術(shù)、物聯(lián)網(wǎng)、人工智能和混合云,智能巡檢機(jī)器人不僅可以大幅降低人力消耗和技術(shù)難題,而且能夠提供準(zhǔn)確的檢測精度,已經(jīng)成為一種可靠的巡檢方式。這些技術(shù)的應(yīng)用為高樓外墻巡檢機(jī)器人的發(fā)展提供了強有力的技術(shù)支持[2]。
高樓外墻巡檢機(jī)器是一個對高樓外墻進(jìn)行飛行巡檢的一個智能機(jī)器人,由:激光測距模塊、攝像頭模塊、接收機(jī)、電機(jī)、飛控、GPS 模塊、控制器模塊、數(shù)傳模塊組成。飛控控制電機(jī)轉(zhuǎn)動使無人機(jī)進(jìn)行高空飛行;連接接收機(jī)使地面人員可以有效地控制機(jī)器人的空中運動,GPS 模塊實時發(fā)送位置信號給飛控,再把信號傳輸給控制器模塊;控制器模塊對激光測距模塊和攝像頭控制,以及把信息傳輸回地面[3]??傮w設(shè)計如圖1 所示。
圖1 總體設(shè)計圖
本設(shè)計以無人機(jī)為載體,Pixhawk 作為飛行主控,通過Pixhawk 控制電機(jī)旋轉(zhuǎn)實行飛行,GPS 實時傳回坐標(biāo)給Pixhawk[4]。本設(shè)計采用STM32F103C8T6 芯片的最小系統(tǒng)模塊作為控制器,主要用于收集各個系統(tǒng)傳回的數(shù)據(jù),通過數(shù)傳模塊傳回地面站[5]。電路接線圖如圖2 所示。
圖2 電路接線圖
攝像頭模塊是包含攝像頭以及相應(yīng)處理芯片的模塊,包括K210 主控芯片,攝像頭。攝像頭模塊與STM32F03CT6最小系統(tǒng)模塊連接接線圖如圖3 所示。用于采集視頻圖像、圖像處理。攝像頭工作流程如圖4 所示,攝像頭模塊的攝像頭負(fù)責(zé)采集該發(fā)明當(dāng)前所處巡檢區(qū)域?qū)崟r圖像,將采集的圖像信息傳送到K210 主控芯片進(jìn)行信息處理。主控芯片采用K210 芯片對采集的圖像數(shù)據(jù)進(jìn)行分析以及進(jìn)一步指令操作。根據(jù)訓(xùn)練的模型計算當(dāng)前權(quán)重值,實現(xiàn)識別效果并將識別到的圖像用框線框出,通過I2C 通信方式返回識別到墻體鼓包、可能脫落的瓷磚等具有安全隱患的結(jié)果以特定數(shù)據(jù)的形式傳送到控制器模塊的STM32F103C8T6 芯片中,同時主控芯片將認(rèn)定為存在危險隱患的圖片中心坐標(biāo)在下一幀數(shù)據(jù)中發(fā)送到STM32F103C8T6 芯片中。
圖3 攝像頭模塊接線
圖4 攝像頭工作流程圖
1.2.1 YOLOV2 神經(jīng)網(wǎng)絡(luò)算法
YOLOV2 相比YOLOV1 算法,具有預(yù)測更準(zhǔn)確,識別速度更快,識別對象更多的優(yōu)點。由于YOLOV2 算法能識別對象擴(kuò)展到9000 個,該算法也被稱為YOLO9000。YOLOv2 在采用 224*224 圖像進(jìn)行分類模型預(yù)訓(xùn)練后,再采用 448*448 高分辨率樣本對分類模型進(jìn)行微調(diào)(10 個epoch),使網(wǎng)絡(luò)特征逐漸適應(yīng) 448*448 的分辨率。然后再使用 448*448 的檢測樣本進(jìn)行訓(xùn)練,緩解了分辨率突然切換造成的影響,最終通過使用高分辨率,mAP 提升了4%。
YOLO 算法的核心思想就是將識別圖像作為網(wǎng)絡(luò)的輸入,在輸出層回歸識別對象的位置和所屬類別。
1.2.2 YOLOV2 神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)方法
將一個輸入網(wǎng)絡(luò)的圖像分為n*n 的網(wǎng)格,如果某個識別對象的中心落在網(wǎng)格中,則該網(wǎng)格負(fù)責(zé)預(yù)測這個識別對象。每個網(wǎng)格要預(yù)測x 個識別對象,每個識別對象除了要返回自身位置之外,還要附加預(yù)測的C 值。這個C 值代表了所預(yù)測的網(wǎng)格中含有的識別對象的置信度和這個網(wǎng)格預(yù)測的準(zhǔn)確度這兩重信息,其計算公式如下:
該表達(dá)式表示:如果有識別對象落在一個網(wǎng)格中,則第一項等于1,否則等于0。第二項是預(yù)測識別對象和實際的IOU 值。
YOLO 在對不同大小的網(wǎng)格預(yù)測中具有一定的偏差值,為了緩和這個問題YOLO 算法作者使用了一個取巧的辦法,就是將識別塊的長度和寬度去平方根代替原來的長寬。YOLO 算法的損失函數(shù)如下所示:
在YOLO 的損失函數(shù)中,只有當(dāng)某個網(wǎng)格中有檢測目標(biāo)的時候才會對classification error 進(jìn)行懲罰。
VL53L0 激光測距模塊中VL53L0 是新一代飛行時間(ToF)激光測距模塊,采用市場上最小封裝,無論目標(biāo)的反射率高低,都能提供精確的距離測量且可測量2m 的絕對距離[6]。激光接線圖,如圖5 所示。
圖5 激光接線圖
1.3.1 激光模塊的程序?qū)崿F(xiàn)
方案一串口通信:采用中斷接收數(shù)據(jù),VL53L0 激光測距模塊傳回一次數(shù)據(jù)就接收一次數(shù)據(jù),傳回來的數(shù)據(jù)為十進(jìn)制的數(shù)字(注意:這里得到的距離數(shù)據(jù)已經(jīng)是模塊內(nèi)部濾波后的數(shù)據(jù),這種得到的數(shù)值比較平滑,不用進(jìn)行過多處理),單位:mm;再對兩個VL53L0 激光測距模塊的數(shù)據(jù)和觸桿長度進(jìn)行比較。
方案二I2C 通信:I2C 協(xié)議發(fā)送地址后立即讀取數(shù)據(jù),本次采用的VL53L0 激光測距模塊只需要讀出數(shù)據(jù),傳輸過程如圖6 所示:
圖6 激光數(shù)據(jù)流程圖
(1)起始信號S
(2)發(fā)送7 位從機(jī)地址+傳輸方向位,1 讀
(3)SCL 拉高,判斷ACK,再拉低SCL
(4)讀取第1 個字節(jié),寄存器地址
(5)發(fā)送應(yīng)答ACK
(6)讀取第2 個字節(jié),VL53L0 激光測距模塊傳送回來的數(shù)據(jù)
(7)發(fā)送應(yīng)答ACK,或者不應(yīng)答NACK
(8)繼續(xù)傳輸數(shù)[8]
1.3.2 激光模塊工作過程
激光測距采用兩個VL53L0 激光測距模塊用于保證觸桿是正對(垂直于)墻面,且當(dāng)觸桿觸碰鼓包時,提供距離,防止機(jī)身與墻面相撞。兩個VL53L0 激光測距模塊測量出的距離相等,確定觸桿垂直于墻面;通過距離和已知觸桿的長度比較,判斷是否和墻面接觸,防止觸桿和墻硬接觸。如果左邊距離x1>x2 則需要控制無人機(jī)往左飛行移動,反之則往右飛行移動,直到x1=x2;直線向前飛行利用觸桿觸碰目標(biāo),設(shè)置閾值比觸桿的長度短3~5cm,當(dāng)兩個VL53L0 激光測距模塊測量出的距離都等于這個閾值則停止飛行。激光工作圖如圖7 所示。
圖7 激光工
穩(wěn)定性是衡量一個小型無人機(jī)能完成多少工作的重要指標(biāo),為了能有更穩(wěn)定的飛行效果,全機(jī)采用3K碳纖維材料,兼顧了硬度與輕量化。觸碰彈簧系統(tǒng)(接觸的一瞬間對觸桿所受的力進(jìn)行緩沖,降低對無人機(jī)穩(wěn)定性的影響)[8],實物結(jié)構(gòu)如圖8 所示。
圖8 實物結(jié)構(gòu)圖
開啟控制器和飛控電源。飛控啟動,GPS 啟動,實時發(fā)送坐標(biāo)給飛控,飛控通過數(shù)傳模塊1 發(fā)送,數(shù)傳模塊2接收到,然后傳回地面站。QGC 地面站通過數(shù)傳模塊連接飛控,設(shè)置航線定點飛行,飛控接收到無線信號,使飛控輸出PWM 控制電機(jī)轉(zhuǎn)動進(jìn)而控制無人機(jī)飛行;遙控器輔助飛行,遙控器給接收機(jī)PPM 信號,接收機(jī)接收到信號后以PWM 信號傳遞給飛控??刂破鲉?,控制器進(jìn)而開啟攝像頭和激光測距模塊,攝像頭和激光測距模塊實時傳回數(shù)據(jù)給控制器,識別到裂縫,墻皮和墻磚會脫落的區(qū)域或者識別到不確定區(qū)域,如:墻皮鼓包,瓷磚松動。攝像頭通過I2C 通信發(fā)送坐標(biāo)字符給STM32F103C8T6 芯片,接著芯片通過串口傳輸坐標(biāo)數(shù)據(jù)到數(shù)傳模塊,數(shù)傳模塊通過無線信號傳回地面站。當(dāng)識別到不確定的區(qū)域需用觸桿去觸碰時,地面站停止航線飛行,遙控器控制無人機(jī)向墻面飛近,激光測量到的距離達(dá)到設(shè)定的距離閾值時,STM32F103C8T6 回傳一個報警信號,遙控器控制無人機(jī)停止靠近墻面。巡檢完成后,返航地面,關(guān)閉電源。信號傳輸,如圖9 所示[9]。
圖9 信號傳輸圖
地面工作人員在QGC 地面站設(shè)置飛行高度和航行路線。無人機(jī)飛向樓頂,此時激光測距模塊測距,檢測距離傳回地面站,當(dāng)離墻兩米的時候,對比兩束激光測出的距離,通過控制無人機(jī)左右轉(zhuǎn)動,通過遙控器使它正面垂直與墻面,然后開始掃描。圖像識別為一個方形區(qū)域,邊緣檢測誤差比較大,在下一次檢測的時候,對邊緣側(cè)重復(fù)檢測,以減小誤差;巡檢路徑采用蛇形巡檢,極大地提高效率,且減小漏檢的可能性,巡檢路徑為1-9。當(dāng)攝像頭識別到裂縫、墻皮和墻磚會脫落的區(qū)域時,攝像頭回傳一個坐標(biāo)。當(dāng)出現(xiàn)鼓包或者出現(xiàn)可能脫落的瓷磚時,攝像頭傳回一個坐標(biāo)和字符1,代表需要用觸桿觸碰的字符,此時觀察地面站GPS 傳回的坐標(biāo),在坐標(biāo)指引下,在地面上放置收納盒收集掉落下來的墻皮、瓷磚,或者設(shè)置安全區(qū)域,防止掉落的墻皮、瓷磚造成安全事故;然后地面人員根據(jù)這個坐標(biāo)使用遙控器控制無人機(jī)移動和地面站實時顯示坐標(biāo)的協(xié)助前往需要觸碰的區(qū)域,到達(dá)區(qū)域,控制無人機(jī)靠近,用觸桿接觸墻面,激光實時測距,達(dá)到設(shè)定的距離閾值時,傳回一個字符stop 代表報警信號提示工作人員停止向前飛行;當(dāng)巡檢到工作人員可視范圍的時,可結(jié)束工作,返回地面,無人機(jī)停止飛行,關(guān)閉電源。GPS 產(chǎn)生的坐標(biāo)只是一個無人機(jī)所在的坐標(biāo),然而目標(biāo)可能在掃描方形區(qū)域的邊緣,攝像頭傳回來的坐標(biāo)是這個方形里面的坐標(biāo),所以收集到的坐標(biāo)數(shù)據(jù)=識別到有隱患時GPS 發(fā)出來的坐標(biāo)+攝像頭傳回來的坐標(biāo),使工作人員能準(zhǔn)確地找到隱患的區(qū)域。巡檢流程如圖10 所示。
圖10 巡檢流程圖
12V 的鋰電池給電調(diào)供電,主線上自帶一個分壓接線分5V 給飛控、視覺和STM32F103C8T6 最小系統(tǒng)模塊供電。電源供給如圖11 所示。
圖11 電源供給圖
此次進(jìn)行了飛行、圖像識別、觸碰等三個測試。飛行測試:選擇了空曠的場地進(jìn)行飛行,無人機(jī)在空中穩(wěn)定飛行,受工作人員控制且GPS 實時傳回了坐標(biāo);打開激光,靠近墻面2m、3m、5m、10m 處進(jìn)行測試,實時返回了距離數(shù)據(jù)2m 處的五次平均測試距離為1.99m;3m 處的五次平均測試距離為2.98m;5m 處的五次平均測試距離為4.98m;10m 處的五次平均測試距離為9.95m;誤差約為0.1%。
圖像識別測試:用攝像頭對準(zhǔn)有隱患的墻面,對50 個目標(biāo)進(jìn)行多次檢測。測出攝像頭識別的面積為5m2且傳回了隱患坐標(biāo)。
觸碰測試:對含鼓包的墻面測試,觸桿進(jìn)行觸碰,戳破了鼓包和碰掉了瓷磚,無人機(jī)仍然穩(wěn)定飛行。
總體測試:無人機(jī)飛到了準(zhǔn)備好的墻面,激光實時測距,傳回地面站的兩個距離數(shù)據(jù)distance,接著進(jìn)行蛇形巡檢,得到了含有安全隱患區(qū)域坐標(biāo)(x,y) 45 個,識別到鼓包或者懸掛的瓷磚時,含有鼓包傳回了0 數(shù)字,用觸桿去觸碰,觸碰掉隱患,無安全隱患傳回1。本次測試一共測試了20 次,誤差低于1%。實物圖如圖12 所示,截取了一段傳回的數(shù)據(jù),如圖13 所示。
圖12 實物圖
圖13 數(shù)據(jù)傳回圖
面對當(dāng)今社會高樓外墻安全隱患的排查,高樓外墻巡檢機(jī)器人以無人機(jī)主控為載體,解決了人工難以對高樓外墻檢查的難題,降低勞動成本;搭配激光測距系統(tǒng)和圖像識別系統(tǒng)對墻體進(jìn)行精確檢查,提高巡檢效率和準(zhǔn)確率;觸桿對鼓包的觸碰使墻皮提前掉落,防止維修前脫落造成安全事故。因此,高樓外墻巡檢機(jī)器人不僅降低了人力的消耗和解決了技術(shù)的問題,且能準(zhǔn)確地提供檢測精度,已成為社會最可靠的一種巡檢方式。