邰其樂,江朝暉,朱家微,岳旭東,高 健
(1.安徽農業大學 信息與計算機學院,安徽 合肥 230036;2.國際竹藤中心,北京 100102)
在林木生產過程中,通過便攜式、自動式測量儀器對樹木長勢進行監測,便于實施者采取適當的干預措施來保證林木的正常生長,對林木管理和科研教學具有重要意義。
目前,國內外已有一些關于林木高度測量的儀器[1],如常用的測樹槍,雖然便攜,但需要人工測量,肌肉顫抖和測量高度不固定等因素會造成測量結果存在誤差[2]。利用魚眼鏡頭曲面測量樹高的方法,測量樹高的準確度取決于對林木圖像桶形失真的還原程度,且攜帶不便[3]。部分功能完善但價格昂貴的儀器設備,如全站儀,難以推廣[4]。針對上述問題,本文采用三角測量、圖像獲取和激光測距等方法設計了自動化林木測高儀,減少了人工操作的誤差,實現了林木圖像、傾角數據、水平標定信息的自動獲取,具有通用性、易操作性、便攜性好、性價比高等特點。
測高原理如圖1所示。根據攝像頭高度H和水平距離L求得∠γ,∠α由∠β與∠γ得出。由h1、L和∠α的關系得出h1,計算被測物體高度h:

圖1 測高原理

式中:H為固定支架的高度;L為激光測距模塊自動獲取的水平距離;∠β為攝像頭觀測被測物體過程中偏轉的角度(∠β的精確測定是測高的關鍵)。
∠β的測定原理:利用二自由度平臺中舵機輸入特定的PWM波形,即可完成特定角度轉動,得出圖2中基準線從被測物體最低點到最高點舵機轉動的角度。

圖2 ∠β的測定原理
測高儀由視頻圖像獲取、激光測距、云臺控制等模塊組成,硬件結構如圖3所示。MCU(STM32F429IGT6)控制攝像頭(OV5640)和激光測距模塊獲取林木圖像和水平距離并實時顯示,用戶通過按鍵控制二自由度平臺,根據圖2中∠β的測定原理,完成被測物體的高度測量。儀器使用電池供電。

圖3 硬件結構
MCU(STM32F429IGT6)根據SCCB協議對其關鍵寄存器進行配置以實現寄存器初始化。攝像頭采集圖像時[5]選擇的視頻采集參數為480 dpi,刷新率為15 FPS,圖像格式為RGB 565。由此算出PCLK時鐘頻率至少為11.52 MHz,故PCLK實際頻率大于11.52 MHz。
圖像數據傳輸時序如圖4所示。RGB 565圖像數據的單一像素由2個8位數據組成,故OV5640在單一像素時鐘中,OV_D[7:0]的8位數據口輸出0.5像素數據。像素數據在行同步時鐘下,輸出一行像素數據,在幀同步時鐘下,完成一幀圖像數據的輸出[6]。在數據傳輸過程中,DCMI接收的攝像頭數據通過通用DMA進行數據傳輸,DMA將圖像數據直接寫入LCD的寄存器中顯示。攝像頭模塊引腳見表1所列。

圖4 圖像傳輸時序示意圖

表1 攝像頭模塊引腳
選用LP系列激光測距模塊LP40。LP40發出一束經過系統簽名的脈沖激光,當脈沖激光遇到物體時,雖然脈沖會受到物體的影響,但簽名信息依然存在。如圖5所示,LP40接收到調制后的簽名后[7-8],精確算出飛行時間t與物體到激光測距模塊的距離L。

圖5 激光測距原理示意圖
MCU通過串口與模塊通信,LP40模塊掛載在MCU的UART2串口上,TX接PA2,RX接PA3。MCU向模塊發送獲取設備信息(0x01)、設置測量頻率(0x03)、設置數據格式(0x04)、設置測量模式(0x0D)、啟動測量(0x05)、停止測量(0x06)等命令,獲取模塊的設備信息和距離測量數據等。
舵機和攝像頭綁定,用來控制攝像頭轉動特定的角度。舵機內部有一個基準電路,可產生周期為20 ms,寬度為1.5 ms的基準信號,將獲得的直流偏置電壓與電位器電壓進行比較,獲得電壓差輸出。電壓差的振幅輸出到電機驅動芯片,決定電機的正反轉。如圖6所示,在脈沖為1~1.5 ms范圍內時,舵機可以右轉90°;在1.5~2 ms之間[9],舵機可以左轉90°。

圖6 舵機PWM工作時序
可以通過MCU產生的PWM信號控制舵機一次轉動特定角度。舵機的PWM信號由MCU的PA3引腳提供。對舵機控制的測試表明,PWM占空比(0.5~2.5 ms的正脈沖寬度)和舵機的轉角(-90°~90°)線性度較好。因此設置舵機的單次最小轉動角度[10]為0.9°。
測高儀軟件由圖像顯示任務、激光測距任務、二自由度平臺控制任務組成,軟件流程如圖7所示。測高儀首先完成系統初始化,并檢測OV 5640攝像頭是否正常工作。根據圖2的工作原理記錄被測物體最高點和最低點的狀態值,得出舵機帶動攝像頭偏轉的角度。最后根據激光測距得出的水平距離、攝像頭固定高度計算被測物體的高度。

圖7 軟件流程
將按鍵RECODE設置為三次觸發計算,前兩次按鍵觸發分別為圖2中最低點和最高點舵機所在位置,即運動到最高點和最低點時,需要操作的UP和DOWN的次數。第三次按鍵觸發后,計算被測對象高度。

式中:Flagup1和Flagdown1為最低點的狀態值;Flagup2和Flagdown2為最高點的狀態值。
用戶界面如圖8所示,最上方為KEY1、KEY2、KEY3的按鍵功能說明;第二行顯示舵機狀態值UP、DOWN的次數;第三行為測得的α和β的角度值;第四行為根據公式(2)計算的h1和激光測距得到的水平距離L;第五行為算得的被測物體高度h,以及KEY3按下的次數Time;最下方顯示實時獲取的物體圖像。

圖8 用戶界面
為驗證設備的可靠性與實用性,使用測高儀對室內的小目標物體和室外高大樹木進行測量實驗,實驗結果見表2所列。

表2 實驗測試結果
表2中,1~12組實驗是在室內針對小目標物體進行的實驗,13~15組實驗是在室外針對大目標物體進行的實驗。圖9為15組實驗數據中測試高度與實際高度的柱狀對比。

圖9 測試結果對比
從測量結果對比來看,測試高度和實際高度的誤差率會受被測物體高度、被測物體與攝像頭水平距離的影響,但高度測量的準確率均維持在97%以上。
儀器整體功耗約為0.73 W,使用5 V/10 A·h的可充電鋰電池供電,可保證儀器連續工作68.5 h,續航能力強。
本文采用普通攝像頭、激光測距模塊、二自由度平臺等設計了基于角度計算的手持式林木測高儀。該儀器的突出特點是測量原理簡單、硬件性價比高、儀器設計小巧、攜帶方便等。雖然在攝像頭獲取圖像的過程中會存在些微的舵機偏轉誤差,但誤差處于可接受范圍內。后續任務是進一步降低功耗,拓展樹高數據庫,并進行可視化分析。該儀器可以便捷地測量喬木、毛竹等高大林木的高度信息,有利于林木資源的管理和林木學專業的教學研究,具有良好的應用價值。