新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于智能車非勻速行駛記憶算法的研究和實現

        基于智能車非勻速行駛記憶算法的研究和實現

        作者:袁三男 汪劍光 張云峰 呂堯 上海電力學院計算機與信息工程學院(上海200090) 時間:2008-08-18 來源:電子產品世界 收藏

        摘要: 本文對基于行駛狀態下光電進行了深入研究,詳細介紹了系統硬件設計、原始數據的記憶、數據處理和的實現。

        本文引用地址:http://www.104case.com/article/87057.htm

        關鍵詞:

        硬件實現原理

          按照競賽的某些規定,本文設計了如圖1所示的硬件原理框圖。紅外傳感器采用一排13對紅外發射接收管,利用其接收的電平大小經過MCU的ADC后由MCU判斷當前黑線所處的位置,為了降低功耗,系統中還增加了MOS開關管,當檢測某紅外傳感器時該傳感器供電打開,其余的則關閉。賽道中具有十字交叉路口,同時必須判斷起始(即終止線),因此預先可以配置當前賽道的總的十字交叉個數,同時通過軟件算法可以判斷出是否經過世紀交叉口(起始終止線可以作為一個十字交叉線)。系統運行時,按照紅外傳感器采集的信息可以判斷出當前引導線的位置,即在小車的左邊、中間或右邊,偏離多少,MCU據此以及由Hall測速傳感器獲知的當前小車的速度確定小車當前的行為,主要控制舵機即小車的方向和電機即小車的速度。



        圖1 系統硬件框圖

        軟件控制算法

          系統軟件控制主要包括兩部分,也即記憶算法的兩個過程,從行駛過程中看即第一圈和第二圈,其流程框圖如圖2所示。



        圖2 系統軟件控制流程圖

          初圈的控制和記憶

          智能車在行使第一圈時的主要目的就是記憶賽道信息特征,并進行一定的處理。按常規方法小車需要勻速行駛,以便在固定的時間間隔或固定的路程間隔記憶相關的道路信息。數據記憶時,采用了12個磁鋼的霍爾傳感器,車輪轉一圈得到12個計數,即使在速度很快的情況下響應時間也是us級的,精度足夠滿足要求。

          在的條件下,采用了新的數據存儲格式。首先對當前的狀態進行彎直的判斷,根據迷糊控制得到的舵機的轉角值c_ang,判斷得到當前車的彎直情況。同時由于車是非勻速行駛的,而第二圈所行駛的時間間隔和路程間隔也并不一定和第一圈完全相同,因此只判斷彎直情況,在彎道時,記憶每一個測試點的轉角值,而直道時,既沒必要存儲轉角,又可節省大量存儲空間,因此對于直道時只記憶直道的起點和終點路程,而該路程是小車相對于起始點的絕對路程,也即霍爾傳感器檢測到的磁鋼的個數ect_cnt。

          系統按照前一狀態和當前狀態的不同情況分別進行數據存儲,其算法如下:當前一狀態是彎道,現狀態是直道時,即彎直態,則寫入0x7f,ect_cnt,其中ect_cnt是當前的路徑計數;當直直態時,不存儲;當直彎時,寫入當前的ect_cnt,0x7f,當前的c_ang;當彎彎時,寫入c_ang。系統初始化時為彎道,則開始行駛后,進入起跑線,此時檢測到是直道,進入彎直狀態,寫入0x47和當前的ect_cnt,這就是道路的起始存儲數據。

          數據的分析及處理

          第二圈過起跑線時,系統配置成進入彎直狀態,此時應該根據第一圈記錄的數據算出直道的長度,這樣車在直線上就可以以很高的速度行使,并且能夠提前減速,安全進彎,達到很好的控制效果。

          在由直線進彎時,如果在彎道中出現直道,并且計算出其長度小于某一值的時候,認為是過彎過程中出現的小范圍的直線,仍按照彎道處理。本算法的核心也在于如何過濾彎道中出現的直道,以及從分析不同的彎道形式。把彎道分成以下幾類:

          (a) 急彎:這里所說的急彎也就是競賽規定的曲率最小的彎。在急彎時,轉角的個數相對較少,轉角值相對較大,并且在正常情況下所有的都是同向的。

          (b)圓形彎道:相比于其他幾種賽道元素,圓形賽道的識別比較簡單,當同一個方向的轉角大于某一個數值時,并且中間過程中沒有換向發生,便可以認為小車進入了圓形賽道。因為在角度的控制上,本系統采用了模糊控制,車在進彎時能夠迅速調整角度,并以一個恒定的角度過彎,以上的數據是驗證了這一結果。

          (c)小S彎:小S彎的特點是:在過彎的整個過程中既有左轉又有右轉的,并且左轉角度的個數和右轉角度的個數都應該大于某一個值。此外,單次左轉或者右轉的角度的個數小于某一個值。考慮到小S的前后可能會接著其他彎道,本系統在第一個換向點之前,按照其彎道行走,在換向點之后采取小S的行走策略,在最后一個換向點之前結束。

          (d)大S彎:大S相比小S而言,其賽道特征是相似的,只是判斷的標準稍有不同。首先,大S之間有較長距離的直道,必須加大直道的判斷范圍才能將其過濾掉。其次,單次左轉或者右轉的角度的個數應該大于小S的個數。

          針對以上賽道分析,系統首先分辨下一步的賽道元素,然后按照行駛策略,將第二圈的行駛速度及方向進行控制。其主要思想為:

          (a)直道行駛:將直道分為短直道和長直道,短直道就做一般加速處理;長直道在起始處全力加速,末端進行線型減速,也即將速度分成高速,中速,低速,從高到中再到低。經實驗發現直接從高速轉為低速時,小車在過彎時不穩,容易測滑,不僅影響速度,啟動也慢。采用線型減速后過彎流暢,能達到很好的效果。這樣就避免了由于車本身的某些局限性,如舵機響應時間、賽道摩擦系數、輪胎抓地力、傳感器布局等因素的影響所造成的直線速度不能加到最高的缺點。

          (b)對于小S,理想的情況下是實現同CCD同樣的效果,采取高速直線過彎的策略。為了安全起見也可以采用滯后過彎的策略,讓智能車采取較小的轉角高速過彎。

          (c)對于大S賽道,不同的曲率彎道,小車有它最佳極限速度存在。利用初圈得到彎道的曲率半徑以及S道之間直線的長度,在過各彎道時將車速調至它相應的極限速度,從理論上就是它所能跑出的最優成績了。

          (d)對于圓形彎道,需要在彎道的曲率和過彎的速度之間做一個權衡。當行駛的曲率較大時,那么車可以以較高的速度行駛,當走內圈時,由于半徑的減少,離心力的增大,就不能以較高的速度行駛,但是可以找到兩者之間的平衡點。

        參考文獻:

          1.  邵貝貝,單片機嵌入式應用的在線開發方法,北京:清華大學出版社,2004.10
          2.  卓晴、黃開勝、邵貝貝,學做智能車,北京航空航天大學出版社,2007.3



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兴义市| 泽普县| 宣汉县| 泰顺县| 潍坊市| 鄯善县| 海晏县| 汶上县| 恩平市| 慈溪市| 梁平县| 玉溪市| 天峻县| 高尔夫| 台北市| 黄大仙区| 勐海县| 昌吉市| 三原县| 砚山县| 咸阳市| 贺州市| 惠州市| 辉南县| 黄骅市| 马龙县| 荣成市| 千阳县| 洮南市| 大新县| 汾西县| 利川市| 汝阳县| 贵阳市| 贡嘎县| 井陉县| 霞浦县| 丽江市| 迭部县| 贵德县| 台湾省|