郝麗英,宋起超
(1.黑龍江工程學(xué)院 學(xué)術(shù)理論研究部,黑龍江 哈爾濱 150050;2.黑龍江工程學(xué)院 電氣與信息工程學(xué)院,黑龍江 哈爾濱 150050)
基于神經(jīng)網(wǎng)絡(luò)的移動(dòng)機(jī)器人預(yù)瞄軌跡跟蹤控制算法研究
郝麗英1,宋起超2
(1.黑龍江工程學(xué)院 學(xué)術(shù)理論研究部,黑龍江 哈爾濱 150050;2.黑龍江工程學(xué)院 電氣與信息工程學(xué)院,黑龍江 哈爾濱 150050)
軌跡跟蹤控制是移動(dòng)機(jī)器人運(yùn)動(dòng)控制中很復(fù)雜的問(wèn)題。針對(duì)該問(wèn)題,設(shè)計(jì)一種基于神經(jīng)網(wǎng)絡(luò)的預(yù)瞄軌跡跟蹤控制算法。為了保證機(jī)器人具有較好的軌跡跟蹤性能,借鑒駕駛車輛的預(yù)瞄模型,即控制驅(qū)動(dòng)輪輸出轉(zhuǎn)矩,使得機(jī)器人在預(yù)瞄時(shí)間內(nèi)到達(dá)預(yù)瞄位置。建立移動(dòng)機(jī)器人動(dòng)力學(xué)方程,搭建移動(dòng)機(jī)器人動(dòng)力學(xué)simulink模型,通過(guò)仿真獲取在移動(dòng)機(jī)器人不同狀態(tài)下的實(shí)驗(yàn)數(shù)據(jù)。采用BP神經(jīng)網(wǎng)絡(luò)對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行訓(xùn)練,對(duì)驅(qū)動(dòng)輪的驅(qū)動(dòng)扭矩進(jìn)行控制。最后通過(guò)仿真實(shí)驗(yàn)對(duì)該軌跡跟蹤控制算法的有效性進(jìn)行驗(yàn)證。
移動(dòng)機(jī)器人;軌跡跟蹤;神經(jīng)網(wǎng)絡(luò);預(yù)瞄軌跡
軌跡跟蹤控制是移動(dòng)機(jī)器人運(yùn)動(dòng)控制中很復(fù)雜的問(wèn)題[1]。移動(dòng)機(jī)器人的軌跡跟蹤是指移動(dòng)機(jī)器人跟蹤事先規(guī)劃好的一條以時(shí)間為函數(shù)的曲線軌跡[2]。近年來(lái),國(guó)內(nèi)外對(duì)移動(dòng)機(jī)器人的軌跡跟蹤問(wèn)題進(jìn)行了大量的研究,并提出了很多基于運(yùn)動(dòng)學(xué)模型的軌跡跟蹤控制算法,包括神經(jīng)網(wǎng)絡(luò)控制、神經(jīng)模糊控制等[3]。但是這些基于運(yùn)動(dòng)學(xué)模型的控制算法沒(méi)有考慮到移動(dòng)機(jī)器人的動(dòng)力學(xué)問(wèn)題。這些軌跡跟蹤算法從車輪的轉(zhuǎn)速出發(fā),通過(guò)控制驅(qū)動(dòng)輪按照預(yù)期的轉(zhuǎn)速來(lái)實(shí)現(xiàn)機(jī)器人的軌跡跟蹤問(wèn)題。然而在實(shí)際問(wèn)題中,移動(dòng)機(jī)器人在運(yùn)動(dòng)過(guò)程中,由于慣性、摩擦等因素的存在,機(jī)器人動(dòng)力學(xué)的影響,使得機(jī)器人并不能按照預(yù)期的軌跡運(yùn)動(dòng)[4]。為了提高控制算法的魯棒性,設(shè)計(jì)一種具有很強(qiáng)的魯棒性的控制算法具有很大的意義。
移動(dòng)機(jī)器人采用后輪驅(qū)動(dòng),前輪為萬(wàn)向輪,其轉(zhuǎn)向方式為差速轉(zhuǎn)向。機(jī)器人之所以能夠在地面上自由地運(yùn)動(dòng)是因?yàn)闋恳Φ拇嬖?。將機(jī)器人驅(qū)動(dòng)輪上的牽引力分為縱向分力和橫向分力,如圖1所示??v向分力與車輪的驅(qū)動(dòng)扭矩成正比,該驅(qū)動(dòng)扭矩來(lái)自驅(qū)動(dòng)電機(jī)。在這兩個(gè)力的作用下,機(jī)器人會(huì)向前或向后運(yùn)動(dòng)。在加速或減速的同時(shí),機(jī)器人需要較大的驅(qū)動(dòng)扭矩。如果縱向分力超過(guò)了動(dòng)摩擦力,機(jī)器人會(huì)發(fā)生縱向滑動(dòng)。當(dāng)機(jī)器人改變運(yùn)動(dòng)方向時(shí)產(chǎn)生的離心力,會(huì)形成橫向牽引力[5-7]。
圖1 移動(dòng)機(jī)器人
移動(dòng)機(jī)器人的運(yùn)動(dòng)通過(guò)驅(qū)動(dòng)輪的轉(zhuǎn)速或者驅(qū)動(dòng)扭矩進(jìn)行控制。與wr分別表示左右兩側(cè)驅(qū)動(dòng)輪角速度,u表示移動(dòng)機(jī)器人縱向速度,v表示移動(dòng)機(jī)器人橫向速度,r表示移動(dòng)機(jī)器人橫擺角速度。移動(dòng)機(jī)器人的運(yùn)動(dòng)學(xué)模型為
(1)
(2)
(3)
ul=Rwl,
(4)
ur=Rwr.
(5)
式中:ul和ur分別表示左右兩側(cè)驅(qū)動(dòng)輪縱向速度,b表示驅(qū)動(dòng)輪中心到幾何中心線的距離,d表示驅(qū)動(dòng)輪到質(zhì)心的距離,R表示驅(qū)動(dòng)輪半徑。
在移動(dòng)機(jī)器人坐標(biāo)系中,航向角在世界坐標(biāo)系中的描述為
(6)
(7)
考慮到移動(dòng)機(jī)器人在平面運(yùn)動(dòng)中,具有3個(gè)自由度。建立基于牛頓方程的移動(dòng)機(jī)器人動(dòng)力學(xué)方程為
(8)
(9)
(10)
(11)
(12)
式中:m為機(jī)器人的質(zhì)量;Px,Py分別表示作用于機(jī)器人質(zhì)心處的外力;Iz表示機(jī)器人相對(duì)于Z軸的轉(zhuǎn)動(dòng)慣量;Ie表示機(jī)器人輪子以及傳動(dòng)裝置的轉(zhuǎn)動(dòng)慣量;τL,τR分別表示機(jī)器人左右兩側(cè)驅(qū)動(dòng)輪的驅(qū)動(dòng)扭矩。
將式(1)~(8)帶入到式(9)~(13)中,得到移動(dòng)機(jī)器人動(dòng)力學(xué)方程
(13)
式中:Ωu=mR2+2Ie,Ωr=2b2Ie+R2(md2+Iz),τu=τL+τR,τr=τL-τR。
在以上分析基礎(chǔ)上,搭建移動(dòng)機(jī)器人動(dòng)力學(xué)模型如圖2所示。
圖2 移動(dòng)機(jī)器人動(dòng)力學(xué)模型
2.1BP神經(jīng)網(wǎng)絡(luò)模型
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)是簡(jiǎn)化模擬生物神經(jīng)系統(tǒng)的組織結(jié)構(gòu)、處理方式和系統(tǒng)功能的一類人工智能系統(tǒng),在模式識(shí)別、信號(hào)處理和機(jī)器人及非線性控制等領(lǐng)域有著廣泛的應(yīng)用[8-9]。BP前向神經(jīng)網(wǎng)絡(luò)模型的特點(diǎn)是信號(hào)前向傳遞,誤差反向傳播算法。
神經(jīng)網(wǎng)絡(luò)模型如圖3所示,由多個(gè)神經(jīng)元按照一定的拓?fù)浣Y(jié)構(gòu)連接起來(lái),其輸出可描述為
(14)
式中:Ni,Nh分別表示輸入層、隱含層神經(jīng)元的個(gè)數(shù);vij,wij分別表示隱含層和輸出層之間的權(quán)值。BP神經(jīng)網(wǎng)絡(luò)激勵(lì)函數(shù)常選用sigmod函數(shù),表示為
(15)
根據(jù)網(wǎng)絡(luò)輸出和期望輸出,可以計(jì)算網(wǎng)絡(luò)預(yù)測(cè)誤差
ek=Yk-Ok.
(16)
根據(jù)網(wǎng)絡(luò)預(yù)測(cè)的誤差更新網(wǎng)絡(luò)連接權(quán)值
i=1,2,…,n;j=1,2,…,l.
(17)
wjk=wjk+ηHjek,
j=1,2,…,l;k=1,2,…,m.
(18)
根據(jù)網(wǎng)絡(luò)預(yù)測(cè)的誤差更新網(wǎng)絡(luò)節(jié)點(diǎn)閾值
i=1,2,…,n;j=1,2,…,l.
(19)
bk=bk+ek,k=1,2,…,m.
(20)
圖3 BP神經(jīng)網(wǎng)絡(luò)拓?fù)?/p>
2.2 移動(dòng)機(jī)器人預(yù)瞄軌跡控制模型
移動(dòng)機(jī)器人的預(yù)瞄軌跡跟蹤是指移動(dòng)機(jī)器人跟蹤事先規(guī)劃好的一條以時(shí)間為函數(shù)的曲線軌跡,控制機(jī)器人按照預(yù)瞄軌跡曲線軌跡運(yùn)動(dòng)。從模仿駕駛員駕車的角度出發(fā),預(yù)瞄軌跡跟蹤的控制目標(biāo)是使機(jī)器人的運(yùn)動(dòng)盡可能和預(yù)期的軌道相一致,即在當(dāng)前機(jī)器人行駛狀態(tài)下,控制驅(qū)動(dòng)輪輸出扭矩,使得機(jī)器人在一定時(shí)間內(nèi)到達(dá)預(yù)期位置。在此基礎(chǔ)上,設(shè)計(jì)基于神經(jīng)網(wǎng)絡(luò)的機(jī)器人預(yù)瞄軌跡跟蹤控制,如圖4所示。
圖4 基于神經(jīng)網(wǎng)絡(luò)的機(jī)器人預(yù)瞄軌跡跟蹤控制
定義預(yù)瞄軌跡方程為
(21)
式中,x,y為預(yù)瞄軌跡的坐標(biāo)值,是關(guān)于時(shí)間t的函數(shù)。
定義預(yù)瞄軌跡相對(duì)于機(jī)器人當(dāng)前位置的相對(duì)距離el和相對(duì)角度eφ,則有
(22)
(23)
式中:X,Y為當(dāng)前機(jī)器人的坐標(biāo)值;φ為當(dāng)前機(jī)器人的航向角。
根據(jù)預(yù)期軌跡以及機(jī)器人當(dāng)前運(yùn)動(dòng)狀態(tài),通過(guò)式(22)、式(23)計(jì)算出預(yù)瞄位置相對(duì)于機(jī)器人的位置信息,包括相對(duì)距離el及相對(duì)角度eφ。神經(jīng)網(wǎng)絡(luò)控制器的輸入量為預(yù)瞄位置相對(duì)距離和角度,以及機(jī)器人當(dāng)前運(yùn)動(dòng)狀態(tài)信息,包括當(dāng)前運(yùn)動(dòng)速度u以及橫擺角速度r。神經(jīng)網(wǎng)絡(luò)的輸出量為機(jī)器人左右兩側(cè)驅(qū)動(dòng)輪轉(zhuǎn)矩τL以及τR。
為了驗(yàn)證所設(shè)計(jì)控制器的性能,利用Matlab/Simulink對(duì)所設(shè)計(jì)的控制算法進(jìn)行仿真實(shí)驗(yàn)。仿真時(shí)使用的移動(dòng)機(jī)器人參數(shù)如表1所示,仿真實(shí)驗(yàn)采用的預(yù)瞄時(shí)間為1 s。
表1 機(jī)器人參數(shù)值
3.1 神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練
在進(jìn)行神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練之前,首先要獲取實(shí)驗(yàn)數(shù)據(jù)。利用Matlab/Simulink所搭建的移動(dòng)機(jī)器人動(dòng)力學(xué)模型,隨機(jī)給定兩側(cè)驅(qū)動(dòng)輪輸入扭矩,得到1 s后機(jī)器人所到達(dá)的相對(duì)位置。為了得到足夠多的有效實(shí)驗(yàn)數(shù)據(jù),將控制量每過(guò)1 s進(jìn)行隨機(jī)變化,得到相對(duì)應(yīng)的機(jī)器人狀態(tài)參數(shù)。部分仿真數(shù)據(jù)如圖5、圖6所示。從圖中可以看出,大量的隨機(jī)仿真實(shí)驗(yàn)?zāi)軌蚝w機(jī)器人在不同的狀態(tài)下、不同的驅(qū)動(dòng)輪轉(zhuǎn)矩下預(yù)瞄時(shí)間內(nèi)的運(yùn)動(dòng)狀態(tài)。
通過(guò)多次仿真,得到1 000組實(shí)驗(yàn)數(shù)據(jù)。在得到實(shí)驗(yàn)數(shù)據(jù)的基礎(chǔ)上,搭建神經(jīng)網(wǎng)絡(luò)控制模型。利用基于梯度下降法的BP神經(jīng)網(wǎng)絡(luò)對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行訓(xùn)練。神經(jīng)網(wǎng)絡(luò)采用三層結(jié)構(gòu),輸入層神經(jīng)元個(gè)數(shù)為3,隱含層神經(jīng)元個(gè)數(shù)為15,輸出層神經(jīng)元個(gè)數(shù)為2。
圖6 移動(dòng)機(jī)器人仿真實(shí)驗(yàn)部分?jǐn)?shù)據(jù)
3.2 神經(jīng)網(wǎng)絡(luò)仿真控制實(shí)驗(yàn)
為了驗(yàn)證所設(shè)計(jì)的基于神經(jīng)網(wǎng)絡(luò)預(yù)瞄控制器算法能夠保證機(jī)器人按照預(yù)期的軌跡運(yùn)動(dòng),將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)器人進(jìn)行仿真實(shí)驗(yàn)。設(shè)計(jì)預(yù)瞄路徑為
機(jī)器人初始位置為[x,y,φ]=[0,0,0],初始預(yù)瞄點(diǎn)為[0.5,0,0],初始狀態(tài)參數(shù)[l,θ,u,r]=[0.5,0,0,0]。圖7所示為機(jī)器人在控制算法下的預(yù)瞄路徑和時(shí)間軌跡。從圖中可以看出,在機(jī)器人行駛階段,運(yùn)動(dòng)軌跡與期望軌跡較為接近,基本能夠按照預(yù)瞄軌跡運(yùn)動(dòng)。左右兩側(cè)驅(qū)動(dòng)輪轉(zhuǎn)矩如圖8所示,在機(jī)器人起步階段,兩側(cè)驅(qū)動(dòng)輪轉(zhuǎn)矩變化比較大,起步之后的階段,兩側(cè)驅(qū)動(dòng)輪轉(zhuǎn)矩變化較為平穩(wěn)。
圖7 移動(dòng)機(jī)器人軌跡跟蹤
圖8 神經(jīng)網(wǎng)絡(luò)模型輸出轉(zhuǎn)矩
本文設(shè)計(jì)了一種基于神經(jīng)網(wǎng)絡(luò)的移動(dòng)機(jī)器人預(yù)瞄軌跡跟蹤控制算法。經(jīng)過(guò)仿真驗(yàn)證,在該控制算法下,移動(dòng)機(jī)器人在起步階段兩側(cè)驅(qū)動(dòng)輪轉(zhuǎn)矩有所波動(dòng),而過(guò)了起步階段后,移動(dòng)機(jī)器人能夠較為穩(wěn)定地按照預(yù)期路線運(yùn)動(dòng)。
[1] 羅三定, 劉薇. 四輪移動(dòng)機(jī)器人智能預(yù)瞄軌跡跟蹤控制[J]. 計(jì)算機(jī)工程與應(yīng)用, 2009,45(23):203-205.
[2] 張燕. 基于神經(jīng)網(wǎng)絡(luò)的移動(dòng)機(jī)器人軌跡跟蹤控制[D]. 秦皇島:燕山大學(xué), 2010.
[3] KIM D H, OH J H. Tracking control of a two-wheeled mobile robot using input-output linearization[J].Control Eng. Pract. 7 (1999) 369-373.
[4] 鄧本再, 王江銀, 張中景. 一種基于預(yù)瞄控制的Robocup足球機(jī)器人帶球軌跡跟蹤方法[J]. 計(jì)算技術(shù)與自動(dòng)化, 2011,30(2):53-55.
[5] 任慧榮. 類車移動(dòng)機(jī)器人軌跡跟蹤控制方法研究[D]. 天津:天津大學(xué), 2008.
[6] 李琳輝, 連靜, 王蒙蒙,等. 基于滑轉(zhuǎn)補(bǔ)償?shù)脑虑蜍囓壽E跟蹤控制算法[J]. 電機(jī)與控制學(xué)報(bào), 2014, 18(1):105-111.
[7] HOANG N B, KANG H J. Neural network-based adaptive tracking control of mobile robots in the presence of wheel slip and external disturbance force[J]. Neurocomputing, 2015, 188:12-22.
[8] 王小川. MATLAB神經(jīng)網(wǎng)絡(luò)43個(gè)案例分析[M]. 北京:北京航空航天大學(xué)出版社, 2013.
[9] 史峰. MATLAB智能算法30個(gè)案例分析[M]. 北京:北京航空航天大學(xué)出版社, 2011.
[責(zé)任編輯:劉文霞]
A study of control algorithm of pre-trajectory tracking for mobile robot based on neural network
HAO Liying1,SONG Qichao2
(1.Academic Research Department,Heilongjiang Institute of Technology, Harbin 150050, China;2.College of Electrical and Information Engineering, Heilongjiang Institute of Technology, Harbin 150050, China)
It is complicated for mobile robot to control the trajectory tracking. Thus a control algorithm of pre-trajectory tracking based on neural network is designed. A pre-trajectory driving model which means to control the driving wheel output torque, is set up in order to make the robot reach the pre-trajectory position in the pre-trajectory time. The kinetic equations as well as the simulink models are established for mobile robot. Simulation is done on the robot to obtain the in-kind experimental data. BP neural network is applied to training the data and controling the diving wheel torque. Finally the validity of this algorithm is tested through the simulation experiments.
mobile robot; trajectory tracking; neural network; pre-trajectory
TP242
A
1671-4679(2017)05-0037-05
2017-04-07
2015年哈爾濱市應(yīng)用技術(shù)研究與開(kāi)發(fā)項(xiàng)目?jī)?yōu)秀學(xué)科帶頭人A類(2015RAXXJ036)
郝麗英(1973-),女,副編審,研究方向:計(jì)算機(jī)控制.
10.19352/j.cnki.issn1671-4679.2017.05.008