文章目錄

  • 一、Autoware.Universe 安裝簡介
  • 1、Autoware Universe Docker 安裝方式
  • 2、Autoware Universe 源碼 安裝方式
  • 3、Docker 與 源碼 安裝方式對比
  • 二、Autoware.Universe 仿真 / 評估 教程
  • 1、仿真概述
  • 2、數字孿生仿真 - CARLA 仿真





一、Autoware.Universe 安裝簡介



Autoware 安裝文檔 : https://autowarefoundation.github.io/autoware-documentation/main/installation/

【自動駕駛】Autoware.Universe 開發概述 ② ( Autoware.Universe 安裝簡介 | Docker 安裝方式 | 源碼安裝方式 | 數字孿生仿真 CARLA 仿真 )_#Docker

Autoware 只支持 amd64 和 arm64 兩種架構

Autoware 最低硬件要求 : 8 核 CPU , 16 GB 內存 , NVIDIA GPU 顯卡 4G 顯存 , 這是 Docker 安裝要求 ; 如果需要 編譯源碼 , 則將上述硬件要求加倍



安裝方式有兩種 : Docker 安裝 和 源代碼安裝 ,

  • Docker 安裝 : 如果只是簡單運行 默認配置 , 跑一下仿真器 , 不需要工程落地
  • 源代碼安裝 : 如果需要 定製硬件 , 實際工程落地


文檔中提供瞭如下安裝方式 : 涉及到 Autoware Core 和 Autoware Universe 的安裝方式 ;

  • Autoware Core Docker : Autoware Core Docker installation , 這是 Autoware Core 的 Docker 安裝方式 , 該文檔僅做參考 , 我們主要使用 Autoware.Universe ;
  • Autoware Core source : Autoware Core source installation , 這是 Autoware Core 的 源碼安裝方式 , 該文檔僅做參考 , 我們主要使用 Autoware.Universe ;
  • Autoware Core Debian Package : Autoware Core Debian Package installation guide , 這是 Autoware Core 的 Debian Package 安裝方式 , 該文檔僅做參考 , 我們主要使用 Autoware.Universe ;
  • Autoware Universe Docker ( 重點 ) : Autoware Universe Docker installation , 這是 Autoware Universe 的 Docker 安裝方式 ;
  • Autoware Universe source ( 重點 ) : Autoware Universe source installation , 這是 Autoware Universe 的 源碼 安裝方式 ;


1、Autoware Universe Docker 安裝方式



安裝文檔 : https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/docker-installation/ ;

【自動駕駛】Autoware.Universe 開發概述 ② ( Autoware.Universe 安裝簡介 | Docker 安裝方式 | 源碼安裝方式 | 數字孿生仿真 CARLA 仿真 )_#Docker_02



需要提前安裝 如下 工具 或 組件 :

  • Docker : 提供 Autoware 運行的 隔離容器環境
  • NVIDIA Container Toolkit : 可選安裝 , 讓 Docker 容器能夠 調用主機的 NVIDIA GPU , 支持 GPU 加速計算
  • NVIDIA CUDA 12 compatible GPU Driver : 可選安裝 , 為 GPU 提供底層驅動支持


如果 沒有 NVIDIA 顯卡 , 可以 只安裝 Docker , 但是 Autoware 運行性能極差

如果 NVIDIA 顯卡 驅動版本太低 , 不支持 CUDA 12



2、Autoware Universe 源碼 安裝方式



安裝文檔 : https://autowarefoundation.github.io/autoware-documentation/main/installation/autoware/source-installation/

【自動駕駛】Autoware.Universe 開發概述 ② ( Autoware.Universe 安裝簡介 | Docker 安裝方式 | 源碼安裝方式 | 數字孿生仿真 CARLA 仿真 )_#docker_03

Autoware Universe 源碼 安裝方式 需要 前置 條件 : Ubuntu 22.04、ROS 2 Humble、Git , 這三個 要素 都是強制必須得 , 否則無法進行安裝 ;

  • Ubuntu 22.04 系統 : 僅支持 Ubuntu 22.04 LTS , 提供 Autoware Universe 運行的底層操作系統環境 , 確保依賴兼容性 ;
  • 不兼容其它 Ubuntu 版本 : Autoware Universe 基於 ROS 2 Humble , ROS 2 Humble 是專門為 Ubuntu 22.04 定製的 LTS 版本
  • 系統架構限制 : Autoware Universe 官方 僅支持 x86_64 架構 , 如果要在 ARM 架構中編譯 Autoware 源碼 , 需要自行修改編譯配置 , 部分依賴庫沒有 ARM 架構版本 , ARM 架構編譯難度極大 ;
  • 確保系統最新 : 確保該版本的 所有補丁 都是最新的 , sudo apt update && sudo apt upgrade ;
  • ROS 2 Humble : 提供 Autoware 核心的機器人操作系統框架 , 包括 通信機制、工具鏈、消息格式 ;
  • 核心定位 : Autoware Universe 是基於 ROS 2 開發的高階自動駕駛框架 , ROS 2 Humble 是其依賴的底層核心 , 所有模塊(感知、定位、規劃)均通過 ROS 2 的話題 / 服務 / 動作通信 ;
  • 推薦安裝版本 : 安裝 ros-humble-desktop 版本 , sudo apt install ros-humble-desktop , 包含 RViz(可視化工具)、Colcon(編譯工具)、ROS 2 核心庫 , 滿足開發與調試需求 ; Autoware Universe 只兼容 ROS 2 Humble Hawksbill 版本 , 不兼容 ROS 2 Iron/Jazzy 或 ROS 1 Noetic 版本 ;
  • 前置組件 : 需要配置 ROS 2 國內鏡像源 , 必須安裝 ROS 2 編譯工具 colcon-build 工具 , 設置環境變量 source /opt/ros/humble/setup.bash 確保命令行可執行 ROS 2 命令 ;
  • Git : 用於拉取 Autoware 源碼及子模塊 , 管理版本迭代與分支切換 , 這個就不再介紹了 ;
  • Git 代理 : 拉取 Autoware 源碼及子模塊時需穩定的網絡 , GitHub 國內訪問可能較慢 , 可配置 Git 代理或使用國內鏡像倉庫 , 否則可能導致子模塊拉取失敗 ;


3、Docker 與 源碼 安裝方式對比



對比維度

Docker 安裝

源代碼安裝

本質

基於 預編譯鏡像 , 包含完整運行環境( 依賴、二進制編譯產物 ),開箱即用

從原始代碼構建 , 可 自定義依賴、功能模塊、驅動邏輯

操作難度

極低 , 僅需安裝 Docker 後 , 通過命令拉取鏡像、啓動容器 , 無需手動配置依賴

較高,需手動匹配系統版本、解決依賴衝突、配置編譯參數 , 對開發環境有一定要求

靈活性

極低 , 無法修改 Autoware 核心代碼 , 無法新增自定義驅動/模塊 , 僅能使用鏡像預集成功能

極高 , 可修改 核心源碼、裁剪冗餘功能、集成自定義硬件驅動/算法模塊

硬件適配

僅支持鏡像中 預集成的官方兼容硬件(如 Velodyne 激光雷達、NovAtel RTK 等),無法適配非官方支持的硬件

支持 任意硬件適配 , 可自行開發/集成自定義驅動(如小眾激光雷達、定製攝像頭) , 靈活適配特殊硬件接口

編譯需求

無需編譯,鏡像已 包含編譯完成的二進制文件 , 啓動即可運行

必須編譯 , 需通過 Colcon(ROS 2)/Catkin(ROS 1)工具編譯源碼 , 支持增量編譯指定模塊

調試便利性

較差 , 無法直接斷點調試 Autoware 源碼

極佳 , 可 結合 IDE(如 CLion、VS Code)斷點調試源碼、驅動模塊 , 快速定位底層問題

版本迭代

需下載完整新鏡像更新 , 無法增量更新 , 版本切換依賴鏡像替換

可通過 Git 拉取最新代碼/切換分支 , 增量編譯更新 , 版本迭代更靈活、高效

系統依賴

僅需安裝 Docker 引擎

需 嚴格匹配 Autoware 版本要求的系統(如 Ubuntu 20.04/22.04)、ROS 版本(Noetic/Humble),依賴關係強綁定





二、Autoware.Universe 仿真 / 評估 教程




1、仿真概述



Autoware.Universe 仿真 / 評估 教程文檔 : https://autowarefoundation.github.io/autoware-documentation/main/tutorials/

Tutorials 文檔 中 , 介紹了 仿真 / 評估 教程 , 其中涉及到 兩種仿真方法 臨時仿真(Ad hoc simulation) 、場景仿真(Scenario simulation) , 三種仿真類型 規劃仿真(Planning simulation) 、數據包回放仿真(Rosbag replay simulation) 、數字孿生仿真(Digital twin simulation) ;



仿真方法 :

  • 臨時仿真(Ad hoc simulation) : 在 本地機器上運行 基礎仿真 ;
  • 場景仿真(Scenario simulation) : 通過 場景運行器 , 基於預定義場景運行更復雜的仿真


仿真類型 :

  • 規劃仿真(Planning simulation) : 使用 簡單的虛擬數據(dummy data) 測試 規劃(Planning)和 控制(Control)組件
  • 數據包回放仿真(Rosbag replay simulation) : 使用 預先錄製的 rosbag 數據 , 測試 定位(Localization)和 感知(Perception) 組件功能 ;
  • 數字孿生仿真(Digital twin simulation) : 這是仿真的重點 , 生成 真實數據 並 模擬 幾乎整個系統的仿真類型 , 生成的數據 是 與 真實物理世界 1:1 對應的高保真虛擬世界 , 通常也稱為 端到端仿真(end-to-end simulation)


Autoware.Universe 仿真 可參考 下圖 :

【自動駕駛】Autoware.Universe 開發概述 ② ( Autoware.Universe 安裝簡介 | Docker 安裝方式 | 源碼安裝方式 | 數字孿生仿真 CARLA 仿真 )_#docker_04


【自動駕駛】Autoware.Universe 開發概述 ② ( Autoware.Universe 安裝簡介 | Docker 安裝方式 | 源碼安裝方式 | 數字孿生仿真 CARLA 仿真 )_#Docker_05



2、數字孿生仿真 - CARLA 仿真



CARLA 仿真 文檔 : https://autowarefoundation.github.io/autoware-documentation/main/tutorials/ad-hoc-simulation/digital-twin-simulation/carla-tutorial/



該文檔中給出了 4 個 通過 CARLA 運行 Autoware 仿真 的 項目 :

  • autoware_carla_interface ( 推薦使用 ) : Autoware ROS 功能包 , 用於實現 Autoware 與 CARLA 模擬器之間的通信,支持自動駕駛仿真 , 已集成至 autoware_universe 中 ;
  • GitHub 地址 : https://github.com/autowarefoundation/autoware_universe/tree/main/simulator/autoware_carla_interface
  • carla_autoware_bridge : carla_ros_bridge 的擴展功能包,用於將 CARLA 模擬器與 Autoware Universe 軟件對接 ;
  • GitHub 地址 : https://github.com/Robotics010/carla_autoware_bridge ;
  • 使用教程 : https://github.com/Robotics010/carla_autoware_bridge/blob/master/getting-started.md
  • open_planner : 一款集成式開源規劃器及相關工具,適用於自動駕駛車輛和移動機器人的自主導航 ;
  • GitHub 地址 : https://github.com/ZATiTech/open_planner/tree/humble
  • 使用教程 : https://github.com/ZATiTech/open_planner/blob/humble/op_carla_bridge/README.md
  • zenoh_carla_bridge : 用於在 Carla 中控制多輛車,通過 Zenoh 實現 Autoware 與 Carla 的橋接,能夠區分不同車輛的消息 ;
  • GitHub 地址 : https://github.com/evshary/zenoh_carla_bridge