台灣大學以高精度即時定位及電子地圖為基礎路面之自動載具研製

- 趙 可勤, 台灣大學機械工程所

"Compact RIO編譯軟體速度快,可大幅縮短修改演算法所需消耗的時間,並且即時的LabVIEW運作良好,使定位演算法的誤差降到最小。並且LabVIEW所提供的範例程式,可縮短程式開發的時間。另外Compact RIO堅固耐用,即使放在車子上也不須擔心損壞或因震動影響計算結果。"

- 趙 可勤, 台灣大學機械工程所

The Challenge:

需使定位演算法可即時運作,並整合運動控制技術與障礙物偵測模組,配合電子地圖的資訊,增加定位演算法的可靠度,使自動化載具可以在有限區域,如校園內達到SAE所規範的Level-4的自動駕駛,即在行使過程中乘客完全不需介入決策或運動控制。

The Solution:

使用Compact RIO當作主要控制器,將所有I/O都連接到Compact RIO上,演算法設計成分散式控制器,以增加系統的可擴增性。車體使用現成的高爾夫球車,並自行改裝以便可以使用馬達驅動方向盤、煞車踏板,以及動力馬達的驅動器。並在車上安裝慣性感測器與輪速計。所有的配線都收納在車體內以免被扯斷。

Author(s):

趙 可勤 - 台灣大學機械工程所
蔡 育伸 - 台灣大學機械工程所
鄭 力瑋 - 台灣大學機械工程所
吳 柏富 - 台灣大學機械工程所
劉 耿豪 - 台灣大學機械工程所
吳 明軒 - 台灣大學機械工程所
周 芳杰 - 台灣大學機械工程所
李綱 指導老師 - 台灣大學機械工程所

 

 

本系統由台灣大學機械系智慧型載具與機電整合實驗室的學生所開發,目前為第一代的自動化載具,預設運作情境為封閉區域的接駁車,如校園內的接駁車、短距離的PRT(Personal Rapid Transit)等。

 

目前在最具知名度的無人駕駛車輛首推Google car,根據媒體報導以及Google所發布的資訊,Google car使用3D雷射掃描器、GPS、INS為車輛定位,而在機器人領域中,使用3D雷射的SLAM(Simultaneous localization and mapping)技術被大量使用。SLAM是藉由視覺或雷射、雷達等掃描器官查周圍環境,並記錄目前載具與環境上物體的相對位置,接者當載具移動時,估測載具的移動軌跡並記錄此時環境上物體與載具間相對位置的變化。而這一系列的紀錄被記錄下來之後,就組成了一個環境的地圖,並且也知道了載具的位置。理論上這套技術可以使載具在任何環境皆可以得到精準的定位結果,但是在實際使用上卻遇到許多工程上的問題。如3D雷射更新頻率高,並且以Google car所使用的3D雷射為例,定位用的電腦運算功能要求與演算法複雜度極高,此舉大幅增加系統的建置成本。並且地圖上的資料,當載具第二次移動到相同位置時,不一定可以辨認出來,甚至當有人、車移動時,演算法可能會無法辨認出載具目前的位置,導致定位的可靠度降低。

 

我們的定位演算法則是另闢蹊徑,使用GPS以及INS與電子地圖。一般的GPS,定位的精確度與更新頻率較低,並且容易受到干擾,但優勢是干擾不會影響到之後的定位結果。INS更新頻率高,但是誤差會不斷的累積使得長時間使用之後定位結果失真情況會月來越嚴重。故我們使用資訊融合的演算法結合兩者的優點並彌補對方的缺點。而當GPS受到干擾時,本作品以電子地圖的資料來偵測GPS是否受到干擾,並依地圖資料修正GPS的定位結果。

 

 

一般來說,當GPS靜置時,其定位的結果會散布在一定的範圍內,而此範圍越小即表示定位的精確度越高。而其定位的平均值與已知位置比較,當兩者越接近則表示其定位準確度越高。另外,GPS的誤差可分為兩種:common mode error與non-common mode error,common mode error的特性是在長時間,約3~4小時之內其error的方向與大小不會有太大的變化。並且common mode error可以藉由使用多星多頻的衛星定位系統,甚至是使用RTK技術來修正。而non-common mode error則會在瞬間產生,其error的量可能會到達3~5公尺,並且non-common mode error產生時GPS的接收機一般來說無法自行偵測。若在GPS發生non-common mode error時繼續使用原本的參數時,定位結果將容易失真致無法使用的程度。

 

本作品的優勢在於使用電子地圖的資訊,偵測並修正GPS的common mode error與non-common mode error,使得本作品的系統可以使用價格較低廉的GPS,卻依然可以達到車道等級(Lane-Level)的定位,配合運動控制與障礙物偵測的功能,使得本作品可以在特定環境,如學校校區,符合NHTSA(National Highway Traffic Safety Administration)所定義的Level-4的自動駕駛,即在運作時駕駛完全不需要介入。

 

 

Figure 1為工作流程圖,GPS的定位資訊會先進行判斷,依圖資判斷GPS目前的健康狀態,進而決定演算法的參數,障礙物偵測模組會偵測前進方向中是否有障礙物,進而決定是否需要停車或變換車道躲避障礙物。Figure 2為整個系統的架構圖,本作品的系統為分散式的系統架構,前二層的演算內容會由最下層的控制器完成。

 

Compact RIO+LabVIEW即可成為解決方案

        前一代的解決方案為使用Matlab編寫演算法,之後以C++編輯器將Matlab的程式碼編譯成動態聯結程式庫(Dynamic link library),在工業電腦上運作,而資料擷取以及運動控制以LabVIEW完成,不過因為作業系統並非即時版本,以及不同軟體間溝通問題,所以此版本最後運作不成功,最後被廢棄。

 

        目前的解決方案為向NI工程師諮詢之後,由NI工程師所提出的解決方案。因為實驗室已經有一台Compact RIO,並有LabVIEW Real-time的版本,所以為了避免不同軟體之間相容性的問題,將所有的軟體修改為由LabVIEW編寫,並且因為學校有購買標準服務合約,所以可以就軟體使用上進行諮詢。

 

 

        Figure 3為高爾夫球車上的硬體安裝配置,硬體配置上除了雷射可能因為資料量大所以會占用過多資源,所以以另外一台電腦處理,並以TCPIP與Compact RIO連接。其他感測器以及致動器都連接到Compact RIO上,減少規劃硬體線路的時間。並且因為實驗室的學生都對LabVIEW以及Matlab有一定的熟悉度,加上整個系統運算速度約40Hz~100Hz,所以NI工程師建議以Compact RIO加上LabVIEW的方式,並且因為我們實驗室的Compact RIO可以使用Scan mode,我們可以在Scan mode上直接以Matlab的語法編寫演算法,此舉大量縮短實驗室同學開發演算法的時間,同時許多有關Compact RIO與LabVIEW的使用說明都可以在網路上尋找到,減少我們摸索軟硬體上使用方法的時間。加上Compact RIO在資料擷取的方面設計的十分容易,可依需求安裝不同的模組,故不同介面的感測器都可以很快的安裝在Compact RIO上,減少因為硬體安裝所導致的錯誤,讓我們在開發過程中可以專注在演算法的開發。此時計畫陸續有新的成員加入,LabVIEW流程圖式的程式編寫方式,可以讓新成員快速的理解整個系統的架構,並且許多人都有編寫文字式軟體的經驗,Scan mode的MathScript RT module減少新成員學習程式的時間,並且以MathScript所開發的演算法,可以在電腦上以Matlab作模擬與繪製資料,縮短整理資料的時間。

 

        最後所開發的系統,為完全使用NI產品的自動化高爾夫球車,以及使用LabVIEW開發的車輛跟隨系統,在五月於ARTC(車輛研究與測試中心)所舉行的自動駕駛車輛示範賽中展式自動駕駛的能力。

 

        展示情境分為三關,首先是必須通過由交通錐所為成的S-curve,第二關式模擬超車情境,在外側車道上會有一台模型車,需要變換車道以模擬超車的情境。最後則是會有假人走過車道,自動車必須偵測假人並停車禮讓。而跟車系統則須全程跟隨高爾夫球車,並與高爾夫球車維持固定距離。

       

使用NI產品的優勢

        Compact RIO可以依需求購買相應的卡片,使得開發團隊可以快速的依需求擴增硬體介面,並且其控制精度高,並且強度夠,可以承受震動與溫度變化,降低硬體導致失敗的風險,因此可以直接安裝在車上。LabVIEW所提供的大量範例程式,縮短開發人員開發模組的時間,不需要每次購買新硬體都重新開發相關的資料擷取或控制程式。NI的標準服務可以讓我們在有需要時可以即時的獲得NI工程人員的支援,而不是盲目摸索。

       

未來方向:

        因為以圖資為基礎的作法獲得初步的成功,未來會利用較低階的GPS以降低建設成本,但須保持至少車道等級的定位精度。另外,依照PRT的情境,外來車輛上需要通訊單元,以便中央單位可以掌握載具目前的狀態,甚至可以達到自動叫車的功能。

 

Author Information:

趙 可勤
台灣大學機械工程所
chaokochin100@gmail.com

自動駕駛載具工作流程圖
自動駕駛高爾夫球車硬體配置
系統架構