「這台車方向盤在直線上一直小幅左右修正,像在找中心。」
這是很多開源 ADAS 使用者的共同抱怨。原因不神秘:轉向控制器裡的前饋項(feedforward)——也就是「要走這個曲率,方向盤該給多少力矩」——對每台車都用同一條手調的曲線。車重、轉向機、輪胎、甚至那位駕駛習慣的車速,通通不一樣,一條曲線不可能都對。
我們的做法是用自己車上錄下來的 log,訓練一個只屬於這台車的前饋模型。這篇講怎麼做、驗出什麼,以及它為什麼不只是「車」的事。
一、資料從哪裡來 #
車機每趟都在錄:車速、方向盤角度與力矩、側向加速度、模型要求的曲率、駕駛有沒有介入……我們累積了 13.8 小時的行駛紀錄。
第一件事不是訓練,是把資料對齊。分析初期我們發現影片幀與訊號幀差了 159 幀——沒抓出來的話,後面所有「某個時間點車在做什麼」的結論都是錯的。這一步現在是每次分析的第一步。
二、樣本怎麼補 #
對齊後得到 216 萬筆樣本。但分佈很偏:直線多、低速轉彎少(2,143 筆)。而低速轉彎正是方向盤最需要力矩、也最常出錯的區段。
我們做了樣本擴增,把低速轉彎樣本從 2,143 筆擴增到 21,020 筆(10 倍),讓模型在那個區段有足夠的資料可學,而不是被直線樣本淹沒。
三、模型與部署 #
前饋模型的輸入是車速、目標曲率與其變化率等狀態,輸出是力矩。訓練完成後部署到車機(comma 裝置)上實車驗證——不是只看訓練集誤差。
結果:轉向控制誤差降 50%。同時我們把方向盤 P 項的請求量加上上限,因為量測顯示 P 項單獨要求的力矩遠超過控制器能給的,方向盤會在兩個止點之間「打獵」。
四、驗證的方式 #
我們不用「開起來感覺比較順」當驗收。改動前後各跑一批完整 log,用腳本算:
- 介入率(駕駛接管的比例)
- 側向加速度分佈的尾部有沒有被切掉(過彎變保守了嗎)
- 駕駛拒絕率
每個改動都要能回答「改了之後哪幾段變好、哪幾段變差」。
五、這不只是車的事 #
把這件事抽象化:
- 一個控制系統,原廠給的參數不適合你的實際狀況
- 你有它運轉的 log
- 從 log 量出實際分佈,補齊稀少但關鍵的樣本,訓練或調整,再用 log 重播驗證
這條線在 AGV、堆高機、產線設備、機房設備都成立。我們在太陽能儲能系統上用同樣的方式做電池限流與切換驗證,在期指策略實驗室上用同樣的方式做「回測=實盤」。
誠實揭露 #
- 「−50%」是我們自己一台車、一位駕駛的數字,換車換人要重量、重驗。
- 樣本擴增會把稀少區段的權重拉高,如果那些樣本本身有偶發的激烈駕駛,會被學進去;我們在訓練前有先過濾方向燈中、系統介入後 5 秒內的樣本。
有車、有設備、有 log,想知道能不能這樣做?看車載系統客製化與行車資料工程,或直接跟我們談一個 PoC。
