神經(jīng)網(wǎng)絡(luò)用于智能車控制的一點(diǎn)心得
說了半天,小車控制算法要解決的問題是: 輸入——>控制模型——>輸出控制參數(shù)。
2 WJ本人對神經(jīng)網(wǎng)絡(luò)用于小車控制的一點(diǎn)思考。
(1)不要指望神經(jīng)網(wǎng)絡(luò)的實(shí)時性。神經(jīng)網(wǎng)絡(luò)最要命的耗費(fèi)時間是訓(xùn)練,神經(jīng)網(wǎng)絡(luò)在車運(yùn)行時進(jìn)行一兩次成功的訓(xùn)練即可。在小車跑直線時通過獲得的數(shù)據(jù)訓(xùn)練,因?yàn)橹本€時CPU會有空閑時間。另外,相信大家經(jīng)常用撥碼開關(guān)去選擇多種控制決策,這不失一種方法。但是,這個控制決策是死的,也是事先規(guī)劃好的,必定不能適應(yīng)新的KT板的各種路徑。
(2)最好用片內(nèi)FLASH或SD卡,數(shù)據(jù)的處理是很重要的,數(shù)據(jù)也非常寶貴的,把數(shù)據(jù)存起來,傳給PC,OFFLINE時研究神經(jīng)網(wǎng)絡(luò)的算法(有無數(shù)種訓(xùn)練算法),這是其一。其二,訓(xùn)練好的網(wǎng)絡(luò)存在SD卡里,下次如果需要再訓(xùn)練,從老的網(wǎng)絡(luò)開始(一般網(wǎng)絡(luò)權(quán)值是隨機(jī)開始),效率會高很多。
(3)正如數(shù)據(jù)融合一樣,有決策層和數(shù)據(jù)層的融合,神經(jīng)網(wǎng)絡(luò)也一樣,有決策層和數(shù)據(jù)層的運(yùn)用。由于小車的路徑是連續(xù)的,那么數(shù)據(jù)層的神經(jīng)網(wǎng)絡(luò)肯定是用得著的。在圖像采集里,一般是40mS采集一次路徑并做控制判決,那么這40mS的時間不夠用怎么辦?大家常用的一種方法是干脆80mS采集一次。我的建議是前60ms采集一次圖像并作控制決策。后20ms運(yùn)用前4Oms提取的路徑信息并用神網(wǎng)預(yù)測路徑的變化,這么一來相當(dāng)于在20ms的時間里采集了一次圖像??上攵?,效率提高了。
(4)上面是從數(shù)據(jù)層采用神經(jīng)網(wǎng)絡(luò),這里講一下從決策層采作神經(jīng)網(wǎng)絡(luò)。舉個例子,假如控制器的輸出-3 -2 -1 0 1 2 3分別代表舵機(jī)左偏30,左偏20,左偏10,直行,右偏10,右偏20,右偏30,而小車前7次的控制決策是:直行,右偏10,直行,左偏10,直行,右偏10,直行,(0 1 0 -1 0 1 0 )。。。。,那么第8次的決策通過神網(wǎng)應(yīng)該就是左偏(-1)。如果實(shí)際需要的不是左偏的話,就應(yīng)該把神網(wǎng)“懲罰”一下。
(5)尋找合適的誤差閾值。小車尋跡不像激光切割,精度要求并不高。其訓(xùn)練的誤差值可以“商量”的。
(6)神網(wǎng)的訓(xùn)練數(shù)據(jù)不是抓到一個就可以的,是要選擇的。但這個選擇也是要耗時間的,如果是在PC上,F(xiàn)CM(模糊聚類)是不錯的選擇。但是MCU是扛不起這個重任的,于是選擇合適的訓(xùn)練數(shù)據(jù)和目標(biāo)數(shù)據(jù)也是一個重要的研究話題。這里,如何優(yōu)化神網(wǎng)輸入不是重點(diǎn),略過。
(7)重視歸一化處理和神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。這兩點(diǎn)很重要,歸一化可以理解為把(100 45 -67 90)歸一化為(1 0.45 -0.67 0.9),好處是改進(jìn)數(shù)據(jù)的規(guī)范性,加快收斂。另外訓(xùn)練算法的重要性不言而喻,如用梯度下降法訓(xùn)練法使誤差達(dá)到最小,什么是梯度下降法呢?打個比方,你要下山,山前的坡度是30度,山后是懸崖坡度是90度,要下山快,當(dāng)然是找坡度大的直接跳。這個下山坡度和訓(xùn)練梯度是同一個含義
(8)個人覺得利用神經(jīng)網(wǎng)絡(luò)進(jìn)行速度控制有較大優(yōu)勢,比PID控制起來精度會有些缺陷,但速度快。由于摩阻力,小車動力性能,小車驅(qū)動性能,電池等原因,需要對速度閉環(huán)控制。假如:小車以單位時間10ms為節(jié)拍,速度從X1m/s->Y1m/s,需要PWM為d1%占空比,速度從X2m/s->Y2m/s,需要PWM為d2%占空比.......速度從Xn m/s->Yn m/s,需要PWM為dn%占空比,那么以(X,Y)為訓(xùn)練輸入,(D)為訓(xùn)練輸出,建立神經(jīng)網(wǎng)絡(luò)并訓(xùn)練,那么建立起PWM和速度控制之間的關(guān)系是非常輕易的事。
評論