什麼是 Fork?為什麼你(不)應該用它們?
只要安裝來源不是 https://github.com/commaai/openpilot 都算是 Fork 的一種喔!
相信加入這個社團的車友們大概早就知道什麼是分支 (以下簡稱 fork) 了,不知道的沒關係,今天我們就來談談。
試問:
你的車不在 openpilot (統稱 op) 的支援清單裡嗎?
你的 op 開起來不順滑嗎?
你的 op 不會依照速限控制車速嗎?
你的 op 沒辦法顯示 Comma Threee (C3) 才有的導航嗎?你的 op 不能全時置中嗎?
你的 op 不能在彎道降速過彎嗎?你的 op 不能自動變道嗎?
你的 op 沒辦法用中/日/韓文?你的 EON 只能更新到 0.8.3?
你用 op 還需要付額外的費用才能用上面的功能嗎?
如果以上的問題中有回答「是」,那你就應該試試不同的 fork。
為什麼要用 Fork?
comma.ai 在開發 op 時最重視的便是安全問題,再來才是綜合使用者體驗。
op 在設計上並不會特別的去迎合某款車型,因此他們將每一台車的參數獨立出來讓車友們可以單獨調校。
隨著支援了 50+ 不同車型的同時 op 出現了一個問題:內建各車型的參數並非全部優化過。
雖然車友們可以自行調校,但是其調校數據在沒納入 op 原始碼前,每一次的系統更新就會遺失。
車友們自已的調校常常是依照他們當下自已的感受,無法用實際數據證明是否比較好,或是其調校的方式只適用於某些車款。
在調校數據沒辦法納入 op 的原始碼情況下,fork 便產生了。
fork 的存在就是為了要滿足車友的不同需求,讓有開發能力的車友們加入自已想要的功能。
以我們的 dragonpilot (簡稱 dp) 為例,一開始只是為了個人的使用習慣,在每個版本提供補丁讓車友們可以自已修改 op,並非以 fork 的型式出現。
但慢慢從一開始的幾項小修改,到後期的介面中文化,隨著車友們不同的需求,我們推出了 dp fork,將所有車友們希望有的功能都整合在一起,並提供介面啟用、關閉它們。
為什麼不該用 Fork?
用 fork 最大的問題應該就是穩定性了,fork 的功能開發常常只能在某一特定的車型、版本上做測試,op 一改版可能便會喪失這些加進去的功能、調校。
而使用官方的原版 op 就沒有這些問題,首先,他們以安全、穩定為主,所以不隨便加、減功能。再來他們擁有所有支援的車型的行車數據,所以任何的調整都會經過這些數據做比對、測試。
另外一點就是,雖然用 fork 可以提供給車友不同的功能、駕駛體驗,但用 fork 最大的遺憾便是提供給 comma.ai 的數據是用不上的,關於這點我們再另外說明。
結論
如果你覺得 op 就夠好用了,身為 fork 的開發者,我們強烈建議你安裝 op 為優先,其安全性以及體驗是 fork 沒辦法提供的。
雖然大多數 fork 的功能並無法被 comma.ai 納入,我們仍然憑著開發 fork 的經驗持續對 op 提交一些注意到的小錯誤修正。
最後我們也想說,開發 fork 是我們平時工作以外的樂趣,不收費也不願收費,所以我們不希望有些人拿 dp 當做是他們自已開發的成果銷售營利。
尊重原 fork 開發的功能、加入的車型,給予 Credit,不應該直接拿來謀利。
在我們免費享受別人的勞動成果的同時,也該給於相對的尊重以及鼓勵,這也是我們一直支持購買 comma.ai 生產的 C2/C3 的理由。
知名的 Fork
(聲明:這些 fork 的排名來源 shanesmiskol 的 URL 安裝器產生的數據,不包含未開源的 fork)
sunnypilot: https://github.com/sunnyhaibin/sunnypilot/
2021 年之後最受關注也是最多人用的 fork。
Dynamic Follow / Dynamic Gas 作者的 fork。
aragon7777: https://github.com/aragon7777/openpilot
對幾個大的 fork 整合了半全時置中功能的 fork。(除了剎車時外,全時置中)
openpilotusers: https://github.com/openpilotusers/openpilot
Hyundai / Kia / Genesis 車系的 fork,增加了許多韓國地區專有的功能。
crwusiz: https://github.com/crwusiz/openpilot
Hyundai / Kia / Genesis 車系的 fork。
circuit-pro: https://github.com/circuit-pro/openpilot
Hyundai / Kia / Genesis 車系的 fork。
spektor56: https://github.com/spektor56/openpilot
spektor56 是半全時置中功能的作者,主要針對 honda 車系。
kegman 是早期最多人用的 honda 車系用的 fork,擁有許多針對 honda 轉向不足的優化。
martinl: https://github.com/martinl/openpilot
martinl 主要開發 subaru 車系的 fork。
jyoung8607: https://github.com/jyoung8607/openpilot
jyoung8607 主要開發 VW 車系的 fork。
我們盡量以最簡單易懂的方式說明,若有任何錯誤也麻煩各位指正。
未經授權請勿任意轉發,轉發請註明出處,謝謝。





