openpilot不但是一個後裝市場的ADAS,由於它的軟體免費開源,它更是許多對於汽車產業與機電控制學習的好平台。就像在XDA網站有非常多android資源的開發團體與軟體資源,comma ai的discord也是有非常多的開發資訊可以學習。很多人知道openpilot的開源,卻往往不得其門而入。而這邊要做一個簡單的入門介紹,讓有興趣的人可以了解。如果讀者本身是software的人員,也可以透過這篇馬上開始進行openpilot的開發。
首先,你要有一台主機,不論是O1/C2與C3的開發方式都類似,並不限於硬體差異。所以當你準備好主機的時候,我們就可以開始開發你的openpilot囉!
一、連線openpilot
你要先學會如何SSH連線到你的comma device,所以請先服用這帖:openpilotToolkit (OT) - 連接comma two/comma three的好用工具。你只要能連線你的設備,就可以加入開發openpilot了。
當SSH FTP連線到你的主機不成問題以後,再來就是你需要一個好用的編輯器,這裡我推薦Notepad++。
安裝好Notepad++之後,我習慣在FileZilla指定Notepad++為預設編輯器。在編輯->設定->檔案編輯裡面,指定Notepad++執行檔的完整路徑。然後押下確認,就預設成功了。這時候你已經成功設置好你的開發環境了。
二、更改速度的顯示顏色
會以此作為開發範例,是因為comma ai也是使用這個例子,不過他們採用Git diff為主的方式,是真的開發者常用的工具。為了讓讀者可以更快進入開發階段,所以我直接使用FTP編輯程式碼的方式。
變更速度文字的顏色的程式在這支data/openpilot/selfdrive/ui/qt/onroad.cc。你可以找到這隻檔案以後,押右鍵點選編輯。
在內文中找到OnboardHud的類別
把原本p.setPen(..........................)改成藍色p.setPen(Qt::blue);
然後儲存Notepad++這隻程式並關閉,FileZilla就會自動通知儲存comma device裡的檔案。然後你就把O1/C2/C3重新開機。上車連線一看,時速的顏色就變成藍色的了。
你看,開發openpilot是不是很簡單呢?你現在就已經上手開發openpilot這件事了。
三、自訂車型的改法
在台灣許多使用者安裝官方openpilot後,第一個問題就是遇到car unrecognized,有些錯誤的說法是說官方openpilot支援性不佳。你想想,怎麼可能呢?其實因為早期台灣許多銷售,為了省成本,是不包含comma power或不支援comma power功能的線組配件,這使得官方的二代指紋無法被支援,因為你無法支援官方FPV2,抓不到車型也實在是非官方之罪。
再來是台灣車款版本往往跟美規版本配備不同,因為車型配備不同,所以產生無法辨識的狀況也是合情合理。
這時候你如果會開發程式,你就可以靠自己指定車型。首先你要先知道你的車型名稱。我們可以進入data/openpilot/selfdrive/car/toyota/values.py來看。(其中toyota可以換成其他汽車廠牌,然後一樣進入values.py。)
例如,你的車是C-HR那你的車型ID就是"TOYOTA C-HR 2018",如果你的車是Altis或CC那你的車型ID就是"TOYOTA COROLLA TSS2 2019"。像VAG的MQB的車型ID就是"VOLKSWAGEN GOLF 7TH GEN",基本上MQB都通用。
這時候要去找/data/openpilot/launch_env.sh這支檔案。
在最後一行新增這段:export FINGERPRINT="車型ID",一樣儲存重新開機。只要車型正確,雖然你沒有FPV2或是沒有comma power,你的車也是能馬上抓到使用囉。
四、版號更新
聽說C2進入0.8.13就是最後一版了,很多人都覺得扼腕嘆息,但是天下沒有不散的筵席,不管是PS2/PS3,還是iphone7/iphone8其實也會有停止更新的一天。但如果可以,我也希望我的主機可以無限更新。
你的願望被聽見了!只要有開發能力,區區的更新不算什麼。
你先用FTP去找selfdrive/common/version.h這支宣告檔案,然後開啟編輯。裡面只有簡單的一行。