AI

无人配送车

Autoware

Posted by LXG on May 11, 2026

autoware_universe

autoware.org

Autoware

它提供了一整套自动驾驶软件栈(Perception → Planning → Control),很多高校、研究机构、Robotaxi 公司、无人配送、自动驾驶巴士项目都会基于它二次开发

Autoware 最早由日本名古屋大学教授 Shinpei Kato 于 2015 年发起,后来成立了 Autoware Foundation 统一维护。

它是:

  • 开源
  • 基于 ROS / ROS2
  • 面向 L4 自动驾驶
  • 支持真实车辆部署
  • 支持仿真

Autoware 的整体架构


传感器
  ↓
感知(Perception)
  ↓
定位(Localization)
  ↓
预测(Prediction)
  ↓
路径规划(Planning)
  ↓
车辆控制(Control)
  ↓
CAN / 底盘接口

模块 作用
Sensing 接收 LiDAR、Camera、Radar、IMU 等数据
Localization 高精地图 + GNSS + IMU 定位
Perception 检测车辆、行人、交通灯
Planning 计算行驶路径
Control 输出方向盘、刹车、油门控制
Vehicle Interface 对接不同车型 CAN 总线
HD Map 高精地图支持

运行 Autoware 需要什么硬件?

硬件 建议
CPU x86 高性能
GPU NVIDIA RTX
系统 Ubuntu
中间件 ROS2
传感器 激光雷达 + IMU + Camera

为什么大家还是大量使用高精地图?

因为自动驾驶最难的是:定位, 不是检测。

有高精地图时,系统知道:

  • 哪儿有车道
  • 哪儿能转弯
  • 红绿灯在哪
  • 路沿在哪
  • 停车线在哪

所以 AI 压力会小很多。

没有高精地图时, 系统必须实时理解整个世界,难度暴涨。

封闭园区的高精地图需要自己建立吗

在封闭园区场景里,高精地图通常都需要:自己制作 + 自己维护

因为公开地图(比如高德、Google Maps)根本不包含:

  • 厂区道路
  • 园区内部车道
  • 仓库路线
  • 停车点
  • 禁行区
  • 装卸区域

更不可能提供:自动驾驶可用的厘米级语义地图

封闭园区常见地图方案

层级 内容 是否必须
几何地图 道路/车道 必须
语义地图 停车点/路口/限速 推荐
点云地图 LiDAR定位 可选

什么叫轻地图?

地图只保留:

  • 车道拓扑
  • 路线
  • 停靠点

而不是:全世界厘米级三维重建

然后定位依赖:

  • RTK
  • VIO
  • Camera
  • LiDAR
  • IMU

融合。

RTK + Lanelet2 + 简单避障

功能 Autoware 是否包含
Lanelet2 地图支持 ✅ 官方核心
路径规划
控制器
障碍物避障
ROS2 通信
RTK 驱动 ❌ 通常需自己接
GNSS融合 ⚠️ 部分有
车辆CAN适配 ❌ 通常自己做
具体传感器驱动 ⚠️ 部分有

技术栈

模块 推荐
主系统 Ubuntu + ROS2
自动驾驶 Autoware Universe
定位 RTK + IMU
地图 Lanelet2
避障 2D/3D LiDAR
控制 CAN
算力 Orin Nano / x86
调度 MQTT/Web

Lanelet2

Lanelet2 = 自动驾驶用的“道路语义地图”

一个 lanelet 由什么组成?

元素 含义
Left Bound 左边界
Right Bound 右边界
Centerline 中心线
Attributes 限速/规则

问题


Lanelet2的问题不是技术落后,而是它设计目标不同:

❌ 它是“静态交通规则模型”
车道结构固定
语义明确
适合高速/园区结构道路

👉 本质:

“先验世界模型(offline world model)”
❌ 它不擅长:
临时施工
动态障碍
路面变化
未知区域

封闭园区 Autoware 完整技术方案


                   ┌──────────────────────┐
                   │      云端/调度中心     │
                   │ Fleet / 任务分配 / OTA │
                   └─────────┬────────────┘
                             │ MQTT/HTTP
                             ↓
┌────────────────────────────────────────────────────────┐
│                    车端计算平台(Autoware)            │
│                                                        │
│  ┌──────────────┐      ┌────────────────────┐         │
│  │ 传感器层     │      │   通信层(ROS2)    │         │
│  │              │      │                    │         │
│  │ LiDAR       │──────▶│                    │         │
│  │ Camera      │──────▶│                    │         │
│  │ IMU         │──────▶│                    │         │
│  │ RTK GNSS    │──────▶│                    │         │
│  └──────────────┘      └─────────┬──────────┘         │
│                                   │                    │
│                                   ↓                    │
│  ┌──────────────────────────────────────────────────┐  │
│  │                感知层 Perception                 │  │
│  │  - LiDAR 检测(障碍物)                         │  │
│  │  - Camera 识别(行人/车辆)                    │  │
│  │  - Fusion(融合)                              │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │               定位层 Localization                │  │
│  │  - RTK GNSS                                      │  │
│  │  - IMU                                           │  │
│  │  - EKF 融合                                      │  │
│  │  - (可选)LiDAR map matching                   │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │               地图层 Map (Lanelet2)              │  │
│  │  - 车道拓扑                                      │  │
│  │  - 停车点                                        │  │
│  │  - 限速                                          │  │
│  │  - 路口关系                                      │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │              行为规划 Behavior Planning          │  │
│  │  - 路径选择                                      │  │
│  │  - 交通规则                                      │  │
│  │  - 停车 / 避让 / 等待                           │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │              轨迹规划 Planning                   │  │
│  │  - 全局路径(Lanelet2)                         │  │
│  │  - 局部轨迹生成                                 │  │
│  │  - 避障路径重规划                               │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │                控制 Control                      │  │
│  │  - MPC / PID                                    │  │
│  │  - 速度控制                                     │  │
│  │  - 转向控制                                     │  │
│  └──────────────────────┬──────────────────────────┘  │
│                         │                              │
│                         ↓                              │
│  ┌──────────────────────────────────────────────────┐  │
│  │              车辆执行层 Vehicle Interface        │  │
│  │  - CAN 总线                                      │  │
│  │  - EPS / Brake / Throttle                       │  │
│  └──────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────┘

硬件架构图


┌────────────────────────────────────────────────────────────┐
│                     云端/调度中心                           │
│   - 任务分配 / 路线规划 / 车队管理 / OTA / 远程监控         │
└───────────────┬────────────────────────────────────────────┘
                │ MQTT / HTTP / WebSocket
                ↓
┌────────────────────────────────────────────────────────────┐
│                 车端主计算盒(AMD x86)                     │
│   推荐:Ryzen Embedded / Ryzen 7 / Ryzen 9 / EPYC D 系列   │
│                                                            │
│   OS: Ubuntu 22.04 / ROS2 Humble / Autoware Universe       │
│                                                            │
│   ┌──────────────────────────────────────────────────────┐ │
│   │                 Autoware 主系统                     │ │
│   │                                                      │ │
│   │  ┌──────────────┐   ┌──────────────┐               │ │
│   │  │ 感知 Perception│   │ 定位 Localization│           │ │
│   │  │ LiDAR / Camera │   │ RTK + IMU + EKF│           │ │
│   │  └──────┬────────┘   └──────┬────────┘             │ │
│   │         │                   │                        │ │
│   │         └──────┬────────────┘                        │ │
│   │                ↓                                     │ │
│   │  ┌──────────────────────────────┐                   │ │
│   │  │       规划 Planning          │                   │ │
│   │  │ Lanelet2 + Behavior + Traj  │                   │ │
│   │  └──────────────┬──────────────┘                   │ │
│   │                 ↓                                   │ │
│   │  ┌──────────────────────────────┐                   │ │
│   │  │        控制 Control          │                   │ │
│   │  │  PID / MPC / Speed control   │                   │ │
│   │  └──────────────┬──────────────┘                   │ │
│   └─────────────────┼──────────────────────────────────┘ │
└─────────────────────┼────────────────────────────────────┘
                      │ ROS2 Topics
                      ↓
┌────────────────────────────────────────────────────────────┐
│                中间件 & 通信层(ROS2 DDS)                  │
│   - sensor topics                                           │
│   - planning topics                                         │
│   - control topics                                          │
└─────────────────────┬────────────────────────────────────┘
                      │
┌─────────────────────▼────────────────────────────────────┐
│                 边缘I/O与实时控制层                       │
│                                                          │
│  ┌──────────────┐      ┌──────────────────────────┐      │
│  │ CAN Interface │─────▶│ 车辆控制 ECU            │      │
│  │ SocketCAN     │      │ EPS / Brake / Throttle  │      │
│  └──────────────┘      └──────────────────────────┘      │
│                                                          │
│  ┌──────────────┐                                       │
│  │ RTK GNSS     │─────── NMEA / ROS2                    │
│  └──────────────┘                                       │
│                                                          │
│  ┌──────────────┐                                       │
│  │ IMU          │─────── ROS2 sensor fusion            │
│  └──────────────┘                                       │
│                                                          │
│  ┌──────────────┐                                       │
│  │ LiDAR        │─────── point cloud                   │
│  └──────────────┘                                       │
│                                                          │
│  ┌──────────────┐                                       │
│  │ Camera       │─────── perception AI                │
│  └──────────────┘                                       │
└────────────────────────────────────────────────────────────┘

ROS2 节点级拆解图


┌──────────────────────────────────────────────────────────────┐
│                    🧠 1. 传感器节点层                        │
└──────────────────────────────────────────────────────────────┘

  [rtk_driver_node]        → RTK GNSS数据
  [imu_driver_node]        → IMU角速度/加速度
  [lidar_driver_node]      → 点云数据
  [camera_driver_node]     → 图像(可选)

              ↓ ROS2 Topics
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                 📍 2. 定位与状态估计层                       │
└──────────────────────────────────────────────────────────────┘

  [ekf_localization_node]
      输入:
        /rtk/fix
        /imu/data
        /wheel/odometry

      输出:
        /localization/pose (车辆位姿)

              ↓
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                 🗺️ 3. 地图与全局规划层                       │
└──────────────────────────────────────────────────────────────┘

  [lanelet2_map_loader]
      → 加载园区地图

  [route_planner_node]
      输入:
        start_pose
        goal_pose

      输出:
        /planning/route (车道级路径)

              ↓
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                  🤖 4. 感知层(最小版)                      │
└──────────────────────────────────────────────────────────────┘

  [lidar_obstacle_detection_node]

      输入:
        /lidar/points

      输出:
        /perception/obstacles

👉 只做一件事:
    ➜ 检测“哪里有障碍物”

(园区MVP不需要复杂AI)───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                🧭 5. 行为决策层(FSM)                       │
└──────────────────────────────────────────────────────────────┘

  [behavior_fsm_node]

      输入:
        /planning/route
        /perception/obstacles
        /localization/pose

      状态机:

        DRIVE
        STOP
        WAIT
        RESUME
        PARK

      输出:
        /planning/behavior_state

              ↓
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                📐 6. 局部规划层                               │
└──────────────────────────────────────────────────────────────┘

  [motion_planner_node]

      输入:
        route
        obstacles
        vehicle_state

      输出:
        /planning/trajectory

👉 作用:
    生成“未来5~10秒走哪条轨迹”───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                  🎯 7. 控制层(核心执行)                     │
└──────────────────────────────────────────────────────────────┘

  [pid_controller_node]  或  [mpc_controller_node]

      输入:
        /planning/trajectory

      输出:
        /control/command

      内容:
        steering_angle
        throttle
        brake

              ↓
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                🚗 8. 车辆接口层(你最熟)                    │
└──────────────────────────────────────────────────────────────┘

  [vehicle_interface_node]

      ROS2 → CAN

      输出:
        CAN Frame

      控制:
        EPS(方向)
        Brake(刹车)
        Throttle(油门)

              ↓
───────────────────────────────────────────────────────────────


┌──────────────────────────────────────────────────────────────┐
│                ☁️ 9. 车队/云端(非Autoware)                 │
└──────────────────────────────────────────────────────────────┘

  [fleet_manager_node]
  [teleop_node]
  [logging_node]

  功能:
    - 任务下发
    - 远程接管
    - 数据回传
    - OTA升级

深圳市幻尔科技

JetAuto ROS机器人

JetAuto 是一款基于 Jetson Nano 的教育机器人,能够识别道路标线、交通标志和障碍物,并自主导航。您可以亲身体验其 YOLOv5 深度学习模型,并使用其高性能编码器电机、激光雷达、3D 深度摄像头和 LCD 显示屏来探索世界。体验地图构建、路径规划、避障、人体识别与交互、语音交互等诸多功能。

层级 JetAuto Autoware
定位 教育机器人项目 自动驾驶操作系统
ROS层 有(简化版) 有(完整系统)
感知 YOLO + LiDAR demo 多传感器融合
规划 简单路径规划 行为+轨迹+优化
地图 栅格/SLAM Lanelet2语义地图
车辆控制 电机控制 CAN + 车规控制

主流“实时建图方案”有 4 类

SLAM + 局部栅格地图(最常见)


📦 代表系统

Nav2 Costmap(ROS2)
Autoware Occupancy Grid
Voxel Grid Mapping

🧠 核心思想

实时生成“局部可通行地图”

✔ 特点

实时更新(10–50Hz)
反映动态障碍
不需要先验地图

❌ 缺点

没有语义
没有道路结构
只能做避障

HD Map + 动态障碍层(Autoware主流)


📦 结构

Lanelet2(静态)
+ Costmap(动态)

🧠 核心思想

静态道路 + 实时障碍叠加

✔ 优点

工业标准(Autoware / Apollo)
稳定
可预测性强

❌ 缺点

仍然依赖 Lanelet2
不是真正“动态地图”

Semantic SLAM(语义SLAM)


📦 代表技术

Kimera
Voxel-based Semantic Mapping
ORB-SLAM3 + semantics

🧠 核心思想

SLAM + 物体分类(车/人/路/墙)

✔ 特点

有“语义”
可动态更新
可扩展自动驾驶

❌ 缺点

工程复杂
实时性差
不稳定

Neural / 3D Gaussian / Occupancy Network(前沿)


📦 代表

Occupancy Networks
Neural SLAM
3D Gaussian Splatting mapping

🧠 核心思想

用神经网络表示“可行驶空间”

✔ 优点

真正动态
可泛化
不依赖手工地图

❌ 缺点

还没工业落地
计算量大
Autoware不支持

当前市场比例

方案 占比
HD Map(简化版) ~40%
HD + 感知融合 ~50% ⭐主流
无HD Map ~10%(快速增长)

新石器真实做法

🧭 Step 1:RTK采集车道

  • 低速车跑园区
  • RTK记录轨迹
  • 多圈采样

GPS轨迹 = 车道中心线基础

🗺️ Step 2:自动生成“轻HD Map”

系统自动生成:

  • 车道中心线
  • 车道宽度
  • 拓扑关系(路口)

✍️ Step 3:人工标注补充

补充:

  • 停车点
  • 路口优先级
  • 限速
  • 禁行区域

🔄 Step 4:持续更新(关键)

园区运行后:

  • 车队回传轨迹
  • 自动修正地图

地图 = 初始建图 + 车队数据迭代

如何去掉人工标注环节

方案 人工标注量
传统 Lanelet2 🔴 100%人工
新石器式轻HD Map 🟡 10%人工 + 自动生成
Mapless(BEV) 🟢 0~5%人工(但换算法复杂度)

RTAB-Map(Real-Time Appearance-Based Mapping)

一个“实时SLAM建图 + 定位 + 回环优化”的开源系统,让机器人在不知道地图的情况下边走边建图。


LiDAR / Camera / RTK
        ↓
RTAB-Map(SLAM)
        ↓
Occupancy Grid / BEV
        ↓
Costmap(融合)
        ↓
Planner(TEB / MPC)
        ↓
Control

详细架构


┌──────────────────────────────────────────────┐
│               🚗 车端传感器层                │
│  LiDAR(激光雷达) / Camera(摄像头) / RTK / IMU │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│             📍 SLAM与定位层                  │
│        RTAB-Map / LIO-SAM / EKF融合          │
│                                              │
│  功能:                                       │
│  - 实时定位(我在哪)                         │
│  - 建立环境地图(空间结构)                   │
│  - 生成 map → odom 变换                      │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│        👁️ 感知与BEV语义理解层               │
│   Camera + LiDAR → BEV融合网络               │
│                                              │
│  输出:                                       │
│  - 可行驶区域(drivable area)               │
│  - 动态障碍物(人/车/物体)                  │
│  - 隐式车道结构                              │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│            🗺️ Nav2 Costmap层(核心)         │
│                                              │
│  🔹 全局代价地图 global_costmap              │
│     - 静态地图(SLAM或简化HD Map)           │
│                                              │
│  🔹 局部代价地图 local_costmap               │
│     - BEV输出融合                           │
│     - 实时障碍物                           │
│     - 安全膨胀层(inflation layer)        │
│                                              │
│  本质:                                      │
│  👉 把世界变成“可走/不可走的风险地图”        │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│        🧭 Nav2 全局规划器(Planner Server)  │
│                                              │
│  常用算法:                                   │
│  - Smac Planner(推荐)                      │
│  - A* / Hybrid A*                            │
│                                              │
│  功能:                                       │
│  👉 从起点到目标点找一条“全局路径”           │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│       🎯 Nav2 局部控制器(Controller)       │
│                                              │
│  常用控制算法:                               │
│  - Regulated Pure Pursuit                   │
│  - DWB(动态窗口法)                        │
│  - MPPI(高级优化控制)                     │
│                                              │
│  功能:                                       │
│  👉 把路径变成实时转向+速度控制               │
└──────────────────────────────────────────────┘
                      ↓
┌──────────────────────────────────────────────┐
│              🚗 底盘执行层                   │
│        CAN控制 / 方向盘 / 电机 / 刹车        │
└──────────────────────────────────────────────┘

数据流动


传感器数据
   ↓
SLAM(RTAB-Map)
   ↓
定位(map → odom)
   ↓
BEV语义理解(看懂世界)
   ↓
Costmap(统一风险表达)
   ↓
Planner(找路)
   ↓
Controller(走路)
   ↓
车辆执行

Nav2内部结构


Nav2导航系统(Navigation2)

├── 📍 定位模块(Localization)
│     └── AMCL / EKF / SLAM融合
│
├── 🗺️ 代价地图模块(Costmap 2D)
│     ├── 全局地图(global_costmap)
│     ├── 局部地图(local_costmap)
│     └── 障碍物/膨胀层
│
├── 🧭 全局规划器(Planner Server)
│     ├── A* / Hybrid A*
│     └── Smac Planner
│
├── 🎯 局部控制器(Controller Server)
│     ├── Pure Pursuit
│     ├── DWB
│     └── MPPI
│
└── 🔁 行为树(Behavior Tree)
      ├── 路径失败重规划
      ├── 避障恢复
      └── 到达目标管理

和AutoWare的区别

🚗 Nav2 是“机器人导航系统”,Autoware 是“自动驾驶软件栈(车规级)”。

系统 本质
Navigation2 机器人“从A走到B”
Autoware 车辆“像人一样开车”

最大区别:有没有“语义驾驶层”


🟢 Nav2
只有 costmap
没有交通规则
没有车道语义

👉 本质:

❌ “我怎么避障走过去”

🔵 Autoware
有 Lanelet2地图
有交通规则
有车道拓扑
有优先级

👉 本质:

✔ “我应该像人一样合法开车”

地图体系差异(关键)


Nav2

Occupancy Grid(占据栅格)
+ SLAM map
+ BEV融合

👉 特点:

动态
不稳定
不语义化


Autoware

Lanelet2 / HD Map

👉 特点:

车道级
拓扑结构
交通规则

规划系统差异(核心差别)


🟢 Nav2

Planner:

A*
Hybrid A*
Smac

👉 输出:

一条“路径线”

🔵 Autoware

Planner分三层:

行为规划(Behavior)
   ↓
轨迹规划(Trajectory)
   ↓
控制(Lateral/Longitudinal)

👉 输出:

一条“带时间和速度的可执行轨迹”

适用场景完全不同


🟢 Nav2适合:

室内机器人
AGV
园区低速车
服务机器人

🔵 Autoware适合:

自动驾驶汽车
Robotaxi
城市场景
高速/复杂交通

行业真实最优解


Sensors
   ↓
SLAM(RTAB-Map / LIO-SAM)
   ↓
BEV感知(语义+动态障碍)
   ↓
轻语义地图(园区规则)
   ↓
行为决策层(FSM / rule engine) ← ⭐核心
   ↓
Nav2(只做局部规划)
   ↓
Controller(MPC / PID)

为什么没有“标准开源中间方案”?


❌ 1️⃣ 自动驾驶没有统一问题定义

园区 vs 城市 vs 仓库差异太大

❌ 2️⃣ 行为层太依赖业务
学校
工厂
小区

👉 规则完全不同

❌ 3️⃣ 公司都在“锁核心竞争力”

真正差异在:

🧠 behavior layer(没人开源)

行为决策层(FSM / rule engine)

🧠 FSM(有限状态机)就是园区低速无人车里“替代红绿灯 + 交通规则 + 人类常识”的那一层逻辑系统。

状态机(最小可用版本)


CRUISE       → 正常行驶
SLOW_DOWN    → 减速
STOP         → 停车
WAIT         → 路口等待
REPLAN       → 重新规划

🧭 状态转换逻辑


CRUISE
  ├─> 行人靠近 → SLOW_DOWN
  ├─> 路口 → WAIT
  ├─> 路径阻塞 → REPLAN

SLOW_DOWN
  ├─> 安全 → CRUISE
  ├─> 风险增加 → STOP

STOP
  ├─> 行人离开 → CRUISE

WAIT
  ├─> 无冲突 → CRUISE

REPLAN
  ├─> 新路径生成 → CRUISE