首頁>科技>

1.1 大賽介紹

全國大學生“恩智浦”杯智慧汽車競賽是以“立足培養、重在參與、鼓勵 探索、追求卓越”為宗旨,鼓勵創新的一項科技競賽活動。今年首次新增了電 磁 AI 組別,希望透過神經網路學習甚至超越傳統的 PID 控制方法。

在這份報告中,我們小組對小車設計製作整體思路、機械、電路、電控、 神經網路幾個方面進行了詳細的介紹。整體思路中主要概括了專案構建時的主 要核心思想,機械部分中主要闡述了小車的機械部分中主要闡述了小車的結構 設計,包含各部件的安裝位置以及對車模的保護措施,電路部分主要闡述了小 車的電路結構設計為軟體停工穩定輸入與輸出環境減少外界干擾,電控部分主 要闡述瞭如何採用 PID 進行小車控制,包含舵機控制,差速控制,電機控制等。 神經網路部分主要闡述瞭如何採用神經網路學習小車控制方法,包含資料集制 作,電感位置分佈,網路結構創新等。

雖說看似就是一簡單巡線的專案,但是隨著深入地進行研究,我們發現在 此之上可以用非常多方法大幅度提升巡線效果。比如可以透過無線串列埠進行 PID 遠端調參,透過神經網路去自動地尋找較好的控制方法,透過陀螺儀和編碼器 去記錄整個賽道等等。隨著一步步地迭代,我們的工程越來越大,完成的功能 也越來越多,自然而然速度也在一點一滴地提升。

1.2 整體方案設計

本節主要簡要地介紹智慧車系統總體設計思路,在後面的章節中將整個系 統分為機械結構,硬體電路設計,傳統 PID 設計,神經網路設計等四部分對智 能車控制系統進行深入的介紹和分析。

根據第十五屆智慧車競賽規則,AI 電磁組比賽是在 PVC 賽道上進行,賽道 採用黑色邊線引導。選手製作的車模完成賽道執行一週。車輛執行時間是從車 模衝過起跑線開始,到最後車模回到起跑線為止。賽道中存在的元素包括直線 道路、曲線彎道、十字交叉路口、環島(可不進入)。

根據競賽規則相關規定及以上任務要求,智慧車系統採用大賽組委會統一 提供的 C 型車模,以恩智浦公司生產的 MIMXRT1064DVL6A 作為核心控制器,在 IAR 開發環境中進行軟體開發。智慧車系統檢測電磁場訊號為基礎,透過微控制器 處理訊號實現對車體控制。透過編碼器測速模組來檢測車速,並採用 RT1064 的 輸入捕捉功能進行脈衝計數計算速度和路程;電機轉速控制採用 PID 控制,通 過 PWM 控制驅動電路調整電機的轉速,完成智慧車速度的閉環控制。

根據以上系統方案設計,賽車總共包括一下幾個模組:

1.RT1064 微控制器最小系統模組 2.電源模組 3.電機驅動模組 4.感測器模組 5. 無線串列埠模組 6.編碼器測速模組 7.陀螺儀模組 8.停車線檢測模組 9.人機互動模組

▲ 圖1.2-1 系統框圖

機械設計中,我們需要考慮多電感的保護,轉向機構設計,電路板放置, 車身強度等問題。

2.1 智慧汽車車體機械建模

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

▲ 車模照片

2.2 轉向機構設計

在除錯過程中,我們發現原有的轉向機構中舵機的轉角與前輪的轉角不為線 性關係,故嘗試更改前輪轉向機構為線性控制,但導致前輪轉向時的響應時間 增長,轉彎不及時。

最終我們使用了自制的舵機固定板與逐飛科技智慧車基地的舵機轉向套裝,如下圖所示。

▲ 舵機固定板與舵機轉向套裝

最終雖然控制仍不為線性,但做到了前輪轉向的快速響應,轉向機構整體如 下圖。

▲ 轉向機構

2.3 電路板放置

對於電路板排布,我們經過兩次迭代,最終選擇採用如下圖所示的碳板作為 整體的支撐結構,使用 4 根銅柱與車模底盤連線,保證強度的同時,也能儘可 能地讓車身更輕,從而有更為穩定的結構,且易於加裝/拆卸長前瞻。

▲ 自制支撐結構

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

▲ 碳板固定

2.4 智慧汽車感測器的安裝

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

2.4.1 速度感測器的安裝

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

2.4.2 姿態感測器的安裝

車模使用了 HWT101 旋轉角姿態感測器,固定於電路板上,俯視位置處於車 模的中心處,保證檢測資料的可靠性。

2.4.3 霍爾感測器的安裝

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

▲ 霍爾模組

2.4.4 採集電感感測器的安裝

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

▲ 電感安裝

2.5車身強度

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

2.6 輪胎處理

使用輪胎軟化劑浸泡之後打磨並用矽橡膠粘合輪胎與輪轂。

從最初進行硬體電路設計時我們就既定了系統的設計目標:可靠、高效、簡 潔,在整個系統設計過程中嚴格按照規範進行。

可靠性是系統設計的第一要求, 我們對電路設計的所有環節都進行了電磁 相容性設計,做好各部分的接地、遮蔽、濾波等工作,將高速數位電路與模擬 電路分開,考慮到走線問題,設計為 4 個部分得 PCB 電路板,使本系統工作的 可靠性達到了設計要求。

3.1 電源管理模組

在考慮離比賽開始時間短的情況下,採用 RT1064 最小核心板,加快整個項 目的進度。在保證電壓穩定驅動電流足夠紋波小盡可能沒有,用一片 IDO 晶片 LP38692MP-5.0 單獨給最小核心板供電。

▲ 核心板供電原理圖

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

▲ 外設供電原理圖

3.2 電機驅動模組

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

▲ 電機驅動原理圖

3.3 舵機供電

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

▲ 舵機驅動原理圖

輸出電壓計算公式:

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

3.4磁感測器模組

磁感測器是電磁組小車最重要的模組之一,根據變化的磁場訊號作出靈敏的 檢測,車體在賽道上位置判斷以及之後得控制起著至關重要的作用。本系統根 據 LC 諧振的原理,選取 10mH 電感和 6.8nF 電容作為 LC 諧振電路,產生感應 電流,再透過濾波、放大、檢波,然後將結果送入微控制器 AD 進行相應的處理, 以判斷賽道當前資訊。後級放大電路原理圖所示。

▲ 採集級放大電路原理圖

3.5 無線串列埠模組

使用逐飛的無線 USB/無線轉串列埠模組套件,實現實時主機與核心板通訊, 可以傳回神經網路需要的訓練資料,同時也可以實現遙控車無線更改引數等操 作,大大節約了時間。

3.6 編碼器測試模組

本小車使用龍邱智慧科技的 512 線 mini 型編碼器進行小車的測速,工作電 壓在 3.3V- 5V。處理器透過讀取編碼器脈衝數來實現小車速度的測, 透過讀取 編碼器旋轉方向腳的高低電平來檢測電機的正反轉。

3.7 陀螺儀模組

採用 HWT101 旋轉角姿態感測器,內部整合姿態解算器,配合動態卡爾曼濾 波演算法,能準確的得出當前姿態,姿態測量精度靜態 0.05 度,動態 0.1 度, 穩定性極高,用於神經網路的記憶之中。

3.8 停車模組選型

起跑線處布有磁鐵表面磁場強度為 3000-4000 G,針對磁場強度和車速兩個 條件下不斷嘗試不同霍爾元件型號如 SM351LT,SS41F,DRV5055,HAL145 等, 在最後根據車速和檢測準確率我們選擇 HAL145。這是一種全極性霍爾開關。當 霍爾開關在磁鐵上方時, 霍爾開關輸出低電平,微控制器檢測到低電平引發單片 機中斷。單個霍爾開關的 電路原理圖如圖 3.2.6 所示。

▲ 霍爾開關原理圖

3.9 人機互動模組

為了方便除錯,本車有無線串列埠模組,有效進行執行引數之間的傳送,除此 之外,還設定了鍵盤、OLED 液晶顯示屏,以方便控制引數的修改,便捷的智慧 車的除錯。

傳統 PID 控制部分,我們需要考慮基於電感電壓的資料,控制舵機轉向和電 機轉速。另外,我們加入了陀螺儀和編碼器對賽道進行建圖,以期獲得無限長 前瞻。

4.1 舵機轉向控制

舵機控制中,我們的目標是透過改變舵機轉向,讓車子儘量地保持在賽道中 間。我們希望車身在賽道中間,即誤差 Error 儘量地在 0 附近,當 Error<0 時, 說明車身偏右,需要舵機向左打角,同理當 Error>0 時,說明車身偏左,需要 舵機向右打角。

4.1.1 舵機轉向偏差計算方案

4.1.1.1 差值法

差值法,顧名思義,透過左右電感的差值作為偏差對小車進行控制,符號判 斷方向,大小作為控制量,這是我們最開始採用的控制小車的策略,這樣的控 制策略能夠在低速情況下滿足控制要求,但是極不穩定,容易出界,經過資料 採集和視覺化,我們發現這種策略所計算出來偏差並不是單調的,而是隨著原 理賽道中線的距離增大先增,到達峰值,再遞減,這也解釋了當其遠離賽道中 線後其控制量不足,導致車身出界的情況。

4.1.1.2 三電感控制法

在我們發現偏差不單調後,我們就想找一種控制策略來解決這個問題,我們 發現,差值法判斷方向是比較準確的,所以我們保留了其方向控制策略,在兩 個電感中間加了中間電感,以中間電感與其設定的最大值的差值作為偏差,這 種方案較好的解決了偏差不單調的問題,在前瞻比較長的情況下控制效果也很 不錯,但後面我們發現神經網路不能很好的學習長前瞻所收回的資料的時候, 我們改用短前瞻進行資料收錄,這時我們發現這種策略在轉大彎時候效果不太 好,響應太慢跟不上,由於訊號線的鋪設問題,不同的直道,中間電感所能測量的最大幅度也不同,導致在 Error 在直道上不一定為 0,會產生舵機的震盪, 無法解決,因此也放棄這種方案。

4.1.1.3 歸一化法

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

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

構建位置誤差公式:

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

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

4.1.2 舵機轉向控制策略

4.1.2.1 傳統控制策略

此部分中,我們只採用了 PD 控制,因為車輛電感值在實時更新,需要進行 實時轉向,因此不需要使用 I 控制。PD 控制中,P 為實時修改狀態,而 D 是為 了修補 P 實時性的不足,達到提前的作用。另外,為了提升大彎轉向的快速性 能和直道的穩定效能,我們透過 Error,劃分了兩組 PD,當 Error 較小時,認 為是在直道,採用較小的 PD 保證穩定性,防止震盪,當 Error 較大時,認為是在彎道,採用較大的 PD 保證快速轉向。

▲ 舵機控制模型

4.1.2.2 控制策略探索

運用傳統控制策略進行控制的時候,我們發現引數調節十分麻煩,而且適應 性不強,因此我們就想有沒有一種方案能不能在一定區間自動調整 PID 引數去 適應不同的條件,我們查閱了相關文獻,幾乎都指向了模糊 PID 控制這一方向, 帶著探索的心,我們去了解了模糊 PID 的相關理論,並試著寫了一套模糊 PID 演算法,發現這套演算法調參難度並不亞於傳統的 PID,但是適應性的確強了不少, 但這與我們想要簡化調參過程的初衷並不一致,所以沒有更深入的去探索。後 面根據我們對問題的分析,我們發現舵機控制與當前偏差、偏差的變化率息息 相關,我們根據這兩者的狀態繪製了以下程式框圖並實現:

▲ 模糊控制PID部分流程圖

我們僅僅需要確定每次調整步長,我們就可以是 PID 在一個範圍內進行變 動,滿足不同情況下的要求。

4.1.2.3 控制策略展望

為了簡化調參和增強適應性,在上一小節我們對控制策略進行了探索,但是還是逃不掉反覆調參的過程,這個過程枯燥乏味又不得不做,我們就想能不能 有一套系統能夠在調好一套引數的情況下,透過獎勵——懲罰機制使其不斷提 速,引數不斷適應速度的改變呢?我們就想用一個攝像頭來捕捉車子在賽道上 的狀態資訊,建立一套獎勵懲罰機制,當車子偏離賽道中央過大,說明引數不 太好,給與一定的懲罰,反之亦反之,然後車子緩慢的提速,引數不斷適應車 速達到自適應的效果。

4.2 電機控制

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

4.2.1 電機速度

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

▲ 電機速度控制模型

4.2.2 電機差速

電機差速的和舵機轉向相關,基於阿克曼轉向模型,當舵機需要轉向更大的 角度的時候,差速的值應該越大,以輔助車身更好的入彎。另外,我們發現車 身出界的情況大多數是在入彎的過程中,在彎道部分一般是不會出的,為了實 現彎道加速的功能,我們也讓其與舵機轉向變化率相關,當轉向變化率較大時, 即入彎過程中,速度降低,而當轉向變化率逐漸變小時,即車身穩定後,則可 以提高速度。因此,我們的速度是由需要轉彎的角度和轉彎角度的變化率二者 共同決定。

具體的計算流程如下圖:

▲ 電機差速控制流程圖

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

4.3 記憶方案

通常我們使用電感等感測器實時檢測到的資訊作為判斷依據來控制車模的 轉向和加減速,在限制前瞻長度的情況下這樣的實時判斷相比於長前瞻就有嚴 重的滯後性,我們嘗試不使用或少使用實時判斷的資訊進行控制。

我們先使車模在平穩狀態下執行一段賽道,記錄每個控制週期的陀螺儀 z 軸 轉角與編碼器數值,透過這些資訊對賽道進行解算,將賽道元素分為三類:直 道、左轉、右轉,可以得到一個簡化版的賽道陣列(包含按順序排列的賽道的 每個元素以及對應的直道長度或彎道角度以及彎道半徑)。

▲ 某段賽道的結算陣列及其影象

發現效果良好,嘗試在第二圈時使用第一次執行時記錄下的解算後的賽道信 息作為判斷依據透過如下步驟控制車模執行(使用速度 PID 環作為內環、位置 PID 環作為外環對車模進行控制):

①進入直道後使用速度影象為拋物線的加速方式,加到設定的直道速度後勻 速執行;

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

⑤車模檢測到終點線後停止執行。 但由於備賽時間較短,未能完整實現上述控制方案。 我們又嘗試使用車模第一次執行賽道記憶的資訊提升直道速度,只根據距離資訊來進行入彎時的提前減速。不過,我們發現直接加速會存在問題,車子變得非常不好控制,很容易衝出賽道,因此後面我們只是略微增大了一些速度, 但是增加電機的 I 項,從而讓整體的速度進行提高。

神經網路控制部分,我們希望送入神經網路電感值,讓神經網路輸出舵機轉 向值。

5.1 資料收集

資料收集部分,我們分別採用了長短前瞻的電感值電壓輸入作為 PID 控制, 進行資料的採集。採集過程中,我們使用無線串列埠進行上位機和 MCU 通訊,通 過 python 寫上位機。其中 pyserial 進行串列埠資料的解析,pygame 讀取鍵盤名 令從而達到小車控制的功能。另外,我們採用了 Matlabplotlib 的包進行了多 種情況的視覺化,便於進行分析。

另外,我們對車子進行了遠端控制,透過串列埠,我們可以在上位機中實現控 制車輛啟停,車輛加減速,車輛拐彎等功能,從而更好地收集資料。與此同時, 我們還透過遠端串列埠,進行了 PID 引數的調節,從而大大方便了 PID 的調參過 程。

經過整理,我們發現這個環境中徹底驗證了"Garbage in, Garbage out" 的說法,即資料好則神經網路效果好,資料不好,則神經網路效果很差。我們 分別採用了長前瞻和短前瞻作為 PID 資料來源進行車輛控制,然後在長前瞻 PID 中收集了長前瞻和短前瞻的電感資料,在短前瞻 PID 中,收集短前瞻的電感數 據,對這三種資料進行學習。實驗發現,當長前瞻跑 PID 時,長前瞻的電感送 入神經網路中擬合的很好,但是短前瞻電感值送入神經網路中擬合卻不行。短 前瞻跑 PID 時,短前瞻電感值送入神經網路擬合很好。因此實驗結論是:基於 某幾個電感進行 PID 控制,則採集對應電感值作為神經網路輸入,神經網路的 擬合效能很好。

關於資料集製作,為了更好地收集資料,我們在上位機中遠端控制車輛是否 傳送資料,從而可以有針對性地在各個環境中進行資料製作。資料清洗方面, 因為串列埠傳送的頻率過高,存在了大量的資料是重複的,因此我們針對性地對 相鄰兩幀之間電感資料差距不算很大的進行了刪除。另外,為了適應不同的場 地,我們還進行了資料歸一化的操作,每次啟動車子之前,我們平移我們的車子,收取賽道中最大的電感值,然後所有的電感除以對應最大電感值從而獲取 歸一化後的電感值。

在資料採集的過程中我們發現了訓練出來的模型效果不是很好,經過視覺化 之後,發現靠近舵機的電感資料不穩定,即使開啟了硬體平均也有很大的抖動, 這對於訓練必然是不好的。

▲ 某電感濾波前的影象

在觀察到這樣的現象之後,我們決定加入軟體濾波,對於這種資料抖動較大 的情況,最簡單的濾波公式莫過於卡爾曼濾波,對於微控制器效能的要求也最低, 在電感的採集過程中,只需要貯存上一個電感資料既可,下圖為濾波之後的效 果。

▲ 某電感濾波後的影象

5.2 電感排布

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

但是實際上,我們並不知道各個電感前的係數,因此假設為 A,B,C,直觀 地,我們可以認為:某個電感前係數較大,則某個電感更為重要,因為他的對 舵機的影響更大。雖然在神經網路中,每個電感與舵機輸出並不是線性關係, 但是我們不妨假設:不同電感變化同一個幅度時,哪個電感能導致舵機變化越 大,哪個電感就是更為重要的電感。基於此假設,我們完成了電感排布的確定。

▲ 電感分佈確定流程圖

具體步驟如下:每次我們隨機選擇放置電感排布,透過神經網路收取資料進 行訓練得到一個網路模型。然後,我們對收集到的資料新增隨機擾動,從-0.1~ 0.1,分為 10 個範圍,即-0.1~-0.08,-0.08~-0.06....0.06~0.1。

得到隨機擾動的資料集之後,我們把原始資料的輸出和擾動資料的輸出(都 使用同一個網路)最差得到絕對值。如果某個電感的絕對值較大,則說明此電 感輕微擾動對網路輸出影響大,是比較重要的電感。

基於此套方法,我們確定了 11 個電感的排布位置,下為某組資料擾動之後 的誤差分佈圖。

▲ 電感誤差分佈

以第一列圖片為例,第一列對應的是第一排最左邊的電感,從上到下,分別 對應了施加擾動的範圍為-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 列的影響相對比較大,他們對 應了第一排左中右(1,2,3),第二排左右(4,5),第一排豎電感(8,9)。

5.3 網路結構

我們進行了大量的網路結構測試,由於 NXP 晶片所限,基本上只能夠使用全 連線層。不過相比於直接送入電感值,我們將電感值和歷史 10 次網路輸出值(舵 機期望值)共同送入網路,從而相同網路結構(只有輸入層不同)訓練結果的 loss 從 0.04 降到了 0.02,網路跟蹤的效果也變得更好。

另外,我們也發現,基本上的全連線層已經足夠訓練網路,網路的效果也是滿足需求的。基於此我們儘可能地縮小網路大小,讓速度儘快,最終的網路結 果為:

網路結果輸入為 Nx21x1 的資料,(11 個電感和前 10 幀的舵機控制角度), 分別經過 Dense,BatchNormal,Dropout 等的操作,最終生成一個 1 維度的舵 機值,即為目標輸出,網路結構圖如下。

▲ 網路結構圖

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

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

神經網路方向,我們將歷史的舵機控制值送入神經網路,大大提升了網路的 效果。

從機械到電路再到電控和神經網路,我們搭建了一個完整的車子。對車子進 行穩定性測試,演算法迭代最佳化,我們才算是真正地完成了一個專案。小組成員 每個人都盡著自己最大的努力,不加班不快樂,沒成果沒休息逐漸成為我們的 常態。這一次的磨礪,所有的隊員都有了非常大的進步,與此同時,我們也收 獲了一份友誼。另外,感謝學校對我們的支援,在疫情期間仍然全力支援我們。 感謝組委會提供的參賽機會。

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

[2] 譚浩強,C 語言程式設計[M],北京:清華大學出版社,2005.

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

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

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

1.軟體開發平臺: KEIL

▲ 軟體開發平臺 KEIL

2.神經網路 h5 檔案轉換工具:3. 匿名科創地面站

7
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 被羅振宇瘋搶的華為神仙級員工,揭開我們對人脈最深的誤解