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