百度Apollo 自動駕駛開源模塊分析
- 從今天開始研究學習apollo的源碼,apollo 3.0源碼。
- apollo 3.0的系統框圖
文件目錄簡介
- apollo根目錄
├── .github/ISSUE_TEMPLATE目錄 // 問題記錄的文檔
├── .vscode // 啟動的一些參數配置
├── docker // docker有關的文件,如啟動docker腳本,進入docker容器腳本
├── docs // 文檔模塊,有完整英文文檔和部分中文文檔
├── modules// apollo中各個模塊的源代碼,如感知,決策,規划等核心模塊
├── scripts// 啟動腳本,如啟動hmi的腳本
├── third_party // 第三方的庫
└── tools // 編譯相關配置文件 - Apollo項目是用Bazel來做為代碼編譯工具,每個源碼文件夾下都有一個 BUILD文件即bazel的編譯配置文件。
- modules目錄下的子目錄
├── calibration// 標定模塊,現在已經實現自動標定的功能
├── canbus // can總線相關的模塊
├── common // 公共源碼模塊如日志,工廠模式的實現,日志系統,監控模塊,數學算法等
├── control // 幅度和度的相互轉換
├── data // 數據的收集,存儲和處理
├── dreamview // 可視化模塊,查看規划的軌跡及實時的轉向剎車油門信息
├── drivers // GNSS設備驅動,包括NovAtel, Applanix, u-blox, velodyne驅動
├── e2e // 端到端模塊
├── elo // 利用高精地圖的自定位模塊
├── guardian // 監護進程,主要是為了安全
├── localization // 定位模塊,輸入GPS和IMU信息輸出自車定位信息
├── map // 高精地圖模塊,輸出結構化地圖信息,如車道線,十字路口等
├── monitor // 監控模塊,監控硬件狀態,同時把狀態發給hmi
├── perception // 感知模塊,輸入激光點雲,高精地圖,變換坐標
├── planning // 決策規划模塊
├── prediction // 預測模塊,輸出感知的障礙物信息及自定位信息輸出障礙物未來的軌跡
├── routing // 全局導航模塊,輸入包括地圖信息各起點終點地址,輸出一個全局的導航信息
├── third_party_perception // 車輛姿態模擬線程
└── tools // 第三方的感知模塊
Apollo項目的主要模塊
- 處理核心的感知,預測,規划控制三個模塊之外,還有OTA,雲端集群仿真, 自定位高精度地圖,端到端的深度學習, 網頁可視化,底層的驅動和ROS計算框架等等。