邰其樂,江朝暉,朱家微,岳旭東,高 健
(1.安徽農(nóng)業(yè)大學(xué) 信息與計算機學(xué)院,安徽 合肥 230036;2.國際竹藤中心,北京 100102)
在林木生產(chǎn)過程中,通過便攜式、自動式測量儀器對樹木長勢進行監(jiān)測,便于實施者采取適當?shù)母深A(yù)措施來保證林木的正常生長,對林木管理和科研教學(xué)具有重要意義。
目前,國內(nèi)外已有一些關(guān)于林木高度測量的儀器[1],如常用的測樹槍,雖然便攜,但需要人工測量,肌肉顫抖和測量高度不固定等因素會造成測量結(jié)果存在誤差[2]。利用魚眼鏡頭曲面測量樹高的方法,測量樹高的準確度取決于對林木圖像桶形失真的還原程度,且攜帶不便[3]。部分功能完善但價格昂貴的儀器設(shè)備,如全站儀,難以推廣[4]。針對上述問題,本文采用三角測量、圖像獲取和激光測距等方法設(shè)計了自動化林木測高儀,減少了人工操作的誤差,實現(xiàn)了林木圖像、傾角數(shù)據(jù)、水平標定信息的自動獲取,具有通用性、易操作性、便攜性好、性價比高等特點。
測高原理如圖1所示。根據(jù)攝像頭高度H和水平距離L求得∠γ,∠α由∠β與∠γ得出。由h1、L和∠α的關(guān)系得出h1,計算被測物體高度h:
圖1 測高原理
式中:H為固定支架的高度;L為激光測距模塊自動獲取的水平距離;∠β為攝像頭觀測被測物體過程中偏轉(zhuǎn)的角度(∠β的精確測定是測高的關(guān)鍵)。
∠β的測定原理:利用二自由度平臺中舵機輸入特定的PWM波形,即可完成特定角度轉(zhuǎn)動,得出圖2中基準線從被測物體最低點到最高點舵機轉(zhuǎn)動的角度。
圖2 ∠β的測定原理
測高儀由視頻圖像獲取、激光測距、云臺控制等模塊組成,硬件結(jié)構(gòu)如圖3所示。MCU(STM32F429IGT6)控制攝像頭(OV5640)和激光測距模塊獲取林木圖像和水平距離并實時顯示,用戶通過按鍵控制二自由度平臺,根據(jù)圖2中∠β的測定原理,完成被測物體的高度測量。儀器使用電池供電。
圖3 硬件結(jié)構(gòu)
MCU(STM32F429IGT6)根據(jù)SCCB協(xié)議對其關(guān)鍵寄存器進行配置以實現(xiàn)寄存器初始化。攝像頭采集圖像時[5]選擇的視頻采集參數(shù)為480 dpi,刷新率為15 FPS,圖像格式為RGB 565。由此算出PCLK時鐘頻率至少為11.52 MHz,故PCLK實際頻率大于11.52 MHz。
圖像數(shù)據(jù)傳輸時序如圖4所示。RGB 565圖像數(shù)據(jù)的單一像素由2個8位數(shù)據(jù)組成,故OV5640在單一像素時鐘中,OV_D[7:0]的8位數(shù)據(jù)口輸出0.5像素數(shù)據(jù)。像素數(shù)據(jù)在行同步時鐘下,輸出一行像素數(shù)據(jù),在幀同步時鐘下,完成一幀圖像數(shù)據(jù)的輸出[6]。在數(shù)據(jù)傳輸過程中,DCMI接收的攝像頭數(shù)據(jù)通過通用DMA進行數(shù)據(jù)傳輸,DMA將圖像數(shù)據(jù)直接寫入LCD的寄存器中顯示。攝像頭模塊引腳見表1所列。
圖4 圖像傳輸時序示意圖
表1 攝像頭模塊引腳
選用LP系列激光測距模塊LP40。LP40發(fā)出一束經(jīng)過系統(tǒng)簽名的脈沖激光,當脈沖激光遇到物體時,雖然脈沖會受到物體的影響,但簽名信息依然存在。如圖5所示,LP40接收到調(diào)制后的簽名后[7-8],精確算出飛行時間t與物體到激光測距模塊的距離L。
圖5 激光測距原理示意圖
MCU通過串口與模塊通信,LP40模塊掛載在MCU的UART2串口上,TX接PA2,RX接PA3。MCU向模塊發(fā)送獲取設(shè)備信息(0x01)、設(shè)置測量頻率(0x03)、設(shè)置數(shù)據(jù)格式(0x04)、設(shè)置測量模式(0x0D)、啟動測量(0x05)、停止測量(0x06)等命令,獲取模塊的設(shè)備信息和距離測量數(shù)據(jù)等。
舵機和攝像頭綁定,用來控制攝像頭轉(zhuǎn)動特定的角度。舵機內(nèi)部有一個基準電路,可產(chǎn)生周期為20 ms,寬度為1.5 ms的基準信號,將獲得的直流偏置電壓與電位器電壓進行比較,獲得電壓差輸出。電壓差的振幅輸出到電機驅(qū)動芯片,決定電機的正反轉(zhuǎn)。如圖6所示,在脈沖為1~1.5 ms范圍內(nèi)時,舵機可以右轉(zhuǎn)90°;在1.5~2 ms之間[9],舵機可以左轉(zhuǎn)90°。
圖6 舵機PWM工作時序
可以通過MCU產(chǎn)生的PWM信號控制舵機一次轉(zhuǎn)動特定角度。舵機的PWM信號由MCU的PA3引腳提供。對舵機控制的測試表明,PWM占空比(0.5~2.5 ms的正脈沖寬度)和舵機的轉(zhuǎn)角(-90°~90°)線性度較好。因此設(shè)置舵機的單次最小轉(zhuǎn)動角度[10]為0.9°。
測高儀軟件由圖像顯示任務(wù)、激光測距任務(wù)、二自由度平臺控制任務(wù)組成,軟件流程如圖7所示。測高儀首先完成系統(tǒng)初始化,并檢測OV 5640攝像頭是否正常工作。根據(jù)圖2的工作原理記錄被測物體最高點和最低點的狀態(tài)值,得出舵機帶動攝像頭偏轉(zhuǎn)的角度。最后根據(jù)激光測距得出的水平距離、攝像頭固定高度計算被測物體的高度。
圖7 軟件流程
將按鍵RECODE設(shè)置為三次觸發(fā)計算,前兩次按鍵觸發(fā)分別為圖2中最低點和最高點舵機所在位置,即運動到最高點和最低點時,需要操作的UP和DOWN的次數(shù)。第三次按鍵觸發(fā)后,計算被測對象高度。
式中:Flagup1和Flagdown1為最低點的狀態(tài)值;Flagup2和Flagdown2為最高點的狀態(tài)值。
用戶界面如圖8所示,最上方為KEY1、KEY2、KEY3的按鍵功能說明;第二行顯示舵機狀態(tài)值UP、DOWN的次數(shù);第三行為測得的α和β的角度值;第四行為根據(jù)公式(2)計算的h1和激光測距得到的水平距離L;第五行為算得的被測物體高度h,以及KEY3按下的次數(shù)Time;最下方顯示實時獲取的物體圖像。
圖8 用戶界面
為驗證設(shè)備的可靠性與實用性,使用測高儀對室內(nèi)的小目標物體和室外高大樹木進行測量實驗,實驗結(jié)果見表2所列。
表2 實驗測試結(jié)果
表2中,1~12組實驗是在室內(nèi)針對小目標物體進行的實驗,13~15組實驗是在室外針對大目標物體進行的實驗。圖9為15組實驗數(shù)據(jù)中測試高度與實際高度的柱狀對比。
圖9 測試結(jié)果對比
從測量結(jié)果對比來看,測試高度和實際高度的誤差率會受被測物體高度、被測物體與攝像頭水平距離的影響,但高度測量的準確率均維持在97%以上。
儀器整體功耗約為0.73 W,使用5 V/10 A·h的可充電鋰電池供電,可保證儀器連續(xù)工作68.5 h,續(xù)航能力強。
本文采用普通攝像頭、激光測距模塊、二自由度平臺等設(shè)計了基于角度計算的手持式林木測高儀。該儀器的突出特點是測量原理簡單、硬件性價比高、儀器設(shè)計小巧、攜帶方便等。雖然在攝像頭獲取圖像的過程中會存在些微的舵機偏轉(zhuǎn)誤差,但誤差處于可接受范圍內(nèi)。后續(xù)任務(wù)是進一步降低功耗,拓展樹高數(shù)據(jù)庫,并進行可視化分析。該儀器可以便捷地測量喬木、毛竹等高大林木的高度信息,有利于林木資源的管理和林木學(xué)專業(yè)的教學(xué)研究,具有良好的應(yīng)用價值。