裴漢華,秦 晉
(杭州電子科技大學(xué)新型電子器件與應(yīng)用研究所,浙江 杭州 310018)
隨著老齡化問題不斷加劇,社會對于服務(wù)型機(jī)器人的需求進(jìn)一步增加。 在我國餐飲業(yè)中,顧客點餐和送餐等服務(wù)是最繁雜的工作[1]。 餐飲業(yè)的勞動力成本越來越高,傳統(tǒng)的以人為勞動力的運(yùn)營方式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足需求, 同時面對激烈的行業(yè)競爭,如何縮減成本也是迫切需要考慮的問題。
送餐機(jī)器人的循跡方式直接決定送餐的效率,常用的方案有以下幾種: 第一, 視覺導(dǎo)航, 使用CCD 攝像機(jī)來采集路面的圖像;第二,使用反射式紅外光電管;第三,使用激光掃;第四,使用磁導(dǎo)引傳感;第五,使用GPS 導(dǎo)航。 視覺識別導(dǎo)航通過采用CCD 攝像機(jī)構(gòu)建視覺導(dǎo)引系統(tǒng), 是實現(xiàn)智能導(dǎo)航的最佳方式之一,也是一項具有較大潛力的實用技術(shù)[2]。使用CCD 攝像機(jī)進(jìn)行視覺導(dǎo)航的最大優(yōu)勢在于能夠準(zhǔn)確地判斷出機(jī)器人前方較長一段距離上路面的走向, 給機(jī)器人的控制提供更多信息;缺點就是需要處理大量的計算任務(wù),處理速度慢。 使用反射式紅外光電管,信號處理的速度較快,電路結(jié)構(gòu)也比較簡單, 但是感知前方道路的距離有限,容易受外界環(huán)境的干擾,精度低。 使用激光掃描來導(dǎo)航,對環(huán)境無明顯要求,通過反光帶更改路線,但是成本太高。 磁導(dǎo)引傳感器通過鋪設(shè)磁帶更改路線,柔性較好,但一般磁導(dǎo)航傳感器只能檢測磁條上方100Gauss 以下的微弱磁場, 容易受到周圍金屬物質(zhì)的干擾,檢測的結(jié)果容易產(chǎn)生偏差[3]。 使用GPS 導(dǎo)航,環(huán)境的影響較小,穩(wěn)定性和精度都很高,只是成本太大。結(jié)合實際情況以及以上方案各自的優(yōu)缺點, 權(quán)衡成本、 精度和穩(wěn)定性后, 本文采用CCD 攝像頭來設(shè)計路徑識別模塊。
智能送餐機(jī)器人循跡系統(tǒng)主要由信號采集、信號放大、電源模塊、電機(jī)驅(qū)動四部分組成。 硬件上,以線性CCD 作為路面檢測元件, 運(yùn)放電路將采集到的信號進(jìn)行放大, 電源模塊將24V 的電壓經(jīng)過電路轉(zhuǎn)換,變成5V 和3.3V,分別給不同的模塊進(jìn)行供電。軟件上,使用模糊PID 算法實現(xiàn)制。其整體結(jié)構(gòu)如圖1 所示。
圖1 系統(tǒng)整體結(jié)構(gòu)Figure 1 Structure of the system
路面的信息采集由TSL1401 線性CCD 模塊完成。該模塊以TAOS 公司生產(chǎn)的TSL1401R 芯片為核心,集成了高達(dá)128 像素的線性陣列傳感器以及專門用于線性CCD 的透鏡。 該模塊可以看到一維的圖像, 并可以通過移動模塊來獲得二維圖像。信息采集模塊的電路如圖2 所示。
圖2 信息采集模塊電路Figure 2 Information collection module circuit diagram
由信號采集模塊輸出的信號量一般都十分小,無法滿足后續(xù)電路的需求,因此需要增大輸出電壓,放大輸出信號。 我們可以采用運(yùn)放來實現(xiàn)放大輸出信號。 為了確保輸出的電壓是在合理的工作范圍(不飽和、不截止、能分辨路面的狀況),需要根據(jù)TSL1401R 所選定的鏡頭確定運(yùn)放的放大倍數(shù)。
我們可以選用INA128 來進(jìn)行對微弱信號的放大,圖3 所示是信號放大模塊電路圖。 圖中,INA128 具有低噪聲和低失調(diào)電壓漂移等性能指標(biāo),而且放大倍數(shù)容易設(shè)置,只需通過一個外部電阻便可改變放大倍數(shù)。 圖中兩個RG 端口跨接的滑動變阻器就是用來調(diào)節(jié)放大倍率的,V+和V-端口需要提供正負(fù)相等的工作電壓,VIN+和VIN-端口輸入需要進(jìn)行放大處理的電壓,并從VO 端口輸出放大過后的電壓。
圖3 信號放大模塊電路Figure 3 Signal amplification module circuit diagram
智能機(jī)器人以兩個12V 的蓄電池作為外接電源,串聯(lián)電壓24V。 考慮到各模塊所需的電壓值不同, 使用LM2596 開關(guān)電壓調(diào)節(jié)器, 來實現(xiàn)電壓24V 轉(zhuǎn)換為5V, 并且電壓的輸出誤差低于4%。SPX1117 電壓調(diào)節(jié)器具有低功耗和靜態(tài)電流非常低的特點[4],因此采用SPX1117 來實現(xiàn)將電壓由5V轉(zhuǎn)換為3.3V。 電源轉(zhuǎn)換模塊的工作電路如圖4 和圖5 所示。
圖4 24V 轉(zhuǎn)5V 電路Figure 4 24V to 5V circuit
圖5 5V 轉(zhuǎn)3.3V 電路Figure 5 5V to 3.3V circuit
由于通過STM32 的I/O 端口輸出電流無法達(dá)到直接驅(qū)動IFR2804MOS 管的效果,我們考慮添加一個MOS 管的驅(qū)動電路,通過驅(qū)動電路為MOS 管提供足夠的的驅(qū)動電流, 確保MOS 管可以快速穩(wěn)定地工作。 電機(jī)驅(qū)動模塊的電路如圖6 所示。
圖6 電機(jī)驅(qū)動模塊電路Figure 6 Motor drive module circuit diagram
IR2110 是雙通道高壓、 高速電壓型功率開關(guān)器件柵極驅(qū)動器,具有自舉浮動電源,驅(qū)動電路簡單,只需一路電源即可同時驅(qū)動上、下橋臂[5]。
IR2110 依靠其自身所特有的高壓集成電路及無門鎖CMOS 技術(shù)驅(qū)動大功率MOS, 導(dǎo)通和關(guān)斷的響應(yīng)時間分別為120ns 和94ns,偏值電壓的最大值可以達(dá)到600V,具有很強(qiáng)的驅(qū)動力,在內(nèi)部設(shè)有欠壓封鎖,并設(shè)有外部保護(hù)封鎖端口。
智能送餐機(jī)器人不像傳統(tǒng)的尋跡機(jī)器人有路徑的約束,而是以自有的路徑進(jìn)行工作,因此行走更加靈活。 但是為了追求送餐的效率,需要進(jìn)行送餐路徑規(guī)劃。 機(jī)器人送餐的環(huán)境一般都是在室內(nèi),內(nèi)部的環(huán)境信息我們是完全知道的,因此我們可以設(shè)計從初始點到目標(biāo)點的路徑規(guī)劃。
室內(nèi)環(huán)境地圖可以用柵格法來表示。柵格法由W.E.Howden 于1968 年提出,它將環(huán)境空間劃分成包含二值狀態(tài)信息的方形柵格單元,這些單元相互連接且不重疊[6]。柵格法由兩部分組成:地圖建模和信息編碼。地圖建模就是把環(huán)境空間分割成多個相同的方形柵格。信息編碼就是指用二進(jìn)制數(shù)來表示柵格狀態(tài)。方格中,數(shù)字“1”代表障礙柵格,數(shù)字“0”代表自由柵格。完成地圖建模和信息編碼的效果圖如圖7 所示。
圖7 柵格地圖Figure 7 Raster map
由于蟻群算法的優(yōu)勢在于解決搜索全局最優(yōu)路徑問題,并且具有記憶功能,不會重復(fù)選擇走過的路徑,因此可以采用蟻群算法來進(jìn)行送餐機(jī)器人的路徑規(guī)劃。
蟻群算法模型首先要進(jìn)行參數(shù)的初始化,需要設(shè)置蟻群的規(guī)模、啟發(fā)因子、期望啟發(fā)因子等,選擇初始點和目標(biāo)點對應(yīng)的柵格號[7]。在選擇路徑時,由于選擇了柵格法建立地圖模型,每一次只能選擇移動到與當(dāng)前柵格相鄰的柵格,我們依據(jù)當(dāng)下位置和周邊位置的信息素強(qiáng)度計算出下一步朝各個方向移動的概率。 在每一次的路徑搜索循環(huán)中,記錄下來每一只螞蟻所經(jīng)過的路徑點,路徑點的坐標(biāo)單獨(dú)存儲起來,以此可記錄每只螞蟻走過的路徑,每一次迭代結(jié)束以后,都能獲得到一條此次循環(huán)的最短路徑。 一段時間以后,當(dāng)所有螞蟻都從起點到達(dá)終點,完成了一次迭代,這時每一只螞蟻行走路徑上的信息都需要進(jìn)行一次更新。蟻群算法的流程如圖8 所示。
圖8 蟻群算法流程圖Figure 8 Flow chart of ant colony algorithm
PID 控制算法應(yīng)用非常廣泛,小到控制一個元件的溫度,大到控制無人機(jī)的飛行姿態(tài)和飛行速度等,都可以使用PID 控制。
PID 控制是將比例(P)、積分(I)和微分(D)通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制。 它的原理簡單,適用面廣而且易于實現(xiàn),控制參數(shù)相互獨(dú)立,參數(shù)的選定比較簡單。 整個系統(tǒng)的原理如圖9所示。
圖9 PID 系統(tǒng)原理圖Figure 9 PID system schematic diagram
該系統(tǒng)由PID 控制器和被控對象組成。圖中,r(t)是給定值,y(t)是系統(tǒng)的實際輸出值。 PID 控制器給定值與實際輸出值構(gòu)成控制偏差為:
PID 的控制規(guī)律為:
在上式中,kp為比例系數(shù),T1為積分時間,TD為微分時間。
PID 控制器各校正環(huán)節(jié)的作用如下:
第一,比例環(huán)節(jié)。 比例環(huán)節(jié)的目的在于能夠成比例地反映控制系統(tǒng)的偏差信號,當(dāng)偏差信號一經(jīng)產(chǎn)生, 控制器就會依據(jù)偏差信號產(chǎn)生控制作用,減小誤差。
第二,積分環(huán)節(jié)。 積分環(huán)節(jié)主要是為了提高系統(tǒng)的無差度,消除靜差,積分作用的強(qiáng)弱與積分時間常數(shù)成正比,積分時間常數(shù)越大,積分作用越強(qiáng)。
第三,微分環(huán)節(jié)。 微分環(huán)節(jié)能夠很好地反映出偏差信號的變化趨勢,并且在偏差信號的值將要發(fā)生過大增長之前, 能夠引入一個有效的修正信號,從而加快系統(tǒng)的運(yùn)作速度,較少調(diào)節(jié)時間。
長期以來, 在設(shè)計和應(yīng)用PID 控制器的過程中,PID 參數(shù)的選取一直是一個難題, 因為參數(shù)的選取會影響比例作用、積分作用、微分作用的效果。在選取參數(shù)時,我們必須兼顧動態(tài)與靜態(tài)性能指標(biāo)要求。
PID 控制器參數(shù)的整定方法有很多,可以采用繼電型PID 自整定方法,它的基本思想是在控制系統(tǒng)中設(shè)置兩種模態(tài):測試模態(tài)和調(diào)節(jié)模態(tài)。 在測試模態(tài),由一個繼電非線性環(huán)節(jié)來測試系統(tǒng)的振蕩頻率和增益,而在調(diào)節(jié)模態(tài)下,由系統(tǒng)的特征參數(shù)首先得出PID 控制器,再通過此控制器調(diào)節(jié)系統(tǒng)的動態(tài)性能。 如果系統(tǒng)的測試發(fā)生變化,則需要重新進(jìn)入測試模態(tài)進(jìn)行測試,測試完成之后再回到調(diào)節(jié)模態(tài)進(jìn)行控制。
系統(tǒng)PID 算法的思路為: 利用CCD 獲取當(dāng)前送餐機(jī)器人的實時運(yùn)行速度,計算出當(dāng)前的實時速度與設(shè)定的速度的偏差值,將偏差值作為PID 算法的輸入; 根據(jù)PID 處理過后的值來計算出占空比,當(dāng)運(yùn)行速度未達(dá)到設(shè)定的速度時, 就通過增加或減小占空比來實現(xiàn)對運(yùn)行速度的調(diào)控。 不斷重復(fù)上述的過程, 實際的運(yùn)行速度就會在設(shè)定速度周圍上下波動。 當(dāng)所設(shè)置的參數(shù)合理時,實際運(yùn)行速度與設(shè)定值的差距就會很小。PID 控制算法的流程如圖10 所示。
圖10 PID 控制算法流程Figure 10 PID control algorithm flow
通過Simulation 對小車運(yùn)動和控制進(jìn)行仿真,如圖11 所示,圖中的線條為距離誤差。在機(jī)器人起步時, 我們給定一個誤差距離,PID 控制器會控制機(jī)器人做出調(diào)整, 但是距離誤差不會直接減少,而是出現(xiàn)了反復(fù)的波動,最后才趨于穩(wěn)定,使送餐機(jī)器人回到預(yù)定軌跡。
圖11 小車運(yùn)動仿真圖Figure 11 Simulation diagram of trolley movement
為了驗證上述理論分析的正確性,將送餐機(jī)器人在長30m、寬5m 的范圍內(nèi)進(jìn)行行駛,將機(jī)器人的實際運(yùn)行軌跡和模擬軌跡進(jìn)行對比,其試驗結(jié)果如圖12 所示。從試驗中可以看出,實際運(yùn)行軌跡和模擬運(yùn)行軌跡相差不大,表明送餐機(jī)器人可以很好地實現(xiàn)循跡。
圖12 機(jī)器人運(yùn)行軌跡試驗Figure 12 Robot trajectory experiment
為了分析機(jī)器人在循跡過程中的耗時狀況,分別選取不同的路徑長度,記錄下機(jī)器人循跡所花費(fèi)的時間,并將理論用時與實際用時進(jìn)行對比,試驗結(jié)果如表1 所示。 可以看出,機(jī)器人在循跡的過程中,理論用時和實際用時差距不大,表明機(jī)器人可以很好地實現(xiàn)循跡送餐功能。
表1 機(jī)器人循跡用時試驗Table 1 Robot tracking time experiment
為了解決機(jī)器人在送餐過程中存在的穩(wěn)定性問題,設(shè)計了一種基于模糊PID 的控制算法,試驗表明該算法可以使得機(jī)器人沿著預(yù)定的軌跡運(yùn)行,穩(wěn)定可靠,具有較好的實用性。