裸机到能跑:Autoware 用 Docker 3 步跑通规划仿真的完整部署指南
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
如果你手上有一台刚装好 NVIDIA 驱动、却不知从哪下手的机器,Autoware 往往是最快的验证路径。这个基于 ROS 2 的开源自动驾驶软件栈把定位、感知、规划、控制拆成了可插拔模块,而你不必自己从源码硬啃——用 Docker 就能先跑起来看效果。
这份仓库替你做的事
先厘清一件事:你现在 clone 的这个目录,本质上是个元仓库。真正写算法的 ROS 包分散在autoware_core(稳定核心)和autoware_universe(实验性、前沿功能)两个仓库里,它们并不直接躺在这个目录下。
这个仓库给你的是三样"省事"的东西:一份列出所有子仓库地址和版本的清单文件(.repos)、一套预构建的 Docker 镜像定义,以及用 Ansible 写的自动化环境脚本。换句话说,它管"环境和编排",算法本体靠清单去拉。
⚡ 两条命令把全部源码导入 src/
先拿仓库。克隆地址固定为:
git clone https://gitcode.com/GitHub_Trending/au/autoware cd autoware然后一条vcs import把清单里列出的所有仓库拉到src/下:
vcs import src < repositories/autoware.repos跑完你打开src/会看到core/、universe/、launcher/等子目录,每个都锁定了具体版本。清单见 repositories/autoware.repos,想换版本改这里就行,不用手动去逐个 clone。
挑一个现成镜像:GPU 版与无卡版怎么选
大多数人没必要自己编译整条链路。官方提供按"阶段 + ROS 发行版"命名的镜像,命名规则是<stage>-<ros_distro>。选哪个,取决于有没有 N 卡:
- 有 NVIDIA 独立驱动 → 拉
universe-cuda-jazzy - 没有 GPU、或跑纯规划逻辑 → 拉
universe-jazzy
拉下来直接用,容器内已有构建好的/opt/autoware:
docker pull ghcr.io/autowarefoundation/autoware:universe-cuda-jazzy docker run --rm -it \ --net host --gpus all \ -v $HOME/autoware_data/maps:/home/aw/autoware_data/maps \ -v $HOME/autoware_data/ml_models:/home/aw/autoware_data/ml_models \ ghcr.io/autowarefoundation/autoware:universe-cuda-jazzy \ bash -c "source /opt/autoware/setup.bash && exec bash"进 shell 后先做冒烟测试:ros2 doctor,能正常返回 RMW 与节点发现信息,就说明环境通了。镜像命名与可用标签的完整说明在 docker/README.md。
🚗 跑第一个可见场景:planning-simulator 规划仿真
光有环境还不够,得让它"动"起来。最直观的入门场景是规划仿真器:感知用假数据喂,车辆、传感器、地图都是样例,但它真的会跑一遍从感知到轨迹生成的完整链路,并在 rviz2 里画出来。这个演示不依赖 GPU,任何主机都能跑:
cd docker/examples/demos/planning-simulator HOST_UID=$(id -u) HOST_GID=$(id -g) docker compose run --rm planning-simulator它会用sample-map-planning这张样例地图启动。前提是地图已解压到~/autoware_data/maps/sample-map-planning;样例地图的获取方式写在 planning-simulator 的 README 里,跟着做即可。跑完它会自动落回一个交互式 shell,方便你回头查状态。
换成你的硬件:GPU、地图、传感器只改这几处
跑通演示后,接自己的硬件基本是"换参数",不用重写。
渲染加速:docker/examples/basic/下有三个 compose 变体——dev-nvidia(独显走runtime: nvidia)、dev-dri(Intel/AMD 或 Nouveau 走/dev/dri直通)、dev-cpu(无卡走软件渲染)。换机器时换这个文件就行。
数据落地:地图统一放~/autoware_data/maps,机器学习模型放~/autoware_data/ml_models,容器通过挂载映射到/home/aw/autoware_data下。想换地图或车辆,改 planning-simulator 的 compose 里command:块的map_path、vehicle_model、sensor_model三个参数即可。
通信范围:镜像默认的 CycloneDDS 配置(docker/files/cyclonedds.xml)只绑回环接口,容器之间能发现彼此;要和局域网里其他主机互通,给服务加network_mode: host。
裸机装开发环境:如果不想走 Docker、要在一台 Ubuntu 22.04/24.04 上直接建源码级环境,用 Ansible 的 playbook 一键装 ROS 2 加依赖,系统会自动按版本映射到 humble 或 jazzy。入口 playbook 是 ansible/playbooks/install_dev_env.yaml,用法说明见 ansible/README.md。
卡住了怎么办:五个高频坑与求助入口
- 文件属主混乱:跑容器前把
HOST_UID/HOST_GID传进去,入口脚本会据此把容器内aw用户对齐宿主机 UID,否则挂载卷里的文件会被写成别的用户。 - GPU 不生效:
--gpus all需要宿主机装好 NVIDIA 专有驱动加nvidia-container-toolkit;在 Tegra/Thor 这类 Arm 平台上则改用--runtime nvidia配NVIDIA_VISIBLE_DEVICES,而不是--gpus。 - rviz 里没硬件加速:软件渲染处理稠密点云会很卡,进容器跑
glxinfo -B | grep -E "OpenGL (vendor|renderer)",确认看到的是 GPU 而不是llvmpipe。 - 两次构建结果不一致:默认构建跟的是浮动标签,跨天可能不同。需要可复现时给 bake 加
USE_LOCKFILE=true,镜像会被钉到锁文件里的版本。 - 不知道是不是 bug:提问前先翻 CONTRIBUTING.md 的贡献规范;社区有 Discord、官方 Discussions 的 Q&A 区,以及按方向划分的工作组,技术困惑一般在那儿能问到同类问题。
下一步,先把planning-simulator跑通、把map_path指向你自己的真实地图,再回头替换其中感知那一层——这是从"能看"迈向"能用"最短的一步。
【免费下载链接】autowareAutoware - the world's leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考