安 秋,顧寶興,王海青,姬長(zhǎng)英
(南京農(nóng)業(yè)大學(xué)工學(xué)院,江蘇 南京210031)
定位導(dǎo)航是農(nóng)業(yè)機(jī)器人的關(guān)鍵技術(shù)之一,也一直是農(nóng)業(yè)機(jī)器人的研究重點(diǎn)和難點(diǎn)[1-2]。農(nóng)業(yè)機(jī)器人的教學(xué)與科研在中國(guó)很多高校得到重視[3-5],但由于其缺少相關(guān)的試驗(yàn)設(shè)備,在試驗(yàn)方面有較大的發(fā)展瓶頸。機(jī)器視覺(jué)作為一種局部定位傳感方式,可以提供目標(biāo)全部或局部的圖像信息以用于相對(duì)定位。因此,本研究擬搭建四輪驅(qū)動(dòng)農(nóng)業(yè)機(jī)器人視覺(jué)導(dǎo)航試驗(yàn)平臺(tái)以服務(wù)于教學(xué)和科研的基礎(chǔ)應(yīng)用。
移動(dòng)平臺(tái)總體結(jié)構(gòu)如圖1a所示。圖1b為四輪驅(qū)動(dòng)農(nóng)業(yè)機(jī)器人平臺(tái)底盤(pán)結(jié)構(gòu)示意圖,每個(gè)輪子由一個(gè)電動(dòng)機(jī)帶動(dòng),中間由聯(lián)軸器連接。圖1b中,W為移動(dòng)平臺(tái)的寬度;L為長(zhǎng)度。
圖1 移動(dòng)平臺(tái)結(jié)構(gòu)及底盤(pán)結(jié)構(gòu)示意圖
整體控制方案如圖2所示,上位機(jī)為筆記本電腦,通過(guò)1394接口與攝像機(jī)相連接。下位機(jī)控制器選擇ATmega16為主控芯片,通過(guò)RS232接口與上位機(jī)連接,接收上位機(jī)的指令,發(fā)出4路PWM信號(hào)至驅(qū)動(dòng)器,從而實(shí)現(xiàn)直流電機(jī)的調(diào)速和4個(gè)輪的協(xié)調(diào)運(yùn)動(dòng)[6]。
圖3a為主程序流程圖;圖3b為中斷程序流程圖;圖3c為電機(jī)速度控制子程序流程圖。主程序從上位機(jī)接收命令,通過(guò)協(xié)議解析,得到電機(jī)的運(yùn)動(dòng)方式和速度級(jí)別,而后調(diào)用電機(jī)速度控制子函數(shù),執(zhí)行命令。
圖4為電機(jī)控制子程序詳圖。下位機(jī)控制器根據(jù)不同運(yùn)動(dòng)的需要,接收并解析上位機(jī)發(fā)送的運(yùn)動(dòng)方式和速度指令,然后分別設(shè)置PWM信號(hào)輸出控制寄存器,最終得到不同占空比的PWM信號(hào)。其中,使用ATmega16的T0和T2定時(shí)器控制左邊兩輪,即OCR0和OCR2寄存器;由于T1定時(shí)器是16位的,可以變?yōu)閮蓚€(gè)8位的寄存器,即OCR1A和OCR1B寄存器,用來(lái)控制右邊輪胎,共產(chǎn)生4路PWM信號(hào),左邊2個(gè)電機(jī)驅(qū)動(dòng)器共用兩路PWM信號(hào),右邊2個(gè)電機(jī)驅(qū)動(dòng)器共用兩路PWM信號(hào),從而達(dá)到控制電機(jī)速度的目的[7]。
圖2 整體控制方案
圖3 下位機(jī)控制器算法流程圖
圖4 電機(jī)速度控制子程序流程
將線掃描過(guò)程和最小二乘法相結(jié)合,針對(duì)兩條作物行的情況,提出一種結(jié)合最小二乘法的線掃描算法[8-10]。首先,對(duì)圖像進(jìn)行二值化處理,采用從上到下,從左到右的方式掃描,尋找二值圖像中每一行的導(dǎo)航路徑的中心點(diǎn),最后利用最小二乘法來(lái)擬合這些點(diǎn),來(lái)獲取導(dǎo)航中心線參數(shù)。
(Ⅰ)通過(guò)線掃描統(tǒng)計(jì)得到導(dǎo)航中心線的點(diǎn)集合。
設(shè)圖像分割后獲得的二值圖像的大小為w×h(w為圖像的列數(shù),h為圖像的行數(shù)),對(duì)每一行進(jìn)行線掃描,并采用濾波處理去除噪聲點(diǎn)。這里采用設(shè)定閾值法去除小的噪聲點(diǎn)線段。
圖5為分割后的玉米行二值圖像。圖6a為二值圖像第70水平掃描行數(shù)據(jù)的像素分布情況,圖6b為濾除噪聲后第70水平掃描行數(shù)據(jù)的像素分布情況。由圖5和圖6可知:濾除噪聲后的像素分布基本上代表了此行上的作物行的分布情況。
經(jīng)過(guò)了噪聲點(diǎn)移除后,記第j行的零像素點(diǎn)(作物區(qū)域)的數(shù)目為Nj,列坐標(biāo)為xi,那么這一行的導(dǎo)航中心點(diǎn)Cj橫坐標(biāo)為
將得到的每一行的導(dǎo)航中心點(diǎn)存儲(chǔ)在N×2的數(shù)組,其中,N是整幅圖像中導(dǎo)航中心點(diǎn)的個(gè)數(shù)(每一行經(jīng)過(guò)濾噪后,由于存在舍棄作物缺失行的情況。因此,N有可能小于圖像行數(shù)h)。數(shù)組的一列存儲(chǔ)導(dǎo)航中心點(diǎn)橫坐標(biāo),另一列存儲(chǔ)所在的行號(hào)(縱坐標(biāo))。
圖5 分割后的二值圖像及第70行
圖6 線掃描算法對(duì)第70行進(jìn)行濾除噪聲處理結(jié)果
(Ⅱ)利用最小二乘法進(jìn)行線性回歸,計(jì)算導(dǎo)航中心線參數(shù)。
假設(shè)從圖像線掃描后得到導(dǎo)航線中心點(diǎn)的N個(gè)坐標(biāo)數(shù)據(jù)為(x1,y1),(x2,y2),…,(xN,yN),則在圖像平面上,可以得到N個(gè)點(diǎn)Pi(xi,yi)(i=1,2,…,N),這種圖形稱為“散點(diǎn)圖”,結(jié)果見(jiàn)圖7。從圖7中可以粗略看出這些黑點(diǎn)大致散落在某直線附近,設(shè)直線可以用y=ax+b表示,其中a和b是待定常數(shù)。最小二乘法求待定常數(shù)的公式為
(Ⅲ)由直線方程y=ax+b,在原圖像中繪制導(dǎo)航中心線。
圖7給出了僅有2條作物行圖像的2組測(cè)試結(jié)果,圖中的散點(diǎn)為每行的導(dǎo)航中心點(diǎn),擬合后的導(dǎo)航中心線為兩行中間的直線,可以作為農(nóng)業(yè)機(jī)器人導(dǎo)航的依據(jù)。對(duì)于大小為400 pixel×300 pixel的圖像,結(jié)合最小二乘法的線掃描算法處理時(shí)間約為18 ms。
圖7 結(jié)合最小二乘法的線掃描算法
(1)設(shè)計(jì)了農(nóng)業(yè)機(jī)器人視覺(jué)導(dǎo)航試驗(yàn)平臺(tái)的整體控制方案和基于AVR單片機(jī)的下位機(jī)控制器,實(shí)現(xiàn)了4個(gè)電機(jī)的獨(dú)立速度控制及其與上位機(jī)的串口通訊功能。測(cè)試表明:當(dāng)上位機(jī)發(fā)送命令信息到下位機(jī)控制器后,其運(yùn)動(dòng)控制算法能夠可靠運(yùn)行。
(2)結(jié)合最小二乘法的線掃描算法的預(yù)處理包括去除噪聲點(diǎn)和判斷舍棄作物缺失行兩步,它們是提取導(dǎo)航中心點(diǎn)的關(guān)鍵。測(cè)試表明整個(gè)算法具有較高的實(shí)時(shí)性。對(duì)于3行或4行的作物行的情況可以擴(kuò)展本算法。
[1]李建平,林妙玲.自動(dòng)導(dǎo)航技術(shù)在農(nóng)業(yè)工程中的應(yīng)用研究進(jìn)展[J].農(nóng)機(jī)工程學(xué)報(bào),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]閆樹(shù)兵,姬長(zhǎng)英.農(nóng)業(yè)機(jī)器人移動(dòng)平臺(tái)的研究現(xiàn)狀與發(fā)展趨勢(shì)[J].拖拉機(jī)與農(nóng)用運(yùn)輸車,2007,34(5):13-15.
[4]姬江濤,李玉柱,高吭.“農(nóng)業(yè)機(jī)器人”課程教學(xué)與教材建設(shè)[J].中國(guó)電力教育,2010(22):99-100.
[5]安秋,周俊,姬長(zhǎng)英,基于DGPS導(dǎo)航的田間數(shù)據(jù)采集機(jī)器人的設(shè)計(jì)[J].河南科技大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(2):79-82.
[6]張磊,蔣剛,肖志峰,等.ATmega16與PC機(jī)的移動(dòng)機(jī)器人定位系統(tǒng)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,10(12):11-13.
[7]吳健.AVR單片機(jī)實(shí)用C語(yǔ)言程序設(shè)計(jì)與典型實(shí)例[M].北京:中國(guó)電力出版社,2008.
[8]袁佐云.基于計(jì)算機(jī)視覺(jué)的作物行中心線識(shí)別研究[D].北京:中國(guó)農(nóng)業(yè)大學(xué),2005.
[9]張紅霞,張鐵中.麥田多列目標(biāo)圖像檢測(cè)算法[J].中國(guó)農(nóng)業(yè)大學(xué)學(xué)報(bào),2007,12(2):62-66.
[10]蔣海波,張?jiān)苽?,徐?huì)杰,等.農(nóng)田作業(yè)機(jī)器人視覺(jué)導(dǎo)航目標(biāo)曲線檢測(cè)算法研究[J].昆明理工大學(xué)學(xué)報(bào),2008,33(4):91-96.