韓 坤,李東琦
(1.商丘職業(yè)技術(shù)學(xué)院,河南 商丘 476000;2.安陽師范學(xué)院,河南 安陽 455000)
隨著自動化的不斷發(fā)展,機器人成為了學(xué)者的熱門研究方向,機器人的智能化程度也越來越高,機器人是否智能主要是看其在作業(yè)過程中的運動能力,而路徑規(guī)劃能力又是不可或缺的。機器人運動規(guī)劃是利用視覺傳感器獲取障礙物的信息,為機器人獨立避開障礙物提供了可能。本文研究的小麥精播機器人路徑規(guī)劃,將計算機OpenCV視覺與嵌入式系統(tǒng)相結(jié)合,實現(xiàn)了小麥精播機器人路徑規(guī)劃和避障。
路徑規(guī)劃是機器人研究領(lǐng)域的重要模塊,是對機器人自動控制和更深入應(yīng)用的基礎(chǔ),機器人能夠自主避障和進(jìn)行路徑規(guī)劃是解決其在作業(yè)環(huán)境中安全行走的核心。小麥播種機器人和人類行走類似,采用傳感器充當(dāng)人類“雙眼”,采用嵌入式處理器充當(dāng)人類“大腦”,根據(jù)傳感器信息、工作任務(wù)及具有優(yōu)先級的管理策略,驅(qū)動機器人進(jìn)行移動和作業(yè)。
本文采用人工勢場法研究小麥播種機器人路徑規(guī)劃問題。人工勢場法是機器人路徑規(guī)劃常用的一種算法,其將周邊環(huán)境抽象成一個勢場,疊加機器人目標(biāo)方向引力和周邊障礙物的斥力,根據(jù)勢力函數(shù)的下降方向確定機器人最佳的路徑移動方向,實現(xiàn)機器人的路徑規(guī)劃。傳統(tǒng)人工勢場法勢力函數(shù)為
(1)

(2)
從式(2)可以看出:在小麥精播機器人作業(yè)中,負(fù)梯度會隨著其與目標(biāo)點的距離減小而減小至0。
本文研究的小麥精播機器人路徑規(guī)劃問題,是一種動態(tài)變化的場景,目標(biāo)是非靜止的。傳統(tǒng)人工勢場引力簡單示意如圖1所示。

圖1 傳統(tǒng)人工勢場引力簡單示意圖Fig.1 The simple gravitational diagram of traditional artificial potential field
由于傳統(tǒng)人工勢場存在局部最小值分析,使得小麥精播機器人在離目標(biāo)較近的時候,收到目標(biāo)引力和障礙物斥力的雙重勢場力,反復(fù)形成局部最小值。因此,需要對其進(jìn)行改進(jìn),改進(jìn)人工勢場定義為
(3)
其中,Uat(P,V)為改進(jìn)人工勢場;μ為勢場系數(shù);ρ為小麥精播機器人和障礙物之間的距離;ρ0為障礙物的影響半徑;X和Xg分別為小麥精種機器人和目標(biāo)地的坐標(biāo);n為常系數(shù)。此時改進(jìn)的斥力為
(4)
其中
(5)
(6)
其中,Fat1和Fat2分別為障礙物指向機器人和機器人指向目標(biāo)點的方向。改進(jìn)人工勢場小麥精播機器人收到的斥力示意如圖2所示。

圖2 改進(jìn)人工勢場小麥精播機器人收到的斥力示意Fig.2 The improving repulsion signal received by wheat sperm robot in artificial potential field
根據(jù)n值不同,改進(jìn)人工勢場力也不同,可以把目標(biāo)和障礙物的坐標(biāo),確定為全局最小值的問題,有效解決局部最小值問題,為小麥精播機器人路徑規(guī)劃提供準(zhǔn)確的坐標(biāo)。
OpenCV作為一款強大的開源計算機視覺庫,能夠提供豐富的視覺處理算法,已被廣泛應(yīng)用于物體識別、人臉識別、運動跟蹤機器人等多個領(lǐng)域。OpenCV具有標(biāo)準(zhǔn)的API接口,可以大大簡化程序開發(fā)和方案設(shè)計,可在Linux、Windows等系統(tǒng)上運行,其內(nèi)部核心采用C和C++開發(fā),向外部提供C、C++、Python和MATLAB等接口。OpenCV結(jié)構(gòu)由CXCORE、MHL、HighGUI和CV等組成,其整體構(gòu)成框架圖3所示。

圖3 OpenCV整體構(gòu)成框架圖Fig.3 OpenCV overall composition framework
CXCORE是整個OpenCV計算機視覺的核心,包括重要的結(jié)構(gòu)和算法,如矩陣轉(zhuǎn)換、數(shù)據(jù)變換、程序運行內(nèi)存管理、插件動態(tài)加載及繪圖等。
CV是OpenCV視覺算法的高級算法,主要包括圖像預(yù)處理和視覺處理算法。HighGUI是人機交互、圖像和視頻輸入輸出的接口。MHL是機器學(xué)習(xí)(Machine Learning)的簡寫,包括Bayes分類器、向量機、神經(jīng)網(wǎng)絡(luò)等分類、聚類和數(shù)據(jù)分析算法。
本文采用OpenCV計算機視覺算法,主要是利用其開源和移植性強的特點。一般情況下,為降低圖像處理難度及輪廓提取的干擾,在對目標(biāo)樣本進(jìn)行實物拍攝時需盡量降低周邊環(huán)境影響,背景選擇應(yīng)與目標(biāo)圖像對比度較大,如純色背景等。本文中,考慮到實際檢測過程中各種復(fù)雜環(huán)境條件,增加算法適用性,對樣本的采集采用外界實際環(huán)境,增加了如陰影、反光、色彩對比度不強等干擾。采集到圖片后,對圖片進(jìn)行處理的流程如圖4所示。

圖4 OpenCV圖像處理流程Fig.4 The OpenCV image processing flow
嵌入式系統(tǒng)是一種以應(yīng)用為中心,軟硬件可根據(jù)開發(fā)需求裁剪、移植,對功能、體積、成本及耗電量有著嚴(yán)格要求的系統(tǒng)。嵌入式系統(tǒng)常用于各種客制化場合,與Windows平臺相比,其有如下特點:①當(dāng)不需要某一功能模塊時,可以除去該模塊的軟硬件;②對功能、體積、生產(chǎn)加工、成本、開發(fā)周期要求較高。嵌入式控制系統(tǒng)包括User space(用戶空間)和Kernel space(內(nèi)核空間),如圖5所示。

圖5 嵌入式控制系統(tǒng)架構(gòu)Fig.5 The embedded control system architecture
Linux系統(tǒng)用戶空間主要包括應(yīng)用程序和使用java和C++調(diào)用的C語言程序庫,內(nèi)核空間則包括系統(tǒng)調(diào)用接口、Kernel及平臺設(shè)備和驅(qū)動程序。其中,Kernel又可獨立成一個系統(tǒng),其主要由程序管理、內(nèi)存管理、虛擬文件系統(tǒng)、ARCH、網(wǎng)絡(luò)協(xié)議棧和設(shè)備驅(qū)動等組成。Linux Kernel體系結(jié)構(gòu)如圖6所示。

圖6 Linux Kernel體系結(jié)構(gòu)Fig.6 Linux hernel architecture
本文系統(tǒng)在兩個不同機器上運行,OpenCV和嵌入式軟件編寫在PC機上完成,選用I5-8250處理器、8G內(nèi)存、1T硬盤的Ubuntu系統(tǒng)PC機,可以非常流暢的執(zhí)行OpenCV和快速編譯嵌入式程序;另外一個機器是搭載嵌入式系統(tǒng)的ARM板,使用的ARM板搭載4顆SAMSUNG的Exynos4412處理器,每個核心的運行頻率都有1.4GHz,運算能力可以達(dá)到2000DMIPS,同時帶有1G RAM和4G ROM;平臺還有1個DB9式RS232串口,可用于和計算機PC端之間的通訊。ARM開發(fā)板架構(gòu)如圖7所示。

圖7 ARM開發(fā)板架構(gòu)圖Fig.7 Architecture of ARM Development Board
小麥精播機器人主要控制軟件在Exynos4412上運行,主要的操作系統(tǒng)為嵌入式Linux,版本為kernel-3.14。軟件搭建主要介紹ARM交叉工具鏈和嵌入式Linux移植等。
1)ARM交叉工具鏈安裝。雖然采用Ubuntu的Linux計算機系統(tǒng),但其實是X86架構(gòu),無法直接編譯出在Exynos4412運行的軟件,需要采用交叉編譯。
交叉工具鏈一般需要根據(jù)嵌入式Linux源碼進(jìn)行安裝,安裝過程如下:
①解壓gcc-4.6.4.tar.xz到/usr/local/toolchain
②添加環(huán)境變量,修改文件/etc/bash.bashrc添加如下內(nèi)容,即
$ export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin;
③測試交叉工具鏈?zhǔn)欠癜惭b成功,即
$ arm-none-linux-gnueabi-gcc -v
若出現(xiàn)以下信息(見圖8),則表示安裝正確。

圖8 交叉工具鏈版本信息Fig.8 The cross tool chain version information
2)嵌入式Linux移植。Linux是ARM開發(fā)板運行的基礎(chǔ),為了讓系統(tǒng)在小麥精播機器人控制器中運行流程,需要對系統(tǒng)軟件進(jìn)行一定的裁剪和移植。將linux-3.14.tar.xz 拷貝到/home/linux 下并解壓,然后運行make menuconfig,進(jìn)入如圖9所示的內(nèi)核配置菜單。

圖9 Linux內(nèi)核配置Fig.9 Linux kernel configuration
依次對CPU、NANDFlash、Netwoking、USB及ramdisk 文件系統(tǒng)等進(jìn)行配置與裁剪,最后將build出來的load燒錄到控制板,既可正常工作。
以小麥精種播器人為實驗平臺,搭載兩個USB攝像機,拍攝的視頻由ARM板采用通過wifi發(fā)送給PC端;PC端利用OpenCV軟件進(jìn)行圖像處理和障礙物識別,制定避障路徑后,發(fā)送指令給小麥精種機器人進(jìn)行轉(zhuǎn)向作業(yè)。實驗仿真結(jié)果如圖10所示。

圖10 試驗仿真結(jié)果圖Fig.10 The simulation results of the experiment
實驗中,左邊為機器人作業(yè)起點,右邊為終點;中間陰影圓形為障礙物。實驗結(jié)果表明:在兩種布局中,小麥精播機器人都可以成功避開障礙物達(dá)到目標(biāo)地點,沒有出現(xiàn)局部極小區(qū)域震蕩的情況,證明了小麥精播機器人路徑規(guī)劃系統(tǒng)具有可行性。
主要對人工勢場法和OpenCV視覺處理進(jìn)行了介紹和研究,并將其運用到小麥精播機器人路徑規(guī)劃的系統(tǒng)中,詳細(xì)介紹了人工勢場法的改進(jìn)及在路徑規(guī)劃中的應(yīng)用和OpenCV視覺圖像的處理流程。實驗結(jié)果表明:在兩種布局中,小麥精播機器人都可以成功避開障礙物達(dá)到目標(biāo)地點,證明了該路徑規(guī)劃系統(tǒng)具有較高的可行性。