ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Autoware 发布流程全流程拆解:从开发环境到多架构部署

Autoware 发布流程全流程拆解:从开发环境到多架构部署 Autoware 发布流程全流程拆解从开发环境到多架构部署【免费下载链接】autowareAutoware - the worlds leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autowareAutoware 是全球最大的开源自动驾驶全栈软件覆盖定位感知到路径规划。下面按 Autoware 发布流程走一遍从开发环境搭建到多架构部署把这份 Autoware 部署指南一次讲透。开发环境怎么最快跑起来Autoware 开发环境搭建最头疼的是 ROS 2 依赖一箩筐。官方答案在仓库 ansible/playbooks/ 里的两个 playbook一个管裸机一个管容器。三条命令完成 Autoware 开发环境搭建裸机源码开发走 Ansible 集合autoware.dev_env。先克隆主仓库clone 地址https://gitcode.com/GitHub_Trending/au/autoware然后pipx install --include-deps --force ansible10.* ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml ansible-playbook autoware.dev_env.install_dev_env --ask-become-passinstall_dev_env.yaml 只收 Ubuntu 22.04/24.04自动映射到 ROS Humble/Jazzy依次跑完 version_lock、ros2、build_tools、CUDA、TensorRT 等 role跑完机器上就是能用的全套构建工具链加 Autoware 运行时依赖。只想装容器侧的话install_docker.yaml 装 Docker Engine 和 nvidia-container-toolkit--skip-tags nvidia可跳过 GPU 部分。Autoware Docker 部署拉镜像还是自己 bake 有两条路。一条是直接拉官方预构建的多架构镜像docker pull ghcr.io/autowarefoundation/autoware:base-jazzy另一条是从源码构建vcs import src repositories/autoware.repos把源码拉到src/下再docker buildx bake -f docker/docker-bake.hcl universe-cuda构建完整镜像。镜像分 base → core → universe 三层带-devel后缀的是开发版含源码与构建缓存不带后缀的才是部署版层级关系和用途见 docker/README.md。多个仓库凭什么能协同构建代码主体分布在三个仓库core装稳定的基础包autoware_core、消息定义、工具库universe装迭代最快的算法包感知、定位、规划、控制autoware_launch管启动配置。你正在看的这个主仓库本质是清单、Ansible 和 Dockerfile 的聚合层。用一份 .repos 锁定所有子仓库版本协同的关键是 repositories/autoware.repos。它给每个仓库记 url 加 version稳定包用语义化 tagcore/autoware_core 锁 1.9.0autoware_universe 锁 0.52.1外部引入的代码直接锁完整 commit hashmorai_msgs、muSSP 之类。vcs import按这些版本精确拉取整个src/树因此完全确定simulator.repos 和 tools.repos 同理管着仿真与工具链的依赖。子仓库靠定时 bump 版本 PR 汇入主仓库子仓库的改动不会直接进主仓库bump-repo-versions-autoware.yaml 每 6 小时跑一次发现子仓库有新 commit 就自动开 PR 更新 autoware.repos 里的版本号。这个 PR 同时触发主仓库的完整 CI 构建构建绿了版本号才真正落地——多仓库协同就靠这一条链路它也是 Autoware CI/CD 配置的核心。代码过不了哪些关卡评审通过只是入场券合入之前还有一道质量漏斗。C 代码先过 CPPLINT 这关CPPLINT.cfg 定了 C 风格红线行长不超过 100、标准 C 头文件排最前、放行 C11/17、允许 namespace 字面量 using 等lint 不通过 PR 直接被拦。仓库根目录还配了 .clang-format、.yamllint.yaml、.shellcheckrc 分别管不同语言另有 spell-check 工作流扫全仓库拼写。Autoware CI/CD 配置PR 必须在漏斗里跑绿PR 提交后health-check-pr.yaml 被触发复用可复用工作流autoware-github-actions 仓库提供镜像构建、测试执行等通用步骤跑全量构建、单测和覆盖率检查。PR 标题要过 semantic-pull-request 规范commit 要过 DCO 签名validate-lockfiles.yaml 工作流则检查锁文件与基础镜像摘要没有漂移。任何一关红PR 就卡住——所谓测试门禁就是不给任何一环开口子。amd64 和 arm64 发布有什么不同锁文件按两个架构分四份最大差异不在发布脚本而在依赖闭包。ansible/vars/ 下按locked-versions-distro-arch.yaml分了 humble/jazzy × amd64/arm64 共四份锁文件锁定模式开启时按机器架构自动选取apt_pins 把 Ubuntu 包钉死到具体版本ROS 包靠ros_snapshot_date快照日期整片冻结nvidia_pins 再对 CUDA/TensorRT 闭包逐包钉版本——NVIDIA 没有快照机制只能一个个列。完整冻结机制和已知边界写在 version_lock 角色 的 README 里。容器启动参数两套写法同一个 tag 的镜像两种架构启动参数不一样amd64 服务器--gpus all加--privileged启动需要看 rviz 就再挂 X11 转发arm64Jetson Thor / DRIVE Thor用--runtime nvidia加NVIDIA_VISIBLE_DEVICES、NVIDIA_DRIVER_CAPABILITIESall两个环境变量挂载 CUDA 驱动不用--gpus all驱动由宿主机的 JetPack/DRIVE OS 提供。也就是说amd64 发布走标准 NVIDIA apt 源 参数拉满arm64 发布走依赖宿主机 BSP 参数最简差异细节 docker/README.md 的 Thor 章节有完整记录。发布之后还需要做什么文档仓库随版本同步发布不等于文档就位。安装指南、Quick Start 演示、贡献指南都维护在独立的 autoware-documentation 仓库主仓库的 CONTRIBUTING.md 直接指向它。版本刷新和锁文件更新也脚本化了regenerate-lockfiles.yaml 会原子地刷新锁文件、快照日期和基础镜像摘要避免两者各走各的。问题走 Discussions贡献进工作组社区侧的流程同样标准化技术疑问先去 GitHub Discussions 的 QA 区提问避免和 issue 重复想贡献代码就按指南走先看自己的模块属于哪个 working group。simulator-nightly.repos 等-nightly变体是灰度通道跑完一段浸泡期才进稳定发布——这套双通道设计值得任何多仓库项目借鉴。当一个新机器上按流程走一遍就能长出同样的环境当两种架构拉到的镜像 ROS 闭包完全一致流程的价值就兑现了可预期。开源项目真正的护城河恰恰是这种可预期性。【免费下载链接】autowareAutoware - the worlds leading open-source software project for autonomous driving项目地址: https://gitcode.com/GitHub_Trending/au/autoware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表