Autoware 自动驾驶栈 10 分钟跑通:从仿真驾驶到换硬件
2026/9/15 7:54:48 网站建设 项目流程

Autoware 自动驾驶栈 10 分钟跑通:从仿真驾驶到换硬件

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

想在自有硬件上跑通一套自动驾驶算法,通常要先把 ROS、CUDA 等一堆依赖装齐。Autoware 把这些依赖连同定位、感知、规划、控制的全链路封装在一个开源软件栈里,基于 ROS 2(机器人通信与任务管理的中间件)构建。本文只解决一件事:先让仿真车开起来,再讲各层在做什么。

🚀 如何用 10 分钟跑通 Autoware 仿真车辆

最短路径是用预构建镜像加仓库自带的示例仿真,不用本地编译。流程很短,一共三条命令。

第一步,拿到仓库:

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

这是个元仓库,真正的源码由 repositories/ 下的.repos文件描述,用 vcs 拉取。只看效果的话,这一步可以跳过源码导入。

第二步,允许容器在宿主机上弹出图形窗口:

xhost +local:docker

第三步,启动规划仿真示例:

cd docker/examples/demos/planning-simulator HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose up

这份 compose 直接拉取预构建镜像ghcr.io/autowarefoundation/autoware:universe-jazzy,启动时自动运行planning_simulator.launch.xml

跑起来后打开 RViz:你会看到一条街道地图和停在起点的自车。在 RViz 里设定初始位姿、点选目的地,规划器算出路线,按下 Engage,仿真车就开始自己行驶。从感知到控制,这条链路已经完整走过一遍。

如果宿主机还没有示例地图,先运行 ansible/roles/demo_artifacts/ 角色下载样例数据,它会落在~/autoware_data下。compose 把这个目录挂进容器,容器内路径是/home/aw/autoware_data/maps,启动参数里的map_path指向的就是它。

读懂容器里的镜像层级与地图挂载

你会先碰到镜像 tag,先把 docker/ 的镜像族理清。命名规则是"阶段 + ROS 2 发行版",比如universe-jazzyuniverse-cuda-humble

镜像装了什么适合
core-devel-*core 稳定包的构建环境改 core 代码
universe-devel-*全量构建环境,含实验性功能改 universe 代码
universe-*纯运行时,无编译链只跑不改
universe-cuda-*运行时 + GPU 计算库需要 GPU 加速的感知任务

源码分两棵树:core 是稳定包,universe 放实验性功能。改哪个包的代码,先确认它属于哪棵树,再选对应的 devel 镜像编译。

要动代码时,先拉源码再构建镜像:

vcs import src < repositories/autoware.repos docker buildx bake -f docker/docker-bake.hcl universe

构建目标定义在docker/docker-bake.hcl,入口脚本docker/docker-entrypoint.sh负责三件事:把容器内用户对齐到宿主机 UID,为 DDS(ROS 节点间的消息通信层)打开组播,然后 source ROS 环境。

如何更换硬件、传感器并批量装机

没有 GPU,或新机器上线。换 tag 就行。无 GPU 用universe-jazzy,有 GPU 用universe-cuda-jazzy,旧发行版把jazzy换成humble。docker/examples/basic/ 里还备了 dev-cpu、dev-dri、dev-nvidia 三个最小开发 shell,按硬件挑一个即可。

换传感器或换车。仿真里的"车"也是参数。规划示例用的是vehicle_model:=sample_vehiclesensor_model:=sample_sensor_kit;在 docker/examples/demos/carla/ 示例中,同一辆车换成了 CARLA 的传感器套件,启动文件也换为e2e_simulator.launch.xml。改 compose 里 command 块的参数即可,不用动代码。

批量装机与可复现构建。ansible/ 是一套部署角色:ros2、cuda、tensorrt、nvidia_container_toolkit、docker_engine,每个角色只干一件事。构建镜像时加环境变量USE_LOCKFILE=true,依赖版本会被冻结到 ansible/vars/ 下的锁文件。锁定之后结果可复现,不同天构建同一目标不会再漂移。

遇到问题去哪里问

Autoware 的价值,在于把整辆车的算法变成可拉取、可启动、可修改的一套栈。技术问答走项目的 Discord 社区和 GitHub Discussions 的 Q&A 分区;想参与开发,先看仓库里 CONTRIBUTING.md 的入口说明。

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

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

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

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

立即咨询