Autoware 实战入门:30 分钟从 git clone 到跑通第一条规划轨迹
2026/9/14 20:08:20 网站建设 项目流程

Autoware 实战入门:30 分钟从 git clone 到跑通第一条规划轨迹

【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware

手装 ROS 2、配好 Docker 的 X11 转发、再把示例地图解压到指定目录,这一套下来少说折腾两小时,还容易在某个环境变量上栽跟头。Autoware 这套开源自动驾驶软件栈部署得没那么累:仓库里用 Ansible 把主机环境自动化,用 Docker Compose 把运行时一键拉起,你只需要准备好一张地图,剩下的它自己串起来。

看懂架构:沿数据流走一圈

Autoware 的节点多,但一条数据流串起来就清楚了。我们不背模块清单,直接看原始信号从传感器进来、最终变成车辆指令出去,路上经过哪几道手:

  1. 传感器信号→ 由autoware_launch统一装配后喂给定位节点 → 换种说法就是「先搞清楚我在哪」,GNSS、IMU 和点云在这里汇合成自车位姿。
  2. 定位节点(localization)→ 把位姿发布到/localization话题 → 说白了就是给全车一个坐标系,后面所有「车在那、物在那」的结论都挂在它身上。
  3. 感知(perception)→ 把点云、图像里的障碍物标出来 → 换种说法就是「圈出谁在挡路」。注意 planning simulator 这个 demo 里感知是 dummy 实现,不跑真实推理。
  4. 规划(planning)→ 全局路径 + 行为决策 + 轨迹规划三层接力 → 说白了导航 App 先算出走哪条路,再算出这一刻方向盘该打多少。
  5. 控制(control)→ 把轨迹翻译成油门刹车转向指令 → 输出/twist这类车辆指令话题,真车上执行器照做,模拟器里由仿真器接管。

整条链路一句话概括:传感器信号 → 定位 → 感知 → 规划 → 控制 → 车辆指令。规划 demo 之所以适合新手,是因为它把感知换成 dummy,链路短、依赖少,不用 GPU 也能跑通整条主干。

下一步,直接让它跑起来。

30 分钟跑通第一个 Demo:planning simulator

仓库在 docker/examples/demos/planning-simulator/ 下备好了完整 compose 配置,它用官方预构建的universe-jazzy镜像(无 GPU 版),启动后容器会自动执行ros2 launch autoware_launch planning_simulator.launch.xml,跑完再落到 bash 里方便你检查现场。

拉取仓库

git clone https://gitcode.com/GitHub_Trending/au/autoware cd autoware

预计耗时 2 分钟。克隆下来的是元仓库:repositories/*.repos描述真正的源码清单,docker/是镜像构建与示例,ansible/是环境自动化。

准备示例地图

ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml ansible-playbook autoware.dev_env.install_dev_env --tags demo_artifacts --ask-become-pass

预计耗时 5 分钟左右(取决于网速)。demo_artifacts这个角色会下载并解压示例地图到~/autoware_data/maps/sample-map-planning,路径和容器里挂载的位置正好对得上,手动 wget 解压也可以,但要保证目录名一模一样。

容器里启动模拟器

xhost +local:docker cd docker/examples/demos/planning-simulator HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose run --rm planning-simulator

预计耗时 10~20 分钟,大头在首次拉镜像。跑通后你会看到:终端里几十个节点陆续启动并打印状态,屏幕上弹出 rviz2 窗口,自车模型停在地图起点,规划轨迹线实时画出来,仿真车辆沿路线行驶——到这就完成了开源自动驾驶软件栈的完整链路首跑。容器退出后落在 bash 里,Ctrl+D退出并自动清理容器。

核心引擎拆解:三个读不懂就读不懂代码的模块

autoware_launch解决「怎么把几十个节点一次性装对」的问题。输入是三个参数:map_path(地图在哪)、vehicle_model(车是什么)、sensor_model(传感器是什么);输出是一整套按这套配置实例化的节点图。说白了它就是「即插即用面板」——地图、车、传感器插对了,全车自动通电;插错一个,下游节点会直接报错,这也是新手排障时的第一现场。

localization(定位节点)解决「车到底在哪」的问题。输入是 GNSS/IMU 的连续读数加静态点云地图,输出是平滑自车位姿。说白了它像手机里的混合定位:GPS 给个大概,IMU 补高频细节,再拿眼前看到的建筑和地图上的建筑对一遍,把漂移拉回来。

planning(规划栈)解决「接下来怎么开」的问题。输入是定位、感知给出的自车状态和障碍物,输出是每秒一条的平滑轨迹。说白了它像导航 App:偏航后重新算路,临了再决定是减速绕行还是直接跟上,最终交付给控制节点的是一条「每个时刻该走哪、走多快」的完整曲线。

适配你的硬件:5 个高频配置项

配置项默认值什么时候要改改完怎么验证
ROS_DISTRO(镜像 tag 里的 jazzy/humble)jazzy宿主机是 Ubuntu 22.04(对应 humble),或你依赖某版本 APIros2 --help正常且镜像 tag 与宿主机版本对应
镜像选universe-jazzy还是universe-cuda-jazzy无 GPU 用前者装了 NVIDIA 卡、想跑真实感知推理容器内能查到 GPU(如nvidia-smi
HOST_UID/HOST_GID1000你的宿主机 uid/gid 不是 1000挂载目录里能正常读写文件
compose overlay(docker-compose.dri.yaml/.nvidia.yaml不加,软件渲染rviz2 卡、想用硬件加速渲染rviz2 拖动视角不卡顿
map_path/vehicle_model/sensor_model示例地图 +sample_vehicle换自己的地图或传感器组合launch 不报参数错误,rviz2 里地图正确加载

改完不确定有没有生效?跑ros2 topic hz /twist看车辆指令话题是否在持续出数。

踩坑实录:新手最容易被卡住的 3 个问题

现象:rviz2 窗口弹不出来,终端里一堆 X11 认证报错。我当年也在这儿卡过。根因一句话:容器里的 Qt 没拿到宿主机的 X11 授权。解法是在宿主机先放行:

xhost +local:docker

再重跑 compose 命令即可,compose 文件里已带QT_X11_NO_MITSHM=1,不用动。

现象:launch 起来后报地图目录不存在,或直接没有地图话题。根因是示例地图没解压到~/autoware_data/maps/sample-map-planning这个精确路径(少一层目录、多一层 zip 都会中招)。解法是回到上一节的 demo_artifacts 步骤重跑一遍,解压完ls确认目录下能看到.osm地图文件再继续。

现象:容器内写日志、落文件时 permission denied。根因是容器里aw用户和宿主机 uid 对不上。解法是把启动命令补全成:

HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose run --rm planning-simulator

三处都查过还不明就里时,在容器 bash 里跑ros2 doctorros2 node list,前者体检环境,后者确认节点图是不是按预期拉起来了。

下一步:从跑通到贡献

  • 第 1 周:读autoware_launch的 launch 文件,搞懂map_pathvehicle_modelsensor_model三个参数是怎么层层传到每个节点的;顺带翻翻 docker/examples/ 下 carla、scenario-simulator 两个 demo 的 README,对比它们和 planning simulator 的差别。
  • 第 1 个月:在自己的硬件上把 GPU 路径(universe-cuda-jazzy+ nvidia overlay)跑通,遇到报错就带着完整日志去 issue 区搜一遍,再给上游提一个描述清楚硬件配置的 issue。
  • 有空的时候:加入 Autoware 社区的 Discord 频道或 GitHub Discussions 里对口的 working group,认领一个 beginner-friendly 标签的 issue,从改文档、修小 bug 开始参与。

跑通之后,欢迎在 issue 区贴出你的硬件配置和踩坑记录,方便后来人对照。

【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询