自駕也需要「地方口音」:ACM 與 NoGG 模式讓智駕更貼近城市節奏
簡單幾條邏輯判斷,讓智駕行為更符合日常駕駛直覺
開源智駕系統的一大魅力,就是你可以依照自己所在的環境去調整它的行為。
畢竟,智駕系統不是寫一次就能跑全世界的東西。
就像語言有方言,智駕也需要「地方口音」。這次在 dragonpilot 裡面加了兩個新功能,就是希望讓它在城市裡開起來更自然、更像人:
ACM:Adaptive Coasting Mode
NoGG:No Gas Gating Mode
功能不大,但想解決的是一個很基本的問題:當智駕太過「制式」,就會不合用。
城市裡的智駕,問題出在哪?
如果你使用了 openpilot 最新的 0.9.8,應該會遇到類似的情況:
下坡時系統堅持定速,結果車子一直剎車
實際上人開車早就會讓它順順滑下去了,這樣反而比較安全也舒服。紅綠燈密集的路段(每幾百公尺就一個)
車子一下加速、一下鬆油門,開起來會覺得有點晃、不連貫,也不像人會那樣開。
這些行為,其實不是誰手動設定的「規則」,而是因為 openpilot 採用了 end-to-end 模型。而這個模型主要是從高速公路、郊區等比較單純環境的駕駛數據中學習出來的行為傾向。
當這套邏輯被放進城市環境,就容易出現一些不太符合直覺的狀況:明明可以滑,它會剎;該加速時,它卻在猶豫。
ACM:讓車子順順滑,不用硬守定速
ACM(Adaptive Coasting Mode)的功能很單純:
如果你車速已經超過定速設定值,且前方沒車,就讓它滑吧。
這種情境很常見:你踩了點油門,速度稍微快過定速,沒有前車干擾。正常人都會讓車子滑一段,不會急著踩剎車。
⚙️ ACM 會在什麼時候啟動?
ACM 的啟動是基於幾個條件組合判斷,只要滿足下列條件就會啟動:
你沒有在手動控制油門或剎車
前方沒有車輛(例如跟車時間距離 TTC > 5 秒)
車速高於定速設定值的一定比例(目前約為 90%)
若你開啟了 Downhill Only(僅限下坡) 選項,則會額外判斷是否處於下坡狀態(根據
orientationNED[1] < -0.04)
只要這些條件都成立,ACM 就會暫停剎車輸出,讓車子自然滑行。當前方出現車輛、車速降低或你重新介入控制,它就會自動退出。
NoGG:該加速就加速,別「預判式鬆油」
另一個新功能叫 NoGG,全名是 No Gas Gating。
openpilot 最近加入的 Gas Gating 機制,原本的目的是:
當系統預測你快要減速(例如靠近紅綠燈、匝道、前車)時,就不要積極加速,讓駕駛體驗更平順。
這在高速公路或郊區路段效果不錯,但在城市裡就比較容易出現問題。
因為紅綠燈太密集、交叉路太多,導致車子剛開始加速沒幾秒,又立刻鬆油門或預備減速,反而讓整個駕駛過程更不平順,甚至有點「搖來晃去」的感覺。
⚙️ NoGG 做了什麼?
它的邏輯其實很簡單:
略過模型預測的「人類不該加速」區段
在有動力需求時,持續輸出正加速度
不對「灰色 fading path」做動作抑制
結果就是:你該加速的時候就會加速,不會因為模型預判“快到紅綠燈了”而鬆油門。
這樣的調整,在純電或 hybrid 車型上尤其重要,因為這些車鬆油門時會觸發再生剎車(Regen Brake)—— 不只不是「滑行」,反而會變成一種「輕踩剎車」的感覺,讓駕駛體感更突兀。
NoGG 能讓動力控制變得更穩定,避免這種「非預期剎車感」,讓車子開起來更像人自己掌握節奏。
讓自駕多一點彈性,也多一點人味
這兩個功能,其實都源自一個核心想法:
自駕系統需要 localized。
我知道這些功能對大多數使用者來說可能不是什麼必要的改進,但如果你也有遇到這種「開起來怪怪的、不像人在開」的狀況,也許你會覺得這兩個模式有幫助。
目前 ACM 與 NoGG 都已經包含在 dp 0.9.8 r6 以上,有興趣的朋友可以試試看,也歡迎留言跟我說說你的用車環境,或有什麼其他值得 localized 的場景。
讓我們一起把自駕系統變得更靈活、更實用,也更像我們自己會開的那台車。
✍️ 本文在 ChatGPT 協力下完成,一起調教的不只是車,還有這篇文章。
我們盡量以最簡單易懂的方式說明,若有任何錯誤也麻煩各位指正。未經授權請勿任意轉發,轉發請註明出處,謝謝。


