www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > TsinghuaJoking
[導(dǎo)讀]本文對小車設(shè)計制作整體思路、機械、電路、電控、 神經(jīng)網(wǎng)絡(luò)幾個方面進(jìn)行了詳細(xì)的介紹。

1.1 大賽介紹

全國大學(xué)生智能汽車競賽是以“立足培養(yǎng)、重在參與、鼓勵 探索、追求卓越”為宗旨,鼓勵創(chuàng)新的一項科技競賽活動。今年首次新增了電 磁 AI 組別,希望通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)甚至超越傳統(tǒng)的 PID 控制方法。

在這份報告中,我們小組對小車設(shè)計制作整體思路、機械、電路、電控、 神經(jīng)網(wǎng)絡(luò)幾個方面進(jìn)行了詳細(xì)的介紹。

整體思路中主要概括了項目構(gòu)建時的主 要核心思想,機械部分中主要闡述了小車的機械部分中主要闡述了小車的結(jié)構(gòu) 設(shè)計,包含各部件的安裝位置以及對車模的保護措施,電路部分主要闡述了小 車的電路結(jié)構(gòu)設(shè)計為軟件停工穩(wěn)定輸入與輸出環(huán)境減少外界干擾。

電控部分主 要闡述了如何采用 PID 進(jìn)行小車控制,包含舵機控制,差速控制,電機控制等。

神經(jīng)網(wǎng)絡(luò)部分主要闡述了如何采用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)小車控制方法,包含數(shù)據(jù)集制 作,電感位置分布,網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新等。

雖說看似就是一簡單巡線的項目,但是隨著深入地進(jìn)行研究,我們發(fā)現(xiàn)在 此之上可以用非常多方法大幅度提升巡線效果,比如可以通過無線串口進(jìn)行 PID 遠(yuǎn)程調(diào)參,通過神經(jīng)網(wǎng)絡(luò)去自動地尋找較好的控制方法,通過陀螺儀和編碼器 去記錄整個賽道等等。

隨著一步步地迭代,我們的工程越來越大,完成的功能 也越來越多,自然而然速度也在一點一滴地提升。

1.2 整體方案設(shè)計

本節(jié)主要簡要地介紹智能車系統(tǒng)總體設(shè)計思路,在后面的章節(jié)中將整個系 統(tǒng)分為機械結(jié)構(gòu),硬件電路設(shè)計,傳統(tǒng) PID 設(shè)計,神經(jīng)網(wǎng)絡(luò)設(shè)計等四部分對智 能車控制系統(tǒng)進(jìn)行深入的介紹和分析。

根據(jù)第十五屆智能車競賽規(guī)則,AI 電磁組比賽是在 PVC 賽道上進(jìn)行,賽道 采用黑色邊線引導(dǎo)。選手制作的車模完成賽道運行一周。車輛運行時間是從車 模沖過起跑線開始,到最后車?;氐狡鹋芫€為止。賽道中存在的元素包括直線 道路、曲線彎道、十字交叉路口、環(huán)島(可不進(jìn)入)。

根據(jù)競賽規(guī)則相關(guān)規(guī)定及以上任務(wù)要求,智能車系統(tǒng)采用大賽組委會統(tǒng)一 提供的 C 型車模,以恩智浦公司生產(chǎn)的 MIMXRT1064DVL6A 作為核心控制器,在 IAR 開發(fā)環(huán)境中進(jìn)行軟件開發(fā)。智能車系統(tǒng)檢測電磁場信號為基礎(chǔ),通過單片機 處理信號實現(xiàn)對車體控制。通過編碼器測速模塊來檢測車速,并采用 RT1064 的 輸入捕捉功能進(jìn)行脈沖計數(shù)計算速度和路程;電機轉(zhuǎn)速控制采用 PID 控制,通 過 PWM 控制驅(qū)動電路調(diào)整電機的轉(zhuǎn)速,完成智能車速度的閉環(huán)控制。

根據(jù)以上系統(tǒng)方案設(shè)計,賽車總共包括一下幾個模塊:

1.RT1064 單片機最小系統(tǒng)模塊;2.電源模塊; 3.電機驅(qū)動模塊 ;4.傳感器模塊; 5. 無線串口模塊; 6.編碼器測速模塊; 7.陀螺儀模塊; 8.停車線檢測模塊; 9.人機交互模塊。

▲ 圖1.2-1 系統(tǒng)框圖

機械設(shè)計中,我們需要考慮多電感的保護,轉(zhuǎn)向機構(gòu)設(shè)計,電路板放置, 車身強度等問題。

2.1 智能汽車車體機械建模

此次競賽選用的是東莞市博思電子數(shù)碼科技有限公司生產(chǎn)的智能車競賽專 用模型車(C 型模型車),配套的電機型號為 RS-380,舵機的型號為 FUTABA3010。智能車的外形大致如下:

▲ 車模照片

2.2 轉(zhuǎn)向機構(gòu)設(shè)計

在調(diào)試過程中,我們發(fā)現(xiàn)原有的轉(zhuǎn)向機構(gòu)中舵機的轉(zhuǎn)角與前輪的轉(zhuǎn)角不為線 性關(guān)系,故嘗試更改前輪轉(zhuǎn)向機構(gòu)為線性控制,但導(dǎo)致前輪轉(zhuǎn)向時的響應(yīng)時間 增長,轉(zhuǎn)彎不及時。

最終我們使用了自制的舵機固定板與舵機轉(zhuǎn)向套裝,如下圖所示。

▲ 舵機固定板與舵機轉(zhuǎn)向套裝

最終雖然控制仍不為線性,但做到了前輪轉(zhuǎn)向的快速響應(yīng),轉(zhuǎn)向機構(gòu)整體如 下圖。

▲ 轉(zhuǎn)向機構(gòu)

2.3 電路板放置

對于電路板排布,我們經(jīng)過兩次迭代,最終選擇采用如下圖所示的碳板作為 整體的支撐結(jié)構(gòu),使用 4 根銅柱與車模底盤連接,保證強度的同時,也能盡可 能地讓車身更輕,從而有更為穩(wěn)定的結(jié)構(gòu),且易于加裝/拆卸長前瞻。

▲ 自制支撐結(jié)構(gòu)

為了維持多個電感與車模之間固定的相對位置,我們將所有裝有采集電感傳 感器的電路板都安裝在碳板上,同時為了操作、拆卸更加方便,我們將其他電 路板也固定在了碳板之上。

▲ 碳板固定

2.4 智能汽車傳感器的安裝

車模中的傳感器包括有:速度傳感器,車模姿態(tài)傳感器(陀螺儀、加速度計), 霍爾傳感器以及采集電感傳感器。下面分別介紹這些傳感器的安裝。

2.4.1 速度傳感器的安裝

速度傳感器使用了龍邱 512 線 mini 編碼器,固定于車模的編碼器位置上。

2.4.2 姿態(tài)傳感器的安裝

車模使用了 HWT101 旋轉(zhuǎn)角姿態(tài)傳感器,固定于電路板上,俯視位置處于車 模的中心處,保證檢測數(shù)據(jù)的可靠性。

2.4.3 霍爾傳感器的安裝

車模使用了自制的霍爾傳感器模塊對終點線進(jìn)行檢測,其安裝位置于車模最 前方的底板之上,使用熱熔膠固定,如下圖所示。

▲ 霍爾模塊

2.4.4 采集電感傳感器的安裝

車模共使用了 14 個采集電感傳感器,其中 11 個布置于電路板上,另有 3 個作備用。11 個位于電路板上的電感分 3 排擺放,第一排 7 個電感,第二排 2 個電感,第三批 2 個電感。為保護電感不受撞擊損傷,為每個電感都加裝了保護 殼,如下圖所示。

▲ 電感安裝

2.5車身強度

為了提升車身強度,除了支撐電路板的碳板以外,我們還在車模底部添加了 一塊碳板,從而提升了車模的強度。為了避免碰撞與剮蹭,我們在車模的正前 面加裝了防撞條。

2.6 輪胎處理

使用輪胎軟化劑浸泡之后打磨并用硅橡膠粘合輪胎與輪轂。

從最初進(jìn)行硬件電路設(shè)計時我們就既定了系統(tǒng)的設(shè)計目標(biāo):可靠、高效、簡 潔,在整個系統(tǒng)設(shè)計過程中嚴(yán)格按照規(guī)范進(jìn)行。

可靠性是系統(tǒng)設(shè)計的第一要求, 我們對電路設(shè)計的所有環(huán)節(jié)都進(jìn)行了電磁 兼容性設(shè)計,做好各部分的接地、屏蔽、濾波等工作,將高速數(shù)字電路與模擬 電路分開,考慮到走線問題,設(shè)計為 4 個部分得 PCB 電路板,使本系統(tǒng)工作的 可靠性達(dá)到了設(shè)計要求。

3.1 電源管理模塊

在考慮離比賽開始時間短的情況下,采用 RT1064 最小核心板,加快整個項 目的進(jìn)度。在保證電壓穩(wěn)定驅(qū)動電流足夠紋波小盡可能沒有,用一片 LDO 芯片 LP38692MP-5.0 單獨給最小核心板供電。

▲ 核心板供電原理圖

一片 IDO 芯片 LP38692MP-5.0 給編碼器、陀螺儀、無線串口、主板上的磁傳 感器供電,一片 IDO 芯片 LP38692MP-3.3 給 OLED 液晶屏,起跑線檢測模塊供電, 一片 IDO 芯片 LP38692MP5.0 給外載磁傳感器供電。通過引腳(圖 3.1-2 中 PW_EN) 拉高給使能信號控制外設(shè)供電,保證核心板正常啟動。

▲ 外設(shè)供電原理圖

3.2 電機驅(qū)動模塊

電機驅(qū)動使用芯片 BTN8982TA,搭建全橋驅(qū)動電路。該芯片正常輸出電流可 以達(dá)到 50A,同時 BTN8982 的輸出阻抗正常情況為 9 毫歐左右,阻抗越小,芯片 的發(fā)熱量越小,功耗也就越小。從另一個角度看,該芯片內(nèi)部集成了 H 橋驅(qū)動 器以及由 MOS 管組成的半 H 橋電路,設(shè)計簡單,布局方便。

▲ 電機驅(qū)動原理圖

3.3 舵機供電

比賽提供的舵機為 FUTABA3010,該舵機工作電壓 4.0V-6.0V,工作時所需電 流為 175mA。為了保證舵機正常工作且不影響其他電路工作,為此我們采用線性 電源 LT1764 給舵機供電,該芯片輸出電流可達(dá) 3A,此時壓差為 340mV,輸入電壓范圍廣:2.7V-20V,輸出電壓范圍為 1.21V-20V,輸出電壓與外部配比電阻有 關(guān)。

▲ 舵機驅(qū)動原理圖

輸出電壓計算公式:

其中IADJ  = 3uA,與其他變量有數(shù)量級差別,故忽略不計。所以此時計算出VOUT  = 5.957V。

3.4磁傳感器模塊

磁傳感器是電磁組小車最重要的模塊之一,根據(jù)變化的磁場信號作出靈敏的 檢測,車體在賽道上位置判斷以及之后得控制起著至關(guān)重要的作用。本系統(tǒng)根 據(jù) LC 諧振的原理,選取 10mH 電感和 6.8nF 電容作為 LC 諧振電路,產(chǎn)生感應(yīng) 電流,再通過濾波、放大、檢波,然后將結(jié)果送入單片機 AD 進(jìn)行相應(yīng)的處理, 以判斷賽道當(dāng)前信息。后級放大電路原理圖所示。

▲ 采集級放大電路原理圖

3.5 無線串口模塊

使用逐飛的無線 USB/無線轉(zhuǎn)串口模塊套件,實現(xiàn)實時主機與核心板通信, 可以傳回神經(jīng)網(wǎng)絡(luò)需要的訓(xùn)練數(shù)據(jù),同時也可以實現(xiàn)遙控車無線更改參數(shù)等操 作,大大節(jié)約了時間。

3.6 編碼器測試模塊

本小車使用龍邱智能科技的 512 線 mini 型編碼器進(jìn)行小車的測速,工作電 壓在 3.3V- 5V。處理器通過讀取編碼器脈沖數(shù)來實現(xiàn)小車速度的測, 通過讀取 編碼器旋轉(zhuǎn)方向腳的高低電平來檢測電機的正反轉(zhuǎn)。

3.7 陀螺儀模塊

采用 HWT101 旋轉(zhuǎn)角姿態(tài)傳感器,內(nèi)部集成姿態(tài)解算器,配合動態(tài)卡爾曼濾 波算法,能準(zhǔn)確的得出當(dāng)前姿態(tài),姿態(tài)測量精度靜態(tài) 0.05 度,動態(tài) 0.1 度, 穩(wěn)定性極高,用于神經(jīng)網(wǎng)絡(luò)的記憶之中。

3.8 停車模塊選型

起跑線處布有磁鐵表面磁場強度為 3000-4000 G,針對磁場強度和車速兩個 條件下不斷嘗試不同霍爾元件型號如 SM351LT,SS41F,DRV5055,HAL145 等, 在最后根據(jù)車速和檢測準(zhǔn)確率我們選擇 HAL145。

這是一種全極性霍爾開關(guān)。當(dāng) 霍爾開關(guān)在磁鐵上方時, 霍爾開關(guān)輸出低電平,單片機檢測到低電平引發(fā)單片 機中斷。單個霍爾開關(guān)的 電路原理圖如圖 3.2.6 所示。

▲ 霍爾開關(guān)原理圖

3.9 人機交互模塊

為了方便調(diào)試,本車有無線串口模塊,有效進(jìn)行運行參數(shù)之間的傳送,除此 之外,還設(shè)置了鍵盤、OLED 液晶顯示屏,以方便控制參數(shù)的修改,便捷的智能 車的調(diào)試。

傳統(tǒng) PID 控制部分,我們需要考慮基于電感電壓的數(shù)據(jù),控制舵機轉(zhuǎn)向和電 機轉(zhuǎn)速。另外,我們加入了陀螺儀和編碼器對賽道進(jìn)行建圖,以期獲得無限長 前瞻。

4.1 舵機轉(zhuǎn)向控制

舵機控制中,我們的目標(biāo)是通過改變舵機轉(zhuǎn)向,讓車子盡量地保持在賽道中 間。我們希望車身在賽道中間,即誤差 Error 盡量地在 0 附近,當(dāng) Error<0 時, 說明車身偏右,需要舵機向左打角,同理當(dāng) Error>0 時,說明車身偏左,需要 舵機向右打角。

4.1.1 舵機轉(zhuǎn)向偏差計算方案

4.1.1.1 差值法

差值法,顧名思義,通過左右電感的差值作為偏差對小車進(jìn)行控制,符號判 斷方向,大小作為控制量,這是我們最開始采用的控制小車的策略,這樣的控 制策略能夠在低速情況下滿足控制要求,但是極不穩(wěn)定,容易出界,經(jīng)過數(shù)據(jù) 采集和可視化,我們發(fā)現(xiàn)這種策略所計算出來偏差并不是單調(diào)的,而是隨著原 理賽道中線的距離增大先增,到達(dá)峰值,再遞減,這也解釋了當(dāng)其遠(yuǎn)離賽道中 線后其控制量不足,導(dǎo)致車身出界的情況。

4.1.1.2 三電感控制法

在我們發(fā)現(xiàn)偏差不單調(diào)后,我們就想找一種控制策略來解決這個問題,我們 發(fā)現(xiàn),差值法判斷方向是比較準(zhǔn)確的,所以我們保留了其方向控制策略,在兩 個電感中間加了中間電感,以中間電感與其設(shè)定的最大值的差值作為偏差,這 種方案較好的解決了偏差不單調(diào)的問題,在前瞻比較長的情況下控制效果也很 不錯,但后面我們發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)不能很好的學(xué)習(xí)長前瞻所收回的數(shù)據(jù)的時候, 我們改用短前瞻進(jìn)行數(shù)據(jù)收錄,這時我們發(fā)現(xiàn)這種策略在轉(zhuǎn)大彎時候效果不太 好,響應(yīng)太慢跟不上,由于信號線的鋪設(shè)問題,不同的直道,中間電感所能測量的最大幅度也不同,導(dǎo)致在 Error 在直道上不一定為 0,會產(chǎn)生舵機的震蕩, 無法解決,因此也放棄這種方案。

4.1.1.3 歸一化法

在我們發(fā)現(xiàn)三電感方案不能滿足段前瞻控制需求后,我們和往屆學(xué)長進(jìn)行溝 通交流,他們提出歸一化法方案,這種方案具體是用左右電感的差值比上左右 電感的和,我們嘗試了一段時間后,這種方案確實是有一定的效果,控制作用 在大彎的時候確實是得到了增強,解決了三電感所存在的問題,但在我們加速 后,發(fā)現(xiàn)它和差值法存在同樣的問題,計算出來的偏差不單調(diào),所以在連續(xù)過 彎切邊的時候,誤差值會變小,非常容易跑飛出去,因此我們不得不尋找下一 種控制方案。

4.1.1.4 比值法

除了上面的方案,我們還嘗試了各種各樣的方案:比如放置斜電感、多個中 間電感模擬攝像頭等等,最終我們選取了下面這種方案。

構(gòu)建位置誤差公式:

L:左邊電感電壓值 R:右邊電感電壓值

這種計算式其實也存在不單調(diào)的情況,但單調(diào)的區(qū)間很大,在賽道的約束條 件下完全滿足要求,并且其對轉(zhuǎn)彎比較靈敏,有效的解決了過彎的難題。

4.1.2 舵機轉(zhuǎn)向控制策略

4.1.2.1 傳統(tǒng)控制策略

此部分中,我們只采用了 PD 控制,因為車輛電感值在實時更新,需要進(jìn)行 實時轉(zhuǎn)向,因此不需要使用 I 控制。PD 控制中,P 為實時修改狀態(tài),而 D 是為 了修補 P 實時性的不足,達(dá)到提前的作用。另外,為了提升大彎轉(zhuǎn)向的快速性 能和直道的穩(wěn)定性能,我們通過 Error,劃分了兩組 PD,當(dāng) Error 較小時,認(rèn) 為是在直道,采用較小的 PD 保證穩(wěn)定性,防止震蕩,當(dāng) Error 較大時,認(rèn)為是在彎道,采用較大的 PD 保證快速轉(zhuǎn)向。

▲ 舵機控制模型

4.1.2.2 控制策略探索

運用傳統(tǒng)控制策略進(jìn)行控制的時候,我們發(fā)現(xiàn)參數(shù)調(diào)節(jié)十分麻煩,而且適應(yīng) 性不強,因此我們就想有沒有一種方案能不能在一定區(qū)間自動調(diào)整 PID 參數(shù)去 適應(yīng)不同的條件,我們查閱了相關(guān)文獻(xiàn),幾乎都指向了模糊 PID 控制這一方向。

帶著探索的心,我們?nèi)チ私饬四:?PID 的相關(guān)理論,并試著寫了一套模糊 PID 算法,發(fā)現(xiàn)這套算法調(diào)參難度并不亞于傳統(tǒng)的 PID,但是適應(yīng)性的確強了不少, 但這與我們想要簡化調(diào)參過程的初衷并不一致,所以沒有更深入的去探索。

后 面根據(jù)我們對問題的分析,我們發(fā)現(xiàn)舵機控制與當(dāng)前偏差、偏差的變化率息息 相關(guān),我們根據(jù)這兩者的狀態(tài)繪制了以下程序框圖并實現(xiàn):

▲ 模糊控制PID部分流程圖

我們僅僅需要確定每次調(diào)整步長,我們就可以是 PID 在一個范圍內(nèi)進(jìn)行變 動,滿足不同情況下的要求。

4.1.2.3 控制策略展望

為了簡化調(diào)參和增強適應(yīng)性,在上一小節(jié)我們對控制策略進(jìn)行了探索,但是還是逃不掉反復(fù)調(diào)參的過程,這個過程枯燥乏味又不得不做,我們就想能不能 有一套系統(tǒng)能夠在調(diào)好一套參數(shù)的情況下,通過獎勵——懲罰機制使其不斷提 速,參數(shù)不斷適應(yīng)速度的改變呢?

我們就想用一個攝像頭來捕捉車子在賽道上 的狀態(tài)信息,建立一套獎勵懲罰機制,當(dāng)車子偏離賽道中央過大,說明參數(shù)不 太好,給與一定的懲罰,反之亦反之,然后車子緩慢的提速,參數(shù)不斷適應(yīng)車 速達(dá)到自適應(yīng)的效果。

4.2 電機控制

電機控制中,我們使用 PID 控制電機的速度。另外,還需要由轉(zhuǎn)向角度控制 電機差速,從而讓車子更好過彎。

4.2.1 電機速度

電機轉(zhuǎn)速控制中,我們不斷地讀取編碼器返回的實際轉(zhuǎn)速,與期望轉(zhuǎn)速作差 得到 Error,我們希望轉(zhuǎn)速能夠快速跟隨,即希望 Error 能夠盡快地到 0。采用 最原始的位置式 PID 控制,加上積分抗飽和算法基本滿足控制要求。

▲ 電機速度控制模型

4.2.2 電機差速

電機差速的和舵機轉(zhuǎn)向相關(guān),基于阿克曼轉(zhuǎn)向模型,當(dāng)舵機需要轉(zhuǎn)向更大的 角度的時候,差速的值應(yīng)該越大,以輔助車身更好的入彎。另外,我們發(fā)現(xiàn)車 身出界的情況大多數(shù)是在入彎的過程中,在彎道部分一般是不會出的。

為了實 現(xiàn)彎道加速的功能,我們也讓其與舵機轉(zhuǎn)向變化率相關(guān),當(dāng)轉(zhuǎn)向變化率較大時, 即入彎過程中,速度降低,而當(dāng)轉(zhuǎn)向變化率逐漸變小時,即車身穩(wěn)定后,則可 以提高速度。因此,我們的速度是由需要轉(zhuǎn)彎的角度和轉(zhuǎn)彎角度的變化率二者 共同決定。

具體的計算流程如下圖:

▲ 電機差速控制流程圖

由圖中可以看到,當(dāng)突然出現(xiàn)需要打一個比較大的角度的時候,速度會減下來,與此同時,由于突然產(chǎn)生了如此大的角度,方向變化率也會變大,從而讓 小車順利減速過彎。但是在過彎的途中,雖然角度仍然是比較大的值,可是方 向變化率在減小,從而可以讓整體速度進(jìn)行提升,最終達(dá)到過彎加速的效果。

4.3 記憶方案

通常我們使用電感等傳感器實時檢測到的信息作為判斷依據(jù)來控制車模的 轉(zhuǎn)向和加減速,在限制前瞻長度的情況下這樣的實時判斷相比于長前瞻就有嚴(yán) 重的滯后性,我們嘗試不使用或少使用實時判斷的信息進(jìn)行控制。

我們先使車模在平穩(wěn)狀態(tài)下運行一段賽道,記錄每個控制周期的陀螺儀 z 軸 轉(zhuǎn)角與編碼器數(shù)值,通過這些信息對賽道進(jìn)行解算,將賽道元素分為三類:直 道、左轉(zhuǎn)、右轉(zhuǎn),可以得到一個簡化版的賽道數(shù)組(包含按順序排列的賽道的 每個元素以及對應(yīng)的直道長度或彎道角度以及彎道半徑)。

▲ 某段賽道的結(jié)算數(shù)組及其圖像

發(fā)現(xiàn)效果良好,嘗試在第二圈時使用第一次運行時記錄下的解算后的賽道信 息作為判斷依據(jù)通過如下步驟控制車模運行(使用速度 PID 環(huán)作為內(nèi)環(huán)、位置 PID 環(huán)作為外環(huán)對車模進(jìn)行控制):

①進(jìn)入直道后使用速度圖像為拋物線的加速方式,加到設(shè)定的直道速度后勻 速運行;

②在直道中根據(jù)編碼器的實時讀數(shù)計算減速至設(shè)定的彎道速度所需的距離與車模在當(dāng)前直道元素中已行進(jìn)的距離,當(dāng)減速所需的距離與車模進(jìn)入下一賽 道元素的剩余距離相差很小時,使車模進(jìn)行拋物線減速,在進(jìn)入下一賽道元素 前就能減至設(shè)定的彎道速度;

③在彎道中根據(jù)彎道的半徑控制前輪的轉(zhuǎn)角與后輪的差速,并使車模勻速通 過彎道;

④重復(fù)①~③步驟;

⑤車模檢測到終點線后停止運行。但由于備賽時間較短,未能完整實現(xiàn)上述控制方案。我們又嘗試使用車模第一次運行賽道記憶的信息提升直道速度,只根據(jù)距離信息來進(jìn)行入彎時的提前減速。

不過,我們發(fā)現(xiàn)直接加速會存在問題,車子變得非常不好控制,很容易沖出賽道,因此后面我們只是略微增大了一些速度, 但是增加電機的 I 項,從而讓整體的速度進(jìn)行提高。

神經(jīng)網(wǎng)絡(luò)控制部分,我們希望送入神經(jīng)網(wǎng)絡(luò)電感值,讓神經(jīng)網(wǎng)絡(luò)輸出舵機轉(zhuǎn) 向值。

5.1 數(shù)據(jù)收集

數(shù)據(jù)收集部分,我們分別采用了長短前瞻的電感值電壓輸入作為 PID 控制, 進(jìn)行數(shù)據(jù)的采集。采集過程中,我們使用無線串口進(jìn)行上位機和 MCU 通信,通 過 python 寫上位機。其中 pyserial 進(jìn)行串口數(shù)據(jù)的解析,pygame 讀取鍵盤命 令從而達(dá)到小車控制的功能。另外,我們采用了 Matlabplotlib 的包進(jìn)行了多 種情況的可視化,便于進(jìn)行分析。

另外,我們對車子進(jìn)行了遠(yuǎn)程控制,通過串口,我們可以在上位機中實現(xiàn)控 制車輛啟停,車輛加減速,車輛拐彎等功能,從而更好地收集數(shù)據(jù)。與此同時, 我們還通過遠(yuǎn)程串口,進(jìn)行了 PID 參數(shù)的調(diào)節(jié),從而大大方便了 PID 的調(diào)參過 程。

經(jīng)過整理,我們發(fā)現(xiàn)這個環(huán)境中徹底驗證了"Garbage in, Garbage out" 的說法,即數(shù)據(jù)好則神經(jīng)網(wǎng)絡(luò)效果好,數(shù)據(jù)不好,則神經(jīng)網(wǎng)絡(luò)效果很差。

我們 分別采用了長前瞻和短前瞻作為 PID 數(shù)據(jù)源進(jìn)行車輛控制,然后在長前瞻 PID 中收集了長前瞻和短前瞻的電感數(shù)據(jù),在短前瞻 PID 中,收集短前瞻的電感數(shù) 據(jù),對這三種數(shù)據(jù)進(jìn)行學(xué)習(xí)。

實驗發(fā)現(xiàn),當(dāng)長前瞻跑 PID 時,長前瞻的電感送 入神經(jīng)網(wǎng)絡(luò)中擬合的很好,但是短前瞻電感值送入神經(jīng)網(wǎng)絡(luò)中擬合卻不行。短 前瞻跑 PID 時,短前瞻電感值送入神經(jīng)網(wǎng)絡(luò)擬合很好。

因此實驗結(jié)論是:基于 某幾個電感進(jìn)行 PID 控制,則采集對應(yīng)電感值作為神經(jīng)網(wǎng)絡(luò)輸入,神經(jīng)網(wǎng)絡(luò)的 擬合性能很好。

關(guān)于數(shù)據(jù)集制作,為了更好地收集數(shù)據(jù),我們在上位機中遠(yuǎn)程控制車輛是否 發(fā)送數(shù)據(jù),從而可以有針對性地在各個環(huán)境中進(jìn)行數(shù)據(jù)制作。數(shù)據(jù)清洗方面, 因為串口發(fā)送的頻率過高,存在了大量的數(shù)據(jù)是重復(fù)的,因此我們針對性地對 相鄰兩幀之間電感數(shù)據(jù)差距不算很大的進(jìn)行了刪除。

另外,為了適應(yīng)不同的場 地,我們還進(jìn)行了數(shù)據(jù)歸一化的操作,每次啟動車子之前,我們平移我們的車子,收取賽道中最大的電感值,然后所有的電感除以對應(yīng)最大電感值從而獲取 歸一化后的電感值。

在數(shù)據(jù)采集的過程中我們發(fā)現(xiàn)了訓(xùn)練出來的模型效果不是很好,經(jīng)過可視化 之后,發(fā)現(xiàn)靠近舵機的電感數(shù)據(jù)不穩(wěn)定,即使開啟了硬件平均也有很大的抖動, 這對于訓(xùn)練必然是不好的。

▲ 某電感濾波前的圖像

在觀察到這樣的現(xiàn)象之后,我們決定加入軟件濾波,對于這種數(shù)據(jù)抖動較大 的情況,最簡單的濾波公式莫過于卡爾曼濾波,對于單片機性能的要求也最低, 在電感的采集過程中,只需要貯存上一個電感數(shù)據(jù)既可,下圖為濾波之后的效 果。

▲ 某電感濾波后的圖像

5.2 電感排布

電感排布部分,我們通過隨機增加擾動的方式,尋找最為重要的電感。最終確定了 11 個電感排布的方案。假設(shè)有 3 個電感分別放置在車前左中右位置,前面的系數(shù)分別為 0.8,1.2, 0.8,則可列電感控制舵機的方程:

但是實際上,我們并不知道各個電感前的系數(shù),因此假設(shè)為 A,B,C,直觀 地,我們可以認(rèn)為:某個電感前系數(shù)較大,則某個電感更為重要,因為他的對 舵機的影響更大。

雖然在神經(jīng)網(wǎng)絡(luò)中,每個電感與舵機輸出并不是線性關(guān)系, 但是我們不妨假設(shè):不同電感變化同一個幅度時,哪個電感能導(dǎo)致舵機變化越 大,哪個電感就是更為重要的電感。基于此假設(shè),我們完成了電感排布的確定。

▲ 電感分布確定流程圖

具體步驟如下:每次我們隨機選擇放置電感排布,通過神經(jīng)網(wǎng)絡(luò)收取數(shù)據(jù)進(jìn) 行訓(xùn)練得到一個網(wǎng)絡(luò)模型。然后,我們對收集到的數(shù)據(jù)添加隨機擾動,從-0.1~ 0.1,分為 10 個范圍,即-0.1~-0.08,-0.08~-0.06....0.06~0.1。

得到隨機擾動的數(shù)據(jù)集之后,我們把原始數(shù)據(jù)的輸出和擾動數(shù)據(jù)的輸出(都 使用同一個網(wǎng)絡(luò))做差得到絕對值。如果某個電感的絕對值較大,則說明此電 感輕微擾動對網(wǎng)絡(luò)輸出影響大,是比較重要的電感。

基于此套方法,我們確定了 11 個電感的排布位置,下為某組數(shù)據(jù)擾動之后 的誤差分布圖。

▲ 電感誤差分布

以第一列圖片為例,第一列對應(yīng)的是第一排最左邊的電感,從上到下,分別 對應(yīng)了施加擾動的范圍為-0.1~-0.08,-0.08~-0.06.......0.06~0.08, 0.08~0.1。直方圖代表了施加擾動前后輸出的差的絕對值的分布。從圖中我們 可以看到在中間部分的偏差靠近 0,而上下偏差靠近 1,符合邏輯。另外,橫向 對比,我們可以看到,第 1,2,3,4,5,8,9 列的影響相對比較大,他們對 應(yīng)了第一排左中右(1,2,3),第二排左右(4,5),第一排豎電感(8,9)。

5.3 網(wǎng)絡(luò)結(jié)構(gòu)

我們進(jìn)行了大量的網(wǎng)絡(luò)結(jié)構(gòu)測試,由于 NXP 芯片所限,基本上只能夠使用全 連接層。不過相比于直接送入電感值,我們將電感值和歷史 10 次網(wǎng)絡(luò)輸出值(舵 機期望值)共同送入網(wǎng)絡(luò),從而相同網(wǎng)絡(luò)結(jié)構(gòu)(只有輸入層不同)訓(xùn)練結(jié)果的 loss 從 0.04 降到了 0.02,網(wǎng)絡(luò)跟蹤的效果也變得更好。

另外,我們也發(fā)現(xiàn),基本上的全連接層已經(jīng)足夠訓(xùn)練網(wǎng)絡(luò),網(wǎng)絡(luò)的效果也是滿足需求的。基于此我們盡可能地縮小網(wǎng)絡(luò)大小,讓速度盡快,最終的網(wǎng)絡(luò)結(jié) 果為:

網(wǎng)絡(luò)結(jié)果輸入為 Nx21x1 的數(shù)據(jù),(11 個電感和前 10 幀的舵機控制角度), 分別經(jīng)過 Dense,BatchNormal,Dropout 等的操作,最終生成一個 1 維度的舵 機值,即為目標(biāo)輸出,網(wǎng)絡(luò)結(jié)構(gòu)圖如下。

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

電路部分嘗試過為軟件增加電機的電流環(huán),但由于 AI 電磁要求的磁傳感器 過多,芯片 ADC 引腳比較緊張,最后沒有落地。鑒于 AI 電磁本身的特殊性—— 對磁傳感器位置的嚴(yán)要求,電路部分將用于 AI 的磁傳感器分割到單獨 PCB 板上, 確保位置固定,車與車差異小,算法可以移植,與機械部分一同做好電感保護。

機械方面,使用碳板制作的頂棚搭載多個電感,增強了電感數(shù)值的可靠性 電控方向,我們采用陀螺儀和編碼器進(jìn)行了全地圖的繪制,然后針對直道進(jìn)行了二次加速。

神經(jīng)網(wǎng)絡(luò)方向,我們將歷史的舵機控制值送入神經(jīng)網(wǎng)絡(luò),大大提升了網(wǎng)絡(luò)的 效果。

從機械到電路再到電控和神經(jīng)網(wǎng)絡(luò),我們搭建了一個完整的車子。對車子進(jìn) 行穩(wěn)定性測試,算法迭代優(yōu)化,我們才算是真正地完成了一個項目。小組成員 每個人都盡著自己最大的努力不加班不快,沒成果沒休息逐漸成為我們的 常態(tài)。這一次的磨礪,所有的隊員都有了非常大的進(jìn)步,與此同時,我們也收 獲了一份友誼。

另外,感謝學(xué)校對我們的支持,在疫情期間仍然全力支持我們。感謝組委會提供的參賽機會。

[1] 卓晴,黃開勝,邵貝貝等,《學(xué)做智能車——挑戰(zhàn)“飛思卡爾”杯》[c].北京:北京 航空航天大學(xué)出版社,2007.

[2] 譚浩強,C 語言程序設(shè)計[M],北京:清華大學(xué)出版社,2005.

[3] 王宜杯,嵌入式系統(tǒng)原理與實踐:ARM Cortex-M4 Kinetis 微處理器,北京:電子工業(yè) 出版社,2012.

[4] 陶永樂,新型 PID 控制及其應(yīng)用(第二版),北京:機械工業(yè)出版社 [5] 李發(fā)海,王巖等,電機與拖動基礎(chǔ),北京:清華大學(xué)出版社

[6] 胡壽松,自動控制原理(第六版),北京:科學(xué)出版社

1.軟件開發(fā)平臺:KEIL

▲ 軟件開發(fā)平臺 KEIL

2.神經(jīng)網(wǎng)絡(luò) h5 文件轉(zhuǎn)換工具:

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

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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