openpilot 0.8.14完成了重大卻又看起來無感的升級,就是畫面與遠端的同步低延遲。使用者難以察覺,但低延遲這個在純視覺AI是非常重要的能力,特斯拉的FSD為了做多鏡頭的延遲同步,也是花了非常大的心力,每顆鏡頭回傳畫面必須要相當一致才能正確的即時3D建模。由於comma也用上了3顆鏡頭,使得body的遠端操控或是comma FSD上,低延遲是第一個要達成的基本要件。
此外,這次也討論到安全性政策的問題,由於台灣汽車相關安全規範少,社會上也不重視國際上這些安全規範的新進展。我們可以透過這次討論,來看看comma在安全性上的觀點。
GH:跟承諾的一樣100毫秒延遲,在NV12版本下。
GH:喔(T265)不錯唷,它的真實感應器可以在C3上運作起來嗎?
GH:(它可以在斜坡上平衡) 應該要的。需要買一些像這樣的真實感應器來驗證SLAM(同步定位與地圖建構)。
GH:喔,我們可以買一些,如果它用起來很好。重點是程式碼容易使用。C3不能供電給D435嗎?它至少在USB端口會有一個電源放大。
GH:(T265在一個有ASIC板子上運作SLAM而且是開源的)喔,真香。
GH:窩,90毫秒(在快速解拜耳跟NV12的組合下)。
GH:我不認為這是電源問題,dmesg和lsusb都看起來很好。它在lsusb中工作ID是 "Bus 004 Device 002: ID 8086:0b07 Intel Corp. Intel(R) RealSense(TM) Depth Camera 435" 。我敢打賭,這是權限或udev或其他問題。試著用sudo試試? 試著用stracing除錯?
GH:我在想剩下的延遲在哪里,它可能是:
* 攝像機本身的某種原因
* 在網絡中
* 在電腦上
GH:有任何人在AGNOS開機上有進展嗎?
GH:我的意思是如果你們只是要一個平庸的openpilot(那就用Android)。如果你想要它(在Pixel3上)很好,還可以上傳,請使用AGNOS移植。
GH:所以我們現在明白了大部分的延遲來源。
*30毫秒在處理+編碼
*10毫秒用於網絡、橋接等
*10毫秒用於解碼
*10毫秒用於watch3中的gl繪圖
*10毫秒用於顯示器翻轉@60fps
但這總共只有70毫秒。
我開始懷疑timestampSof是否在roll轉換之後,timestampSof和timestampEof之間的31毫秒是ISP遲滯。在這種情況下,如果我們去掉這個,openpilot也會減少31ms的延遲。在PC端會多損失15毫秒,而在openpilot端也會多損失10毫秒。所以理論上,50毫秒的往返是可能的。在50毫秒的延遲下駕駛,感覺就像沒有任何延遲一樣。
GH:所以在PC上我們不需要真的離開GPU,那個gl paint可以被移除,解碼可以減半。在C3上,編碼器中仍然有一個副本,而且debayer可以做得更快。順道一提,在openpilot中用debayer PR節省了~10毫秒。副本是5毫秒,在debayer中還有5毫秒可以去掉。
GH:噢,我發現了遺失的延遲了(和抖動)。因為圖片是以20fps拍攝的,當我截屏的時候沒有同步到同一頁。現在是80毫秒的任意運行。
GH:在body上comma 3有可利用雙眼視覺景深。
GH:0.8.14版本發布後,我們將把很多實驗性的東西合並到master版本中。如果你想要一個穩定的openpilot,請留在release版。如果你想獲得最先進的技術,請使用master版本。
GH:(C3開機有時候會閃過彩虹線條)這沒問題的,我們的XBL(bootloader)螢幕啟動程序時機點有點錯誤。我們以後會修復它,但它不影響使用所以不是高優先事項。
GH:comma body有配件了。(body 安全帽)
GH:60毫秒!(https://github.com/commaai/openpilot/pull/24639)
GH:還有50毫秒(在改成單一緩衝之後),現在延遲的分配是20-30在設備上,5-10在網路,5-16在PC上。在我iphone上的慢動作模式可以達到40毫秒。
GH:(有關使用iphone慢動作模式)不,我的意思是我在iphone上拍了一段螢幕的錄影,以確認螢幕擷取工具沒有什麽奇怪的地方。我想應該還要買一個硬體碼表。買了這個:https://www.amazon.com/ACCUSPLIT-Pro-Survivor-A601XBK-Stopwatch/dp/B0007ZGZW0
GH:我相信會被禁用原因只有"剎車後油門仍加速"
(補充上圖:當車子沒有剎車優先的時候,一面剎車一面催油門除了車輛暴衝造成失控,剎車系統也會高速摩擦起火,是相當危險的狀況。)
GH:你比較喜歡在剎車時留下轉向系統(全時車維)? 車廠版本真的會這樣做嗎?(現代起亞)
GH:在過去,我對這個問題比較強硬,但是很難以安全模型為理由來辯護,去排除一個車廠有的功能(全時車維)。我不相信(全時)這會是禁令,真正違反ISO26262的事情是 "剎車後持續催油門"。
GH:好吧,只要你們能證明原廠也有,就不是違反安全模式。
GH:我不希望這與我們真正關心的事情混淆在一起,不值得花時間在這個事情上。如果有任何與全時車維相關的禁令(不應該有,但如果有的話),我們會撤銷這些禁令。歐盟現在有關於LKAS系統的標準。讓我找看看。歐盟也有關於DM的標準!
GH:ISO26262也有ACC的規範,假設歐盟規範不反對在剎車時仍有方向盤維持,我們就可以接受。
GH:我最好是知道我們有無限個政策資本(意味一些車廠獲得政府政策支持,所以有能力去驗證安全性),來驗證每一個安全模型,但這不值得花在這上面。 如果你是與車廠原廠的ADAS系統一樣的功能,一般來說就是可以的。
GH:這有一些重要的東西:https://blog.comma.ai/safer-control-of-steering/
我們致力去符合https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:42018X1947&rid=2裏頭的規範,裡面也明訂了扭矩的限制。
GH:不(官方版本沒有提供全時),原生的openpilot不是100%介入,就是100%無介入。
GH:(那允許油門呢?)那是一個100%介入的狀態。(補充:允許油門其實也是各車廠有的ADAS行為)
GH:踩油門和轉向的人為介入超控是一樣的。在狀態機中仍然只有兩個狀態。(它也不能在你向右轉的時候讓方向盤左轉)。
GH:(不過這更多是來自於原廠的硬體限制) 恩。
GH:(如果沒有扭矩限制,駕駛向右彎的時候,方向機可以向左彎嗎?)恩,當然。
GH:我從Adeeb那裡聽說,我們正往controls_allowed_long和controls_allowed_lat的方向發展。
GH:(何時會支援BMW)BMW等你開發完成就能用了
GH:你也可以看到,我們不再做twitter宣傳了,我也會減少在discord上的活動。 我們大部分只得到酸民跟黑特的回應,沒有道理去參與它。
GH:(Toggle的設定)這不是問題。我討厭toggle在路上不能改變切換 @Willem Melching 在sonata上,我會改變它們,然後重新啟動設備。我們可以讓它們改變,然後顯示"功能改變不會立即啟用,直到你重新發動你的車"。