基于智能車非勻速行駛記憶算法的研究和實(shí)現(xiàn)
摘要: 本文對(duì)基于非勻速行駛狀態(tài)下光電智能車的記憶算法進(jìn)行了深入研究,詳細(xì)介紹了系統(tǒng)硬件設(shè)計(jì)、原始數(shù)據(jù)的記憶、數(shù)據(jù)處理和記憶算法的實(shí)現(xiàn)。實(shí)踐表明,使用記憶算法之后,由于對(duì)整個(gè)賽道有了超前的預(yù)知性,智能車的速度有了較大幅度的提高。隨著比賽賽道的長(zhǎng)度和復(fù)雜程度的進(jìn)一步加大,記憶算法正進(jìn)一步地發(fā)揮著作用。
本文引用地址:http://www.ex-cimer.com/article/95472.htm1、概述:
作者參加了第二屆“飛思卡爾杯”全國(guó)大學(xué)生智能車比賽,在智能車設(shè)計(jì)和比賽過(guò)程中得到了一些經(jīng)驗(yàn)和結(jié)果,特別是針對(duì)記憶算法進(jìn)行了研究和不斷改進(jìn)。按照競(jìng)賽規(guī)定,智能車在以白板為背景、中間黑線作為引導(dǎo)線的賽道上自動(dòng)行駛,在不駛離賽道的前提下,以行駛的速度快慢為比賽成績(jī)的好壞。因此必須使用采集系統(tǒng)將賽道信息采集后按照黑線行駛。比賽規(guī)則規(guī)定,在每輪比賽中每輛賽車在賽道上連續(xù)跑兩圈,以起始線為計(jì)時(shí)點(diǎn),以用時(shí)短的一圈計(jì)單輪成績(jī);每輛賽車以在兩個(gè)單輪成績(jī)中的較好成績(jī)?yōu)橘愜嚦煽?jī)。本文設(shè)計(jì)的賽車使用的采集系統(tǒng)為光電傳感器,光電傳感器只能采集當(dāng)前的黑白信息,采集距離有限,無(wú)法預(yù)測(cè)前方道路,因此,為了實(shí)現(xiàn)各種優(yōu)化算法,如轉(zhuǎn)彎走內(nèi)道、前方直線則預(yù)先加速、轉(zhuǎn)彎提前減速等方法,必須借助于記憶算法,預(yù)先知道前方道路信息,而比賽規(guī)則的制訂也為記憶算法的實(shí)現(xiàn)成為可能。
記憶算法的原理分兩部分,前一部分即第一圈采用邊行駛邊記憶道路信息。第二部分即第二圈按照記憶的數(shù)據(jù)就預(yù)先知道了前方的道路信息,從而可以實(shí)現(xiàn)各種優(yōu)化算法。通常情況下,為了實(shí)現(xiàn)記憶算法,必須記住第一圈行使時(shí)每一點(diǎn)的轉(zhuǎn)彎或直行信息,因此第一圈必須按照勻速行駛。為了更好地提高速度,本文采取第一圈就按照其他各類快速算法在非預(yù)先知道道路信息的情況下快速非勻速行駛,在行駛過(guò)程中按照特定的算法和數(shù)據(jù)格式存儲(chǔ)道路信息,第二圈在此基礎(chǔ)上按照預(yù)先記憶的道路信息實(shí)現(xiàn)更快地行使。這樣在第一圈時(shí)就達(dá)到了最佳速度,即使第二圈由于其他原因沖出賽道,也能得到很好的成績(jī),而第二圈按照記憶算法和其他最佳算法的實(shí)現(xiàn)得到更快的速度。
2、硬件實(shí)現(xiàn)原理:
按照競(jìng)賽的某些規(guī)定,本文設(shè)計(jì)了如圖1所示的硬件原理框圖?! ?/p>
其中主控CPU規(guī)定使用Freescale的MC9SDG128B,系統(tǒng)供電為7.2V電池。為了提高效率,除了為MCU、Hall測(cè)速傳感器和紅外傳感器提供5V供電外,系統(tǒng)中還由LM2596提供6V供電給舵機(jī),使得舵機(jī)靈敏度提高,而電機(jī)直接使用7.2V電池供電。紅外傳感器采用一排13對(duì)紅外發(fā)射接收管,利用其接收的電平大小經(jīng)過(guò)MCU的ADC后由MCU判斷當(dāng)前黑線所處的位置,為了降低功耗,系統(tǒng)中還增加了MOS開關(guān)管,當(dāng)檢測(cè)某紅外傳感器時(shí)該傳感器供電打開,其余的則關(guān)閉,實(shí)驗(yàn)證明,增加該功能后,系統(tǒng)功耗減小很大,原來(lái)開了幾圈后小車速度會(huì)因?yàn)殡姵毓╇姴蛔愣邓?,而加了功率開關(guān)后開十幾圈都不會(huì)降速。
賽道中具有十字交叉路口,同時(shí)必須判斷起始(即終止線),因此智能車預(yù)先可以配置當(dāng)前賽道的總的十字交叉?zhèn)€數(shù),同時(shí)通過(guò)軟件算法可以判斷出是否經(jīng)過(guò)世紀(jì)交叉口(起始終止線可以作為一個(gè)十字交叉線)。
系統(tǒng)運(yùn)行時(shí),按照紅外傳感器采集的信息可以判斷出當(dāng)前引導(dǎo)線的位置,即在小車的左邊、中間或右邊,偏離多少,MCU據(jù)此以及由Hall測(cè)速傳感器獲知的當(dāng)前小車的速度確定小車當(dāng)前的行為,主要控制舵機(jī)即小車的方向和電機(jī)即小車的速度。
3、軟件控制算法:
系統(tǒng)軟件控制主要包括兩部分,也即記憶算法的兩個(gè)過(guò)程,從行駛過(guò)程中看即第一圈和第二圈,其流程框圖如圖2所示?! ?/p>
評(píng)論