全文 - 05 - ROS 2 Documentation: Jazzy
ROS 2 文档中文翻译DDS 总览、非 DDS 实现、Zenoh、镜像站与发行版Jazzy Jalisco原文来源ROS 2 DocumentationJazzy。承接前四份译文本文件按文档侧边栏顺序翻译接下来的 5 个页面Installation 章节最后 4 篇 Distributions 章节首页DDS 实现总览非 DDS 实现总览Zenoh镜像站Mirrors发行版Distributions命令中的版本占位符已按 Jazzy 版本代入jazzy。1. DDS 实现总览以下是可用的 DDS 实现使用 Eclipse Cyclone DDS介绍如何使用 Cyclone DDS见本系列译文第四份文件第 2 节使用 eProsima Fast DDS介绍如何使用 Fast DDS见第四份文件第 5 节使用 RTI Connext DDS介绍如何使用 RTI Connext DDS见第四份文件第 4 节使用 GurumNetworks GurumDDS介绍如何使用 GurumDDS见第四份文件第 3 节。如果你想使用其他厂商的实现需要在构建之前单独安装它们的软件。ROS 2 的构建过程会自动为已正确安装并完成环境配置source的厂商构建支持。安装了新的 RMW 厂商之后你可以在运行时切换所使用的厂商参见使用多个 RMW 实现。2. 非 DDS 实现总览使用 Zenoh介绍如何使用 Zenoh见本文件第 3 节。如果你想使用其他厂商的实现需要在构建之前单独安装它们的软件。ROS 2 的构建过程会自动为已正确安装并完成环境配置source的厂商构建支持。安装了新的 RMW 厂商之后你可以在运行时切换所使用的厂商参见使用多个 RMW 实现。3. ZenohZenoh 是一个开源的通信协议和中间件旨在促进异构系统之间的高效数据分发。它为高性能的发布/订阅pub/sub和分布式查询提供了位置透明的抽象。另请参阅https://zenoh.io/docs/getting-started/first-app/前置条件已安装 rosdep参见 rosdep 使用教程。安装软件包Zenoh 的 RMW 实现可以通过二进制包安装推荐用于稳定的开发。受支持的 ROS 2 发行版的二进制包见各发行版分支在该发行版的 Tier-1 平台上提供。首先请确保你已按照相应说明配置好系统可以安装 ROS 2 二进制包。然后使用以下命令安装 rmw_zenoh 二进制包sudoaptinstallros-jazzy-rmw-zenoh-cpp从源码构建只有在需要最新特性时才推荐从源码构建。默认情况下我们会随源码附带vendor并编译zenoh-cpp且只启用 zenoh 的一部分特性。如有需要可以通过ZENOHC_CARGO_FLAGSCMake 参数覆盖并加入其他特性。更多细节见 zenoh_cpp_vendor/CMakeLists.txt。克隆仓库mkdir~/ws_rmw_zenoh/src-pcd~/ws_rmw_zenoh/srcgitclone https://github.com/ros2/rmw_zenoh.git-bjazzy安装依赖cd~/ws_rmw_zenoh rosdepinstall--from-paths src --ignore-src--rosdistrojazzy-y使用 colcon 构建工作区source/opt/ros/jazzy/setup.bash colcon build --cmake-args-DCMAKE_BUILD_TYPERelease切换到 rmw_zenoh_cpp通过指定环境变量从其他 RMW 切换到 rmw_zenoh_cppexportRMW_IMPLEMENTATIONrmw_zenoh_cpp运行 talker 和 listener现在运行talker和listener来测试 Zenoh。启动 Zenoh 路由器router# 终端 1source/opt/ros/jazzy/setup.bash ros2 run rmw_zenoh_cpp rmw_zenohd注意如果没有 Zenoh 路由器节点之间将无法互相发现因为节点的会话配置中默认禁用了组播发现multicast discovery。此时节点将通过 Zenoh 路由器的 gossip流言传播功能来获取其他对端节点的发现信息。# 终端 2exportRMW_IMPLEMENTATIONrmw_zenoh_cppsource/opt/ros/jazzy/setup.bash ros2 run demo_nodes_cpp talker# 终端 3exportRMW_IMPLEMENTATIONrmw_zenoh_cppsource/opt/ros/jazzy/setup.bash ros2 run demo_nodes_cpp listener注意在运行这些命令之前记得先 source 你的 ROS 2 配置脚本。4. 镜像站Mirrors文档镜像ROS 文档的镜像站可在主站不可用时作为备份并可为地理位置上离镜像更近的用户提供更快的访问速度。Debian/UbuntuAPT仓库镜像要使用这些镜像请在你的 APT 配置中用下面列出的镜像 URL 替换官方 ROS 仓库地址。亚洲镜像站国家/地区地址清华大学TUNA中国https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/中国科学技术大学USTC中国https://mirrors.ustc.edu.cn/ros2/ubuntu/阿里云Alibaba Cloud中国https://mirrors.aliyun.com/ros2/ubuntu/齐鲁工业大学QLU中国https://mirrors.qlu.edu.cn/ros2/ubuntu/重庆大学CQU中国https://mirrors.cqu.edu.cn/ros2/ubuntu/欧洲镜像站国家/地区地址代尔夫特理工大学荷兰http://ftp.tudelft.nl/ros2/ubuntu/北美洲镜像站国家/地区地址马里兰大学UMD美国http://mirror.umd.edu/packages.ros.org/ros2/ubuntu/nulled LLC美国http://mirror.nulled.llc/ros2/ubuntu/大洋洲镜像站国家/地区地址AARNet澳大利亚https://mirror.aarnet.edu.au/pub/ros2-packages/ubuntu/南美洲和非洲目前这些地区暂无官方验证过的 ROS 2 镜像。如果你在南美洲或非洲托管镜像并希望在此列出请参阅下面的搭建镜像一节。创建镜像如果你正在维护一个镜像请加入 discourse.openrobotics.org 上的 Mirrors 版块https://discourse.openrobotics.org/c/infrastructure-project/infra-mirrors/以获取反馈和及时更新。使用镜像要使用某个镜像请在你的ros2-latest.list文件中把packages.ros.org替换为镜像 URL# 以 TUNA 镜像为例sudosed-is|http://packages.ros.org/ros2/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu|g/etc/apt/sources.list.d/ros2-latest.listsudoaptupdate搭建镜像ROS 基础设施使用rsync来分发软件包。要创建 ROS 2 仓库的本地镜像存储要求确保你至少有 500GB 的可用磁盘空间。同步命令使用rsync从官方 OSUOSL 端点拉取# 同步 ROS 2 主仓库rsync-azvrsync.osuosl.org::ros2-main /your/local/path--delete维护设置一个cron定时任务每 6–12 小时同步一次。把你的镜像添加到此列表要被官方收录你的镜像必须满足以下要求支持HTTPS至少每 24 小时同步一次提供一个用于基础设施告警的联系邮箱。通过验证后请向本页面提交 Pull Request或在 Mirrors Discourse 上发帖。镜像 docs.ros.org 文档站镜像文档站点需要特定的配置以避免搜索引擎结果碎片化。如果你有兴趣托管文档的地区性镜像请在开始之前通过 Discourse联系基础设施团队。5. 发行版Distributions什么是发行版ROS 发行版是一组带有版本的 ROS 软件包集合。它类似于 Linux 发行版例如 Ubuntu。ROS 发行版的目的是让开发者能基于一个相对稳定的代码库进行开发直到他们准备好整体升级。因此一旦某个发行版发布我们会尽量把对核心软件包ros-desktop-full 之下的所有内容的改动限制在缺陷修复和非破坏性改进的范围内。这一原则总体上适用于整个社区但对于更高层的软件包规则相对宽松避免破坏性变更的责任落在各软件包维护者身上。发行版列表下面列出了当前和历史上的 ROS 2 发行版。表格中标记为蓝色的行是当前受支持的发行版。发行版发布日期EOL停止支持日期ROS Boss发布负责人Lyrical Luth2026 年 5 月 22 日2031 年 5 月Shane LoretzKilted Kaiju2025 年 5 月 23 日2026 年 12 月Scott K LoganJazzy Jalisco2024 年 5 月 23 日2029 年 5 月Marco A. GutiérrezIron Irwini2023 年 5 月 23 日2024 年 12 月 4 日Yadunund VijayHumble Hawksbill2022 年 5 月 23 日2027 年 5 月Christophe Bédard / Audrow NashGalactic Geochelone2021 年 5 月 23 日2022 年 12 月 9 日Scott LoganFoxy Fitzroy2020 年 6 月 5 日2023 年 6 月 20 日Jacob Perron / Dharini DutiaEloquent Elusor2019 年 11 月 22 日2020 年 11 月Michael CarrollDashing Diademata2019 年 5 月 31 日2021 年 5 月Steven! RagnarökCrystal Clemmys2018 年 12 月 14 日2019 年 12 月Steven! RagnarökBouncy Bolson2018 年 7 月 2 日2019 年 7 月Mikael Arguedas / Steven! RagnarökArdent Apalone2017 年 12 月 8 日2018 年 12 月Steven! Ragnarökbeta32017 年 9 月 13 日2017 年 12 月—beta22017 年 7 月 5 日2017 年 9 月—beta12016 年 12 月 19 日2017 年 7 月—alpha1 – alpha82015 年 8 月 31 日2016 年 12 月—注加粗的行为当前受支持的发行版对应原网页中的蓝色标记行。未来的发行版关于即将到来的特性详见路线图。每年 5 月 23 日世界海龟日都会发布一个新的 ROS 2 发行版。发行版发布日期图标EOL 日期Makoa Mata-mata2027 年 5 月待定2028 年 12 月滚动发行版Rolling DistributionROS 2 Rolling Ridley 是 ROS 2 的滚动开发发行版。它在 REP 2002 中定义于 2020 年 6 月首次引入。ROS 2 的滚动发行版有两个用途它是 ROS 2 未来稳定发行版的 staging预发布区域它汇集了最新的开发版本。顾名思义Rolling 会持续更新可能包含带有破坏性变更的原地更新。我们建议大多数人改用最新的稳定发行版见上方发行版列表。发布到 Rolling 发行版中的软件包会被自动发布到 ROS 2 未来的稳定发行版中。向 Rolling 发行版发布 ROS 2 软件包的流程与所有其他 ROS 2 发行版相同。跨发行版通信节点不保证能够跨发行版通信。例如一个基于 Humble 构建并运行的节点不保证能与基于 Iron 构建并运行的节点正确通信。它或许能工作或许不能但这不受支持不应依赖。请注意跨厂商同一发行版内的通信同样不受保证。附注本译文基于 ROS 2 官方文档Jazzy分支命令中的版本占位符已替换为jazzy。至此Installation 章节已全部翻译完毕。本文件第 5 篇开始进入 **Distributions发行版**章节该章节后续还有各发行版的详情页Lyrical、Kilted、Jazzy、Humble、Rolling、开发流程、EOL 列表、发布流程等页面如需继续翻译可随时提出。