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