任文強(qiáng),張秋菊
(江南大學(xué) 機(jī)械學(xué)院,無錫 214000)
我國經(jīng)過多年的發(fā)展與科技革新,自主移動平臺和相關(guān)運(yùn)動控制技術(shù)取得飛速發(fā)展,其應(yīng)用更是遍布各個(gè)行業(yè),在工業(yè)生產(chǎn)中顯得尤為突出,為生產(chǎn)與運(yùn)輸帶來了極大的便利。經(jīng)過多年的研究,精準(zhǔn)優(yōu)化的路徑跟蹤依然存在一定的困難,其相關(guān)技術(shù)仍需要不斷提高,相關(guān)研究還需繼續(xù)進(jìn)行。Huang JS等提出一種可以保證誤差趨近于任意小的自適應(yīng)輸出反饋跟蹤控制器,該種控制方法主要是針對于非完整移動機(jī)器人的應(yīng)用[1];Chen DD等通過研究AGV小車的前進(jìn)與后退的相似之處,提出一種新的控制規(guī)則,但是對于一般性的AGV小車存在不適應(yīng)性,有待進(jìn)一步提高[2];文獻(xiàn)利用Backstepping的思想,通過構(gòu)造中間變量,使系統(tǒng)趨近于全局穩(wěn)定[3]。對于局部路徑的規(guī)劃工作更是投入許多,人工勢場法[4]、動態(tài)窗口法[5]和A*算法[6]等得到大量的應(yīng)用。但是依然存在問題,相關(guān)研究主要是針對于單舵輪驅(qū)動的情況,劉媛媛等利用單舵輪的形式進(jìn)行Gmapping Slam相關(guān)導(dǎo)航算法研究[7];山東大學(xué)的劉林煒等以單舵輪的AGV為研究對象,進(jìn)行基于模糊控制的避障系統(tǒng)研究[8]等,對于雙舵輪驅(qū)動的相關(guān)研究很少,但是隨著工業(yè)化發(fā)展,對移動平臺的性能和負(fù)載提出了更高的要求,單一的舵輪往往無法滿足,就需要雙舵輪的驅(qū)動形式。并且以上方法存在一定的設(shè)計(jì)復(fù)雜性和適用特殊性,往往需要投入大量的工作成本。
針對于以上問題,本研究以雙舵輪驅(qū)動為研究對象,研究與分析常用的三種雙舵輪驅(qū)動形式的優(yōu)劣,通過借助專用軟件進(jìn)行仿真和搭建樣機(jī)進(jìn)行驗(yàn)證,得出第一種驅(qū)動形式更適合應(yīng)用。并且借鑒動態(tài)窗口法,在傳統(tǒng)的動態(tài)窗口法基礎(chǔ)之上進(jìn)行適應(yīng)性改進(jìn),改進(jìn)其速度域搜索范圍和最后的評價(jià)函數(shù)指標(biāo),通過軟件仿真與樣機(jī)搭建驗(yàn)證該方法的可行性。
圖1 第一種驅(qū)動模式示意簡圖
假設(shè):α1與α2分別表示前后輪與中心方向線的夾角;R、R1和R2分別表示中心點(diǎn)、前輪和后輪的旋轉(zhuǎn)半徑;v、v1和v2分別表示中心點(diǎn)、前輪與后輪的驅(qū)動速度。因此可以得到如下關(guān)系:
其中:vx,表示在x軸方向上的分速度;vy,表示在y方向上的分速度;θ,表示整體旋轉(zhuǎn)角度;ω,表示其旋轉(zhuǎn)角速度。
線速度與角速度是整個(gè)移動平臺運(yùn)動的參數(shù)指標(biāo),通過控制前后舵輪的運(yùn)動速度與方向來控制整體的線速度與角速度。由示意圖可以得到如下的簡化關(guān)系式:
從而得到理論路徑:
后舵輪的轉(zhuǎn)動角度和速度的調(diào)整和前輪的運(yùn)動模型一樣的,只是其中的個(gè)別參數(shù)會發(fā)生變化。
圖2 第二種驅(qū)動模式示意簡圖
該種驅(qū)動方式是以后輪為中心,作為中心驅(qū)動輪,前輪作為轉(zhuǎn)向輪沿著預(yù)定軌跡進(jìn)行移動。得到其在參考坐標(biāo)系下的方程如下:
經(jīng)過計(jì)算,得到如下運(yùn)動學(xué)模型:
第三種驅(qū)動方式和第一種在形式上具有類似性,主要是以后輪作為轉(zhuǎn)向輪,前輪作為驅(qū)動輪。將整體的中心定義在前輪處,假設(shè)前輪與預(yù)定軌跡的行走路線是完全重合的,后輪作為改變方向的輪子。如下所示:
圖3 第三種驅(qū)動模式示意簡圖
根據(jù)相關(guān)文獻(xiàn)中定義的理論姿態(tài)與實(shí)際姿態(tài)的相關(guān)概念[9],設(shè)實(shí)際姿態(tài)為pr(xryrθr),理論姿態(tài)為pt(xtytθt)。因此可以得到誤差為:
在利用運(yùn)動模型進(jìn)行運(yùn)動控制過程中,軌跡跟蹤的最終目的就是通過控制相關(guān)參數(shù)間接控制誤差[10],即pe=0。得到:
其主要思想是:移動平臺在實(shí)際運(yùn)行過程中,中心點(diǎn)沿著預(yù)設(shè)路徑進(jìn)行移動,但是實(shí)際情況下前后輪或者移動平臺整體的移動路徑是覆蓋在移動平臺的預(yù)設(shè)路徑上的,會出現(xiàn)類似于圖中陰影部分的軌跡圖,可以根據(jù)陰影部分面積的大小確定移動平臺的軌跡與預(yù)設(shè)軌跡之間的重合度。且在實(shí)際使用過程中,最關(guān)心的并不是中心點(diǎn)的軌跡路徑,而是移動平臺的整體的運(yùn)動路徑,這樣方便于避障處理和多機(jī)位中的最優(yōu)路徑規(guī)劃。基于以上原因,本研究提出采用最優(yōu)覆蓋面積法確定移動平臺的軌跡。
圖4 示意簡圖
針對于上述第一種驅(qū)動方式,以移動平臺的中心作為預(yù)定軌跡跟蹤點(diǎn),前后輪中心的連線作為移動平臺簡化輪廓,則得到圖5示意圖。
圖5 第一種驅(qū)動模式行進(jìn)示意簡圖
在已知輪廓中心點(diǎn)的情況下,求前后輪中心點(diǎn)的坐標(biāo)如下:
對于第二種和第三種驅(qū)動方式采用類似上述第一種的方式計(jì)算前后輪中心的坐標(biāo)。然后計(jì)算出陰影部分的面積S,該面積即為評價(jià)實(shí)際軌跡與預(yù)定軌跡的重合度的指標(biāo),也為評價(jià)上述三種驅(qū)動方式優(yōu)劣的指標(biāo),最重要的是作為動態(tài)窗口法速度選擇的一個(gè)限制條件。
動態(tài)窗口法是用于單車體移動局部路徑規(guī)劃普遍適用的方法,可以計(jì)算出車體到達(dá)預(yù)定位置所需要的最合適的速度[11]。其主要思想為根據(jù)當(dāng)前運(yùn)行的速度在速度域中搜索下一時(shí)間的合適速度,即:根據(jù)目前的線速度或者角速度,在速度空間中計(jì)算出多組速度,考慮移動平臺的狀態(tài)模擬移動平臺在速度下的運(yùn)行軌跡,然后根據(jù)評價(jià)指標(biāo)函數(shù)選擇下一個(gè)時(shí)間間隔的速度,驅(qū)動移動平臺移動[12]。傳統(tǒng)的動態(tài)窗口算法主要是針對于局部坐標(biāo)系下的路徑,忽視了整體路徑[13],本研究將受整體軌跡覆蓋面積影響的前后輪速度作為一項(xiàng)限定指標(biāo),將覆蓋面積作為一項(xiàng)評價(jià)指標(biāo)。速度搜索的限制因素可分為三種:移動平臺速度約束、移動平臺加速度約束、障礙物約束[14],但是本研究拓展了一項(xiàng)約束——前后輪速度約束。
1)移動平臺速度約束
式中:vmin,vmax表示最小和最大線速度約束;ωmin,ωmax表示最小和最大角速度約束。
2)移動平臺加速度約束該項(xiàng)約束是由于移動平臺的電機(jī)性能和外界環(huán)境影響決定的。
式中:βmin,βmax表示最小和最大加速度;
3)障礙物約束
考慮障礙物,主要是由于移動平臺在運(yùn)動過程中會遇到障礙,當(dāng)遇到障礙時(shí),要求其必須緊急停止。
式中:dist(v,ω),表示所選速度軌跡中(v,ω)對應(yīng)距離障礙物的最近距離。
4)前后輪速度約束:
該項(xiàng)約束主要是考慮前后輪的速度。對于第一種驅(qū)動方式,其中心位置的速度才是速度域中所選定的速度,所以需要根據(jù)前后輪的速度對其進(jìn)行相應(yīng)的約束;對于第二,三種驅(qū)動方式,主要是考慮非中心位置輪的舵輪處的速度,該處以第一種驅(qū)動方式為例。
設(shè)計(jì)評價(jià)函數(shù)的目的是作為速度空間選擇的指標(biāo)或者標(biāo)準(zhǔn)。根據(jù)比較評價(jià)函數(shù),選擇其中最合適的速度。其設(shè)計(jì)原則:根據(jù)方位角偏差、距離障礙物最短距離、速度評價(jià)函數(shù)和相應(yīng)的權(quán)重,規(guī)劃路徑使其最快、最準(zhǔn)確的到達(dá)目標(biāo)位置。
引入面積評價(jià)函數(shù):
引入路徑偏差評價(jià)函數(shù):
綜上得到評價(jià)函數(shù)如下:
式中:head(v,ω),用于評價(jià)方位角偏差的評價(jià)函數(shù),該方位角偏差不是與目標(biāo)點(diǎn)的方位角偏差,而是與下一時(shí)刻的預(yù)定軌跡之間的偏差;vel(v,ω),用于評價(jià)當(dāng)前速度的評價(jià)函數(shù);σ,表示平滑函數(shù);α,β,γ和μ,分別表示對應(yīng)的權(quán)重。其整體算法流程如圖6所示。
圖6 算法流程圖
在實(shí)際應(yīng)用中,多采用直線和標(biāo)準(zhǔn)圓弧組合的方式,在直線與圓弧的交點(diǎn)處會發(fā)生曲率突變的情況,本研究假設(shè)不發(fā)生突變。首先借助MATLAB軟件進(jìn)行仿真,比較上述三種驅(qū)動方式中心點(diǎn)的軌跡跟蹤情況,不考慮窗口算法,取路徑函數(shù)如下,最大線速度vmax=0.8m/s,最大加速度amax=1.2m/s2,最大角速度ωmax=10°/s,最大角加速度βmax=10°/s2。
表1 算法參數(shù)設(shè)置
其結(jié)果如圖7所示。
圖7 第一次軌跡跟蹤仿真結(jié)果
從中可以得到:三種驅(qū)動方式與預(yù)定軌跡的重合度都很好,但是在預(yù)定軌跡圓弧與直線的交點(diǎn)處會發(fā)生一定的突變;第三種與第二種驅(qū)動方式的軌跡是一樣的。
引入動態(tài)窗口算法,本研究中不存在障礙物,因此,之后的結(jié)果如圖8所示。
可以得到:經(jīng)過改進(jìn)的動態(tài)窗口法之后,行進(jìn)路徑點(diǎn)與原預(yù)設(shè)路徑交錯(cuò),可以看出,其與預(yù)設(shè)路徑更逼近。但是,可以得到圖8(a)圖更加逼近預(yù)設(shè)路徑,因?yàn)槠洳捎玫氖且苿悠脚_的中心點(diǎn)作為移動參考點(diǎn),而圖8(b)、圖8(c)采用的是前后輪作為移動參考點(diǎn),這樣在實(shí)際情況下會出現(xiàn)較大的偏移。
圖8 第二次軌跡跟蹤仿真簡圖
為進(jìn)一步驗(yàn)證仿真結(jié)果,結(jié)合相關(guān)知識,將得到的控制方法應(yīng)用在搭建的樣機(jī)上,進(jìn)行進(jìn)一步的驗(yàn)證。樣機(jī)與底部舵輪布局模型如圖9所示。
圖9 實(shí)驗(yàn)樣機(jī)
圖10 采集數(shù)據(jù)結(jié)果
樣機(jī)行走路線依然采用上述的直線與標(biāo)準(zhǔn)圓弧的組合形式。主要是驗(yàn)證預(yù)定軌跡與通過數(shù)據(jù)采集的軌跡之間的偏差。分別進(jìn)行三種驅(qū)動形式下的實(shí)驗(yàn),通過里程計(jì)反饋舵輪的轉(zhuǎn)角與速度。
從中可以得出:第一種驅(qū)動方式相較于后面兩種,更接近于預(yù)定軌跡;在直線與圓弧的交點(diǎn)處,都出現(xiàn)了突變;第二種與第三種起始階段與預(yù)定軌跡保持良好,但是隨著行進(jìn)時(shí)間的推移,其偏離程度越來越大??偟那闆r與趨勢與仿真結(jié)果相同,但是實(shí)際環(huán)境中干擾因素很多,因此與仿真結(jié)果表現(xiàn)的情況存在差異。
多數(shù)研究主要是針對于單舵輪的情況,對于雙舵輪的運(yùn)動模型相關(guān)研究較少。本研究通過相應(yīng)的簡化方法,提出一種雙舵輪前后驅(qū)動方式,為工業(yè)上的應(yīng)用提供一定的參照。
引入覆蓋面積法,評價(jià)實(shí)際軌跡與預(yù)定軌跡之間的逼近程度,將其作為全局路徑規(guī)劃的評價(jià)指標(biāo)。
考慮偏差,改進(jìn)動態(tài)窗口法,將動態(tài)窗口法中的傳統(tǒng)評價(jià)函數(shù)中的方位角偏差函數(shù)改為目前時(shí)刻與下一時(shí)刻的目標(biāo)位置之間的速度方向偏差。
基于傳統(tǒng)動態(tài)窗口法的局限性,本研究考慮覆蓋面積區(qū)域?qū)φw規(guī)劃的影響,提出一種考慮全局與實(shí)際路徑情況的路徑規(guī)劃方法。
該方法也存在一定的缺陷。在仿真過程中,做了一些假設(shè)條件;在樣機(jī)驗(yàn)證環(huán)節(jié),由于測量設(shè)備的不精確和測量偏差等外部因素,導(dǎo)致實(shí)驗(yàn)數(shù)據(jù)只能逼近;在運(yùn)動學(xué)建模中,由于雙舵輪驅(qū)動形式的復(fù)雜性,本研究做了部分簡化。
本研究以雙舵輪驅(qū)動為研究對象,綜合比較常使用的三種雙舵輪驅(qū)動形式之間的優(yōu)缺點(diǎn),經(jīng)過仿真驗(yàn)證和實(shí)物驗(yàn)證環(huán)節(jié),推論出第一種驅(qū)動形式更合適實(shí)際情況的使用,但是第一種驅(qū)動形式存在復(fù)雜性,后續(xù)會繼續(xù)進(jìn)行相關(guān)的研究。在路徑跟蹤過程中借鑒動態(tài)窗口法,并在傳統(tǒng)的基礎(chǔ)之上進(jìn)行改進(jìn),最后提出一種適合本研究的方法,經(jīng)過仿真與樣機(jī)驗(yàn)證,存在可行性,后續(xù)還會繼續(xù)在算法的實(shí)時(shí)性和靈敏性上做進(jìn)一步的修正。