李 達,楊光友,,李 軍,謝真良
(1湖北工業大學機械工程學院,湖北 武漢430068;2湖北省農業機械研究設計院,湖北 武漢430068)
農業大面積、高效率種植離不開智能化機械,用信息化技術提升農業生產效率是精準農業發展迫切需要研究的課題,而農業機械導航技術[1]是精細農業的基礎,也是當前農業工程領域的研究熱點之一。相較于復雜的道路環境,農業機械對安全性要求不那么高,引入無人駕駛智能設備,能大大提高生產效率并減輕工人勞動強度。而GPS自動導航系統設備裝卸簡便,作業精準,操作簡單,系統無車型限制,作業率可增加23%。但是,如新疆青河縣阿魏灌區,雖安裝了GPS自動導航系統的播種機,但仍需工人駕駛。本文在自動駕駛平臺上引入遠程監控系統,實現了農業機械無人駕駛。
本系統融合GPS定位數據[2]與傳感器姿態位置數據,通過與電子地圖對比,規劃出行駛的路徑,并將車輛實時位置信息通過GPRS傳給上位機。監控中心獲得車輛實時信息后,遠程發送控制命令,就可對偏航車輛進行修正。本系統主要包括車載控制器系統和遠程監控系統兩大部分(圖1)。
通過對GPS、GSM(GPRS)、步進電機、超聲波傳感器、舵機、AHRS(微型姿態方位參考系統)硬件模塊的研究,以及對模塊功能應用程序開發后發現,由于單個控制器接口不足,不便于模塊化設計,可靠性與實時性差,可采用多個控制器協同實現系統功能,各處理器間通過CAN總線[3]發送數據。
在VC++平臺上,通過采用TCP/IP協議、Access數據庫、MSFlexGrid,WebBrowser控件、Google地圖,在監控端保存遠程車輛位置信息,將車輛位置實時顯示在GIS地圖上,當車輛偏航時彈出模態對話框警示進行人為修正。

圖1 車輛導航系統圖
本文下位機程序在S3C2440、ARM微處理器WinCE[4]系統平臺下,使用EVC++編程完成相應模塊應用程序開發[5]。
車載控制器S3C2440通過串口給GSM/GPRS模塊發送AT指令,撥號成功后通過TCP/IP協議建立socket套接字與遠程具有公網IP或固定IP地址的客戶端連接,進行數據收發。
GPRS撥號上網部分代碼:
RASDIALPARMS RasDIALParams;//設置建立 RAS撥號連接的參數
RasDial(NULL,NULL,&RasDialParams,0xFFFFFFFF,NULL,
&WINCE_GPRS_NODE.hRasConn);//實現撥號
RasHangUp(WINCE_GPRS_NODE.hRasConn);//斷開網絡
采用GPS和AHRS組合導航定位系統,與卡爾曼濾波組合,獲得高精度定位信息和姿態信息。GPS模塊通過串口與S3C2440相連,在WinCE系統下配置串口通訊參數,實時接收GPS和AHRS信息。通過定時器周期,從NMEA協議中提取時間、經度、緯度、姿態方位等信息,經socket傳到外網服務器上。
部分實現代碼:
c_Gpsinf=c_sPositionX+"N"+c_sPositionY+"E"+c_year+"Y"+c_Date+"D"+c_Posture
//GPS和慣性傳感器信息
int sendlen=c_Gpsinf.GetLength();//取得輸入字符串長度
char*psendbuff=new char[sendlen];
for(int i=0;i<sendlen;i++)
psendbuff[i]= (char)c_Gpsinf.GetAt(i);//轉換為單字節字符
while(cnt<sendlen)
{actlen= send(m_Socket,psendbuff+ cnt,sendlen -
cnt,0);//發送數據
cnt=cnt+actlen;
if(cnt<sendlen)
}
GPS獲得定位數據是基于世界大地坐標系的觀測值,我國地圖采用高斯-克呂格投影[6],為了便于在平面坐標系下直觀分析車輛位置,把GPS定位數據換成我國的點位坐標值。
高斯-克呂格投影公式

式中:B,l為大地坐標經緯度;x,y為轉換后的高斯坐標系坐標值。
車輛運動學模型[7]如圖2所示,xoy坐標系為世界坐標 ,L為軸距,O為后軸中心點 ,且以這一點的速度v作為智能車輛的速度,O為車輛轉彎圓心,R0為O點的轉彎半徑。θo為沿x軸逆時針旋轉與車輛速度方向所得到的角度,α為前輪轉角。設O點為車輛的中心點,智能車輛在任意時刻的位置狀態可用變量(x(i),y(i),θ(i))表示,車輛在平面內運動且忽略側滑,則有

其中wo為車輪角速度,在Δt時間周期內,有

其中:Δθo為Δt時間內航偏角變化量;Δy,Δx分別為在Δt內車輛位置在x,y軸上的變化量。由v和α可方便地計算出每個Δt時間后車輛的位置狀態,則可以通過給定目標位置推算轉彎角度α。
x(i),y(i),θ(i)分別為車輛在圖2平面坐標系xoy 下的橫軸,縱軸坐標和當前航向角。xr,yr,θr為目標點在平面坐標系中的位置坐標,設xe(i),ye(i)為目標點在車體坐標系(圖3)。

圖2 車輛運動學模型

圖3 車輛坐標系
則目標點在車體坐標系中位置

通過車輛坐標系,可直觀分析目標點在車輛坐標系中橫向偏差、縱向偏差及航偏角,便于運動學分析車輛運動軌跡,確定車輛相對預定軌跡的方向和位置關系,據此跟蹤目標點。
本文對車輛運動模型分析,通過目標點和當前實時坐標比較,采用積分Backsteppping[7]方法在車體坐標下構建位置誤差模型,采用非線性系統穩定設計理論,通過目標點在車輛坐標系中的實時狀態坐標,以及經過周期為t時間后車輛下一運動狀態方程,和預先構造的Lyapunov函數聯系起來,在控制率作用下通過逐步推算,修正軌跡,最終使起始位置誤差 [xg,yg,θg]滿足完成軌跡控制器的設計。
車輛下一運動狀態方程為:

通過matlab對預定義軌跡跟蹤仿真(圖4,圖5)。起始位置誤差 [xg,yg,θg]= [5,-2,π/2],參考速度[vr,wr]= [5,0],期望軌跡為長10m 寬4 m的矩形。

圖4 純追蹤模型的路徑跟蹤

圖5 實際軌跡與預計軌跡對比圖
由圖4可知,車輛在起始位置跟蹤目標直線,xg,yg,θg隨著時間的變化趨近于0,實際軌跡與預期軌跡基本重合,表明在所設計的控制器作用下,車輛在有限的時間內,能快速跟蹤預先定義的參考軌跡,使系統跟蹤快速收斂,具有良好的局部穩定性。說明此算法滿足自動駕駛要求,可作為車輛自動導航的決策方法。
上位機在VC++6.0平臺上編寫,通過對TCP/IP的封裝,對Access數據庫進行數據添加、查詢操作。通過MSFlexGrid控件實時顯示GPS數據信息,WebBrowser瀏覽器控件關聯Google地圖,將車輛位置實時顯示在GIS上,當車輛偏航報警信息彈出時,可根據監控界面(圖6)顯示小車預定軌跡與實時位置關系,遠程遙控車輛并進行人為修正。

圖6 遠程監控中心
[1] 賈 全.拖拉機自動導航系統關鍵技術研究[D].北京:中國農業機械化科學研究院,2013.
[2] 羅錫文,張智剛.東方紅X_804拖拉機的DGPS自動導航控系統[J].農業工程學報,2009,25(17):139-145
[3] 劉 陽.拖拉機中導航系統CAN總線的設計與實現[D].石河子:石河子大學,2009.
[4] Chris Muench .The windows ce technology tutorial:solutions for the developer[M].北京:中國電力出版社,2001.
[5] 周立功.ARM&WinCE實驗與實踐—基于S3C2410[M].北京:北京航空航天大學出版社,2007.
[6] 王 銳.高斯-克呂格投影的遠程測向方位角計算方法[J].火力與指揮控制,2013,38(17):139-145.
[7] 游 峰.王榮本.智能車輛換道與超車軌跡跟蹤控制[J].農業機械學報,2008,39(06):42-45.