# Autoware架構基本介紹 ## Overview * Autoware 運作機制主要分成以下階段: Sensing, Computing 及 Actuation,其中 Computing 包含了核心演算法 Perception, Decision, Planning。 * 本文章將以 Sensing, Perception, Decision, Planning 等四個核心階段做介紹。  * 總體控制流程為: * (**Sensing**) 從各式 Sensor 接收訊息。 * (**Computing**) 透過 Sensor 資料來進行控制邏輯的判斷。 * (*Perception*) 感知自駕車周遭環境及狀態(e.g 定位處理、障礙物偵測),以利後續決策。 * (*Decision*) 以感知資訊決定自駕車狀態(e.g 按照路徑前進、緊急迴避、煞車等等) * (*Planning*) 規劃路徑分為以下兩種: * Mission Planner:以特定演算法(e.g.最短路徑演算法)決定起點到終點的參考路徑。 * Motion Planner:以當前狀態去動態計算一段距離內的行走軌跡,主要用來控制自駕車沿著 Mission Planner 之路徑行走或迴避障礙物。 * (**Actuation**) 取得自駕車狀態下達控制指令。 * [Autoware官方文件](https://gitlab.com/autowarefoundation/autoware.ai/autoware/wikis/home)提供功能與 API 的對應與介紹,可以更詳細地了解 Autoware 中的功能 ## 資料流程圖  ## Sensing 本段將列出自駕車常見之感測器,及其運作機制。 ### Camera * 透過影像偵測物體,Autoware 即是使用 [Yolo3](https://www.youtube.com/watch?v=pO4vM4ehI98) 來辨識物體。  ### LiDAR (光達/雷射雷達) / RADAR (雷達)  * LiDAR: 環繞式地發射**雷射脈衝**,並透過接收反射來得知周遭物體位置。   * RADAR: 發射**無線電波**並且透過反射來得知物體的位置,目前 Autoware 並未採用 RADAR 的設計,目前特斯拉的駕駛輔助系統便是以 RADAR 為主。  ### IMU * 測量物體慣性(加速度/角速度),用於取得當前車輛姿態及輔助自駕車定位。 ### GPS & RTK * GPS:衛星定位,誤差較大。 * RTK (Real Time Kinematic):GPS 的改良版,GPS 訊號除了會傳到自駕車上,同時也會傳到鄰近的站台上(站台為固定地標,因此已知座標),此站台將會再次通知 RTK,以修正誤差。 ## Map file * 地圖檔案為自駕車運作時的已知資訊,因此必須在事前採集,而 Autoware 主要使用下列幾種格式,而這些為非必要性,例如少了 Vector Map 仍然可以使用 Waypoint 來運作,少了 PCD file 仍可以只靠 GPS 訊號運作,主要差在準確度。 > 資料越多,準確度越高。(有效資料的前提下) > [name=ShaoHua Wang] ### PCD (Point Cloud Data) Map * LiDAR 使用 **Normal Distributions Transform (NDT)** 來進行定位,也可透過該演算法,在定位同時以點雲 (Point Cloud) 的形式記錄場景物件,產生對應的 pcd map。 * PCD map 可使用 Autoware 中 [ndt_mapping](https://www.youtube.com/watch?v=ss6Blrz23h8) 的功能來製作,車子必須開啟 LiDAR 環繞場景一圈(目前實驗都是先手動開一圈蒐集資料),NDT_mapping 會根據車子 gps 位置以及 LiDAR 掃到的點雲來生成一張pcd地圖檔案。  ### Vector Map * Vector Map 透過向量的形式來儲存地理資訊,其中便包含道路的走勢及方向,產生此地圖需要專業的測量手法及儀器,因此精度相當高。  [(來源)](https://www.youtube.com/watch?v=xTtdLlferxQ) ### HD Map * 近似於 Vector Map,為另外一套開源軟體 Baidu Apollo 所使用的地圖格式。 * 這個名詞定義目前還很模糊,也有可能是指 Vector map + PCD 的統稱。 ### Waypoint * 為自駕車行走過的路徑格式,路徑上的點記錄了速度資訊及方向。 * 相較於 Waypoint,Vector map 類似於參考用路徑,因此自駕車在運作時,會以 Vector map 為基礎,動態地產生 Waypoint 來進行迴避的動作。 * 使用者將前次駕駛時的移動軌跡紀錄成 Waypoint,下一次載入Waypoint 便可重現上次的行走軌跡。   ### How to get these data? * PCD file:[ndt_mapping](https://gitlab.com/autowarefoundation/autoware.ai/core_perception/-/tree/master/lidar_localizer/nodes/ndt_mapping)(Autoware) * Vector/HD Map:外部工具(例如 LG simulator 等)繪製而成 * Waypoint:[waypoint_maker](https://gitlab.com/autowarefoundation/autoware.ai/core_planning/-/tree/master/waypoint_maker)(Autoware) ## Perception ### Localization (定位) #### gnss_localizer * 利用 GPS 定位,可與 lidar_localizer 協作。 #### lidar_localizer * 使用 Normal Distributions Transform (NDT) 演算法。 * Input:PCD map、起始位置點、LiDAR 即時訊號。 * Output:根據 PCD map,運算目前自駕車位置。 * 原理: 利用 LiDAR 的即時點雲資料,比對 PCD map 上已經紀錄好的點雲,以機率分佈算出自駕車位置。 * [實做影片](https://www.youtube.com/watch?v=ODlxMzGTJzw)  ### Detection * lidar_detector:透過 LiDAR 偵測物體的存在(例如點雲密的地方可能就是有物體) * vision_detector:透過 Camera 偵測物體的存在(例如點雲密的地方可能就是有物體) * 可利用 sensor fusion,將上述兩個 detector 合併使用,以強化準確度。 ## Decision > 其實目前在 Autoware 的實作中,Decision 與 Planning 並沒有很清晰地區分,甚至是實坐在一塊,但為了方便講解還是會將兩者抽離。 在 Decision Phase 中自駕車透過狀態機來決定加速,煞車,迴避障礙物,緊急迴避等功能的運作,並根據目前狀態來選擇要使用 Planner 的對應功能 ## Planning ### Mission Planner * 透過 vector map 導航:Mission Planner 會根據 vector map 規劃從資訊系館到安平的路徑,類似 google map 導航。 * 透過 waypoint 導航:假如你已經有一組從資訊系管到安平的 waypoint 資料,你可以手動載入並且車子會以此資料為主去前進 ### Motion Planner * Motion Planner 負責規劃短程路徑(約 10-30m 之間),並控制車子的轉彎角度及速度去貼合 mission planner 所規劃出來的路徑。 * 裡面有不同的 planner 演算法,例如 A* planner 適合用於自由空間(例如停車場),lattice planner 適合用於車道變換。 * 通常用來配合避障、紅綠燈偵測、停止線偵測等功能。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.