Autoware主要模塊的解釋及構架框圖

原文:https://blog.csdn.net/weixin_35695879/article/details/86716796 ,

僅爲轉載學習收藏

 

本文參考Autoware_wiki_overview,主要描述了Autoware的整體框架和模塊描述,主要包括感知和規劃兩大部分。

感知包括定位模塊,檢測模塊,預測模塊。定位模塊使用3D map和SLAM算法來實現,輔助以GNSS和IMU傳感器。檢測模塊使用攝像頭和激光雷達,結合傳感器融合算法和深度學習網絡進行目標檢測。預測模塊使用定位和檢測的結果來預測跟蹤目標。

規劃模塊主要是基於感知的輸出結果,進行全局路徑規劃和局部路徑規劃。全局路徑規劃在車輛啓動或重啓的時候被確定,局部路徑根據車輛的狀態進行實時更新。例如,如果車輛在障礙物前或停止線前,車輛狀態變爲“stop”,那麼車輛的速度就被規劃爲0。如果車輛遇到一個障礙物且狀態爲“avoid”,那麼局部跟蹤路徑就會被重新規劃繞過障礙物。主要模塊如下所示:

此框圖十分重要,是autoware的運行流程,對其整體構架理解很重要。

1.1 Localization

lidar_localizar 計算車輛當在全局座標的當前位置(x,y,z,roll,pitch,yaw),使用LIDAR的掃描數據和預先構建的地圖信息。autoware推薦使用正態分佈變換(NDT)算法來匹配激光雷達當前幀和3D map。

gnss_localizer 轉換GNSS接收器發來的NEMA消息到位置信息(x,y,z,roll,pitch,yaw)。結果可以被單獨使用爲車輛當前位置,也可以作爲lidar_localizar的初始參考位置。

dead_reckoner 主要使用IMU傳感器預測車輛的下一幀位置,也可以用來對lidar_localizar和gnss_localizar的結果進行插值。

1.2 Detection

lidar_detector 從激光雷達單幀掃描讀取點雲信息,提供基於激光雷達的目標檢測。主要使用歐幾里德聚類算法,從地面以上的點雲得到聚類結果。除此之外,可以使用基於卷積神經網路的算法進行分類,包括VoxelNet,LMNet.

image_detector 讀取來自攝像頭的圖片,提供基於圖像的目標檢測。主要的算法包括R-CNN,SSD和Yolo,可以進行多類別(汽車,行人等)實時目標檢測。

image_tracker 使用image_detector的檢測結果完成目標跟蹤功能。算法基於Beyond Pixels,圖像上的目標跟蹤結果被投影到3D空間,結合lidar_detector的檢測結果輸出最終的目標跟蹤結果。

fusion_detector 輸入激光雷達的單幀掃描點雲和攝像頭的圖片信息,進行在3D空間的更準確的目標檢測。激光雷達的位置和攝像頭的位置需要提前進行聯合標定,現在主要是基於MV3D算法來實現。

fusion_tools 將lidar_detector和image_detector的檢測結果進行融合,image_detector 的識別類別被添加到lidar_detector的聚類結果上。

object_tracter 預測檢測目標的下一步位置,跟蹤的結果可以被進一步用於目標行爲分析和目標速度分析。跟蹤算法主要是基於卡爾曼濾波器。

1.3 Prediction

moving_predictor 使用目標跟蹤的結果來預測臨近物體的未來行動軌跡,例如汽車或者行人。

collision_predictor 使用moving_predictor的結果來進一步預測未來是否會與跟蹤目標發生碰撞。輸入的信息包括車輛的跟蹤軌跡,車輛的速度信息和目標跟蹤信息。

2. Computing/Decision

The decision module of Autoware bridges across the perception and the planning modules. Upon the result of perception, Autoware decides a driving behavior, represented by a finite state machine, so that an appropriate planning function can be selected. The current approach to decision making is a rule-based system.

2.1 Intelligence

  • decision_maker subscribes a large set of topics related to the result of perception, map information, and the current state in order to publish the next-moment state topic. This state change will activate an appropriate planning function.

2.1 State

  • state_machine changes the state within pre-defined rules, orchestrating with decision_maker.

3.1 Misson planning

route_planner 尋找到達目標地點的全局路徑,路徑由道路網中的一系列十字路口組成。

lane_planner 根據route_planner發佈的一系列十字路口結果,確定全局路徑由哪些lane組成,lane是由一系列waypoint點組成

waypoint_planner 可以被用於產生到達目的地的一系列waypont點,它與lane_planner的不同之處在於它是發佈單一的到達目的地的waypoint路徑,而lane_planner是發佈到達目的地的一系列waypoint數組。

waypoint_maker 是一個保存和加載手動製作的waypoint文件的工具。爲了保存waypoint到文件裏,需要手動駕駛車輛並開啓定位模塊,然後記錄車輛的一系列定位信息以及速度信息, 被記錄的信息彙總成爲一個路徑文件,之後可以加載這個本地文件,併發布需要跟蹤的軌跡路徑信息給其他規劃模塊。

3.2 Motion planning

velovity_planner 更新車輛速度信息,注意到給定跟蹤的waypoint裏面是帶有速度信息的,這個模塊就是根據車輛的實際狀態進一步修正速度信息,以便於實現在停止線前面停止下來或者加減速等等。

astar_planner 實現Hybrid-State A*查找算法,生成從現在位置到指定位置的可行軌跡,這個模塊可以實現避障,或者在給定waypoint下的急轉彎,也包括在自由空間內的自動停車。

adas_lattice_planner 實現了State Lattice規劃算法,基於樣條曲線,事先定義好的參數列表和語義地圖信息,在當前位置前方產生了多條可行路徑,可以被用來進行障礙物避障或車道線換道。

waypoint_follower 這個模塊實現了 Pure Pursuit算法來實現軌跡跟蹤,可以產生一系列的控制指令來移動車輛,這個模塊發出的控制消息可以被車輛控制模塊訂閱,或者被線控接口訂閱,最終就可以實現車輛自動控制。

4. Actuation

Autoware has been installed and tested with a number of by-wired vehicles. Examples of "Powered by Autoware" are listed here.

The computational output of Autoware is a set of velocity, angular velocity, wheel angle, and curvature. These pieces of information are sent as commands to the by-wire controller through the vehicle interface. Controlling the steering and throttle needs to be taken care of by the by-wire controller.

---------------------

原文:https://blog.csdn.net/weixin_35695879/article/details/86716796

Autoware wiki Home

Users Guide: 5.Nodes HOWTO; autoware 顯示用戶界面細節:https://blog.csdn.net/jianxuezixuan/article/details/86015224

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章