網頁

2024-03-16

[openpilot] openpilot 0.9.6釋出 - 神經網路控制器MLControlsSim

喜歡本文請押讚好,如果跳出確認視窗,要再押一次"確認"才能成功給我一個讚唷~

openpilot升級到了0.9.6了。這個月comma ai是以每兩周產生一個模型的頻率一直提交新模型。有ND、NDV2、BD、BDV2、LA、LAV2、CH、CHV2等等代號搞得大家眼花撩亂。總之,最後決定釋出了BD+LA的模型,我們來看看這次0.9.6有哪些升級吧。

**駕駛模型改進**

0.9.6版本對駕駛模型進行了兩項重大改進

Blue Diamond 模型中,comma增加訓練的數量,此外還應用了FastViT 架構。改善了在出口和車道變換的駕駛性能。

Los Angeles 模型中,OP模型現在只輸出車輛預計的路徑,在這種情況下模型與控制之間只剩單一值,簡化了程式碼,同時提高了性能。並為未來的強化學習(RL)架構做好準備。目前這些只適用於橫向控制,將來對縱向控制也會做出類似修改。




openpilot模型把越來越多程式納入AI模型當中,降低程式行數提高效率

由於OP對於橫向控制做了較大的修正,而且還在開發驗證的AI模型很多,分支雖然提供模型切換但都還不是釋出版本,加上其他分支套用版本不同,有時對MPC參數修改,都會影響模型輸出導致不穩定。所以使用分支覺得橫向不穩定的話,建議安裝並測試看看官方原生的OP版本,才能知道是不是分支修改產生的干擾。


**新的駕駛員監控模型**


新的 Quarter Pounder Deluxe 駕駛監控模型,使用了超過3200用戶的數據訓練,相比之前的模型多四倍。這提高了對車款內裝和駕駛的辨識能力,而分心警告的靈敏度仍維持一致。


**bodyjim**

comma body現在終於有了API,這個API是用來以RL來簡化開發。bodyjim有一個專門為comma body的pip安裝包。它可以在本地或遠端設備上運行。只需要幾行程式碼,就可以同時獲得三顆鏡頭的影像、串流傳輸訊息,並進行遠端操控。

只要在PC上運行pip install bodyjim,然後執行以下指令:

import bodyjim

env = bodyjim.BodyEnv("<body_ip_address>", cameras=["driver"], services=["accelerometer", "gyroscope"])
obs, _, _, _, _ = env.step((1.0, 0.0))

dcam_image = obs["cameras"]["driver"]
accelerometer, gyro = obs["accelerometer"], obs["gyroscope"]

**WebRTC 串流**

WebRTC是comma body的一個常駐程式,我自己猜RTC應該是real time control的縮寫,在webrtcdteleoprtc可以看到他的程式碼。他可以將body的鏡頭跟麥克風低延遲的傳輸到控制PC上,用以監控或是遠端即時操作。


**AGNOS 9更新**

AGNOS 9支援了LightningHard,這是comma自己開發的Snapdragon 845 SOM,即將在新的comma 3X使用。這次軟體更新還包括:

- 修復啟動畫面閃爍問題

- 修復偶發的音頻播放問題  

- 減少偶發的螢幕條紋問題

- 支持USB 3.0 fastboot刷機

- 在主機名中包含了設備序列號,例如原本tici 改成 comma-aeffe5d0


**機器學習控制器**


OP 0.9.2釋出版本中,OP在雪佛蘭Bolt的車上採用了一種非線性前饋函數。它提高了控制性能,但這不是通用的解決方案。它沒有考慮到對速度和前向加速度等其他要素的相關性。就算comma考慮所有變數,也需要先猜測一個參數化的函數,然後再用機器學習學習權重。

最後,這種方法還是要實際車款跟用戶測試上路測試提交數據,就算做了這些,也可能無法涵蓋所有情況。這個過程既模糊也漫長,也會受到用戶"覺得有沒有更好"的主觀影響,或是像twilsonco的NNFF(Nerual Network Feedforward)等神經模型,這些都沒有更好的方法來測底測試它們。


-MLControlsSim


所以comma ai開發了MLControlsSim。是一個基於GPT-2的模型,它接收汽車狀態(如速度、路面滾動、加速度等)和轉向輸入,並預測汽車在固定長度的文本的橫向輸出。這種方法不需要先猜測和調整前饋函數的基本參數。該模型使用comma-steering-control的真實道路數據進行訓練。該模型可以被自回歸運行以預測橫向加速度。等待訓練完成,AI會直接從真實數據中學習最佳的控制策略,這個模型就可以實際上路使用了。



-Bolt Neural Controls

驗證控制系統模擬器是否如預期工作的一種簡單方式,就是在模擬器中循環比較真實值、線性和非線性前饋函數。如下圖


有了測試的基礎架構,comma ai訓練了一個前饋函數來預測所需的轉向輸入-- 一個簡單的4層多層感知器模型(Multi layer perceptron,MLP)。


comma ai在控制模擬器中循環測試了MLControlsSim模型,結果顯示MLControlsSim表現最好。


一旦將這個前饋函數發佈到主控制器中,我們驗證發現來自駕駛模型的y0預測(模型在t=0的時刻)比原有釋出版本中的控制器表現更好。


這是為了要讓所有平台實現End2End Nerualnetwork Control令人非常興奮的第一步。首先,它不需要像NNFF針對每個車款蒐集各種情況的資料,MLControlsSim消除所有預先猜測或是蒐集實際參數的工作。但更重要的是,它提供了一個框架,可以在不接觸實車的情況下思考和比較各種演算法。

然而,仍有一些未解決的問題。例如,模擬器無法正確模擬高頻振盪,因為訓練數據中幾乎沒有這種情況(駕駛保持openpilot啟用狀態時,通常不會讓方向盤高頻振蕩)。我們目前的優先事項是解決這些問題,並為社群發佈特定平台的模擬器模型以供實驗。

**openpilot工具**


-Segment Range

在這個版本中,使用了新的格式來指定路線和段,稱為"Segment Range"。格式如下:

344c5c15b34f2d8a   /   2024-01-03--09-37-12   /     2:6    /       q
[   dongle id     ] [       timestamp        ] [ selector ]  [ query type]


選擇器允許使用Python切片語法選擇段落。在此示例中,我們可以得到 [2,3,4,5]的路徑片段。


-LogReader

這種新格式與我們新的LogReader可以匹配,用起來更簡單,並且可以自動確定要讀取的來源。

# 從段2到5獲取rlogs
lr = LogReader("344c5c15b34f2d8a/2024-01-03--09-37-12/2:6")

# 獲取最後一個qlog 
lr = LogReader("344c5c15b34f2d8a/2024-01-03--09-37-12/-1/q")

# 獲取每隔一個qlog (Python語法)
lr = LogReader("344c5c15b34f2d8a/2024-01-03--09-37-12/::2/q")

-commaCarSegments

comma ai還發佈了一個新的開源汽車數據集commaCarSegments,包括數千個帶有can和carParams數據的片段。該數據集針對每個平台1000個片段,以及每個dongle ID有20個片段,這個初始版本全部共有145595個片段。這相當於來自3677名用戶和223種車型的2500小時數據。comma計劃隨著新平台的支持而經常更新此數據集,並將其擴展到有日誌但尚未支援的汽車。

comma還發布了一些筆記作為內部驗證車輛更改的示例。驗證佔comma審查PR時的大部分時間,這使外部貢獻者能夠進行與comma相同水平的驗證。隨著數據集的發布,對於所有特定於汽車的工作,再也不會存在“內部”和“外部”工作流之間的區別;我們都在使用相同的程式碼數據工具

**CAR**

這版新增對於Toyota RAV4和RAV4 Hybrid 2023-24的支持,這兩款車型採用了LTA系統,以及Toyota的新基於角度的轉向控制API。與支持福特的曲率控制時一樣,comma也利用這個機會對panda安全性進行了重構和簡化,將變異測試引入panda中,導入MISRA C:2012虛假測試。這將很快擴展到標準的車輛安全測試,從測試中有效發現和修補這些潛在的安全漏洞。

-CAN fuzzing test

openpilot和panda兩者都有重複檢查汽車狀態和安全邏輯的程式碼。這種雙重安全性,允許panda獨立於openpilot強制執行安全性,但也增加了openpilot和panda在解析汽車狀態時發生分歧而導致錯誤的風險。在這個版本中,comma添加了一項測試,對CAN數據字節進行模糊測試,並比對兩者解析出的汽車狀態,以確保一致性。

-Fingerprinting

這個版本改善comma 3X的即插即用的體驗,減少對OBD-II端口指紋識別的依賴(comma power),適用於許多車廠和車型。comma還進一步改善了對所有豐田車型和部分現代CAN FD車型的模糊指紋識別功能,更多改進將在下一個版本中推出。



以上就是openpilot 0.9.6的介紹,有興趣的人快來讓自己車上裝一套AI設備openpilot吧。


======工商業配時間======

O2是高階車道維持,它相當於Tesla EAP

C3X是E2E縱向與導航控制,相當於Tesla FSD

你不需要思考自己要裝O2還是C3X,其實你要思考的是你的車子需要一套openpilot。只要你的車是支援車款,都可以不用換車升級你的ADAS,為你的旅程帶來更多的舒適和便利。comma ai的openpilot是真實的ai產品,而且他們在E2E自動駕駛技術領域的領先地位以及不斷創新。讓我們期待未來升級ai模型可以帶來更多的驚喜,一起見證ai科技對我們生活的改變。


看完以後我想要買新O2啦!!



看完以後我還是想要買美國原廠C3X啦!!


----------------------------------------------------------------------------------------------------------------

openpilot是一個開源的ai ADAS先進駕駛輔助系統。openpilot已經支援超過200種車型,在台灣能支援了Toyota、Lexus、VW、Skoda等各大品牌車型,不論是Altis、CC、Rav4、Prius、RX、NX、Golf、Tiguan、Passat、Polo、Karoq、Kodiaq、Superb、Q2、Q3等車款都可支援。

而ai話題正夯,openpilot不僅是一個產品,也是一個你可以立刻使用的真實ai產品。我希望這篇文章能夠激發你對openpilot的興趣和好奇心。我認為openpilot是一個非常有前景和創新的項目,它可以改變你對於ADAS的看法和期待。

如果你是第一次來到這邊,如果你想要嘗試或討論openpilot,或者想要加入開發,歡迎你隨時加入下方社群,我都會在第一時間報導與解析Comma ai與openpilot的最新動態,快來一起follow吧!