5分钟跑通自动驾驶软件栈:Autoware 安装与快速上手完整指南
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
装自动驾驶环境,最劝退的从来不是代码,是版本:ROS 2、Ubuntu、CUDA,三者任意一个没对上,apt 就开始报错,一下午修不好。而 Autoware 就是冲着这个问题来的——跑在 ROS 2 上的开源自动驾驶软件栈,定位、感知、规划、控制全齐,预构建镜像拉下来不用自己编译,就能让一辆虚拟车在仿真里自己开。
为什么选 Autoware
- 预构建镜像,双架构:官方镜像同时覆盖 amd64 和 arm64,
universe-jazzy这种 tag 拉下来就是编译好的完整软件栈,省掉最烦的依赖搏斗。 - core / universe 双层:稳定层 autoware_core 和实验层 autoware_universe 分开维护,求稳用 core,尝鲜上 universe。
- 构建可复现:
USE_LOCKFILE=true会把基础镜像钉到具体 digest、ROS 依赖指向带日期的 snapshot,不同日子构建结果一致。 - 环境安装脚本化:ansible/ 里的角色把 ROS 2、CUDA、TensorRT 装成 playbook,换台机器不用手敲 apt。
5分钟跑起来:两条命令拉起规划仿真
环境要求:一台 Ubuntu 主机(22.04 对应 ROS 2 humble,24.04 对应 jazzy),装好 Docker 和 Docker Compose v2。
先拿代码:
git clone https://gitcode.com/GitHub_Trending/au/autoware cd autoware规划仿真需要一张示例地图,把 sample-map-planning 解压到~/autoware_data/maps/下(官方文档有下载入口,也可以后面用 demo_artifacts 角色自动下载)。然后:
xhost +local:docker cd docker/examples/demos/planning-simulator HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose run --rm planning-simulator跑起来后你会看到 rviz2 窗口弹出,sample_vehicle 在 sample-map-planning 地图上沿着车道自己开。这条 demo 的感知是 dummy 的,不需要 GPU。launch 结束后容器不会消失,会掉进一个 bash,可以进去查状态,Ctrl+D 退出并清理容器。
里面都有什么:一张零件地图
从 repositories/autoware.repos 能看清分工:core 层是稳定地基——消息定义 autoware_msgs、工具 autoware_utils、核心逻辑 autoware_core、启动器 autoware_launch,还有 rviz2 插件;universe 层一个大仓库,装着其余全部算法包。
按"它替你干了什么"来认:
- 定位:拿实时点云和离线点云地图(
pointcloud_map.pcd)做匹配,让车知道自己压在哪条车道上 - 感知:激光雷达、摄像头的目标检测,重度部分跑在带 CUDA 的
universe-cuda镜像里 - 规划:先算全局路径,再做行为决策,最后生成平滑轨迹——上面 demo 演示的就是这一段
- 控制:把轨迹翻译成油门、转向、刹车
- 传感器接入:nebula、transport_drivers 这些包负责把多路传感器数据同步进来
- 可视化:rviz2 加 Autoware 自己的插件面板,连 Qt 主题都配好了
镜像也是按这个结构分层的:docker/ 目录里从 base 到 core 再到 universe,开发版(-devel)和运行版分开,要不要 GPU 也分开。
从体验到实用:换成自己的硬件和数据
- 换地图和车型:编辑 compose 文件里
command:块的map_path、vehicle_model、sensor_model参数,地图统一放~/autoware_data/maps/这个挂载点。 - 装完整开发环境:官方用 Ansible 一键装,示例地图和 rosbag 都能自动下载到位:
ansible-playbook autoware.dev_env.install_dev_env \ --tags demo_artifacts --ask-become-pass先按 ansible/README.md 用 pipx 装好 ansible 并安装 collection 即可。
- 要 GPU 就换 tag:compose 里
image:从universe-jazzy换成universe-cuda-jazzy,再叠加 NVIDIA 的 compose 文件,前提是宿主机装好了 nvidia-container-toolkit。
实操建议:先用 sample 三件套(sample-map-planning + sample_vehicle + sample_sensor_kit)跑通,再一件件换成自己的;地图没放在挂载点对应的位置,是最常见的"跑不起来"原因。
求助与参与
- 提问:技术问题去 Autoware 的 GitHub Discussions 的 Q&A 分类,官方建议先在那里确认是不是 bug,再开 issue。
- 交流:Discord 有实时频道;working groups 页面能看到各专项正在做什么。
- 贡献:fork、开分支、提 PR,流程细节在 CONTRIBUTING.md 指向的官方贡献指南里,提 PR 前留意社区的 CI 检查项。
环境这关已经替你绕开了,接下来就换张地图,让车再跑一次。
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考