石秀敏,孫建康,鄧三鵬
(天津職業技術師范大學機器人及智能裝備研究院,天津 300222)
隨著人工智能和移動機器人技術的發展,“人工智能+移動機器人”已經成為國內外研究的熱點[1]。三輪全向輪式移動機器人不僅能夠完成自身的零半徑轉向控制,可以達到任何期望的方向,而且具有機動性高,運動敏捷的特點,對狹小空間有很好的適應性,得到了越來越廣泛的應用[2]。同時,為了更好地完成任務,需要機器人精確跟蹤預定的軌跡,因此全向移動機器人核心技術的軌跡跟蹤問題,受到了學術界和實踐者的廣泛關注[3]。
由于機器人傳感器噪聲、外界干擾和未建模參數等因素的干擾,針對全向輪式移動機器人的軌跡跟蹤控制器的設計是非常具有挑戰性的[4]。為了提高全向移動機器人的軌跡跟蹤精度,業界已經出現了各種各樣的方法,如控制系統在模型預測控制律下,可以按照指定的軌跡進行跟隨,但需要系統精確的動力學和運動學模型,且分析過程較繁瑣,不利于分析和求解[4-6]。采用滑膜控制器不依賴于系統的數學模型,可以針對突變參數做出快速反應,擁有很強的適應性,但由于其自身的抖振問題增加了在軌跡跟蹤控制上的應用難度[7]。使用Backstepping方法可以實現軌跡跟蹤的全局一致穩定性,但是需要提前給定控制器的增益,而該增益是不變的,當給定的參考軌跡發生突變時,再使用能使全局穩定的控制器增益,就很難取得較好的控制效果[8]。自適應控制可以不斷地獲取系統自身的狀態,然后及時進行識別,根據識別結果給出響應的輸出,使得調控性能達到最優,缺點是參數的選取比較繁瑣[9]。模糊控制方法具有一定的魯棒性,但是模糊規則主要是人為制定,可能存在考慮不全面的因素,并且模糊控制不能夠自我學習和調整,因此靜態誤差很難消除[10]。神經網絡雖然具有諸多優點,但是由于神經網絡的初值采用隨機復制策略,這就導致學習速度慢并且存在局部極小值的問題,進而影響網絡的預測能力[11]。傳統的PID控制器可以直接根據偏差調整控制量,控制結構簡單,調整方便,但是其參數值總是固定不變,不能根據當前所處的環境進行動態調整[12]。綜上所述,現有的軌跡跟蹤控制器的設計大都比較復雜或者其性能不能很好地跟蹤參考軌跡,因此本文使用基于改進的遺傳算法和BP-PID進行融合作為機器人的控制器[13],并結合機器人的運動學進行仿真實驗,驗證控制算法的軌跡跟蹤精度。
無論是通常使用的四輪自行車模型還是兩輪的差速驅動模型,其運動軌跡主要由直線和圓弧組成,運動軌跡比較復雜,而不能使其達到點到點的跟蹤要求,全向輪式移動機器人可以達到一面直線運動,同時又能進行轉向的效果,其運動軌跡可以歸納為折線[14]。本節分析了全向輪式移動機器人的運動學模型,為后期的軌跡跟蹤控制器的設計做鋪墊。
全向輪式移動機器人的數學模型如圖1所示。

圖1 全向輪式移動機器人的數學模型
圖1中,定義世界坐標系X-O-Y固定于機器人工作的平面,機器人坐標系Xe-Oe-Ye固定于機器人的重心Oe處,L為3個輪子相對于機器人中心的距離,VA、VB、VC分別為3個輪子的速度方向。設p=(x yθ)T,q=(v w)T,(x y)為在X-O-Y坐標中的位置;θ為全向輪式移動機器人的方向角;v為全向輪式移動機器人的輸入線速度;w為全向輪式移動機器人的輸入角速度。則其運動學方程可以表示為

考慮全向輪式移動機器人3個輪子的轉速,即VA、VB、VC大小與控制輸入q=(v w)T之間的變換關系。即可得到全向輪式移動機器人的運動學模型,ψ=60°為機器人輪速方向與等邊三角形一條邊的夾角,見圖1。Vx為機器人在自身坐標系下Xe方向的速度;Vy為機器人在自身坐標系下Ye方向的速度。則機器人在自身坐標系下的運動學方程為

為了便于分析,需要把機器人在自身坐標系下的運動學方程轉化為世界坐標系下的運動學方程,設機器人在世界坐標系下的速度為V=(VgxVgywg)T,那么由自身坐標系下的運動學方程轉化為世界坐標系下的運動學方程的變換關系如下

聯立式(2)、(3)便可得到世界坐標系下機器人速度和角速度轉換為其自身3個輪子的轉速,即為求得的機器人運動學模型

式中:A為-cosψcosθ;B為sinψsinθ;C為-cosψsinθ;D為sinψcosθ;V=(VgxVgywg)T中的Vgx、Vgy分別為世界坐標系中V沿X軸和Y軸的2個分量;wg為w。
為了使全向移動機器人對軌跡進行精確的跟蹤,結合上文給出的全向移動機器人的運動學模型,設計了基于改進GA的BP-PID控制器,本文總體的控制器以及系統的運行結構設計如圖2所示。

圖2 機器人的軌跡跟蹤的總體控制圖
從圖2可知,總體控制軌跡跟蹤控制器和機器人運動學模型2部分組成,其中,xr、yr、θr分別為參考路徑上每個點的x、y值以及當前點的斜率;x、y、θ分別為機器人當前位置的x、y值及其航向角;xe、ye、θe分別為機器人當前點相對于參考點之間的誤差以及航向角之間的誤差;cur為參考路徑當前點的曲率;kp、ki、kd為PID控制器中的3個控制量。
首先,使用遺傳算法優化得到神經網絡需要的初始值后,BP神經網絡通過梯度下降法不斷地對PID的3個參數進行擬合。其次,當PID控制器得到優化后的kp、ki、kd參數,結合位姿誤差以及參考軌跡的曲率,給出3輪全向移動機器人的速度和角速度,并把這2個參數輸入到機器人的運動學模型中,進而得出機器人當前在世界坐標系中的位姿。再返回到參考軌跡處,并與參考軌跡的下一個點進行比較。最后,依次循環使得機器人精確地跟蹤預定軌跡。
雖然神經網絡可以用任意精度擬合任意給定的函數,但由于BP算法存在陷入局部最優值的問題,進而導致出現錯誤的工作模式。而遺傳算法是基于生物進化的自適應優化方法,利用適應度函數決定進化方向,并且在種群的全局范圍內進行尋優,具有全局尋優性。因此考慮使用遺傳算法全局尋優的優點彌補BP網絡易陷入局部最優值的缺點,其原理就是利用遺傳算法尋找BP網絡的初始權值,進而避免因隨機賦值而導致BP網絡出現局部最優解的現象。因此,將2種算法融合以提高網絡的訓練速度和輸出的正確性,優化流程如圖3所示。

圖3 GA優化BP網絡總體框圖
改進的遺傳算法主要流程如下:
(1)種群初始化
首先把神經網絡隨機產生的初始權值作為遺傳算法的一個個體,并在在解空間內隨機產生N個體,為了便于計算機的高效計算,采用二進制對每個個體進行編碼。
(2)適應度函數
因為適應度函數決定著整個群體的進化方向,淘汰劣質個體,保留優質個體,保證群體向著好的方向發展。求出誤差的均方根值再求倒數,即可得出個體的適應度值F為式中:T為神經網絡的訓練次數;yi為BP神經網絡第i次的預測輸出;oi為第i次的期望輸出,誤差值越小,適應度值越高。

(3)選擇操作
選擇操作的方式有很多,本文使用輪盤賭法對每個個體進行選擇,只需要按照輪盤賭法的選擇公式進行選擇即可,選擇公式如下

式中:Fi為個體i的適應度值;N為種群個體數目。
(4)交叉操作
從染色體的某一位開始向后直到末尾,進行2個染色體之間的基因交叉互換,有助于父代優良的基因傳遞給下一代,進而產生更加優秀的個體。遺傳算法染色體交叉圖如圖4所示。

圖4 遺傳算法染色體交叉圖
(5)變異操作
根據生物學上的基因突變原理,也是在染色體上的某個基因進行突變,因按照二進制進行編碼,所以隨機對某一位基因進行取反操作,進而產生新的染色體。遺傳算法染色體變異圖如圖5所示。

圖5 遺傳算法染色體變異圖
雖然遺傳算法具有全局尋優性能,但是在其實際的運用過程中仍存在過早收斂于局部最優的現象。究其原因就在于其固定的交叉和變異概率,為了解決該問題,避免過早出現種群過于單一現象,改進方法的基本原理為:前期讓其保持較低的交叉概率和較高的變異概率,以便在解空間內全局尋優,在優化的后期,這2個概率采用與前期相反的操作,有助于種群快速找到最優解,見式(7)和(8)。

pc∈[pc2pc1]為交叉概率以及交叉概率所屬的最小最大值范圍;pm∈[pm2pm1]為變異概率以及變異概率所屬的最小最大值范圍;F′為兩交叉的染色體中適應度較大個體的適應度值;F為當前變異個體的適應度值;Favg、Fbest分別為種群中的平均適應度值和最大適應度值。
為了驗證基于改進GA與BP-PID融合算法對機器人軌跡跟蹤的有效性,本文使用Matlab 2020b作為仿真實驗環境,創建了移動機器人模擬運行的預定軌跡,并按照控制算法流程編寫了移動機器人軌跡跟蹤的控制代碼,在控制算法的設計中,遺傳算法的種群大小和遺傳代數都設置為50,其交叉和變異概率使用改進后的概率公式進行動態計算,其中,pc1=0.9,pc2=0.6,pm1=0.1,pm2=0.01,并采用10位二進制碼表示每個個體,然后對BP網絡的結構參數進行確定,BP網絡采用3層結構,7個輸入節點,8個中間節點,3個輸出節點,輸出節點分別是需優化的kp、ki、kd三個參數。為了進行對比分析,設置常規PID控制器參數,kp=1.0、ki=0.5、kd=0.25,最后是全向輪式移動機器人初始參數設定:初始速度v=8.3 m/s,航向角采用直角坐標系進行表達,初始位姿為(x yθ)=(0,0,0)。
在PID軌跡跟蹤控制算法的基礎上添加了神經網絡,使用神經網絡自動擬合PID的參數,實驗結果如圖6所示。

圖6 BP-PID控制器和PID控制器對軌跡跟蹤效果對比圖
機器人的運動軌跡是由幾個自定義的點位,并結合樣條曲線生成一條光滑的曲線。以上各圖中黑色虛線表示機器人的預定路徑,紅色實線表示機器人根據不同控制算法生成的實際運行軌跡,藍色實線表示機器人當前點在x或y方向上距離參考點的偏差。對比圖6(a)、(b)可知,圖6(b)的軌跡跟蹤誤差較大,不能實現PID參數的自動調節,而圖6(a)由于添加了神經網絡,可對參考路徑的曲率進行辨別,進而實現自動調整ID參數的作用,同時從圖6(c)、(d)和圖6(e)、(f)可以發現,使用神經網絡控制器相比單純使用PID控制器在x和y方向上的偏差更小。通過對比得出,經過BP網絡擬合得出的運行軌跡比單純使用PID控制器得出的控制效果要有很大的改善,但是由于神經網路的初始權值是隨機賦值的,網絡的擬合結果可能存在局部最小值,為了改善該問題,使用遺傳算法先對網絡的初始權值進行尋優,以保證網絡擬合時收斂于全局最小值。
為了消除網絡隨機賦值對跟蹤效果的影響,把改進之后的遺傳算法應用在網絡權值的初始化上,GABP-PID控制器和BP-PID控制器軌跡跟蹤效果對比如圖7所示。

圖7 GA-BP-PID控制器和BP-PID控制器軌跡跟蹤效果對比圖
圖7(a)、(c)、(e)為使用改進GA與BP-PID融合之后的控制器得出的運行軌跡,圖7(b)、(d)、(f)為使用BP-PID控制器得出的運行軌跡。從圖7可以看出,機器人的實際軌跡幾乎貼近預定的參考軌跡,機器人在y軸方向的誤差更小,并且經過多次試驗發現基于改進GA與BP-PID融合之后的算法運行效果具有穩定性,而使用BP-PID控制器運行的效果具有不確定性,誤差難以控制,因此基于改進GA與BP-PID融合之后的算法在軌跡跟蹤精度和輸出結果的準確性上有了很大的提高。使用PID控制器和基于改進GA與BP-PID融合的控制器的對比實驗,其軌跡跟蹤的結果如圖8所示。

圖8 GA-BP-PID控制器和PID控制器軌跡跟蹤效果對比圖
圖8中,由基于改進GA與BP-PID融合控制器得出圖8(a)、(c)、(e),由PID控制器得出圖8(b)、(d)、(f)。對比圖8(a)、(b)可知,單純使用PID控制器進行軌跡跟蹤,跟蹤精度差,易出現超調,使得追蹤效果不穩定,而使用改進之后的PID算法,即基于改進GA與BP-PID融合控制器能夠明顯地克服這些問題,軌跡跟蹤的效果不易超調,比較穩定。同時,對比x方向的圖8(c)、(d)和y方向的圖8(e)、(f)可知,使用改進后的PID算法誤差更小。因此,相比傳統的PID算法,基于改進GA與BP-PID融合控制算法的誤差更小,更能精確地跟蹤預定的軌跡。
本文結合移動機器人的運動學模型,設計了移動機器人的軌跡跟蹤控制器,基于改進GA與BP-PID融合為主要控制算法,并對該算法進行了模擬仿真,得出結論如下:使用固定的PID參數進行軌跡跟蹤,雖然可以達到一定的效果,但是仍然出現了很大的偏差,而BP網絡易陷入局部最優解,不能對PID參數進行很好地擬合。因此,為了提高網絡的全局尋優性能,使用GA優化BP網絡的初值,然后再使用BP網絡進行PID參數的擬合。得到的效果明顯比單獨使用BP進行優化更能精確地跟蹤路徑,通過Matlab模擬仿真,驗證了使用基于改進GA與BP-PID融合控制算法能夠使移動機器人對預期軌跡進行精確地跟蹤。