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