鳥瞰自動駕駛
通過John Pineros
機械工程師| Quanser
自主移動機器人技術的一種常見應用是行車追蹤的概念,對于自動駕駛汽車,它已擴展為自主車道追蹤的概念。該應用程序可以成為開發完全自動模擬交通流的駕駛示例的起點。
回歸本源
但是,在獲得車輛的完全自主權之前,重要的是要退后一步,并從基礎開始。在這種情況下,您需要弄清楚如何將汽車保持在車道內并跟隨它。
作為Quanser機械團隊的一部分,我有機會嘗試一些可幫助研究人員進行探索的領先技術。Quanser的快速原型開發軟件QUARC是允許我與硬件進行連接和進行實驗的主要工具。在過去的幾個月中,我還有機會對QCar平臺進行了一系列不同領域的試驗,例如計算機視覺,傳感器融合,姿勢定位和環境映射。
QUARC也是我要談的QCar車道保持示例的核心。我的同事Murtaza Bohra已經在應用后解釋了以QUARC為中心的車道實施背后的思考過程。我強烈建議您閱讀他的文章《Reading Between the Lines》,以了解更多詳細信息。我的目標是利用MATLAB附加工具箱,開發出更加穩定的車道保持算法。
入門
開發實現的第一步是確定要修改同事應用程序的哪一部分。我決定將重點放在應用程序的計算機視覺部分,因為這使我能夠更改QCar標題的修改方式,同時保持其余功能(例如速度控制器)完全相同。
接下來,我開始研究用于解釋圖像信息的替代方法。在這里,我遇到了被稱為“圖像透視圖”和“鳥瞰圖”的概念,該概念通常在自動駕駛應用中使用。有了這些信息,我就準備好了并且可以工作了。我將通過實現前置攝像頭的鳥瞰圖表示并使用它跟蹤車道中心來修改圖像處理堆棧。由于QCar提供了廣泛的傳感器,特別是視覺傳感器,因此我必須決定在鳥瞰轉換中使用哪種傳感器。QCar配備了前置172度FOV CSI攝像機,能夠以高刷新率查看圖像。對于我的應用程序,我使用了820×616分辨率和80Hz的刷新率。
為了能夠修改圖像的透視圖,我需要能夠定義一些描述我的相機的關鍵參數。一種常見的方法是使用針孔攝影機模型來描述攝影機的固有特征。這些包括焦點,主點以及由于相機鏡頭而可能出現的任何類型的徑向或切向變形。在這里使用MathWork的計算機視覺工具箱變得有用。通過使用一個棋盤格(每個正方形的長度已知)和一組參考圖像,我可以使用相機校準器工具來估計定義相機針孔模型的參數。這些信息不僅適用于我的后續應用程序。通過使CSI攝像機參數處于我選擇的分辨率,我可以將此信息用于其他應用程序,例如基于視覺的測距法。
放在一起
下一步是變換我的輸入圖像,即未經任何失真校正的原始圖像,并生成鳥瞰圖。幸運的是,MathWorks的“自動駕駛工具箱”可以將給定CSI攝像機的攝像機模型參數的輸入圖像轉換為鳥瞰圖。
我其余的實現包括使用QUARC圖像比較模塊集來選擇存在車道的區域,并使用高通濾波器來提取車道的位置。最后,使用線性polyfit函數對車道進行特征化,但關注的值是其坡度,因為這可以讓我們知道坡度朝哪個方向行駛。為了在QCar行駛時將車道的中心保持在QCar的期望位置,PD控制器為車道中心和圖像中心之間的任何偏移實現校正。
整個過程中令人難以置信的部分是整個圖像處理和車道解釋堆棧以及其他控制算法(例如速度控制器)都是實時計算的。如果我想調整用于車道保持控制器或所需速度的參數,可以快速進行更改,而不必更改當前在QCar上運行的代碼。對于專注于算法實現和驗證的研究人員而言,QCar提供了一個非常靈活的平臺,可以與諸如自動駕駛工具箱之類的行業標準軟件包進行接口。
你要去哪?…
希望通過描述以我的QUARC-MathWorks為中心的示例進行應用程序開發的過程,您可以了解如何輕松擴展研究范圍。如果您對我們的產品有任何疑問,我們隨時歡迎您與我們聯系。我們期待看到您使用我們的開放式體系結構解決方案進行驚人研究!
原文鏈接:https://www.quanser.com/blog/autonomous-driving-from-birds-eye-view/