宋 敏,吳豪杰
(天津職業技術師范大學,天津 300222)
隨著經濟的快速發展,種植農作物的種類日漸豐富,農民的工作強度和工作量也在逐漸增加,在農業耕作方面越來越多的人選擇農用機器人解放繁重的勞動力。 各種普通電池驅動農用機器人數量的增加,緩解了部分勞動力的同時,也帶來了環境污染、消耗成本大、生產效率低、資源利用不合理等問題[1]。 這些現實問題限制了在農業上使用機器人代替人力的頻率,從而無法滿足農民追求解放繁重勞動力的需求。
本系統以嵌入式硬件平臺為基礎,利用GPS 定位、超聲波傳感器、慣性導航等技術完成設計,研究普通電池驅動農用機器人出現的各種問題,通過對機器人進行定位、導航以及避障的控制,實現對任務目標路徑優化,提高系統的安全性和工作效率。 采用燃料電池驅動的方式,改善了普通電池驅動帶來的環境污染問題。
通過AGV、GPS、 慣性導航等技術的燃料電池驅動農用機器人控制系統,實現對任務目標路徑優化,提高安全性、工作的可靠性以及工作效率。 利用超聲波傳感器對行駛方向進行障礙檢測,若前方存在障礙物則需要優先避開障礙。 系統總體設計框圖如圖1 所示。

圖1 系統總體框圖
系統的硬件部分主要有GPS 模塊、AGV 電磁巡線模塊、MPU6050 陀螺儀模塊、超聲波避障模塊以及微控制器。
在室外定位的方式多種多樣,如果只需要大概的位置信息,便可以使用GPS 定位。 在一般情況下,GPS 定位的精度在5m 左右,通過GPS 模塊就可以確定機器人在戶外的大致位置信息。 本設計采用了集成的GPS 定位模塊,模塊采集的位置信息通過串口發送至主控制器。 模塊原理圖如圖2 所示。

圖2 模塊原理圖
在地面鋪設電磁引導線并通入20kHz 的正弦信號,機器人加裝用于采集磁場信號的電感后就可以用自動沿著電磁引導線前進。 這一方式的定位精度可到亞厘米級,精度較高,可用于機器人的運動路徑規劃。 巡線的原理是電磁感應定律,即磁通量的變化會在線圈中引起感應電動勢。傳感器與電磁引導線的距離越近,感應電動勢就越大,故這一電動勢稍加處理就可以反映出當前機器人與引導線的相對位置偏差,進而實現巡線功能。 使用10mH 電感與6.8nF 電容組成并聯諧振電路,可以有效地輸出20kHz的信號而抑制其他頻率信號的影響,但因輸出是交變的信號,故還須在后一級電路中對信號進行整流[2]。 圖3 為電感傳感器的等效電路圖。

圖3 等效電路圖
MPU6050 是一款集成的運動處理組件,可用于采集地磁方向與加速度信息。 在本設計中未使用地磁場信息,僅使用了模塊的三軸加速度信息。 確定了出發位置后,不斷對機器人的三軸加速度積分,就可推算出當前的位置、速度以及偏航角等信息。這種定位或路徑規劃方法稱為慣性導航,因幾乎不依賴任何外界信息,也幾乎不受外界環境干擾的優點,廣泛用于潛艇、飛機與彈道導彈等等[3]。 因為無法獨立預測識別途中是否存在合適的道路或障礙物,這一方法較少應用于地面交通工具。圖4 為模塊原理圖。

圖5 超聲波測距模塊原理圖
超聲波避障的原理是使用超聲波對機器人的行駛方向測距,若在距離測量范圍之內有障礙物,則可以確定機器人到障礙物的距離,進而通過MCU 實現避障。 超聲波測距是一種間接測距方式。 在進行測距時,模塊發射端向某一方向發出一段一定頻率的超聲波,若該方向上有某一物體,則超聲波會被反射回來并被接收端捕獲,因為聲波在空氣中的傳播速度相對固定,15℃時約為340m/s,通過記錄發射與接收的時間間隔,就可以算出模塊到障礙物的直線距離。 圖5 為超聲波測距模塊的原理圖。
STM32F103 是 ST (意法半導體) 公司推出的基于ARM Cortex-M3 架構的32 位微控制器系列。 本設計中的主控制器使用的是其中一款暢銷的芯片STM32F103ZET6,該芯片支持最大72MHz 時鐘主頻,支持單周期的乘法與硬件除法,擁有11 個定時器、3 個ADC、5個USART 接口與112 個雙向I/O 口,性能強勁,功能強大。 圖6 為最小系統的原理圖。

圖6 最小系統原理圖
完成硬件電路的搭建后,就可以著手進行軟件部分的設計。 軟件與硬件有機協調配合才能讓系統更加平穩地運行。 在進行軟件設計的時候需要充分考慮硬件電路的特性以及可能發生的意外情況。
系統軟件部分開發在集成的開發環境中完成。 一般用于開發STM32 系列微控制器軟件的集成開發環境是Keil MDK。 Keil MDK 簡潔實用,完美支持 Cortex-M 系列的產品,且可搜集到的STM32 的源碼資料大多是在Keil MDK 平臺上編寫的,這有助于新手學習開發技術。機器人的軟件部分主要包括各硬件模塊的初始化,AGV 巡線程序,定位程序,避障程序等[4]。 接下來分別進行介紹。
路徑的規劃由電磁巡線模塊完成,需要編寫驅動程序對該模塊進行初始化以及數據采集等操作。 AGV 電磁巡線模塊返回的是模擬信號,其初始化程序主要是對微控制器A/D 轉換模塊的配置[5]。STM32F103ZET6 自帶A/D轉換器,故無需外接A/D 轉換芯片。 巡線程序流程圖如圖7 所示。

圖7 巡線程序流程圖
圖7 中,對傳感器返回的數據進行了差比和運算,在此對差比和算法加以簡要介紹。 機器人行進方向共安裝了5 個電感傳感器模塊,取左右對稱的一對傳感器AD 值進行如下運算:

式中:e(t)為經由這一對傳感器計算出的當前的位置偏差;eL(t)為左側傳感器采集到的位置偏差;eR(t)為右側傳感器采集到的位置偏差。
取三種特殊情況進行分析:
1)eL(t)=eLmax,eR(t)=0 時,e(t)=1,可認為此時機器人的向左偏差達到最大。
2)eR(t)=eRmax,eL(t)=0 時,e(t)=-1,可認為此時機器人的向右偏差達到最大。
3)eL(t)=eR(t)時,e(t)=0,可認為此時機器人行走在引導線的正中間。
4)其它情況時,e(t)在上述3 個值之間連續變化。
使用這一種方法處理電感傳感器的偏差數據,可以有效地抑制環境影響,增加系統的魯棒性。
本設計使用的ATK1218-BD 是一款GPS 定位模塊,采用串口方式與其它模塊通信。通信協議是NMEA-0813。NMEA - 0183 是一種海用電子設備定位的標準格式,由美國國家海洋電子協會(National Marine Electronics Association) 提出。 NMEA-0183 協議采用 ASCII 碼來傳遞GPS 定位信息,稱之為幀。 幀格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)。
1)“$”:幀命令起始位。
2)aaccc:地址域,前兩位為識別符(aa),后三位為語句名(ccc)。
3)ddd…ddd:數據。
4)“*”: 校驗和前綴 (也可以作為語句數據結束的標志)。
5)hh: 校驗和 (check sum),$與 * 之間所有字符ASCII 碼的校驗和(各字節做異或運算,得到校驗和后,再轉換 16 進制格式的 ASCII 字符)。
6)(CR)(LF):幀結束,回車和換行符。
NMEA-0183 常用命令如下表1 所示。

表1 NMEA-0183 常用命令
本設計中使用的MPU6050 模塊自帶數字運動處理器(DMP),通過IIC 接口向控制器輸出數據。 慣性導航程序模塊中包含模塊的初始化程序、數據接收程序,加速度積分程序以及路徑規劃程序等。 程序流程圖如圖8 所示。

圖8 程序流程圖
小車在行進過程中需要主動避開障礙物,這一功能由超聲波測距傳感器作為硬件基礎。 避障功能的軟件部分主要是超聲波傳感器的驅動程序[6]。驅動程序包括傳感器的初始化與距離檢測程序等。 避障程序的流程圖如圖 9 所示。

圖9 避障程序流程圖
綜上所述,本系統設計了燃料電池驅動機器人,工作效率高,減少環境污染等優點。通過AGV、GPS、慣性導航等技術進行控制,能夠完成對物料的準確定位,保證了系統的安全性和可靠性。 系統設計減少了功耗,便于維修和檢修且維護成本較低,可廣泛應用于農業耕作的各個方面,可減少人力工資花費,增加農民收入,有較好的應用前景。