當(dāng)前位置:首頁 > 公眾號(hào)精選 > TsinghuaJoking
[導(dǎo)讀]本文詳細(xì)介紹了山東大學(xué)(威海)ACE隊(duì)在第十五屆全國大學(xué)生智能汽車競(jìng)賽AI電磁組中的系統(tǒng)方案,內(nèi)容包括AI小車的系統(tǒng)的原理、軟硬件方案設(shè)計(jì),以及神經(jīng)網(wǎng)絡(luò)模型的生成過程。

ACE參賽隊(duì)伍

2020-09-15 Tuesday

● 摘要


本文詳細(xì)介紹了山東大學(xué)(威海)ACE隊(duì)在第十五屆全國大學(xué)生智能汽車競(jìng)賽AI電磁組中的系統(tǒng)方案。內(nèi)容包括AI小車的系統(tǒng)的原理、軟硬件方案設(shè)計(jì)以及神經(jīng)網(wǎng)絡(luò)模型的生成過程。

本次比賽采用大賽組委會(huì)統(tǒng)一指定的C型車模,AI小車以單片機(jī)MIMXRT1064DVL6A為控制核心,用電感采集賽道信息,編碼器獲取小車的速度。使用 IAR 及keil5集成編譯環(huán)境編寫C語言代碼,采用PyCharm作為編譯器,使用Python程序語言編寫程序,搭建神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)NRF通信調(diào)試,訓(xùn)練車模完成賽道元素的判斷,采用賽道記憶算法控制目標(biāo)速度,實(shí)現(xiàn)長直道加速的效果,使用IPS液晶屏和按鍵作為輔助調(diào)試手段。

經(jīng)過大量的軟硬件測(cè)試以及數(shù)據(jù)采集、測(cè)試,成功設(shè)計(jì)出 “零前瞻”AI循跡小車,跑出了長達(dá)15至20cm前瞻的效果。

關(guān)鍵詞: 賽道記憶,元素判斷,神經(jīng)網(wǎng)絡(luò)

01引言


全國大學(xué)生智能汽車競(jìng)賽是由教育部高等學(xué)校自動(dòng)化專業(yè)教學(xué)指導(dǎo)委員會(huì)主辦全國大學(xué)生智能汽車競(jìng)賽。該競(jìng)賽以“立足培養(yǎng),重在參與,鼓勵(lì)探索,追求卓越” 為指導(dǎo)思想,旨在促進(jìn)高等學(xué)校素質(zhì)教育,培養(yǎng)大學(xué)生的綜合知識(shí)運(yùn)用能力、基本工程實(shí)踐能力和創(chuàng)新意識(shí)。智能車競(jìng)賽涉及自動(dòng)控制、模糊識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械與汽車等多個(gè)學(xué)科,為大學(xué)生提供了一個(gè)充分展示想象力和創(chuàng) 造力的舞臺(tái),吸引著越來越多來自不同專業(yè)的大學(xué)生參與其中,激發(fā)了大學(xué)生的創(chuàng) 新思維,對(duì)于其實(shí)踐、創(chuàng)新能力和團(tuán)隊(duì)精神的培養(yǎng)具有十分最重要的價(jià)值。該競(jìng)賽分競(jìng)速賽、創(chuàng)意賽和技術(shù)方案競(jìng)賽三類比賽。

人工智能是計(jì)算機(jī)科學(xué)的一個(gè)分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識(shí)別、圖像識(shí)別、自然語言處理和專家系統(tǒng)等。人工智能從誕生以來,理論和技術(shù)日益成熟,應(yīng)用領(lǐng)域也不斷擴(kuò)大,可以設(shè)想,未來人工智能帶來的科技產(chǎn)品,將會(huì)是人類智慧的“容器”。人工智能可以對(duì)人的意識(shí)、思維的信息過程的模擬。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。

隨著人工智能的興起,全國大學(xué)生智能車競(jìng)賽也陸續(xù)引入了與其相關(guān)的競(jìng)賽,AI電磁組與往屆電磁組不同,雖然方向都是基于采集電感的電壓進(jìn)行控制,但是由于此次比賽前瞻基本為零,車模速度達(dá)到一定值,很難有效的提前做出控制指令,導(dǎo)致賽車沖出賽道。所以本次比賽我們引入了深度學(xué)習(xí)的相關(guān)方案來彌補(bǔ)前瞻不足的缺陷。

正文共分為六章。第一章主要是介紹了比賽系統(tǒng)的整體方案;第二章從車模整體布局出發(fā),介紹了車模各個(gè)部分安裝及調(diào)整方案。第三章重點(diǎn)介紹了系統(tǒng)中所涉及的硬件設(shè)計(jì)方案和電路原理;第四章主要介紹了車模系統(tǒng)的軟件方案包括傳統(tǒng)PID原理分析以及著重對(duì)AI部分算法、部分核心程序進(jìn)行介紹;第五章對(duì)調(diào)試過程中的一些手段進(jìn)行了講解。第六章主要介紹了車模的各方面參數(shù)。

第一章 系統(tǒng)方案設(shè)計(jì)概述


1.1系統(tǒng)框圖

▲ 圖1.1 系統(tǒng)結(jié)構(gòu)框圖

1.2系統(tǒng)介紹

智能車系統(tǒng)的總體工作模式為:7個(gè)電磁傳感器采集賽道信息,采用OPA4377運(yùn)算放大器將信號(hào)輸入到MIMXRT1064DVL6A微控制器,進(jìn)行進(jìn)一步處理獲得主要的賽道信息;通過編碼器來檢測(cè)車速,并采用微控制器的輸入捕捉功能進(jìn)行脈沖計(jì)算獲得速度和路程;轉(zhuǎn)向舵機(jī)采用AI融合PID控制;

驅(qū)動(dòng)電機(jī)采用 PID 控制,通過PWM控制驅(qū)動(dòng)電路調(diào)整電機(jī)的功率;而車速的目標(biāo)值由默認(rèn)值、運(yùn)行安全方案和基于AI處理的優(yōu)化策略進(jìn)行綜合控制。

在訓(xùn)練AI算法時(shí),我們使用NRF2401采集訓(xùn)練數(shù)據(jù);賽道元素的識(shí)別以及停車使用霍爾傳感器實(shí)現(xiàn)。根據(jù)智能車系統(tǒng)的基本要求,我們?cè)O(shè)計(jì)了系統(tǒng)結(jié)構(gòu)圖,如圖1所示。在滿足比賽要求的情況下,力求系統(tǒng)簡(jiǎn)單高效,因而在設(shè)計(jì)過程中盡量簡(jiǎn)化硬件結(jié)構(gòu),減少因硬件而出現(xiàn)的問題。

第二章 車模整體結(jié)構(gòu)設(shè)計(jì)


2.1車模布局

第十五屆恩智浦智能車競(jìng)賽AI組采用的是C車模,其對(duì)稱性好,舵機(jī)安裝方便,有較大的改裝前景。

C車尺寸為29×18×9.8cm,輪胎尺寸為29×60mm,通過對(duì)輪胎適當(dāng)?shù)奶畛浜>d和進(jìn)行軟化處理,使車模具有極好的減震性和耐磨性。

驅(qū)動(dòng)電機(jī)為RS-380,7.2V的電機(jī)功率可達(dá)19.25W,額定功率達(dá)到0.016kW,額定電壓7.2V,額定電流0.5A,額定轉(zhuǎn)速16200rpm,額定轉(zhuǎn)矩可達(dá)10.9N·m,

外形儲(chǔ)存29.2×37.8mm。伺服電機(jī)為S3010舵機(jī),6V電壓時(shí)扭力可達(dá)6.5kg·cm,動(dòng)作速度快。

▲ 圖2.1 車模側(cè)視圖

本次智能車大賽設(shè)計(jì)的智能車的外形大致如圖2.1側(cè)視圖、2.1.1俯視圖。

▲ 圖2.1.1 車模俯視圖

2.2 電池選型與安裝

為了減輕車模的重量,本團(tuán)隊(duì)選用帶保護(hù)板的兩節(jié)18650鋰電池進(jìn)行串聯(lián)供電,我們繪制了鋰電池與保護(hù)板的連接PCB,購買動(dòng)力型鋰電池,放電能力強(qiáng)可以輕松帶動(dòng)兩個(gè)RS380電機(jī),通過合理選擇電池位置以調(diào)節(jié)車體重心,使得整個(gè)車非常輕盈,加減速響應(yīng)快。

2.3 舵機(jī)安裝

舵機(jī)轉(zhuǎn)向是整個(gè)控制系統(tǒng)中延遲較大的一個(gè)環(huán)節(jié),為了減小此時(shí)間常數(shù),通過改變舵機(jī)的安裝位置可以提高舵機(jī)的響應(yīng)速度。通過分析舵機(jī)控制轉(zhuǎn)向輪轉(zhuǎn)向的原理可以發(fā)現(xiàn),在相同的舵機(jī)轉(zhuǎn)向條件下,轉(zhuǎn)向連桿在舵機(jī)一端的連接點(diǎn)離舵機(jī)軸心距離越遠(yuǎn),轉(zhuǎn)向輪的轉(zhuǎn)向變化越快。這相當(dāng)于增大力臂長度,提高線速度。

舵機(jī)安裝方式有立式和臥式兩種,比較兩種方式發(fā)現(xiàn),立式安裝效果更好。舵機(jī)安裝時(shí)要保證左右對(duì)稱,這樣可以保證舵機(jī)左右轉(zhuǎn)向時(shí)力臂相等且處于最大范圍,提升了舵機(jī)的響應(yīng)速度。經(jīng)理論分析,功率等于速度與扭矩的乘機(jī),加大轉(zhuǎn)向速度必然減少輸出扭矩,扭矩過小會(huì)造成遲鈍,所以安裝時(shí)必須考慮到轉(zhuǎn) 向機(jī)構(gòu)的響應(yīng)速度與舵機(jī)扭矩之間的關(guān)系,獲得最佳轉(zhuǎn)向效果。經(jīng)過實(shí)驗(yàn),本團(tuán)隊(duì)的舵機(jī)安裝如圖2.3舵機(jī)安裝圖所示。

▲ 圖2.3 舵機(jī)安裝圖

第三章 硬件電路設(shè)計(jì)


硬件是AI小車系統(tǒng)的基礎(chǔ),唯有一個(gè)良好、穩(wěn)定、安全的硬件環(huán)境才能保證車能平穩(wěn)快速的行駛。我們?cè)谡麄€(gè)系統(tǒng)設(shè)計(jì)過程中嚴(yán)格按照規(guī)范進(jìn)行。本著可靠、高效的原則,在滿足各個(gè)要求的情況下,盡量使設(shè)計(jì)的電路簡(jiǎn)單,PCB的外觀簡(jiǎn)潔。

3.1 單片機(jī)系統(tǒng)設(shè)計(jì)

單片機(jī)最小系統(tǒng)是智能車系統(tǒng)的核心控制部件。由于AI電磁組需要將神經(jīng)網(wǎng)絡(luò)部署到單片機(jī)中,為了達(dá)到更佳的效果我們采用了具有更高性能NXP I.MX RT1064芯片。原理圖如圖3.1所示:

▲ 圖3.1 系統(tǒng)核心板

3.2 電源模塊設(shè)計(jì)

電源模塊為系統(tǒng)其他各個(gè)模塊提供所需要的電源。設(shè)計(jì)中,除了需要考慮電壓范圍和電流容量等基本參數(shù)之外,還要在電源轉(zhuǎn)換效率、降低噪聲、防止干擾和電路簡(jiǎn)單等方面進(jìn)行優(yōu)化??煽康碾娫捶桨甘钦麄€(gè)硬件電路穩(wěn)定可靠運(yùn)行的基礎(chǔ)。

全部硬件電路的電源由兩節(jié)18650鋰電池串聯(lián)提供(額定電壓7.4V,滿電電壓8.4V)。由于電路中的不同電路模塊所需要的工作電壓和電流容量各不相同,因此電源模塊應(yīng)該包含多個(gè)穩(wěn)壓電路,將充電電池電壓轉(zhuǎn)換成各個(gè)模塊所需要的電壓。為滿足需要,本車模上存在4種供電電壓:

(1) 智能車使用鋰電池供電,選擇帶均衡功能的保護(hù)板可以同時(shí)給兩節(jié)電池充電,正常使用時(shí)電壓在7.4~8.4V??芍苯佑糜陔姍C(jī)供電。

(2) 使用穩(wěn)壓芯片LD29150DT50R 輸出電壓5V,用于rt1064、隔離芯片、運(yùn)放、霍爾元件、編碼器等供電。原理圖如圖3.2.1所示

▲ 圖3.2.1 電壓轉(zhuǎn)換7.4V-->5V原理圖

(3) 使用穩(wěn)壓芯片LD29150DT33R 輸出電壓3.3V,用于OLED、蜂鳴器、按鍵、等供電。

▲ 圖3.2.2 電壓轉(zhuǎn)換電路

(4) 使用穩(wěn)壓芯片MC34063 輸出電壓12V,用于半橋驅(qū)動(dòng)器IR2104的供電。

▲ 圖3.2.3 電壓轉(zhuǎn)換電路7.4V→12V

(5) 使用開關(guān)穩(wěn)壓芯片AS1015輸出5.95V電壓給舵機(jī)供電,用電池直接供電容易燒毀舵機(jī),AS1015具有防止電流反灌功能有效提高舵機(jī)使用壽命。

▲ 圖3.2.4 舵機(jī)供電穩(wěn)壓電路

(6)使用芯片HY2120芯片控制MOS管的導(dǎo)通,來保護(hù)電路,避免反接或者電流過大。

▲ 圖3.2.5 電池保護(hù)板原理圖

3.3 電機(jī)驅(qū)動(dòng)電路

在柵極驅(qū)動(dòng)芯片選擇方面,我們選擇IR2104芯片,IR2104芯片可以驅(qū)動(dòng)高端和低端兩個(gè)溝道MOSFET,提供較大的驅(qū)動(dòng)電流,并有硬件死區(qū),防止同橋臂導(dǎo)通。使用兩片IR2104可以構(gòu)成一個(gè)MOS管全橋驅(qū)動(dòng)電路[2],如圖3.3所示。

▲ 圖3.3 全橋驅(qū)動(dòng)原理圖

3.4 電磁運(yùn)放電路

采用簡(jiǎn)單的同向比例放大電路,電位計(jì)可用來調(diào)節(jié)放大倍數(shù),通過對(duì)電磁信號(hào)進(jìn)行放大和檢波處理和可以直接供單片機(jī)的AD口讀取。運(yùn)放芯片使用性價(jià)比較高的OPA4377來以滿足20kHz的電感采集需求。如圖3.4:

▲ 圖3.4 電磁信號(hào)接駁放大原理圖

3.5 霍爾元件電路

由于AI組無法使用攝像頭識(shí)別停車線,我們選擇用霍爾元件來識(shí)別磁標(biāo)停車。

▲ 圖3.5 霍爾停車識(shí)別電路

3.6 傳感器的選擇

3.6.1電感

比賽所用的電感為精確調(diào)頻電感,由于今年的AI電磁組前瞻要求不超過5CM,高度不超過10CM,電感靠近舵機(jī)放置,會(huì)受到舵機(jī)工作的影響。由于傳感器的信號(hào)經(jīng)過后一級(jí)進(jìn)一步放大,滿足后面的信號(hào)檢測(cè)需要,所以傳感器的作用重點(diǎn)是在于能夠?qū)⒃肼暈V除都多干凈,這是由諧振電路決定的,所以諧振電路的帶寬越窄,或者品質(zhì)因素越高,過濾噪聲的能力就越強(qiáng)。

3.6.2 編碼器

光電編碼器是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器, 這也是目前應(yīng)用最多的測(cè)速傳感器之一。其獲取信息準(zhǔn)確、精度高、應(yīng)用簡(jiǎn)單。

采用增量式512線光電編碼器,其供電電壓為3.3V或5V,輸出為小幅值的正弦信號(hào)。為了將此信號(hào)放大整形,設(shè)計(jì)了信號(hào)調(diào)理電路,其基本原理是使用一個(gè)運(yùn)放做成比較器電路,調(diào)節(jié)參考電壓,使輸出變?yōu)?V-3.3V的方波信號(hào),送入單片機(jī)進(jìn)行運(yùn)算。

3.7 主控板和驅(qū)動(dòng)一體板

在本系統(tǒng)中我們的電路板的制作主要思想是分立工作、追求簡(jiǎn)潔,便于電路板的調(diào)試和安裝等工作。主控由電源穩(wěn)壓電路,OLED屏與按鍵交互電路,單片機(jī)系統(tǒng)以及各個(gè)傳感器接口等組成。驅(qū)動(dòng)板在除了原有的電機(jī)驅(qū)動(dòng)電路外,還增加了編碼器接口,主要目的是方便編碼器的連線,以減少編碼器連線過長導(dǎo)致的接觸不良等問題。實(shí)物圖如圖3.7所示。

▲ 圖3.7 主驅(qū)動(dòng)板實(shí)物圖

3.8 運(yùn)放板

運(yùn)放板是兩塊OPA4377電路的八路運(yùn)放、杜邦線接口、軟排線接口組成,軟排線相比較杜邦線,連接簡(jiǎn)單可靠,不易脫漏,最終比賽用軟排線連接,運(yùn)放板的實(shí)物圖如圖3.8。

▲ 圖3.8 運(yùn)放板實(shí)物圖

3.9 電磁板

將7個(gè)電磁接口和軟排線,杜邦線接口畫在一體,便于調(diào)試的時(shí)候更多的選擇,電磁板的實(shí)物圖如圖3.9電磁板實(shí)物圖。

▲ 圖3.9 電磁板實(shí)物圖

3.10 霍爾元件板

霍爾元件板是74LS30和八路霍爾元件組成,運(yùn)放板的實(shí)物圖如圖3.13霍爾元件體板實(shí)物圖。

▲ 圖3.10霍爾元件體板實(shí)物圖

第四章 軟件設(shè)計(jì)


4.1 軟件框圖

▲ 圖4.1 軟件框圖

4.2 速度環(huán)控制

本次速度控制方案采用傳統(tǒng)的PID控制,PID控制器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差。將偏差的比例(P)、積分(I)和微分(D)通過線性組合構(gòu)成控制量,對(duì)被控對(duì)象進(jìn)行控制,故稱PID控制器,原理框圖如圖4.2所示。

▲ 圖4.2PID控制器原理框圖
【對(duì)于速度環(huán)的控制在這里進(jìn)行省略,需要閱讀可以參閱論文原文部分】

4.3 方向環(huán)控制

4.3.1 控制方案

本次方向控制方案采用AI融合PID進(jìn)行控制,AI神經(jīng)網(wǎng)絡(luò)用于賽道元素的識(shí)別。智能車在直道、彎道、十字元素處使用不同的PID參數(shù)以及不同的橫豎斜電感的權(quán)值。PID控制的原理與速度環(huán)相同,在此不作贅述。

偏差的計(jì)算使用6個(gè)電感分別為左右橫電感(記為LH和RH),左右斜電感(記為LX和RX),左右豎電感(記為L和R)。偏差為各自差比和之和。即

4.3.2 PID參數(shù)整定

運(yùn)用PID控制的關(guān)鍵是調(diào)整KP、KI、KD三個(gè)參數(shù),即參數(shù)整定。PID參數(shù)的整定方法有兩大類:一是理論計(jì)算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學(xué)模型,經(jīng)過理論計(jì)算確定控制器參數(shù);二是工程整定方法,它主要依賴工程經(jīng)驗(yàn),直接在控制系統(tǒng)的試驗(yàn)中進(jìn)行,且方法簡(jiǎn)單、易于掌握,在工程實(shí)際中被廣泛采用。

PID參數(shù)整定我們采用的是第二種方法,按照先比例后積分再微分的原則進(jìn)行PID參數(shù)整定。我們嘗試了PID、分段PD、模糊PD、二次PD、單PD,發(fā)現(xiàn)單PD就可以達(dá)到設(shè)計(jì)要求。因此我們使用單PD方案。

4.4 AI賽道元素判斷

4.4.1 多分類問題

神經(jīng)網(wǎng)絡(luò)解決多分類問題最常用的方法是設(shè)置n個(gè)輸出節(jié)點(diǎn),其中n為類別的個(gè)數(shù)。對(duì)于每一個(gè)樣例,神經(jīng)網(wǎng)絡(luò)可以得到的一個(gè)n維數(shù)組作為輸出結(jié)果。數(shù)組中的每一個(gè)維度(也就是每一個(gè)輸出節(jié)點(diǎn))對(duì)應(yīng)一個(gè)類別。在理想情況下,如果一個(gè)樣本屬于類別k,那么這個(gè)類別所對(duì)應(yīng)的輸出節(jié)點(diǎn)的輸出值應(yīng)該為1,而其他節(jié)點(diǎn)的輸出都為0。

以賽道判斷為例,0~2共三個(gè)類別。識(shí)別數(shù)字1,神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果越接近[0,1,0]越好。交叉熵是最好的評(píng)判方法之一。交叉熵刻畫了兩個(gè)概率分布之間的距離,它是分類問題中使用比較廣的一種損失函數(shù)。

p代表正確答案,q代表的是預(yù)測(cè)值。交叉熵值越小,兩個(gè)概率分布越接近。

除此之外,還需要Softmax回歸將神經(jīng)網(wǎng)絡(luò)前向傳播得到的結(jié)果變成概率分布。

通過softmax回歸和交叉熵對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化就可以解決多分類問題。

▲ 圖4.4.1 網(wǎng)絡(luò)結(jié)構(gòu)

本團(tuán)隊(duì)使用BP神經(jīng)網(wǎng)絡(luò)對(duì)賽道信息進(jìn)行分類。網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)化圖如圖4.4.1所示。輸入層有7個(gè)神經(jīng)元,分別對(duì)應(yīng)了七個(gè)電感的數(shù)據(jù)。標(biāo)簽類別分別為:直道、彎道和十字。隱藏層有多層,每層均有15個(gè)以上的神經(jīng)元。

4.4.2 訓(xùn)練

▲ 圖4.4.2 十字處磁標(biāo)

當(dāng)車運(yùn)行到十字磁標(biāo)位置,霍爾傳感器將檢測(cè)到磁場(chǎng)變化,根據(jù)預(yù)先設(shè)定好的程序,車輛將知道自己處于十字區(qū)域。單片機(jī)記錄電感數(shù)據(jù),并將其標(biāo)簽記為“十字”。這些數(shù)據(jù)被NRF實(shí)時(shí)傳輸至電腦端,電腦端將記錄數(shù)據(jù)用于多分類訓(xùn)練。

▲ 圖4.4.3 彎道磁標(biāo)

當(dāng)車運(yùn)行到彎道位置,霍爾傳感器將檢測(cè)到磁場(chǎng)變化,根據(jù)預(yù)先設(shè)定好的程序,車輛將知道自己處于彎道區(qū)域。單片機(jī)記錄電感數(shù)據(jù),并將其標(biāo)簽記為“彎道”。除了彎道和十字以外的其他區(qū)域,電感數(shù)據(jù)將被標(biāo)記為“直道”送入電腦端進(jìn)行訓(xùn)練。

每次回傳的訓(xùn)練數(shù)據(jù)有9個(gè)字節(jié),數(shù)據(jù)結(jié)構(gòu)圖下:

4.4.3 預(yù)測(cè)

電腦端將訓(xùn)練好的模型部署在單片機(jī)上,車模將采集到的電感值傳入神經(jīng)網(wǎng)絡(luò)中,神經(jīng)網(wǎng)絡(luò)將預(yù)測(cè)車模所處的元素類別。車模將根據(jù)所處的元素類別使用不同的方向環(huán)PD參數(shù)和目標(biāo)速度。

4.5 部分代碼介紹

4.5.1 傳統(tǒng)控制部分代碼說明

控制部分主要有兩部分組成:1.方向環(huán)2.速度環(huán)控制,分別放在兩個(gè)5ms的定時(shí)器中執(zhí)行。代碼如圖4.5.1

▲ 圖4.5.1 方向環(huán)和速度環(huán)

(1) 方向環(huán)控制:

首先,單片機(jī)會(huì)連續(xù)對(duì)每個(gè)電感采集5次,使用冒泡法將數(shù)據(jù)從小到大排序后,去掉最大值和最小值,取平均值作為該次采集的數(shù)值。經(jīng)測(cè)試,該濾波效果較好,可以濾掉部分高頻噪聲,獲得的電感值穩(wěn)定。代碼如圖4.5.2

▲ 圖4.5.2 電壓軟件濾波

獲得電感值后,對(duì)當(dāng)前采集到的值進(jìn)行歸一化處理。歸一化的基本思想是:取得當(dāng)前采集值(ADget)相對(duì)于當(dāng)前賽道的最大值(ADMAX)、最小值(ADMIN)的相對(duì)大小,具體公式為:

得到歸一化的電感值后,通過對(duì)多個(gè)方向的電感值融合,獲得作為PID輸入的偏差。在訓(xùn)練的過程中,我們發(fā)現(xiàn)在直道情況下,橫電感軸向方向在磁場(chǎng)方向的分量大,因此橫電感采集到的值大,偏差也大,橫電感對(duì)于直道有很明顯的效果;在彎道情況下,其中一個(gè)斜電感軸向方向在磁場(chǎng)方向的分量大,與其對(duì)稱的斜電感在磁場(chǎng)方向的分量小,它們的偏差也大,因此斜電感對(duì)于彎道有明顯的效果。因此,我們將橫電感與斜電感通過分別賦予不同的權(quán)重,融合在一起。最終,小車相較于橫電感直接差比和,有較好的直道和彎道表現(xiàn),在直道和彎道間過度也非常圓滑。這為后來的PID控制打下了良好的基礎(chǔ)。

在得到了賽道偏差后,我們便可以將這個(gè)偏差(direct_error)作為PID的輸入,得到舵機(jī)打角。經(jīng)過反復(fù)調(diào)試,發(fā)現(xiàn)車模在高速運(yùn)行狀態(tài)下(3m/s左右),對(duì)PD參數(shù)非常敏感:在直道上,比例項(xiàng)系數(shù)(KP)隨著車速的提高,合適的數(shù)值區(qū)間越來越小,KP過大則會(huì)導(dǎo)致直道震蕩,速度下降。KP過小,響應(yīng)會(huì)變慢,同樣使得車模的運(yùn)行狀態(tài)不穩(wěn)定。高速情況下,小車過彎非常依賴微分項(xiàng)。當(dāng)微分項(xiàng)系數(shù)(KD)很小的時(shí)候,彎道會(huì)出現(xiàn)轉(zhuǎn)向性能不足,甚至直接沖出賽道;當(dāng)KD不斷增加,小車應(yīng)對(duì)快速彎道的能力越來越強(qiáng),但是隨著KD增大,電感采集時(shí)引入的噪聲也被放大,增加了小車在小偏差情況下的不穩(wěn)定性。

最終,經(jīng)過多次的反復(fù)測(cè)試,我們分別得到了小車在直道、彎道、環(huán)島、十字的最佳參數(shù)。在經(jīng)過神經(jīng)網(wǎng)絡(luò)計(jì)算出賽道類型后,對(duì)PID控制器里的PD參數(shù)進(jìn)行相應(yīng)調(diào)整,得到小車最終的舵機(jī)打角。代碼如圖4.5.3

▲ 圖4.5.3賽道類型獲取及PD控制

同時(shí),由于斜電感在十字和環(huán)島的特征明顯,直接使用會(huì)影響到賽道偏差的正常獲取,因此,在識(shí)別到十字和環(huán)島元素時(shí),要去除偏差控制中的斜電感的作用。

(2) 速度環(huán)控制

在速度環(huán)控制上,我們主要運(yùn)用了差速算法和賽道記憶算法。

假設(shè)小車在過彎的過程中沒有垂直于車身運(yùn)行方向上的相對(duì)移動(dòng),由于后輪的角速度相同,內(nèi)側(cè)后輪和外側(cè)后輪的轉(zhuǎn)彎半徑不同,所以它們的線速度不同。如果賦予它們相同的占空比,必然會(huì)降低彎道上的轉(zhuǎn)向性能。通過前輪轉(zhuǎn)角,我們可以通過公式推算出后側(cè)兩輪的差速,得到兩輪的目標(biāo)速度,再經(jīng)過PI運(yùn)算,使內(nèi)外兩輪達(dá)到該轉(zhuǎn)彎半徑下對(duì)應(yīng)的線速度。小車轉(zhuǎn)彎差速示意圖4.5.4

▲ 圖4.5.4 小車轉(zhuǎn)彎差速示意圖

在測(cè)量多組前輪轉(zhuǎn)角和轉(zhuǎn)彎半徑的數(shù)據(jù)后,使用MATLAB擬合曲線,發(fā)現(xiàn)前輪轉(zhuǎn)角和差速近似為線性關(guān)系,因此使用線性關(guān)系來代替上述差速公式。差速計(jì)算代碼如圖4.5.5

▲ 圖4.5.5 差速計(jì)算公式

通過賽道記憶算法控制目標(biāo)速度,可以實(shí)現(xiàn)長直道加速的效果。因此,首先讓車模在賽道上慢速運(yùn)行一周,通過記錄編碼器脈沖數(shù),記錄下各個(gè)元素的所在位置。當(dāng)正式發(fā)車時(shí),如果當(dāng)前賽道類型為長直道,則提高車速。賽道記憶代碼如圖4.5.6

▲ 圖4.5.6 賽道記憶算法

4.5.2 AI部分代碼說明

在名為“數(shù)據(jù)分類”的python文件中,我們搭建了一個(gè)分類BP神經(jīng)網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)保存在data.txt中。網(wǎng)絡(luò)有7個(gè)神經(jīng)元的輸入層,四個(gè)隱藏層,一個(gè)三個(gè)神經(jīng)元的輸出層。7個(gè)神經(jīng)元分別對(duì)應(yīng)7個(gè)電感的數(shù)據(jù),三個(gè)隱藏層神經(jīng)元數(shù)分別為32、64、32,輸出層3個(gè)神經(jīng)元分別對(duì)應(yīng)三種元素類別:彎道、直道、環(huán)島。網(wǎng)絡(luò)結(jié)構(gòu)如圖4.5.7:

▲ 圖4.5.7 網(wǎng)絡(luò)結(jié)構(gòu)

使用交叉熵優(yōu)化器來優(yōu)化網(wǎng)絡(luò)參數(shù)。訓(xùn)練過程如圖4.5.8所示:

▲ 圖4.5.8 訓(xùn)練過程

訓(xùn)練結(jié)束后,網(wǎng)絡(luò)模型將被更新,保存為名為model.h5的H5文件。由于網(wǎng)絡(luò)部署代碼閉源而且只有一個(gè)神經(jīng)元輸出值,因此我們需要網(wǎng)絡(luò)重建,將分類得到的三個(gè)神經(jīng)元合并為一個(gè)神經(jīng)元。在名為“網(wǎng)絡(luò)重建”的python文件中,先搭建和訓(xùn)練網(wǎng)絡(luò)一樣的神經(jīng)網(wǎng)絡(luò),并在最后添加一個(gè)單個(gè)神經(jīng)元,手動(dòng)賦權(quán)重。三個(gè)權(quán)重w11,w21,w31分別為-84,0,84。這樣將單神經(jīng)元-128~+127的輸出范圍分為了三個(gè)區(qū)域,分別為-127~-84代表彎道、-83~+83代表直道、+84~+127代表十字。加載訓(xùn)練好的網(wǎng)絡(luò)模型文件,按網(wǎng)絡(luò)層名稱導(dǎo)入網(wǎng)絡(luò)參數(shù),即可生成最終的網(wǎng)絡(luò)。最終網(wǎng)絡(luò)結(jié)構(gòu)如圖4.5.9所示:

將最終的網(wǎng)絡(luò)保存為car_model.h5文件,并將其部署在之智能車上即可實(shí)現(xiàn)對(duì)賽道元素的分類

※ 結(jié)論


由于AI電磁是一個(gè)全新的組別,本組成員沒有往屆經(jīng)驗(yàn)、對(duì)人工智能領(lǐng)域的知識(shí)比較陌生,對(duì)python這門語言也屬于初入門階段。小組成員在“一片空白”的情況下,碰觸人工智能的大門,逐步摸索、查找資料、設(shè)計(jì)機(jī)構(gòu)、組裝車模、設(shè)計(jì)整體方案,最終完成比賽。

對(duì)于AI電磁組,本團(tuán)隊(duì)在比賽最開始,采用逐飛推薦的方案,不斷的采集大量數(shù)據(jù),嘗試各種神經(jīng)網(wǎng)絡(luò),生成模型文件。但是由于數(shù)據(jù)的質(zhì)量問題,導(dǎo)致模型出現(xiàn)誤判或者舵機(jī)反應(yīng)角度過小等等,為了解決上述問題,我們通過篩選大量的數(shù)據(jù),人工給舵機(jī)輸出乘上相應(yīng)的倍數(shù)等方案來解決。通過這種方案,車模完成了由“搖頭”到“絲滑”的轉(zhuǎn)變。

但是,采用這種方案團(tuán)隊(duì)調(diào)試的極限速度在2.7m/s就到達(dá)了速度的天花板,所以團(tuán)隊(duì)轉(zhuǎn)變了方案,將AI用于訓(xùn)練賽道元素的提前判斷,彌補(bǔ)前瞻不足的缺陷,實(shí)現(xiàn)分段PID控制,方向控制方面仍然采用傳統(tǒng)PID方案,但是對(duì)于彎道的判斷而言比傳統(tǒng)的純PID算法更加提前。對(duì)于硬件方面,由于團(tuán)隊(duì)主要一直將心思放在訓(xùn)練數(shù)據(jù)上,沒有對(duì)車模的重心位置進(jìn)行細(xì)致考究,導(dǎo)致車尾比車頭重很多,所以在速度提升到一定程度后,車模前輪抖動(dòng)與側(cè)滑的風(fēng)險(xiǎn)大大提升,此類問題可以通過改變前輪機(jī)械結(jié)構(gòu)為主銷內(nèi)傾來解決,但是備賽后期車模結(jié)構(gòu)不能大改,團(tuán)隊(duì)不得不采取其他優(yōu)化方案,通過增加輪胎摩擦力以及協(xié)調(diào)前輪轉(zhuǎn)角與后輪差速的方法加以改善。?

在備賽期間,團(tuán)隊(duì)也曾嘗試過強(qiáng)化學(xué)習(xí)+監(jiān)督學(xué)習(xí)的方法讓車模進(jìn)行自主學(xué)習(xí)。先利用傳統(tǒng)PID作為監(jiān)督機(jī)制先教車模在賽道中運(yùn)動(dòng),用Python編寫了 “獎(jiǎng)勵(lì)”與 “懲罰”機(jī)制,并且將速度也加入模型中,同時(shí)速度也作為一種獎(jiǎng)勵(lì)機(jī)制,提高車模的學(xué)習(xí)進(jìn)度。實(shí)行該方案中遇到的最大困難便是車模進(jìn)行強(qiáng)化學(xué)習(xí)時(shí),數(shù)據(jù)回傳周期時(shí)間達(dá)到100ms。為了解決問題,團(tuán)隊(duì)成員利用另一塊RT1064作為信息中轉(zhuǎn)站,采用多個(gè)NRF模塊同時(shí)進(jìn)行通信,最終將回傳周期下降到了9ms。

為了加快強(qiáng)化學(xué)習(xí)的收斂速度,團(tuán)隊(duì)成員在訓(xùn)練前采用PID監(jiān)督學(xué)習(xí)的方法來教車模進(jìn)行強(qiáng)化學(xué)習(xí)。但也許是教導(dǎo)的方式不完善導(dǎo)致車模很容易“學(xué)壞”,一旦出現(xiàn)沖出賽道的情況,車模會(huì)出現(xiàn)很大的擺動(dòng)。很遺憾的是,由于疫情耽誤了太多時(shí)間,該方案短時(shí)間沒有帶來好的效果,本團(tuán)隊(duì)無法繼續(xù)研究強(qiáng)化學(xué)習(xí)的方案。

本團(tuán)隊(duì)成員一致認(rèn)為,利用強(qiáng)化學(xué)習(xí)的方法讓小車自主學(xué)習(xí),這樣才是真正意義的智能車,而且強(qiáng)化學(xué)習(xí)的方法在小車控制中有很好的前景。希望未來的智能車競(jìng)賽中AI方面的組別能有參賽者可以利用強(qiáng)化學(xué)習(xí),讓小車跑出不錯(cuò)的成績(jī)。

寶劍鋒從磨礪出,梅花香自苦寒來”,一次次的校內(nèi)比賽見證了ACE智能車隊(duì)艱難的蛻變。我們非常感謝山威智能車這個(gè)像家一樣的地方,更要特別感謝一直向隊(duì)伍提供經(jīng)費(fèi),比賽場(chǎng)地,技術(shù)指導(dǎo)的學(xué)校、學(xué)院領(lǐng)導(dǎo)以及指導(dǎo)老師,同時(shí)也感謝比賽組委會(huì)能組織這樣一項(xiàng)有意義的比賽。最后,希望人工智能在智能車競(jìng)賽中逐漸成熟,讓智能車更智能。




公眾號(hào)留言

大大,剛剛發(fā)現(xiàn)了一個(gè)大佬用百度AI搭建的AI換臉模型。卓大大的痛,你們懂嗎?


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉