安 秋,顧寶興,王海青,姬長英
(南京農業(yè)大學工學院,江蘇 南京210031)
定位導航是農業(yè)機器人的關鍵技術之一,也一直是農業(yè)機器人的研究重點和難點[1-2]。農業(yè)機器人的教學與科研在中國很多高校得到重視[3-5],但由于其缺少相關的試驗設備,在試驗方面有較大的發(fā)展瓶頸。機器視覺作為一種局部定位傳感方式,可以提供目標全部或局部的圖像信息以用于相對定位。因此,本研究擬搭建四輪驅動農業(yè)機器人視覺導航試驗平臺以服務于教學和科研的基礎應用。
移動平臺總體結構如圖1a所示。圖1b為四輪驅動農業(yè)機器人平臺底盤結構示意圖,每個輪子由一個電動機帶動,中間由聯(lián)軸器連接。圖1b中,W為移動平臺的寬度;L為長度。

圖1 移動平臺結構及底盤結構示意圖
整體控制方案如圖2所示,上位機為筆記本電腦,通過1394接口與攝像機相連接。下位機控制器選擇ATmega16為主控芯片,通過RS232接口與上位機連接,接收上位機的指令,發(fā)出4路PWM信號至驅動器,從而實現(xiàn)直流電機的調速和4個輪的協(xié)調運動[6]。
圖3a為主程序流程圖;圖3b為中斷程序流程圖;圖3c為電機速度控制子程序流程圖。主程序從上位機接收命令,通過協(xié)議解析,得到電機的運動方式和速度級別,而后調用電機速度控制子函數(shù),執(zhí)行命令。
圖4為電機控制子程序詳圖。下位機控制器根據(jù)不同運動的需要,接收并解析上位機發(fā)送的運動方式和速度指令,然后分別設置PWM信號輸出控制寄存器,最終得到不同占空比的PWM信號。其中,使用ATmega16的T0和T2定時器控制左邊兩輪,即OCR0和OCR2寄存器;由于T1定時器是16位的,可以變?yōu)閮蓚€8位的寄存器,即OCR1A和OCR1B寄存器,用來控制右邊輪胎,共產生4路PWM信號,左邊2個電機驅動器共用兩路PWM信號,右邊2個電機驅動器共用兩路PWM信號,從而達到控制電機速度的目的[7]。

圖2 整體控制方案

圖3 下位機控制器算法流程圖

圖4 電機速度控制子程序流程
將線掃描過程和最小二乘法相結合,針對兩條作物行的情況,提出一種結合最小二乘法的線掃描算法[8-10]。首先,對圖像進行二值化處理,采用從上到下,從左到右的方式掃描,尋找二值圖像中每一行的導航路徑的中心點,最后利用最小二乘法來擬合這些點,來獲取導航中心線參數(shù)。
(Ⅰ)通過線掃描統(tǒng)計得到導航中心線的點集合。
設圖像分割后獲得的二值圖像的大小為w×h(w為圖像的列數(shù),h為圖像的行數(shù)),對每一行進行線掃描,并采用濾波處理去除噪聲點。這里采用設定閾值法去除小的噪聲點線段。
圖5為分割后的玉米行二值圖像。圖6a為二值圖像第70水平掃描行數(shù)據(jù)的像素分布情況,圖6b為濾除噪聲后第70水平掃描行數(shù)據(jù)的像素分布情況。由圖5和圖6可知:濾除噪聲后的像素分布基本上代表了此行上的作物行的分布情況。
經(jīng)過了噪聲點移除后,記第j行的零像素點(作物區(qū)域)的數(shù)目為Nj,列坐標為xi,那么這一行的導航中心點Cj橫坐標為

將得到的每一行的導航中心點存儲在N×2的數(shù)組,其中,N是整幅圖像中導航中心點的個數(shù)(每一行經(jīng)過濾噪后,由于存在舍棄作物缺失行的情況。因此,N有可能小于圖像行數(shù)h)。數(shù)組的一列存儲導航中心點橫坐標,另一列存儲所在的行號(縱坐標)。

圖5 分割后的二值圖像及第70行

圖6 線掃描算法對第70行進行濾除噪聲處理結果
(Ⅱ)利用最小二乘法進行線性回歸,計算導航中心線參數(shù)。
假設從圖像線掃描后得到導航線中心點的N個坐標數(shù)據(jù)為(x1,y1),(x2,y2),…,(xN,yN),則在圖像平面上,可以得到N個點Pi(xi,yi)(i=1,2,…,N),這種圖形稱為“散點圖”,結果見圖7。從圖7中可以粗略看出這些黑點大致散落在某直線附近,設直線可以用y=ax+b表示,其中a和b是待定常數(shù)。最小二乘法求待定常數(shù)的公式為

(Ⅲ)由直線方程y=ax+b,在原圖像中繪制導航中心線。
圖7給出了僅有2條作物行圖像的2組測試結果,圖中的散點為每行的導航中心點,擬合后的導航中心線為兩行中間的直線,可以作為農業(yè)機器人導航的依據(jù)。對于大小為400 pixel×300 pixel的圖像,結合最小二乘法的線掃描算法處理時間約為18 ms。

圖7 結合最小二乘法的線掃描算法
(1)設計了農業(yè)機器人視覺導航試驗平臺的整體控制方案和基于AVR單片機的下位機控制器,實現(xiàn)了4個電機的獨立速度控制及其與上位機的串口通訊功能。測試表明:當上位機發(fā)送命令信息到下位機控制器后,其運動控制算法能夠可靠運行。
(2)結合最小二乘法的線掃描算法的預處理包括去除噪聲點和判斷舍棄作物缺失行兩步,它們是提取導航中心點的關鍵。測試表明整個算法具有較高的實時性。對于3行或4行的作物行的情況可以擴展本算法。
[1]李建平,林妙玲.自動導航技術在農業(yè)工程中的應用研究進展[J].農機工程學報,2006,22(9):232-236.
[2]Li M,Imou K J,Katsuhiro W,et al.Review of Research on Agricultural Vehicle Autonomous Guidance[J].Int J Agric &Biol Eng,2009,2(3):1-16.
[3]閆樹兵,姬長英.農業(yè)機器人移動平臺的研究現(xiàn)狀與發(fā)展趨勢[J].拖拉機與農用運輸車,2007,34(5):13-15.
[4]姬江濤,李玉柱,高吭.“農業(yè)機器人”課程教學與教材建設[J].中國電力教育,2010(22):99-100.
[5]安秋,周俊,姬長英,基于DGPS導航的田間數(shù)據(jù)采集機器人的設計[J].河南科技大學學報:自然科學版,2008,29(2):79-82.
[6]張磊,蔣剛,肖志峰,等.ATmega16與PC機的移動機器人定位系統(tǒng)研究[J].單片機與嵌入式系統(tǒng)應用,2010,10(12):11-13.
[7]吳健.AVR單片機實用C語言程序設計與典型實例[M].北京:中國電力出版社,2008.
[8]袁佐云.基于計算機視覺的作物行中心線識別研究[D].北京:中國農業(yè)大學,2005.
[9]張紅霞,張鐵中.麥田多列目標圖像檢測算法[J].中國農業(yè)大學學報,2007,12(2):62-66.
[10]蔣海波,張云偉,徐會杰,等.農田作業(yè)機器人視覺導航目標曲線檢測算法研究[J].昆明理工大學學報,2008,33(4):91-96.