在自動駕駛汽車的開發軟體中使用模型

2021-09-17 18:18:13 字數 2916 閱讀 5585

在類似無人駕駛汽車這樣自治動力系統的軟體開發中,模型發揮著重要的作用——模仿及驗證人們的駕駛行為,記錄系統日誌並生成**。在2023年度的goto amsterdam大會上,美國亞利桑那大學電氣與計算機工程專業的副教授jonathan sprinkle就無人駕駛汽車的軟體開發主題發表了演講,他認為:無人駕駛汽車的軟體起初都是單一整體式的,但如今逐漸向著可組合的拼裝式方向發展,新的軟體可根據需求進行功能拼裝。此外,之前大量的資料都來自諸如雷達、gps和攝像機等感測器,但如今通過感測器融合,並朝著可感知的方向發展,這些資料都合併到了同一張地圖上。這意味著如今的汽車不再將周邊整個世界視為靜態資料,而是主動去感知,並根據新增型別的感測器推斷這些事物會如何移動。

\\ 可組合的軟體能夠通過包含輸入、輸出及相互補全的過程來完成建模,根據sprinkle教授的看法,這樣的過程模型集中在功能方面,對非功能性的行為不太有用。「功能性行為可能很容易測試,但這種過程模型卻很少涉及非功能性行為——而後者卻是與人類互動的複雜資訊物理系統必須要有的行為。」

\\ 至於在執行時如何使用**模型的控制裝置來控制汽車的軌跡,避免與障礙物碰撞,sprinkle教授列舉了相關案例:如果計算速度太慢,就會因為來不及校正而造成碰撞;如果使用精度較低的簡單模型,雖然計算速度快了,但由於精度不夠還是可能撞到障礙物。所以在計算軌跡和決定干預時,必須將計算所耗費的時間列入考量,而且我們必須知道模型會有多大的誤差,以便計算校正。以上這些任務都必須實時完成。

\\ 目前用於自動駕駛汽車的感測器都非常昂貴,在sprinkle教授看來,我們需要相對便宜些的感測器,也許不夠完成所有任務,但可以解決大多我們不想做的工作。我們可以把自動駕駛系統看成乙個連續統一體,它剛開始可以完成一些簡單的自動停車工作,或者在高速路上駕駛時使用自適應巡航系統,直到能夠在任何情況下完全自動駕駛汽車。

\\ infoq就以下這些問題採訪了sprinkle:如何決定將汽車的控制權交給自主系統;如何對自主系統中使用的軟體進行建模,以及建模的好處;怎樣通過測試資料來測試自動駕駛汽車的軟體能否正常工作,以及編寫可靠**的技術。

\\問:sprinkle教授之前曾提及要將汽車的控制權交給自主系統,那麼怎樣決定給予多大的許可權,給予哪些功能的控制權?

\\

\

答:實際上,許多人尚未意識到自己已經給了身邊系統多大的控制權,不單指交通方面。例如,現代供暖技術會保證我們的生活空間溫度接近設定預期,我們做設定,但管理權交給了系統。汽車開始移動時,我們需要在不親自控制時確保舒適,大多人現在已經適應了自動巡航,因為駕輕就熟。然而,從自動巡航到在人行橫道上也完全袖手聽憑系統自動駕駛,中間有乙個巨大的鴻溝。大多汽車的自主駕駛功能都是從任務引導開始的,不能一蹴而就。

\

\\

問:如何對用於自主系統的軟體進行建模?

\\

\

答:與規劃和控制相關的任務是最容易理解的,在規劃時需要將類似目的地這樣的高層級物件轉化為其它高層級的概念——比如期望的行車路線,然後這個行車路線就會轉化為期望車速和路徑,再根據沿途情況(比如變道或者交通阻塞)來進行相應的調整,最終形成按照期望速度行駛的軌跡路線。在某些情況下,這些概念的軟體模型可被解析為uml狀態模型。例如,系統會根據即時發現的障礙物和行車狀態來進行駕駛模式間的切換。序列模型的作用也是相關的,從不同的感測器接收到的資訊會觸發狀態的變化。這些軟體元件通常是根據事件呼叫的,也就是說使用者提供需要的輸入內容,系統給出響應,又或者系統根據感測器的檢測作出回應。因此,我們才說反應模型的效果最佳。

\

\\

在控制裝置的案例中,大多數軟體可以當作元件來建模(即功能模組),系統通過這些元件將輸入內容轉化為輸出訊號。任務通常根據時間觸發,無論系統的新資料是否可用,相應元件都應當作出響應。確保所有模組都能排序十分必要,而且要確保海量資料不會導致系統相應的延遲。反應模型還起到安全開關的作用,一旦感測器掉線,控制裝置會發現這一情況並採取相應操作。類似simulink中的框圖樣式模型可以很好地模擬所需系統的行為。

\\問:軟體建模有哪些好處呢?

\\

\

答:模型對系統行為的推斷能力非常驚人,而且無需考慮輸入資訊的準確與否。我們針對活性或死鎖進行檢查,還可以排程系統元件,但需利用模型中的資料。對於開發人員來說,在開發中使用模型提供了一種獨特的系統日誌記錄方式,尤其是在將**生成用於提供最終輸出的成品時。

\

\\

問:能否就通過測試資料進行軟體驗證的方式舉例說明?

\\

\

答:最佳驗證案例就是:在人類駕駛員的控制下,檢查自主控制器是否根據預期速度做出合理的決策。說到驗證方面,在確保系統不會違反約束的情況下,我們通常會使用理論技術驗證模型是否正確,再通過**生成技術來確保輸出系統反映了相應的模型。

\

\\
\

答:在手寫**時,想要確保**可靠,就需要通過嚴格的步驟和回歸測試以保證獲得預期的輸出資訊。因此,我們一直強調,希望大家考慮從模型中合成**,因為考慮到掉線或者速度變化的問題,最可靠和最穩健的實踐就是在開發中**生成階段直接合成**,而不需要修改整個系統的邏輯。當然,如果邏輯錯了,**多完美也是沒用的。

\

\\

關於在亞利桑那大學所進行的自動駕駛方面的研究,研究人員使用了配有感測器和硬體的全尺寸福特escape進行研究。在實際運用前,研究人員先通過建模來進行模擬,通過實驗及實際駕駛收集資料。通過這種方法,在實際車輛測試之前我們就能發現設計和整合的問題,並根據之前採集的資料,吸取之前決策的經驗,以確保不會有危險的操作發生,研究成果請參見cat vehicle**。

\\英文原文:using models in developing software for self-driving cars

在自動駕駛汽車的開發軟體中使用模型

在類似無人駕駛汽車這樣自治動力系統的軟體開發中,模型發揮著重要的作用 模仿及驗證人們的駕駛行為,記錄系統日誌並生成 在2016年度的goto amsterdam大會上,美國亞利桑那大學電氣與計算機工程專業的副教授jonathan sprinkle就無人駕駛汽車的軟體開發主題發表了演講,他認為 無人駕...

在自動駕駛汽車的開發軟體中使用模型

在類似無人駕駛汽車這樣自治動力系統的軟體開發中,模型發揮著重要的作用 模仿及驗證人們的駕駛行為,記錄系統日誌並生成 在2016年度的goto amsterdam大會上,美國亞利桑那大學電氣與計算機工程專業的副教授jonathan sprinkle就無人駕駛汽車的軟體開發主題發表了演講,他認為 無人駕...

開發軟體的安裝與使用

在剛剛接觸程式設計的時候,我本選擇的是visual studio 2010開發軟體,用以完成一些基本的程式設計和程式設計任務,在接觸到軟體工程之後,我才認識到一款強大的現代化的開發軟體往往是乙個成功程式的基礎。在同學的推薦下,我選擇了visual studio 2017版。圖1.1 圖1.3 圖2....