1. 程式人生 > >apollo學習筆記---通過lincoln找出如何將控制訊號和CAN通訊相連線

apollo學習筆記---通過lincoln找出如何將控制訊號和CAN通訊相連線

任務目標:

        現在人工智慧成為當下熱門研究物件,自動駕駛技術作為人工智慧重要的一個研究領域集結了大量的科技人才,然而高成本和高技術門檻成為研究自動駕駛技術的一個重要瓶頸。apollo的釋出為我們的開發提供了一個選擇,無奈,apollo推薦的lincoln實在太貴了,如果能夠實現國產車的自動駕駛,豈不美哉?

        硬體:HAVAL H8

        軟體:apollo2.5        

新增車輛:

        使用apollo新增一輛國產車進去,首先需要做軟體層面的改動,根據官方文件,連結如下:

        對比其中lincoln的程式碼,整理如下(程式碼目錄參考github上apollo的官方程式碼):

1. 新增完善汽車控制器:

        在目錄////下,如下圖所示,各原始檔和標頭檔案是新增新的車輛需要繼承的程式碼及類。如果要新增新的汽車進去,可以參考lincoln的程式碼。


        建立新的haval_controller.h(或者直接修改linclon的名字,因為一個檔名並不影響後續的程式碼的使用,如果你喜歡,就用lincoln就行,連名字都不用改),同理,需要修改haval_controller.cc

2. 新增完善新的資訊管理器  


3. 完善汽車廠庫的類

        同上

4. 註冊新車


!!!疑問:難道就這麼簡單?

        當然不是,前面的修改都只是改了個名字而已,那麼核心的應該修改的是什麼呢?我認為應該是兩個:1. CAN的底層協議 2. 車子的控制演算法,每個車子的引數都是不同的,控制演算法肯定不能是完全一樣的。所以我們需要轉變思路,不是像文件所說那樣,新增一個車子就行了,只是換了個馬甲而已。

我們需要更改程式碼,因為不同CAN卡的二次開發函式是不同的,所以我們需要寫一些程式碼,將apollo和自己配置的CAN卡的程式碼進行資料傳輸,後續更新