習(xí)大綱)
第0章 Autoware學(xué)習(xí)大綱共15章第一部分架構(gòu)與核心基礎(chǔ)3章第1章 Autoware架構(gòu)總覽與技術(shù)棧對(duì)應(yīng)代碼: 整體架構(gòu)、repositories/autoware.repos章節(jié)結(jié)構(gòu):1.1 Autoware項(xiàng)目概述1.1.1 項(xiàng)目歷史與發(fā)展1.1.2 開源生態(tài)與社區(qū)1.1.3 商業(yè)應(yīng)用案例1.2 整體架構(gòu)設(shè)計(jì)1.2.1 多倉庫管理機(jī)制meta-repository1.2.2 模塊劃分原則core/universe/launcher/sensor1.2.3 架構(gòu)演進(jìn)與版本管理1.3 ROS 2技術(shù)棧1.3.1 ROS 2基礎(chǔ)概念Node/Topic/Service/Action1.3.2 DDS通信中間件1.3.3 QoS策略配置1.4 系統(tǒng)數(shù)據(jù)流1.4.1 傳感器數(shù)據(jù)流1.4.2 感知結(jié)果傳遞1.4.3 規(guī)劃控制鏈路1.5 系統(tǒng)啟動(dòng)與生命周期1.5.1 啟動(dòng)流程分析1.5.2 節(jié)點(diǎn)生命周期管理1.5.3 故障恢復(fù)機(jī)制第2章 核心消息與數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)代碼: core/autoware_msgs, core/autoware_adapi_msgs, core/autoware_internal_msgs章節(jié)結(jié)構(gòu):2.1 消息體系概述2.1.1 消息分層設(shè)計(jì)公共/內(nèi)部/API2.1.2 消息演進(jìn)與兼容性2.2 autoware_msgs核心消息2.2.1 感知消息DetectedObject/TrackedObject2.2.2 規(guī)劃消息Trajectory/Path2.2.3 控制消息Control Command2.2.4 地圖消息HADMapBin2.3 autoware_adapi_msgs應(yīng)用層API2.3.1 車輛狀態(tài)消息2.3.2 任務(wù)管理消息2.3.3 系統(tǒng)監(jiān)控消息2.4 autoware_internal_msgs內(nèi)部消息2.4.1 模塊間內(nèi)部通信2.4.2 調(diào)試與診斷消息2.5 tier4_autoware_msgs擴(kuò)展消息2.5.1 Tier IV特有功能消息2.5.2 與標(biāo)準(zhǔn)消息的關(guān)系第3章 核心基礎(chǔ)設(shè)施與開發(fā)工具對(duì)應(yīng)代碼: core/autoware_cmake, core/autoware_utils, core/autoware_core章節(jié)結(jié)構(gòu):3.1 編譯系統(tǒng)autoware_cmake3.1.1 CMake工程組織3.1.2 自定義CMake函數(shù)3.1.3 依賴管理與rosdep3.2 工具庫autoware_utils3.2.1 數(shù)學(xué)工具幾何變換/插值3.2.2 時(shí)間處理工具3.2.3 ROS工具封裝3.2.4 日志與調(diào)試工具3.3 核心功能包autoware_core3.3.1 核心算法庫3.3.2 通用組件與接口3.4 可視化工具3.4.1 RViz插件autoware_rviz_plugins3.4.2 可視化最佳實(shí)踐3.5 開發(fā)環(huán)境3.5.1 Docker開發(fā)容器.devcontainer3.5.2 Ansible自動(dòng)化部署3.5.3 代碼質(zhì)量工具clang-tidy/pre-commit3.6 仿真工具3.6.1 Planning Simulatorautoware_simple_planning_simulator3.6.2 仿真器配置與使用第二部分傳感器與驅(qū)動(dòng)2章第4章 傳感器驅(qū)動(dòng)與數(shù)據(jù)采集對(duì)應(yīng)代碼: sensor_component/external/nebula, sensor_component/transport_drivers章節(jié)結(jié)構(gòu):4.1 傳感器架構(gòu)概述4.1.1 傳感器組件設(shè)計(jì)模式4.1.2 sensor_component_description4.2 LiDAR驅(qū)動(dòng)Nebula4.2.1 Nebula架構(gòu)設(shè)計(jì)4.2.2 支持的LiDAR型號(hào)Velodyne/Ouster/Hesai/Robosense4.2.3 點(diǎn)云解碼與校準(zhǔn)4.2.4 多LiDAR融合4.3 攝像頭驅(qū)動(dòng)4.3.1 攝像頭接口標(biāo)準(zhǔn)4.3.2 圖像采集與同步4.3.3 攝像頭標(biāo)定4.4 IMU與GNSS4.4.1 IMU數(shù)據(jù)采集4.4.2 GNSS接收器接口4.4.3 RTK定位支持rtklib_ros_bridge4.5 CAN總線通信4.5.1 ros2_socketcan驅(qū)動(dòng)4.5.2 CAN消息解析4.5.3 車輛信號(hào)采集4.6 傳感器時(shí)間同步4.6.1 時(shí)間戳對(duì)齊sync_tooling_msgs4.6.2 硬件同步方案4.6.3 軟件同步策略第5章 傳感器數(shù)據(jù)預(yù)處理對(duì)應(yīng)代碼: universe/autoware_universe點(diǎn)云處理/圖像預(yù)處理部分章節(jié)結(jié)構(gòu):5.1 點(diǎn)云預(yù)處理5.1.1 點(diǎn)云濾波地面分割/離群點(diǎn)去除5.1.2 點(diǎn)云投影與坐標(biāo)變換5.1.3 點(diǎn)云下采樣5.1.4 pointcloud_to_laserscan轉(zhuǎn)換5.2 圖像預(yù)處理5.2.1 圖像去畸變5.2.2 圖像增強(qiáng)5.2.3 圖像壓縮與傳輸5.3 傳感器融合預(yù)處理5.3.1 坐標(biāo)系變換managed_transform_buffer5.3.2 多傳感器數(shù)據(jù)對(duì)齊5.3.3 數(shù)據(jù)質(zhì)量評(píng)估第三部分感知系統(tǒng)3章第6章 3D目標(biāo)檢測與跟蹤對(duì)應(yīng)代碼: universe/autoware_universeperception 3d部分章節(jié)結(jié)構(gòu):6.1 3D感知架構(gòu)6.1.1 感知流程概述6.1.2 感知模塊組織6.2 基于LiDAR的3D檢測6.2.1 點(diǎn)云聚類算法6.2.2 3D目標(biāo)檢測網(wǎng)絡(luò)6.2.3 目標(biāo)分類6.3 基于攝像頭的3D檢測6.3.1 單目3D檢測6.3.2 BEVDet算法bevdet_vendor6.3.3 深度估計(jì)6.4 多傳感器融合檢測6.4.1 早期融合策略6.4.2 后期融合策略6.4.3 融合置信度計(jì)算6.5 多目標(biāo)跟蹤6.5.1 跟蹤算法卡爾曼濾波/粒子濾波6.5.2 數(shù)據(jù)關(guān)聯(lián)6.5.3 軌跡管理6.6 目標(biāo)預(yù)測6.6.1 運(yùn)動(dòng)模型6.6.2 軌跡預(yù)測算法6.6.3 意圖識(shí)別第7章 2D感知與交通場景理解對(duì)應(yīng)代碼: universe/autoware_universeperception 2d部分章節(jié)結(jié)構(gòu):7.1 2D感知架構(gòu)7.2 交通燈識(shí)別7.2.1 交通燈檢測7.2.2 交通燈分類7.2.3 交通燈狀態(tài)跟蹤7.3 交通標(biāo)志識(shí)別7.3.1 標(biāo)志檢測7.3.2 標(biāo)志分類7.3.3 地圖匹配7.4 車道線檢測7.4.1 車道線檢測算法7.4.2 車道線擬合7.4.3 車道類型識(shí)別7.5 語義分割7.5.1 場景語義分割7.5.2 可行駛區(qū)域檢測7.5.3 障礙物分割7.6 占用柵格地圖7.6.1 柵格地圖生成7.6.2 動(dòng)態(tài)障礙物映射7.6.3 代價(jià)地圖構(gòu)建第8章 感知融合與場景理解對(duì)應(yīng)代碼: universe/autoware_universeperception fusion部分章節(jié)結(jié)構(gòu):8.1 感知融合架構(gòu)8.2 目標(biāo)級(jí)融合8.2.1 3D與2D檢測融合8.2.2 冗余目標(biāo)消除8.2.3 目標(biāo)屬性補(bǔ)全8.3 場景理解8.3.1 場景要素提取8.3.2 交通參與者關(guān)系建模8.3.3 場景危險(xiǎn)度評(píng)估8.4 感知不確定性建模8.4.1 檢測不確定性8.4.2 跟蹤不確定性8.4.3 不確定性傳播第四部分定位與地圖2章第9章 高精度定位對(duì)應(yīng)代碼: universe/autoware_universelocalization部分, universe/external/eagleye章節(jié)結(jié)構(gòu):9.1 定位系統(tǒng)架構(gòu)9.1.1 定位模塊組織9.1.2 多源定位融合策略9.2 NDT點(diǎn)云匹配定位9.2.1 NDT算法原理9.2.2 NDT實(shí)現(xiàn)細(xì)節(jié)9.2.3 NDT參數(shù)調(diào)優(yōu)9.3 GNSS/INS融合定位9.3.1 GNSS定位原理9.3.2 INS慣性導(dǎo)航9.3.3 卡爾曼濾波融合9.4 Eagleye定位方案9.4.1 Eagleye架構(gòu)9.4.2 低成本傳感器融合9.4.3 城市峽谷場景優(yōu)化9.5 定位精度評(píng)估9.5.1 定位誤差分析9.5.2 協(xié)方差估計(jì)9.5.3 定位質(zhì)量監(jiān)控9.6 定位失效檢測與恢復(fù)9.6.1 失效檢測機(jī)制9.6.2 降級(jí)策略9.6.3 重定位算法第10章 高精度地圖對(duì)應(yīng)代碼: core/autoware_lanelet2_extension, universe/autoware_universemap部分章節(jié)結(jié)構(gòu):10.1 地圖系統(tǒng)架構(gòu)10.2 Lanelet2地圖格式10.2.1 Lanelet2數(shù)據(jù)結(jié)構(gòu)10.2.2 地圖要素建模Lane/Regulatory Element10.2.3 地圖坐標(biāo)系10.3 Autoware Lanelet2擴(kuò)展10.3.1 autoware_lanelet2_extension功能10.3.2 Autoware特有屬性10.3.3 地圖驗(yàn)證工具10.4 地圖加載與解析10.4.1 地圖文件讀取10.4.2 地圖索引與查詢10.4.3 地圖緩存策略10.5 路網(wǎng)拓?fù)渑c路由10.5.1 路網(wǎng)圖構(gòu)建10.5.2 車道連接關(guān)系10.5.3 路由可達(dá)性分析10.6 動(dòng)態(tài)地圖10.6.1 動(dòng)態(tài)對(duì)象層10.6.2 臨時(shí)交通管制10.6.3 地圖更新機(jī)制第五部分規(guī)劃與決策3章第11章 任務(wù)規(guī)劃與路由對(duì)應(yīng)代碼: universe/autoware_universeplanning/mission_planning部分章節(jié)結(jié)構(gòu):11.1 任務(wù)規(guī)劃架構(gòu)11.2 全局路徑規(guī)劃11.2.1 A*路徑搜索11.2.2 Dijkstra算法11.2.3 路徑代價(jià)設(shè)計(jì)11.3 路由計(jì)算11.3.1 路由請求處理11.3.2 車道級(jí)路由11.3.3 路由重規(guī)劃11.4 目標(biāo)點(diǎn)管理11.4.1 目標(biāo)點(diǎn)設(shè)定11.4.2 停車點(diǎn)選擇11.4.3 目標(biāo)點(diǎn)可達(dá)性驗(yàn)證11.5 多任務(wù)調(diào)度11.5.1 任務(wù)隊(duì)列管理11.5.2 任務(wù)優(yōu)先級(jí)11.5.3 任務(wù)中斷與恢復(fù)第12章 行為規(guī)劃與決策對(duì)應(yīng)代碼: universe/autoware_universeplanning/behavior_planning部分章節(jié)結(jié)構(gòu):12.1 行為規(guī)劃架構(gòu)12.2 場景識(shí)別與理解12.2.1 駕駛場景分類12.2.2 場景要素提取12.2.3 場景切換邏輯12.3 行為決策樹12.3.1 決策樹結(jié)構(gòu)12.3.2 行為選擇算法12.3.3 決策樹可視化12.4 交通規(guī)則遵守12.4.1 交通燈遵守邏輯12.4.2 停止線處理12.4.3 讓行規(guī)則12.4.4 速度限制12.5 交互式?jīng)Q策12.5.1 博弈論決策模型12.5.2 意圖推理12.5.3 社會(huì)性行駛12.6 行為狀態(tài)機(jī)12.6.1 狀態(tài)定義與轉(zhuǎn)換12.6.2 狀態(tài)機(jī)實(shí)現(xiàn)12.6.3 狀態(tài)監(jiān)控與調(diào)試第13章 運(yùn)動(dòng)規(guī)劃與軌跡生成對(duì)應(yīng)代碼: universe/autoware_universeplanning/motion_planning部分章節(jié)結(jié)構(gòu):13.1 運(yùn)動(dòng)規(guī)劃架構(gòu)13.2 軌跡生成算法13.2.1 采樣式規(guī)劃13.2.2 優(yōu)化式規(guī)劃13.2.3 混合式規(guī)劃13.3 碰撞檢測與避障13.3.1 碰撞檢測算法13.3.2 安全距離計(jì)算13.3.3 動(dòng)態(tài)避障策略13.4 路徑平滑優(yōu)化13.4.1 樣條曲線擬合13.4.2 路徑平滑算法13.4.3 曲率約束13.5 速度規(guī)劃13.5.1 速度曲線生成13.5.2 加速度約束13.5.3 舒適性優(yōu)化13.6 特殊場景規(guī)劃13.6.1 停車規(guī)劃13.6.2 變道規(guī)劃13.6.3 掉頭規(guī)劃13.7 緊急停車規(guī)劃13.7.1 緊急制動(dòng)規(guī)劃13.7.2 最小風(fēng)險(xiǎn)機(jī)動(dòng)13.7.3 安全??康诹糠挚刂婆c執(zhí)行2章第14章 車輛控制對(duì)應(yīng)代碼: universe/autoware_universecontrol部分章節(jié)結(jié)構(gòu):14.1 控制系統(tǒng)架構(gòu)14.1.1 控制模塊組織14.1.2 控制周期與延遲14.2 純跟蹤控制器14.2.1 純跟蹤算法原理14.2.2 參數(shù)調(diào)優(yōu)14.2.3 適用場景14.3 MPC模型預(yù)測控制14.3.1 MPC算法原理14.3.2 車輛運(yùn)動(dòng)學(xué)模型14.3.3 約束條件設(shè)計(jì)14.3.4 求解器選擇14.4 PID控制器14.4.1 PID原理14.4.2 參數(shù)整定14.4.3 抗飽和設(shè)計(jì)14.5 橫縱向解耦控制14.5.1 橫向控制轉(zhuǎn)向14.5.2 縱向控制加速/制動(dòng)14.5.3 橫縱向協(xié)調(diào)14.6 控制性能評(píng)估14.6.1 跟蹤誤差分析14.6.2 舒適性評(píng)估14.6.3 控制穩(wěn)定性第15章 車輛接口與系統(tǒng)管理對(duì)應(yīng)代碼: universe/autoware_universevehicle/system部分, launcher/autoware_launch章節(jié)結(jié)構(gòu):15.1 車輛接口Vehicle Interface15.1.1 CAN通信協(xié)議15.1.2 底盤命令轉(zhuǎn)換15.1.3 車輛狀態(tài)反饋15.1.4 線控系統(tǒng)接口15.1.5 車輛接口適配15.2 系統(tǒng)管理與監(jiān)控15.2.1 系統(tǒng)狀態(tài)監(jiān)控15.2.2 模塊健康檢查15.2.3 性能監(jiān)控15.3 故障診斷與處理15.3.1 故障檢測機(jī)制15.3.2 故障診斷算法15.3.3 降級(jí)策略15.4 應(yīng)急管理15.4.1 緊急接管15.4.2 最小風(fēng)險(xiǎn)策略15.4.3 安全停車15.5 系統(tǒng)APIADAPI15.5.1 ADAPI架構(gòu)基于autoware_adapi_msgs15.5.2 外部接口設(shè)計(jì)15.5.3 API使用示例15.6 啟動(dòng)與集成Launch Integration15.6.1 autoware_launch架構(gòu)15.6.2 啟動(dòng)文件組織15.6.3 場景配置管理15.6.4 參數(shù)覆蓋機(jī)制15.7 仿真測試15.7.1 仿真測試框架15.7.2 場景測試15.7.3 回歸測試15.8 日志記錄與回放15.8.1 ROS bag記錄15.8.2 日志分析工具15.8.3 問題復(fù)現(xiàn)流程