宋 敏,吳豪杰
(天津職業(yè)技術(shù)師范大學(xué),天津 300222)
隨著經(jīng)濟(jì)的快速發(fā)展,種植農(nóng)作物的種類日漸豐富,農(nóng)民的工作強(qiáng)度和工作量也在逐漸增加,在農(nóng)業(yè)耕作方面越來越多的人選擇農(nóng)用機(jī)器人解放繁重的勞動(dòng)力。 各種普通電池驅(qū)動(dòng)農(nóng)用機(jī)器人數(shù)量的增加,緩解了部分勞動(dòng)力的同時(shí),也帶來了環(huán)境污染、消耗成本大、生產(chǎn)效率低、資源利用不合理等問題[1]。 這些現(xiàn)實(shí)問題限制了在農(nóng)業(yè)上使用機(jī)器人代替人力的頻率,從而無法滿足農(nóng)民追求解放繁重勞動(dòng)力的需求。
本系統(tǒng)以嵌入式硬件平臺(tái)為基礎(chǔ),利用GPS 定位、超聲波傳感器、慣性導(dǎo)航等技術(shù)完成設(shè)計(jì),研究普通電池驅(qū)動(dòng)農(nóng)用機(jī)器人出現(xiàn)的各種問題,通過對(duì)機(jī)器人進(jìn)行定位、導(dǎo)航以及避障的控制,實(shí)現(xiàn)對(duì)任務(wù)目標(biāo)路徑優(yōu)化,提高系統(tǒng)的安全性和工作效率。 采用燃料電池驅(qū)動(dòng)的方式,改善了普通電池驅(qū)動(dòng)帶來的環(huán)境污染問題。
通過AGV、GPS、 慣性導(dǎo)航等技術(shù)的燃料電池驅(qū)動(dòng)農(nóng)用機(jī)器人控制系統(tǒng),實(shí)現(xiàn)對(duì)任務(wù)目標(biāo)路徑優(yōu)化,提高安全性、工作的可靠性以及工作效率。 利用超聲波傳感器對(duì)行駛方向進(jìn)行障礙檢測(cè),若前方存在障礙物則需要優(yōu)先避開障礙。 系統(tǒng)總體設(shè)計(jì)框圖如圖1 所示。
圖1 系統(tǒng)總體框圖
系統(tǒng)的硬件部分主要有GPS 模塊、AGV 電磁巡線模塊、MPU6050 陀螺儀模塊、超聲波避障模塊以及微控制器。
在室外定位的方式多種多樣,如果只需要大概的位置信息,便可以使用GPS 定位。 在一般情況下,GPS 定位的精度在5m 左右,通過GPS 模塊就可以確定機(jī)器人在戶外的大致位置信息。 本設(shè)計(jì)采用了集成的GPS 定位模塊,模塊采集的位置信息通過串口發(fā)送至主控制器。 模塊原理圖如圖2 所示。
圖2 模塊原理圖
在地面鋪設(shè)電磁引導(dǎo)線并通入20kHz 的正弦信號(hào),機(jī)器人加裝用于采集磁場(chǎng)信號(hào)的電感后就可以用自動(dòng)沿著電磁引導(dǎo)線前進(jìn)。 這一方式的定位精度可到亞厘米級(jí),精度較高,可用于機(jī)器人的運(yùn)動(dòng)路徑規(guī)劃。 巡線的原理是電磁感應(yīng)定律,即磁通量的變化會(huì)在線圈中引起感應(yīng)電動(dòng)勢(shì)。傳感器與電磁引導(dǎo)線的距離越近,感應(yīng)電動(dòng)勢(shì)就越大,故這一電動(dòng)勢(shì)稍加處理就可以反映出當(dāng)前機(jī)器人與引導(dǎo)線的相對(duì)位置偏差,進(jìn)而實(shí)現(xiàn)巡線功能。 使用10mH 電感與6.8nF 電容組成并聯(lián)諧振電路,可以有效地輸出20kHz的信號(hào)而抑制其他頻率信號(hào)的影響,但因輸出是交變的信號(hào),故還須在后一級(jí)電路中對(duì)信號(hào)進(jìn)行整流[2]。 圖3 為電感傳感器的等效電路圖。
圖3 等效電路圖
MPU6050 是一款集成的運(yùn)動(dòng)處理組件,可用于采集地磁方向與加速度信息。 在本設(shè)計(jì)中未使用地磁場(chǎng)信息,僅使用了模塊的三軸加速度信息。 確定了出發(fā)位置后,不斷對(duì)機(jī)器人的三軸加速度積分,就可推算出當(dāng)前的位置、速度以及偏航角等信息。這種定位或路徑規(guī)劃方法稱為慣性導(dǎo)航,因幾乎不依賴任何外界信息,也幾乎不受外界環(huán)境干擾的優(yōu)點(diǎn),廣泛用于潛艇、飛機(jī)與彈道導(dǎo)彈等等[3]。 因?yàn)闊o法獨(dú)立預(yù)測(cè)識(shí)別途中是否存在合適的道路或障礙物,這一方法較少應(yīng)用于地面交通工具。圖4 為模塊原理圖。
圖5 超聲波測(cè)距模塊原理圖
超聲波避障的原理是使用超聲波對(duì)機(jī)器人的行駛方向測(cè)距,若在距離測(cè)量范圍之內(nèi)有障礙物,則可以確定機(jī)器人到障礙物的距離,進(jìn)而通過MCU 實(shí)現(xiàn)避障。 超聲波測(cè)距是一種間接測(cè)距方式。 在進(jìn)行測(cè)距時(shí),模塊發(fā)射端向某一方向發(fā)出一段一定頻率的超聲波,若該方向上有某一物體,則超聲波會(huì)被反射回來并被接收端捕獲,因?yàn)槁暡ㄔ诳諝庵械膫鞑ニ俣认鄬?duì)固定,15℃時(shí)約為340m/s,通過記錄發(fā)射與接收的時(shí)間間隔,就可以算出模塊到障礙物的直線距離。 圖5 為超聲波測(cè)距模塊的原理圖。
STM32F103 是 ST (意法半導(dǎo)體) 公司推出的基于ARM Cortex-M3 架構(gòu)的32 位微控制器系列。 本設(shè)計(jì)中的主控制器使用的是其中一款暢銷的芯片STM32F103ZET6,該芯片支持最大72MHz 時(shí)鐘主頻,支持單周期的乘法與硬件除法,擁有11 個(gè)定時(shí)器、3 個(gè)ADC、5個(gè)USART 接口與112 個(gè)雙向I/O 口,性能強(qiáng)勁,功能強(qiáng)大。 圖6 為最小系統(tǒng)的原理圖。
圖6 最小系統(tǒng)原理圖
完成硬件電路的搭建后,就可以著手進(jìn)行軟件部分的設(shè)計(jì)。 軟件與硬件有機(jī)協(xié)調(diào)配合才能讓系統(tǒng)更加平穩(wěn)地運(yùn)行。 在進(jìn)行軟件設(shè)計(jì)的時(shí)候需要充分考慮硬件電路的特性以及可能發(fā)生的意外情況。
系統(tǒng)軟件部分開發(fā)在集成的開發(fā)環(huán)境中完成。 一般用于開發(fā)STM32 系列微控制器軟件的集成開發(fā)環(huán)境是Keil MDK。 Keil MDK 簡(jiǎn)潔實(shí)用,完美支持 Cortex-M 系列的產(chǎn)品,且可搜集到的STM32 的源碼資料大多是在Keil MDK 平臺(tái)上編寫的,這有助于新手學(xué)習(xí)開發(fā)技術(shù)。機(jī)器人的軟件部分主要包括各硬件模塊的初始化,AGV 巡線程序,定位程序,避障程序等[4]。 接下來分別進(jìn)行介紹。
路徑的規(guī)劃由電磁巡線模塊完成,需要編寫驅(qū)動(dòng)程序?qū)υ撃K進(jìn)行初始化以及數(shù)據(jù)采集等操作。 AGV 電磁巡線模塊返回的是模擬信號(hào),其初始化程序主要是對(duì)微控制器A/D 轉(zhuǎn)換模塊的配置[5]。STM32F103ZET6 自帶A/D轉(zhuǎn)換器,故無需外接A/D 轉(zhuǎn)換芯片。 巡線程序流程圖如圖7 所示。
圖7 巡線程序流程圖
圖7 中,對(duì)傳感器返回的數(shù)據(jù)進(jìn)行了差比和運(yùn)算,在此對(duì)差比和算法加以簡(jiǎn)要介紹。 機(jī)器人行進(jìn)方向共安裝了5 個(gè)電感傳感器模塊,取左右對(duì)稱的一對(duì)傳感器AD 值進(jìn)行如下運(yùn)算:
式中:e(t)為經(jīng)由這一對(duì)傳感器計(jì)算出的當(dāng)前的位置偏差;eL(t)為左側(cè)傳感器采集到的位置偏差;eR(t)為右側(cè)傳感器采集到的位置偏差。
取三種特殊情況進(jìn)行分析:
1)eL(t)=eLmax,eR(t)=0 時(shí),e(t)=1,可認(rèn)為此時(shí)機(jī)器人的向左偏差達(dá)到最大。
2)eR(t)=eRmax,eL(t)=0 時(shí),e(t)=-1,可認(rèn)為此時(shí)機(jī)器人的向右偏差達(dá)到最大。
3)eL(t)=eR(t)時(shí),e(t)=0,可認(rèn)為此時(shí)機(jī)器人行走在引導(dǎo)線的正中間。
4)其它情況時(shí),e(t)在上述3 個(gè)值之間連續(xù)變化。
使用這一種方法處理電感傳感器的偏差數(shù)據(jù),可以有效地抑制環(huán)境影響,增加系統(tǒng)的魯棒性。
本設(shè)計(jì)使用的ATK1218-BD 是一款GPS 定位模塊,采用串口方式與其它模塊通信。通信協(xié)議是NMEA-0813。NMEA - 0183 是一種海用電子設(shè)備定位的標(biāo)準(zhǔn)格式,由美國(guó)國(guó)家海洋電子協(xié)會(huì)(National Marine Electronics Association) 提出。 NMEA-0183 協(xié)議采用 ASCII 碼來傳遞GPS 定位信息,稱之為幀。 幀格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)。
1)“$”:幀命令起始位。
2)aaccc:地址域,前兩位為識(shí)別符(aa),后三位為語(yǔ)句名(ccc)。
3)ddd…ddd:數(shù)據(jù)。
4)“*”: 校驗(yàn)和前綴 (也可以作為語(yǔ)句數(shù)據(jù)結(jié)束的標(biāo)志)。
5)hh: 校驗(yàn)和 (check sum),$與 * 之間所有字符ASCII 碼的校驗(yàn)和(各字節(jié)做異或運(yùn)算,得到校驗(yàn)和后,再轉(zhuǎn)換 16 進(jìn)制格式的 ASCII 字符)。
6)(CR)(LF):幀結(jié)束,回車和換行符。
NMEA-0183 常用命令如下表1 所示。
表1 NMEA-0183 常用命令
本設(shè)計(jì)中使用的MPU6050 模塊自帶數(shù)字運(yùn)動(dòng)處理器(DMP),通過IIC 接口向控制器輸出數(shù)據(jù)。 慣性導(dǎo)航程序模塊中包含模塊的初始化程序、數(shù)據(jù)接收程序,加速度積分程序以及路徑規(guī)劃程序等。 程序流程圖如圖8 所示。
圖8 程序流程圖
小車在行進(jìn)過程中需要主動(dòng)避開障礙物,這一功能由超聲波測(cè)距傳感器作為硬件基礎(chǔ)。 避障功能的軟件部分主要是超聲波傳感器的驅(qū)動(dòng)程序[6]。驅(qū)動(dòng)程序包括傳感器的初始化與距離檢測(cè)程序等。 避障程序的流程圖如圖 9 所示。
圖9 避障程序流程圖
綜上所述,本系統(tǒng)設(shè)計(jì)了燃料電池驅(qū)動(dòng)機(jī)器人,工作效率高,減少環(huán)境污染等優(yōu)點(diǎn)。通過AGV、GPS、慣性導(dǎo)航等技術(shù)進(jìn)行控制,能夠完成對(duì)物料的準(zhǔn)確定位,保證了系統(tǒng)的安全性和可靠性。 系統(tǒng)設(shè)計(jì)減少了功耗,便于維修和檢修且維護(hù)成本較低,可廣泛應(yīng)用于農(nóng)業(yè)耕作的各個(gè)方面,可減少人力工資花費(fèi),增加農(nóng)民收入,有較好的應(yīng)用前景。