智能車賽道記憶算法的研究
本次“飛思卡爾”智能車邀請賽規(guī)則中明確指出,智能車在賽道上連續(xù)跑兩圈,并記其中最好圈成績?yōu)楸荣惓煽?。這個規(guī)則的確立使得賽道記憶算法成為了可行。
本文引用地址:http://cafeforensic.com/article/95570.htm如圖1所示,賽道記憶算法在第一圈以最安全的速度緩慢駛過一圈,并將賽道信息保存下來,第二圈根據(jù)保存下來的信息進(jìn)行車速和轉(zhuǎn)角決策的相應(yīng)最優(yōu)化,從而在第二圈取得好成績。無論智能車的傳感器前瞻距離有多遠(yuǎn),在跑圈時它都只能預(yù)測在一段有限距離內(nèi)賽道的情況。而采用賽道記憶算法的智能車,在第二圈時已對整個賽道有了全面的認(rèn)識,從而在相同條件下,將比不使用賽道記憶的智能車更具優(yōu)勢。
算法實現(xiàn)前提
要想成功實現(xiàn)賽道記憶算法,必須有以下幾大前提:
1.賽車在第一圈必須安全走完全程。在第一圈,賽車的最主要目的是采集賽道信息,使用賽道記憶算法的智能車,在第一圈一般都會采用較緩慢的勻速走完全程。
2.賽車必須能明確分辨出賽道起點(diǎn)線和十字交叉線的區(qū)別。
3.賽車必須能夠有足夠記錄一圈賽道數(shù)據(jù)的內(nèi)存空間。由于單片機(jī)芯片的Ram容量有限,算法研究者需要對算法進(jìn)行優(yōu)化處理,改變保存的格式以節(jié)省內(nèi)存空間。
4.在跑第一圈時,賽車需即時地對當(dāng)前賽道數(shù)據(jù)進(jìn)行處理,避免第二圈時還在進(jìn)行數(shù)據(jù)處理而對賽車的控制實時性帶來不良的影響。
初圈記憶
采用賽道記憶算法的智能車,第一圈的主要目的就是將賽道的重要特征按特定的格式記錄下來,作為第二圈的參考。初圈最終要記錄的數(shù)據(jù)的橫坐標(biāo)一般為行駛的路程,而縱坐標(biāo)則為賽道此點(diǎn)的曲率半徑。對于橫坐標(biāo),由于初圈一般勻速駛完,一般可以直接用時間來表示,也可以用車速傳感器的當(dāng)前脈沖數(shù)來表示。而對于縱坐標(biāo),則無法第一時間取得當(dāng)前點(diǎn)的曲率半徑,它需要對采集到的原始數(shù)據(jù)進(jìn)行相關(guān)處理后才能得出。在初圈中,我們能記錄的只是當(dāng)前的轉(zhuǎn)角設(shè)定值,可用舵機(jī)占空比或者直接轉(zhuǎn)換過來的角度值表示。
數(shù)據(jù)分析與處理
圖2是在韓國比賽賽道中初圈記錄下來的轉(zhuǎn)角變化曲線圖。對比圖3的賽道圖可以發(fā)現(xiàn),真實賽道上的一些特征在記憶曲線圖上是可以有所體現(xiàn)的。
首先,賽道中的直道部分在曲線中的體現(xiàn)是值為0的直線,但會有一定的波動,如圖2中的點(diǎn)A部分;彎道的旋轉(zhuǎn)方向則體現(xiàn)在曲線中轉(zhuǎn)角值的正負(fù),例如B部分,則對應(yīng)著賽道中大角度左轉(zhuǎn)之前的一小段右轉(zhuǎn);彎道的曲率半徑和弧度體現(xiàn)在曲線中轉(zhuǎn)角值大小和長度上,如C部分,它的轉(zhuǎn)角值較大,在正負(fù)之間短暫切換,在實際賽道中就是那段波浪曲線段(圖3中C部分)。綜上所述,在第一圈時將轉(zhuǎn)角值記錄下來的變化曲線,如果對其加以分析和處理,它是完全可以體現(xiàn)賽道的特征的。
評論