劉靈敏,胡 婧,謝 倩
(武漢晴川學院 計算機學院, 武漢 430204)
隨著農業勞動力老齡化和勞動力不足問題的逐漸加劇,各個國家開始重視對多用途農業機器人的開發研究,也包括采摘機器人的研發。將采摘機器人應用于新農業生產模式,是未來解決勞動力匱乏的重要手段。當前,國外采摘機器人發展迅速,國內同類產品迅速跟進,現已取得階段性成果。本文在此基礎上,結合計算機視覺技術與嵌入式智能控制技術,提出了一種基于計算機視覺的采摘機器人智能避障系統,實現前進道路上的避障功能。
計算機視覺技術是采用一到多臺CCD工業攝像機代替眼球,作為圖像傳感器獲取環境信息,然后根據需求由圖像處理模塊進行實時圖像處理分析,進而交由智能控制系統進行跟蹤控制。其中,計算機就是指在整個系統中負責智能控制的模塊,而視覺則是將周邊環境因素轉變為有效的對象描述,其核心問題是將環境信息轉換為圖像信息,從而導出周邊環境的結構。視覺作為整個系統中的核心模塊,一般從獲取圖像開始,然后經過特定模塊的格式轉換和處理,輸出給計算機使計算機具有認識當前環境的能力。視覺信息具有以下幾個特點:
1)特征點,可以準確地對當前整個環境或者特定的幾個對象進行有效的信息描述,并結合指定的規則說明環境信息的特點。采用特定的結構信息描述環境中具體的對象,那么這個結構信息體就稱為該對象在當前平臺特征點的具體描述。
2)控制處理,指將某些特定信息按照具體實現方式進行有效轉換。視覺是指對整個環境信息進行一個整體的獲取,并需要經過多道步驟轉換的表面特征階段;而將一個特征點轉換為另外一個特征點,就需要借助控制處理單元。
3)零交叉,表示圖像信息的明暗度突然發生顛覆性變化,是形成對象外觀輪廓和立體信息的條件。零交叉檢測就是計算機視覺系統對對象目標外觀輪廓、邊界值和立體信息的檢測。計算機視覺圖像形成結構如圖1所示。

圖1 計算機視覺圖像形成結構圖
為了精準地獲取環境圖形信息,本文設計的智能避障系統首先采用雙CCD攝像機獲取圖像信息,然后通過3D立體坐標對環境障礙物進行識別檢測。根據左右圖像信息間的視覺差計算障礙物離采摘機器人的距離,建立立體圖像信息。障礙物識別檢測的框架示意圖如圖2所示。

圖2 障礙物識別檢測框架圖
為了計算簡單方便,在檢測過程中,將左CCD設置為世界坐標系,右邊設為平面坐標系。雙目CCC模型如圖3所示。

圖3 雙目CCC模型圖
根據雙目CCD模型可以得到
(1)
(2)
其中,sl和sr分別為平面坐標系尺度因子;fl和fr分別是左右CCD的焦距。由式(1)和式(2)可以得到左右圖像的像點坐標的對應關系為
(3)
由此求出三維世界坐標系坐標對應關系為
(4)
根據式(4)就可以求出障礙物的準確位置。
采摘機器人智能避障系統在作業過程中,為了準確無誤地進行采摘操作,需要實時對圖像信息進行處理,進而判斷前方是否可以正常前行。因此,設計了基于STM32F103RCT6為核心的硬件平臺,可以完成實時信息采集、圖像處理、路徑規劃和躲避障礙物等功能。本文主要介紹智能避障系統的最小系統和視頻圖像的獲取與解析兩部分的電路。
1)最小系統的設計。智能避障系統的最小系統主要包括微處理器、振蕩電路、JTAG和復位電路。其中,處理器采用意法半導體(ST)公司的Cortex-M3內核的32位ARM微處理器STM32F103RCT6,該芯片具有256K Flash,48KRAM,板載晶振8MHz,擁有豐富的接口和外設資源。最小系統原理圖如圖4所示。
2)視頻圖像的獲取與解析。CCD攝像頭獲取到環境信息的圖像后,經過圖像轉換芯片將模擬信號轉化為空間上數字信號。本文圖像轉化選用OmniVision 公司的OV7676圖像傳感器芯片,該芯片采用3μmOmniPixel3-HS技術,實現了一流的低光靈敏度、信噪比、 滿阱容量、 量子效率和低功耗, 具有集成度高、圖像轉換效率高等特點。視頻圖像獲取與解析的接口電路如圖5所示。

圖4 最小系統原理圖

圖5 視頻圖像獲取與解析的接口電路
為了方便操作人員對采摘機器人進行實時調整和控制,本文基于QT Creator進行了采摘機器人Android上位機平臺控制的功能設計和模塊化實現,并著重于無線通信模式下的機器人功能實現和上位機APP的界面設計。該上位機主要用于操作人員對采摘機器人發送控制指令,上位機首先發送指令到WIFI模塊,然后由路由器轉換發送給STM32F103RCT6微處理器,從未實現對采摘機器人的控制。同時,路由端可以實時將機器人拍攝的視頻圖像信息解碼后實時回傳給上位機,上位機在界面中顯示。上位機設計的框架如圖6所示。
上位機軟件的編寫采用TCP通信方式,用Socket連接把數據發送到路由端,在實際應用過程中,上位機是Client模式,路由端是服務器模式。這樣就可以實現對采摘機器人的無線控制。上位機核心代碼如下:
public class MyVideo extends Activity
{
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
r =
(MySurfaceView)findViewById(R.id.mySurfaceViewVideo);
TakePhotos =
(Button)findViewById(R.id.TakePhoto);
ViewPhotos =
(Button)findViewById(R.id.ViewPhoto);
BtnForward =
(Button)findViewById(R.id.button_forward);
BtnBackward =
(Button)findViewById(R.id.button_backward);
BtnLeft =
(Button)findViewById(R.id.button_left);
BtnRight =
(Button)findViewById(R.id.button_right);
BtnStop=
(Button)findViewById(R.id.button_stop);
Intent intent = getIntent();
CameraIp =
intent.getStringExtra("CameraIp");
CtrlIp= intent.getStringExtra("ControlUrl");
CtrlPort=intent.getStringExtra("Port");
InitSocket();
}

圖6 上位機設計框架圖
當CCD攝像機探測前方有障礙物時,采摘機器人一般會選擇從障礙物的左邊繞行,但當采摘機器人的位置相對于偏向于右邊時,根據最優路徑經驗,應該繞右邊前行,如圖7所示。因此,采摘機器人在實際躲避障礙物的過程中,應先對自身位置進行定位,判斷dOA和dOD的值后,再進行繞行規劃。
圖7中:ABCD為障礙物;小車位置1~4是采摘機器人避障行走路徑;dOA和dOD分別是機器人中心點與障礙物之間的距離。通過直角三角形求邊長公式可知
(5)
聯立求解可以得到dOA和dOD的值。
當dOA>dOD時,采摘機器人繞障礙物右邊前行。在計算過程中,假設采摘機器人的長款分別是2l和2n,那么采摘機器人由位置1前進到位置2時,小車的前進路線的長度為
(6)
其中,λ為采摘機器人與障礙物之間的安全距離系數。
需要的時長為
(7)
轉彎時的角度值為
(8)
采摘機器人由位置2前進到位置3時,小車的前進路線的長度為
s2=dCD
(9)
行駛時間為
(10)
采摘機器人由位置3前進到位置4時,回到原先處于位置1時的方向。轉彎角度為
θ2=-θ1
(11)
行駛的時間為
t3=t1
(12)
則在整個過程中,采摘機器人的避障路徑為:右轉向θ1,速度為v0/3,經過時間t1行駛至位置2;再以速度為v0/3行駛t2至位置3;最后左轉向θ1,速度為v0/3,經過時間t1行駛至位置4,即回到避障前的行駛路線上。

圖7 機器人避障示意圖(dl 為了驗證采摘機器人智能避障系統的可行性及其有效性,本文利用MatLab仿真軟件對該系統進行避障仿真實驗。該實驗不僅能夠對計算機視覺圖像采集和處理進行驗證,還可以對采摘機器人避障規劃進行驗證。仿真結果如圖8所示。 圖8 仿真結果圖 采摘機器人前方的圓柱體、菱形和立方體分別是障礙物1、2、3,虛圓形為采摘機器人S避障路徑。從仿真結果可以看出:采摘機器人從起點前行到了終點,成功避開了3個障礙物;在避障過程中,由于采摘機器人更靠近障礙物1下方一點,所以其選擇了繞障礙物1下方前行,實現了規劃路徑最優化,證明該智能避障系統的有效性、準確性和可行性。 首先分析了計算機視覺技術及障礙物檢測的特點、原理,然后對系統的軟硬件系統進行了設計,最后實現了采摘機器人的智能避障系統。該系統針對采摘機器人在作業過程中常常會碰到被障礙物擋住前行道路等問題,結合計算機視覺技術和嵌入式智能控制技術,極大地加強了采摘機器人對環境的感知能力。對該系統進行了MatLab仿真試驗,結果表明:系統能夠準確無誤地避開障礙物,并能在動態移動中規劃局部最優路徑,證明該智能避障系統的有效性、準確性和可行性。 AbstractID:1003-188X(2018)09-0213-EA4 實驗結果與分析

5 結論