<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Pearllover&apos;s Blog</title><description>编程 | 游戏 | 音乐 | 视频</description><link>https://pearllover.site/</link><language>en</language><item><title>Lichess 直播嵌入</title><link>https://pearllover.site/posts/lichess-broadcast-embed/</link><guid isPermaLink="true">https://pearllover.site/posts/lichess-broadcast-embed/</guid><description>如何在博客中嵌入 Lichess 直播转播。</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lichess 的广播功能允许您将比赛直播嵌入到任何网页中。&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe src=&quot;https://lichess.org/embed/broadcast/fide-candidates-2026-open/round-13/rFG1W5Tp/jIlkfHzg&quot; style=&quot;width: 100%; aspect-ratio: 4/3;&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;嵌入方法&lt;/h2&gt;
&lt;p&gt;Lichess 提供了易于使用的嵌入代码，您可以从广播页面获取 &lt;code&gt;iframe&lt;/code&gt; 嵌入代码。只需将获得的代码粘贴到您的博客或网站中即可。&lt;/p&gt;
&lt;h2&gt;自定义样式&lt;/h2&gt;
&lt;p&gt;可以通过修改 &lt;code&gt;style&lt;/code&gt; 属性来调整嵌入播放器的大小和比例，以适应不同的布局需求。&lt;/p&gt;
</content:encoded></item><item><title>天鳳牌譜ビューアー ブログ埋め込み</title><link>https://pearllover.site/posts/tenhou-viewer-embed/</link><guid isPermaLink="true">https://pearllover.site/posts/tenhou-viewer-embed/</guid><description>天鳳の牌譜ビュー어를 블로그에 임베이드하는 방법을 소개합니다.</description><pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;牌譜エディタの「SAVE AS VIEWER URL」で牌譜ビューアを開き「？」メニューからIFRAMEの埋め込みHTMLを取得します。&lt;/p&gt;
&lt;p&gt;天鳳の対戦結果の場合には牌譜URLの/0/を/5/に変えて以下を貼り付けます。&lt;/p&gt;
&lt;h2&gt;牌譜URLオプション&lt;/h2&gt;
&lt;p&gt;&amp;lt;iframe src=&quot;//tenhou.net/5/?log=2012060420gm-0009-10011-acfd4b57&quot; style=&quot;width:480px;height:320px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;h2&gt;埋め込み例&lt;/h2&gt;
&lt;p&gt;上面的嵌入展示了如何将天鳳牌譜ビューアー嵌入到博客中。通过修改牌谱URL中的路径（将/0/改为/5/），可以将对战结果以嵌入式方式展示。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：不同的天鳳牌谱需要相应调整 &lt;code&gt;log&lt;/code&gt; 参数&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>W0: ROS2 序论与产业全景</title><link>https://pearllover.site/posts/ros2-w0-overview/</link><guid isPermaLink="true">https://pearllover.site/posts/ros2-w0-overview/</guid><description>从产业链、系统架构与工程落地视角理解 ROS2：它不只是几个 topic 和 launch 命令，而是现代机器人系统最重要的通用软件装配层之一。</description><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;W0-ROS2序论与产业全景&lt;/h1&gt;
&lt;p&gt;关联：学习主线与阶段路线 · ROS2求职知识图谱&lt;/p&gt;
&lt;h2&gt;先说结论&lt;/h2&gt;
&lt;p&gt;如果把机器人软件看成一个产业链问题，而不是一个“会不会写节点”的问题，那么 &lt;code&gt;ROS2&lt;/code&gt; 的价值可以概括成一句话：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;它不是机器人本体，也不是实时内核，更不是安全认证本身；它是现代机器人系统里最重要的“通用软件装配层”之一。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;为什么这句话重要？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器人项目真正难的，不只是算法对不对&lt;/li&gt;
&lt;li&gt;更难的是：&lt;code&gt;感知&lt;/code&gt;、&lt;code&gt;定位&lt;/code&gt;、&lt;code&gt;规划&lt;/code&gt;、&lt;code&gt;控制&lt;/code&gt;、&lt;code&gt;硬件驱动&lt;/code&gt;、&lt;code&gt;仿真&lt;/code&gt;、&lt;code&gt;日志&lt;/code&gt;、&lt;code&gt;远程调试&lt;/code&gt;、&lt;code&gt;多机通信&lt;/code&gt; 怎么被组织成一个可维护系统&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ROS2&lt;/code&gt; 的核心价值，就是把这些异构模块组织成一个可以协作、可以替换、可以扩展、可以调试的系统&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以，学习 &lt;code&gt;ROS2&lt;/code&gt; 不能只把它当成“几个 topic + launch + rviz 命令”。&lt;/p&gt;
&lt;p&gt;更准确的理解是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对学生来说，它是机器人领域最重要的通用工程语言之一&lt;/li&gt;
&lt;li&gt;对团队来说，它是跨算法、软件、硬件、测试之间的协作协议&lt;/li&gt;
&lt;li&gt;对公司来说，它是缩短研发周期、降低系统集成成本、复用社区资产的基础设施&lt;/li&gt;
&lt;li&gt;对你个人来说，它是从“会写功能”走向“会搭系统、会讲架构、会解释工程权衡”的起点&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;一、ROS2 到底是什么，为什么它叫“机器人操作系统”&lt;/h2&gt;
&lt;p&gt;先把一个最容易误解的问题说清楚。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ROS&lt;/code&gt; / &lt;code&gt;ROS2&lt;/code&gt; 这个名字里有 &lt;code&gt;Operating System&lt;/code&gt;，但它并不是像 Linux、Windows 那样直接管理 CPU、内存、进程和设备的内核级操作系统。&lt;/p&gt;
&lt;p&gt;它更接近：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一套机器人领域的 &lt;code&gt;分布式中间件 + 开发框架 + 工具链 + 生态标准&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是说，&lt;code&gt;ROS2&lt;/code&gt; 通常跑在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ubuntu&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Debian&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Windows&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;macOS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;甚至带 RT patch 的 Linux、容器、嵌入式平台之上&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它做的不是“替代底层 OS”，而是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义机器人模块之间如何通信&lt;/li&gt;
&lt;li&gt;定义数据如何描述和序列化&lt;/li&gt;
&lt;li&gt;定义节点如何被启动、组合、管理、监控&lt;/li&gt;
&lt;li&gt;提供调试、录包、回放、可视化、仿真、测试等工具&lt;/li&gt;
&lt;li&gt;让不同团队写出的模块，能在一个统一图谱里协作&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;所以从底层往上看，一个常见机器人软件栈大致是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;硬件层：传感器、驱动器、相机、雷达、IMU、编码器、机械臂、底盘&lt;/li&gt;
&lt;li&gt;操作系统层：Linux / RT-Linux / Ubuntu&lt;/li&gt;
&lt;li&gt;传输与通信层：DDS / UDP / SHM / 网络栈&lt;/li&gt;
&lt;li&gt;ROS2 中间件抽象层：&lt;code&gt;RMW&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;客户端库层：&lt;code&gt;rclcpp&lt;/code&gt;、&lt;code&gt;rclpy&lt;/code&gt;、&lt;code&gt;rclc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;应用节点层：定位、感知、导航、控制、任务编排&lt;/li&gt;
&lt;li&gt;工具层：&lt;code&gt;ros2 cli&lt;/code&gt;、&lt;code&gt;rviz2&lt;/code&gt;、&lt;code&gt;rosbag2&lt;/code&gt;、&lt;code&gt;launch&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这也是为什么很多工业团队会说：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ROS2 不是“算法框架”这么简单，它更像机器人世界的应用集成总线。&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;二、为什么 ROS 会成为机器人领域的事实标准之一&lt;/h2&gt;
&lt;h3&gt;1. 它解决的不是单点能力，而是“系统复杂度爆炸”&lt;/h3&gt;
&lt;p&gt;机器人和传统单体软件有一个根本差别：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器人天然是 &lt;code&gt;多模块、强并发、强异构、强时序、强物理约束&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个真实机器人系统通常同时包含：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高频传感器流&lt;/li&gt;
&lt;li&gt;控制闭环&lt;/li&gt;
&lt;li&gt;规划与状态机&lt;/li&gt;
&lt;li&gt;远程监控&lt;/li&gt;
&lt;li&gt;数据录制与问题复现&lt;/li&gt;
&lt;li&gt;多进程甚至多机协同&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果没有统一的软件框架，会出现什么情况？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个团队自己定义 TCP/UDP 协议&lt;/li&gt;
&lt;li&gt;每个模块自己定义消息格式&lt;/li&gt;
&lt;li&gt;每个项目都重新造日志、录包、可视化、调试工具&lt;/li&gt;
&lt;li&gt;算法同学、驱动同学、应用同学之间接口互相不兼容&lt;/li&gt;
&lt;li&gt;同一个问题换了硬件或换了网络环境就得重做一遍&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;ROS&lt;/code&gt; 当年能快速崛起，不是因为它“更优雅”，而是因为它第一次大规模把机器人研发里的这些重复劳动标准化了。&lt;/p&gt;
&lt;h3&gt;2. 它让“研究成果可复用”这件事第一次变得现实&lt;/h3&gt;
&lt;p&gt;机器人长期有一个老问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;论文很多&lt;/li&gt;
&lt;li&gt;演示很多&lt;/li&gt;
&lt;li&gt;但系统复现和工程落地很难&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ROS 生态把很多通用问题抽成标准模块：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;地图与导航&lt;/li&gt;
&lt;li&gt;TF 坐标变换&lt;/li&gt;
&lt;li&gt;传感器消息格式&lt;/li&gt;
&lt;li&gt;可视化&lt;/li&gt;
&lt;li&gt;机械臂建模&lt;/li&gt;
&lt;li&gt;运动规划&lt;/li&gt;
&lt;li&gt;仿真接口&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这带来的不是“省一点代码”，而是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;让机器人研发从“每个团队重新造轮子”变成“在公共底座上做差异化”。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这和互联网世界里：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大家不再从零写网络协议&lt;/li&gt;
&lt;li&gt;大家不再自己造数据库&lt;/li&gt;
&lt;li&gt;大家不再自己写编译器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;是同一种生产力跃迁。&lt;/p&gt;
&lt;h3&gt;3. 它形成了人才、工具、项目、社区的正反馈&lt;/h3&gt;
&lt;p&gt;一个技术能不能成为事实标准，不只看技术本身，还看有没有网络效应。&lt;/p&gt;
&lt;p&gt;ROS 的网络效应体现在：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学校课程大量采用&lt;/li&gt;
&lt;li&gt;实验室默认使用&lt;/li&gt;
&lt;li&gt;开源包数量极多&lt;/li&gt;
&lt;li&gt;招聘岗位大量提及&lt;/li&gt;
&lt;li&gt;上层项目如 &lt;code&gt;Nav2&lt;/code&gt;、&lt;code&gt;MoveIt2&lt;/code&gt;、&lt;code&gt;ros2_control&lt;/code&gt; 继续增强它的中心地位&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;根据 Open Robotics 在 &lt;code&gt;2024-01&lt;/code&gt; 发布的 &lt;code&gt;2023 ROS Metrics Report&lt;/code&gt;，已知使用 ROS 的公司数量已到 &lt;code&gt;910+&lt;/code&gt;。而 Open Robotics 在 &lt;code&gt;2025-05-31&lt;/code&gt; ROS 1 EOL 公告中进一步提到，&lt;code&gt;2024 年 9 月&lt;/code&gt; 的下载数据里，&lt;code&gt;ROS 2&lt;/code&gt; 已经占全部 ROS 下载量的 &lt;code&gt;接近 80%&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这两个信息合起来说明一件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ROS 已经不是“小圈子玩具”&lt;/li&gt;
&lt;li&gt;ROS2 也不再只是“下一代尝鲜版”&lt;/li&gt;
&lt;li&gt;它已经完成了从研究框架到主流工程底座的迁移&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;三、ROS2 出现之前，ROS1 为什么成功，为什么又不够用了&lt;/h2&gt;
&lt;h3&gt;1. ROS1 为什么成功&lt;/h3&gt;
&lt;p&gt;ROS 最早在 &lt;code&gt;2007 年 11 月&lt;/code&gt; 启动，背景是 Willow Garage 为 PR2 机器人构建开发环境。&lt;/p&gt;
&lt;p&gt;ROS1 的时代命题是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;快速做研究&lt;/li&gt;
&lt;li&gt;快速拼系统&lt;/li&gt;
&lt;li&gt;高度灵活&lt;/li&gt;
&lt;li&gt;让不同实验室的软件能互通&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在那个阶段，这个定位极其成功。&lt;/p&gt;
&lt;p&gt;因为当年的机器人主流场景大多是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单机器人&lt;/li&gt;
&lt;li&gt;算力相对充足&lt;/li&gt;
&lt;li&gt;实验室网络较好&lt;/li&gt;
&lt;li&gt;对严格实时性要求不高&lt;/li&gt;
&lt;li&gt;更看重研究效率而不是产品级稳定性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ROS1 很适合这种环境，所以它迅速成为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学术研究的通用底座&lt;/li&gt;
&lt;li&gt;机器人算法验证的默认平台&lt;/li&gt;
&lt;li&gt;大量开源项目的共同语言&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. ROS1 的架构红利，也是它的时代局限&lt;/h3&gt;
&lt;p&gt;ROS1 的通信、发现、参数、工具链，在“研究原型机”阶段非常好用，但它的设计前提比较强：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单主机 / 单主节点思维很重&lt;/li&gt;
&lt;li&gt;对不稳定网络支持弱&lt;/li&gt;
&lt;li&gt;安全性设计几乎不是优先级&lt;/li&gt;
&lt;li&gt;分布式场景下的弹性有限&lt;/li&gt;
&lt;li&gt;实时性支持不足&lt;/li&gt;
&lt;li&gt;生命周期管理不标准&lt;/li&gt;
&lt;li&gt;面向产品部署的模式不够清晰&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Open Robotics 在官方 &lt;code&gt;Why ROS 2?&lt;/code&gt; 设计文档里把新需求说得非常直接，主要包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多机器人系统&lt;/li&gt;
&lt;li&gt;小型嵌入式平台&lt;/li&gt;
&lt;li&gt;实时系统&lt;/li&gt;
&lt;li&gt;非理想网络&lt;/li&gt;
&lt;li&gt;生产环境&lt;/li&gt;
&lt;li&gt;更明确的系统构建模式&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这几条非常关键。&lt;/p&gt;
&lt;p&gt;因为它们对应的不是“技术洁癖”，而是商业化之后一定会撞上的墙。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;四、ROS2 诞生的真正原因：机器人从实验室走向产业&lt;/h2&gt;
&lt;h3&gt;1. 行业发生了什么变化&lt;/h3&gt;
&lt;p&gt;ROS1 时代，很多机器人项目更像“科研系统”。&lt;/p&gt;
&lt;p&gt;ROS2 时代，行业问题变成了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器人要进仓库、工厂、商场、医院、农场、道路&lt;/li&gt;
&lt;li&gt;系统要长期运行，而不是 demo 10 分钟&lt;/li&gt;
&lt;li&gt;要支持远程升级、远程监控、问题回放&lt;/li&gt;
&lt;li&gt;要支持多机协作和复杂网络环境&lt;/li&gt;
&lt;li&gt;要考虑实时控制、资源受限设备、安全、部署一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;换句话说：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;机器人软件的核心矛盾，从“能不能跑起来”，变成了“能不能稳定地规模化运行”。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ROS2 就是在这个产业阶段切换中诞生的。&lt;/p&gt;
&lt;h3&gt;2. ROS2 不是小修小补，而是一次底座重构&lt;/h3&gt;
&lt;p&gt;如果只从表面看，很多人会以为 ROS2 只是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;命令改了&lt;/li&gt;
&lt;li&gt;API 改了&lt;/li&gt;
&lt;li&gt;launch 改了&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这理解太浅。&lt;/p&gt;
&lt;p&gt;ROS2 真正做的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不再自己硬扛所有通信中间件细节&lt;/li&gt;
&lt;li&gt;引入 &lt;code&gt;DDS&lt;/code&gt; 作为底层数据分发基础&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;RMW&lt;/code&gt; 把不同中间件实现抽象出来&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;QoS&lt;/code&gt; 把通信行为从“黑盒默认值”升级为“可工程化配置”&lt;/li&gt;
&lt;li&gt;引入 &lt;code&gt;lifecycle&lt;/code&gt;、&lt;code&gt;composition&lt;/code&gt;、&lt;code&gt;security&lt;/code&gt;、&lt;code&gt;rosbag2&lt;/code&gt;、多平台支持等能力&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这意味着 ROS2 的目标从一开始就不是“更像 ROS1”。&lt;/p&gt;
&lt;p&gt;而是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;让机器人软件能从研究原型平滑成长为生产系统。&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;五、从底层原理看，ROS2 为什么比 ROS1 更像现代工业系统&lt;/h2&gt;
&lt;h3&gt;1. ROS2 的核心哲学：分布式图，而不是单体程序&lt;/h3&gt;
&lt;p&gt;一个机器人系统不是一个程序，而是一张图。&lt;/p&gt;
&lt;p&gt;这张图里有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;节点&lt;/li&gt;
&lt;li&gt;topic&lt;/li&gt;
&lt;li&gt;service&lt;/li&gt;
&lt;li&gt;action&lt;/li&gt;
&lt;li&gt;parameter&lt;/li&gt;
&lt;li&gt;TF&lt;/li&gt;
&lt;li&gt;executor&lt;/li&gt;
&lt;li&gt;callback group&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本质上，ROS2 让你把一个大系统拆成许多边界明确的组件，再通过标准通信语义把它们连起来。&lt;/p&gt;
&lt;p&gt;这在工程上有几个巨大价值：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;方便团队分工&lt;/li&gt;
&lt;li&gt;方便替换模块&lt;/li&gt;
&lt;li&gt;方便隔离故障&lt;/li&gt;
&lt;li&gt;方便录制问题现场&lt;/li&gt;
&lt;li&gt;方便把单机场景扩展成多机协同&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. DDS 和 RMW：ROS2 最重要的架构升级&lt;/h3&gt;
&lt;p&gt;ROS1 时代，ROS 自己承担了大量通信机制设计。&lt;/p&gt;
&lt;p&gt;ROS2 时代则采用了更成熟的思路：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下面用 &lt;code&gt;DDS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;上面用 &lt;code&gt;RMW&lt;/code&gt; 抽象&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你可以把它理解成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DDS&lt;/code&gt; 是“工业级消息分发地基”&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RMW&lt;/code&gt; 是“ROS2 对不同地基的适配层”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样做的好处非常大：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ROS2 不必把发现、传输、可靠性等都从零重造&lt;/li&gt;
&lt;li&gt;可以利用 DDS 现成的 QoS、发现机制、安全扩展&lt;/li&gt;
&lt;li&gt;可以在不同场景切换不同实现，如 &lt;code&gt;Fast DDS&lt;/code&gt;、&lt;code&gt;Cyclone DDS&lt;/code&gt;、&lt;code&gt;Connext&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;网络、时延、可靠性等问题变成了可调工程参数，而不是纯玄学&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这也是 ROS2 为什么更适合工业讨论。&lt;/p&gt;
&lt;p&gt;工业系统最怕的不是“功能少”，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一旦环境变化，就不知道系统会怎么退化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;QoS + DDS 至少给了你描述和控制退化行为的工具。&lt;/p&gt;
&lt;h3&gt;3. QoS：这是 ROS2 工程性的灵魂之一&lt;/h3&gt;
&lt;p&gt;很多初学者觉得 QoS 只是几个选项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;reliable&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;best_effort&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;keep_last&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;keep_all&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但从工程视角看，QoS 其实是在回答三个核心问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;数据丢一点可不可以？&lt;/li&gt;
&lt;li&gt;数据延迟一点可不可以？&lt;/li&gt;
&lt;li&gt;新订阅者是否需要历史数据？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;举几个现实例子：&lt;/p&gt;
&lt;h4&gt;场景 A：激光雷达点云给可视化&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;丢一两帧通常可以接受&lt;/li&gt;
&lt;li&gt;但不能因为追求绝对可靠，把系统拖得越来越卡&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这时 &lt;code&gt;best_effort&lt;/code&gt; 往往合理。&lt;/p&gt;
&lt;h4&gt;场景 B：机械臂抓取前的目标位姿&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;一次错误数据可能导致抓空甚至碰撞&lt;/li&gt;
&lt;li&gt;这里可靠性比“偶尔少一点延迟”更重要&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这时更偏向 &lt;code&gt;reliable&lt;/code&gt;。&lt;/p&gt;
&lt;h4&gt;场景 C：配置、地图、静态变换&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;后来的订阅者也要拿到最近一次有效数据&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这时就会涉及 &lt;code&gt;transient local&lt;/code&gt; 这类策略。&lt;/p&gt;
&lt;p&gt;所以 QoS 不只是“会背名词”，而是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;你是否理解每类数据在业务上的容错边界。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这正是工业系统思维。&lt;/p&gt;
&lt;h3&gt;4. Lifecycle：从“脚本式启动”升级到“可监管系统”&lt;/h3&gt;
&lt;p&gt;ROS2 的 managed node / lifecycle 设计非常值得重视。&lt;/p&gt;
&lt;p&gt;它的思想很像工业软件里的受控启动状态机：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Unconfigured&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Inactive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Active&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Finalized&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这带来的价值是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;系统可以先配置再激活&lt;/li&gt;
&lt;li&gt;节点失败后可以更标准地恢复&lt;/li&gt;
&lt;li&gt;上层调度器更容易知道当前系统处于什么状态&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么工业场景很需要它？&lt;/p&gt;
&lt;p&gt;因为真实系统里，启动顺序和依赖关系很敏感。&lt;/p&gt;
&lt;p&gt;比如一个 AMR 仓储车系统：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先确认激光雷达驱动正常&lt;/li&gt;
&lt;li&gt;再启动定位&lt;/li&gt;
&lt;li&gt;再启动地图匹配&lt;/li&gt;
&lt;li&gt;再激活路径规划&lt;/li&gt;
&lt;li&gt;最后才开放任务执行&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果没有明确生命周期，很多系统就只能靠：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;睡几秒&lt;/li&gt;
&lt;li&gt;写 shell 脚本重试&lt;/li&gt;
&lt;li&gt;靠人工盯日志&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这不是工程化。&lt;/p&gt;
&lt;p&gt;Lifecycle 的意义就在于把“上线顺序、激活条件、失败恢复”纳入标准模型。&lt;/p&gt;
&lt;h3&gt;5. Composable Nodes：降低进程边界成本&lt;/h3&gt;
&lt;p&gt;在 ROS1 里，nodelet 是一个方向，但使用体验和统一性有限。&lt;/p&gt;
&lt;p&gt;ROS2 的 composable nodes 更明确地支持：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将多个组件装入同一进程&lt;/li&gt;
&lt;li&gt;在保留模块化边界的同时减少序列化/拷贝成本&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这对高吞吐场景很关键。&lt;/p&gt;
&lt;p&gt;典型场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相机驱动 -&amp;gt; 图像预处理 -&amp;gt; 检测推理 -&amp;gt; 跟踪&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果每一步都跨进程序列化，大流量数据开销会很大。&lt;/p&gt;
&lt;p&gt;组合节点的价值是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保留软件模块化&lt;/li&gt;
&lt;li&gt;同时尽量接近高性能流水线&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6. rosbag2、安全、多平台：这些都不是锦上添花&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;rosbag2&lt;/code&gt; 的意义不是“录包功能升级”这么简单，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更好的性能&lt;/li&gt;
&lt;li&gt;更现代的数据格式支持&lt;/li&gt;
&lt;li&gt;更贴近真实排障流程&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一个真实工业团队排查问题，往往不是现场 debug，而是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先录问题发生时的数据&lt;/li&gt;
&lt;li&gt;回放到测试环境&lt;/li&gt;
&lt;li&gt;对比不同版本行为&lt;/li&gt;
&lt;li&gt;复现实验结果&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;没有稳定录包和回放能力，机器人问题几乎无法规模化排查。&lt;/p&gt;
&lt;p&gt;安全也是类似逻辑。&lt;/p&gt;
&lt;p&gt;ROS1 在安全上并不是零星缺点，而是设计优先级不在那里。&lt;/p&gt;
&lt;p&gt;ROS2 借助 DDS-Security，把身份、加密、访问控制纳入体系，这意味着它至少具备往产品级环境走的结构基础。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;六、ROS2 解决了哪些“过去做机器人很痛”的问题&lt;/h2&gt;
&lt;p&gt;下面用更偏商业分析的方式，把 ROS2 解决的问题归纳成几类。&lt;/p&gt;
&lt;h3&gt;1. 解决“研发资产不复用”的问题&lt;/h3&gt;
&lt;p&gt;没有通用框架时：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个项目从零搭通信层&lt;/li&gt;
&lt;li&gt;每个团队重复造可视化、日志、接口描述、驱动适配&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有了 ROS2：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你可以复用社区标准消息&lt;/li&gt;
&lt;li&gt;复用现成工具链&lt;/li&gt;
&lt;li&gt;复用大量上层包和项目模板&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这直接降低研发成本。&lt;/p&gt;
&lt;h3&gt;2. 解决“实验室能跑，现场跑不稳”的问题&lt;/h3&gt;
&lt;p&gt;ROS2 没有神奇到自动保证工业级稳定，但它至少补上了很多 ROS1 时代的结构缺口：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;QoS&lt;/li&gt;
&lt;li&gt;多 RMW&lt;/li&gt;
&lt;li&gt;lifecycle&lt;/li&gt;
&lt;li&gt;组合节点&lt;/li&gt;
&lt;li&gt;更好的录包回放&lt;/li&gt;
&lt;li&gt;更好的参数与 launch 组织&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这让系统稳定性从“经验活”变成“可设计、可验证、可调优”的工程活动。&lt;/p&gt;
&lt;h3&gt;3. 解决“多机协同和复杂网络下难以控制”的问题&lt;/h3&gt;
&lt;p&gt;真实机器人系统常见这些情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;机器人本体多个计算单元&lt;/li&gt;
&lt;li&gt;车端和边缘服务器协同&lt;/li&gt;
&lt;li&gt;多机器人共享任务调度&lt;/li&gt;
&lt;li&gt;Wi-Fi 抖动、丢包、网络切换&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ROS2 明显比 ROS1 更适合处理这些问题，因为它从设计上就承认：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网络并不总是理想的&lt;/li&gt;
&lt;li&gt;节点也不一定都在同一台机器上&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 解决“从 PC 到 MCU 的链路割裂”问题&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;micro-ROS&lt;/code&gt; 的意义很大。&lt;/p&gt;
&lt;p&gt;它不是让所有控制逻辑都塞进 MCU，而是让资源受限设备也能更自然地进入 ROS2 体系。&lt;/p&gt;
&lt;p&gt;典型实战意义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上位机负责导航和任务&lt;/li&gt;
&lt;li&gt;MCU 负责电机、传感器采样、低层控制&lt;/li&gt;
&lt;li&gt;二者通过统一体系协作，而不是完全两张皮&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这对机器人产品化非常关键。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;七、ROS1 和 ROS2 到底差在哪，不要只背“DDS”&lt;/h2&gt;
&lt;p&gt;面试和工程里最怕一种回答：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ROS1 和 ROS2 的区别？ROS2 底层用了 DDS。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这句话不算错，但远远不够。&lt;/p&gt;
&lt;p&gt;更完整的回答应该从“目标函数变化”来讲。&lt;/p&gt;
&lt;h3&gt;1. ROS1 的目标函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;研究效率优先&lt;/li&gt;
&lt;li&gt;灵活优先&lt;/li&gt;
&lt;li&gt;快速原型优先&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. ROS2 的目标函数&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;在保留模块化和开放生态的同时&lt;/li&gt;
&lt;li&gt;增强分布式可扩展性&lt;/li&gt;
&lt;li&gt;增强实时/嵌入式适配能力&lt;/li&gt;
&lt;li&gt;增强生产环境可用性&lt;/li&gt;
&lt;li&gt;增强网络与部署可控性&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 可以落地记忆的对比&lt;/h3&gt;
&lt;h4&gt;通信架构&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：自研通信体系，简单直接，但扩展性和工业适配有限&lt;/li&gt;
&lt;li&gt;ROS2：DDS + RMW，通信行为更可调，可适配更多场景&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;可靠性与网络适应&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：在理想局域网和研究环境里很好用&lt;/li&gt;
&lt;li&gt;ROS2：更面向复杂网络、多机和跨环境部署&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;生命周期管理&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：缺少统一生命周期模型&lt;/li&gt;
&lt;li&gt;ROS2：有 &lt;code&gt;lifecycle&lt;/code&gt;，更适合受控启动和恢复&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;性能与组合&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：nodelet 可用，但整体不够统一&lt;/li&gt;
&lt;li&gt;ROS2：composable nodes 更系统化&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;安全&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：基本不以安全为设计重点&lt;/li&gt;
&lt;li&gt;ROS2：有基于 DDS-Security 的结构支持&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;嵌入式&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：嵌入式支持弱&lt;/li&gt;
&lt;li&gt;ROS2：通过 &lt;code&gt;rcl&lt;/code&gt; / &lt;code&gt;rclc&lt;/code&gt; / &lt;code&gt;micro-ROS&lt;/code&gt; 明显增强&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;产品化路径&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;ROS1：适合原型和研究&lt;/li&gt;
&lt;li&gt;ROS2：更适合作为产品级机器人软件基础设施&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 一个现实判断&lt;/h3&gt;
&lt;p&gt;截至 &lt;code&gt;2025-05-31&lt;/code&gt;，&lt;code&gt;ROS 1 Noetic&lt;/code&gt; 已正式 EOL。&lt;/p&gt;
&lt;p&gt;这意味着今天如果还把学习主线放在 ROS1 上，除非你的工作环境有历史包袱，否则投资回报率已经明显下降。&lt;/p&gt;
&lt;p&gt;ROS1 仍值得了解，因为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你会遇到历史项目&lt;/li&gt;
&lt;li&gt;你会遇到迁移问题&lt;/li&gt;
&lt;li&gt;你会遇到面试追问&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但你的主线能力建设应当放在 &lt;code&gt;ROS2&lt;/code&gt;。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;八、ROS2 在机器人行业里的真实位置&lt;/h2&gt;
&lt;h3&gt;1. 它不是所有层都统治，但在“应用集成层”非常强&lt;/h3&gt;
&lt;p&gt;机器人公司通常不会只靠 ROS2。&lt;/p&gt;
&lt;p&gt;真实系统往往是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;下层：MCU / FPGA / EtherCAT / CAN / 厂商控制器&lt;/li&gt;
&lt;li&gt;中层：ROS2 负责系统集成、状态流转、任务编排、感知规划接入&lt;/li&gt;
&lt;li&gt;上层：调度平台、云端平台、数字孪生、运营后台、数据库、AI 服务&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 ROS2 最强的层次不是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安全 PLC 替代品&lt;/li&gt;
&lt;li&gt;硬实时内核替代品&lt;/li&gt;
&lt;li&gt;企业 ERP 替代品&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它最强的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把机器人软件系统的“中间大脑”和“模块接口层”标准化&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 哪些赛道特别依赖 ROS2&lt;/h3&gt;
&lt;p&gt;从实践上看，以下方向最容易看到 ROS2：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AMR / 室内移动机器人&lt;/li&gt;
&lt;li&gt;服务机器人&lt;/li&gt;
&lt;li&gt;仓储物流机器人&lt;/li&gt;
&lt;li&gt;移动操作机器人&lt;/li&gt;
&lt;li&gt;机械臂集成与柔性制造&lt;/li&gt;
&lt;li&gt;自动驾驶科研/原型系统&lt;/li&gt;
&lt;li&gt;农业机器人&lt;/li&gt;
&lt;li&gt;巡检机器人&lt;/li&gt;
&lt;li&gt;医疗辅助机器人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些场景的共同点是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;传感器多&lt;/li&gt;
&lt;li&gt;软件模块多&lt;/li&gt;
&lt;li&gt;需要大量集成&lt;/li&gt;
&lt;li&gt;需要快速迭代&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这正是 ROS2 的主场。&lt;/p&gt;
&lt;h3&gt;3. 哪些场景 ROS2 不是唯一中心&lt;/h3&gt;
&lt;p&gt;如果你的系统是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;极强硬实时&lt;/li&gt;
&lt;li&gt;强安全认证&lt;/li&gt;
&lt;li&gt;极致资源受限&lt;/li&gt;
&lt;li&gt;结构高度固定&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么 ROS2 往往不是唯一主角，甚至不是主角。&lt;/p&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;伺服控制最内环&lt;/li&gt;
&lt;li&gt;安全急停链路&lt;/li&gt;
&lt;li&gt;功能安全认证部分&lt;/li&gt;
&lt;li&gt;很小的裸机控制器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类部分通常还会依赖：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RTOS&lt;/li&gt;
&lt;li&gt;PLC&lt;/li&gt;
&lt;li&gt;专有控制器&lt;/li&gt;
&lt;li&gt;厂商 SDK&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;工业落地的成熟做法，通常不是“全部交给 ROS2”，而是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;把 ROS2 放在适合它的位置，让它和实时控制层、现场总线层、云平台层协作。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这才是工程判断。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;九、和其他机器人软件路线相比，ROS2 的优势与劣势&lt;/h2&gt;
&lt;p&gt;这里不做“宗教战争”，只做工程视角比较。&lt;/p&gt;
&lt;h3&gt;1. 相比厂商私有 SDK / 私有机器人软件栈&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ROS2&lt;/code&gt; 的优势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开放生态，学习成本能转化为长期资产&lt;/li&gt;
&lt;li&gt;可观测性强，工具链完整&lt;/li&gt;
&lt;li&gt;社区包多，复用度高&lt;/li&gt;
&lt;li&gt;更容易跨硬件、跨项目迁移&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;ROS2&lt;/code&gt; 的劣势：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;集成复杂度比“厂商全家桶”高&lt;/li&gt;
&lt;li&gt;需要自己承担更多架构治理&lt;/li&gt;
&lt;li&gt;长期版本兼容、依赖管理需要经验&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一句话总结：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;私有栈适合封闭场景快速交付&lt;/li&gt;
&lt;li&gt;ROS2 适合追求生态复用与系统自主权&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 相比 PLC / 传统工业自动化架构&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;PLC&lt;/code&gt; 的优势在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确定性&lt;/li&gt;
&lt;li&gt;可靠性&lt;/li&gt;
&lt;li&gt;认证成熟&lt;/li&gt;
&lt;li&gt;现场维护体系成熟&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;ROS2&lt;/code&gt; 的优势在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;感知、规划、AI 集成能力强&lt;/li&gt;
&lt;li&gt;模块组合灵活&lt;/li&gt;
&lt;li&gt;更适合复杂自主系统&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以在工业里常见的不是二选一，而是组合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PLC 管强确定性和安全逻辑&lt;/li&gt;
&lt;li&gt;ROS2 管高层任务、感知、规划、柔性行为&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 相比 Orocos / RTT 一类强实时框架&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Orocos/RTT&lt;/code&gt; 更强调：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;硬实时&lt;/li&gt;
&lt;li&gt;确定性执行&lt;/li&gt;
&lt;li&gt;控制领域深度&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;ROS2&lt;/code&gt; 更强调：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;全系统集成&lt;/li&gt;
&lt;li&gt;生态规模&lt;/li&gt;
&lt;li&gt;上层应用复用&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你做的是最内层控制回路，Orocos 一类框架可能更专。
如果你做的是“整个机器人产品的软件体系”，ROS2 的综合价值通常更高。&lt;/p&gt;
&lt;h3&gt;4. 相比 YARP、LCM、ZeroMQ 自建框架等&lt;/h3&gt;
&lt;p&gt;这些路线通常能在某些局部问题上做得很强：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;更轻&lt;/li&gt;
&lt;li&gt;更可定制&lt;/li&gt;
&lt;li&gt;更符合某些组织的历史积累&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但 ROS2 的最大优势不是单点最优，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;生态总量&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;人才供给&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;标准接口&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工具完整度&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上层项目协同&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;商业世界里，很多时候不是最优技术赢，而是“总体拥有成本更低”的技术赢。&lt;/p&gt;
&lt;p&gt;ROS2 很符合这个规律。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十、现实工业场景里，为什么大家愿意用 ROS2&lt;/h2&gt;
&lt;p&gt;下面给几个贴近实战的例子。&lt;/p&gt;
&lt;h3&gt;场景 1：仓储 AMR&lt;/h3&gt;
&lt;p&gt;一个仓储 AMR 通常要处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;激光雷达、IMU、轮速计&lt;/li&gt;
&lt;li&gt;定位建图&lt;/li&gt;
&lt;li&gt;局部/全局规划&lt;/li&gt;
&lt;li&gt;障碍物避让&lt;/li&gt;
&lt;li&gt;任务调度&lt;/li&gt;
&lt;li&gt;远程监控&lt;/li&gt;
&lt;li&gt;数据录制与故障复盘&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;为什么 ROS2 合适？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Nav2&lt;/code&gt;、&lt;code&gt;TF&lt;/code&gt;、&lt;code&gt;rviz2&lt;/code&gt;、&lt;code&gt;rosbag2&lt;/code&gt; 这些能力能直接进入工程链路&lt;/li&gt;
&lt;li&gt;节点化架构适合快速替换定位或规划模块&lt;/li&gt;
&lt;li&gt;QoS 能帮助处理无线网络和高频数据流&lt;/li&gt;
&lt;li&gt;多进程/多机部署自然&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对公司来说，这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;研发速度更快&lt;/li&gt;
&lt;li&gt;问题定位更标准&lt;/li&gt;
&lt;li&gt;人员流动时知识迁移更容易&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;场景 2：工厂里的柔性机械臂工作站&lt;/h3&gt;
&lt;p&gt;比如做：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;视觉引导抓取&lt;/li&gt;
&lt;li&gt;打磨&lt;/li&gt;
&lt;li&gt;码垛&lt;/li&gt;
&lt;li&gt;检测&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种场景的痛点不是机械臂能不能动，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;相机、视觉算法、路径规划、机器人控制器怎么接起来&lt;/li&gt;
&lt;li&gt;现场切换工件或夹具时，软件能不能快速重配&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ROS2 的价值在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它能把感知、规划、控制外围逻辑组织起来&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MoveIt2&lt;/code&gt;、&lt;code&gt;ros2_control&lt;/code&gt;、ROS-Industrial 生态可以复用&lt;/li&gt;
&lt;li&gt;生命周期、参数化和 launch 让产线切换更可控&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但同样要注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;最内层伺服控制不一定让 ROS2 做&lt;/li&gt;
&lt;li&gt;安全和硬实时部分仍会有专有系统参与&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是“ROS2 在工业里通常担任系统大脑，而不是电机驱动器本身”。&lt;/p&gt;
&lt;h3&gt;场景 3：多机器人协同&lt;/h3&gt;
&lt;p&gt;比如医院配送、酒店配送、园区巡检。&lt;/p&gt;
&lt;p&gt;这类系统里最难的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不是某一台机器人功能&lt;/li&gt;
&lt;li&gt;而是多机、弱网、任务调度、异常恢复、远程运维&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ROS2 的分布式架构、QoS、生命周期和多机通信能力，让它比 ROS1 更适合承担这种系统的软件底座。&lt;/p&gt;
&lt;h3&gt;场景 4：资源受限的边缘控制单元&lt;/h3&gt;
&lt;p&gt;如果机器人本体里有 MCU 负责低层采样和执行，而主控负责高层任务，那么 &lt;code&gt;micro-ROS&lt;/code&gt; 能让这类设备进入统一的软件体系。&lt;/p&gt;
&lt;p&gt;这在产品上非常重要，因为它减少了“上下位机两种语言、两套协议、两套调试体系”之间的割裂。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十一、ROS2 的优点，不要只背“生态多”&lt;/h2&gt;
&lt;h3&gt;1. 模块化强&lt;/h3&gt;
&lt;p&gt;模块化不是说“文件拆得开”，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;节点边界清楚&lt;/li&gt;
&lt;li&gt;接口明确&lt;/li&gt;
&lt;li&gt;替换成本相对可控&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 生态规模大&lt;/h3&gt;
&lt;p&gt;生态大带来的不是热闹，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;找资料更容易&lt;/li&gt;
&lt;li&gt;找现成包更容易&lt;/li&gt;
&lt;li&gt;招人更容易&lt;/li&gt;
&lt;li&gt;换项目时经验迁移更强&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 工具链完整&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;rviz2&lt;/code&gt;、&lt;code&gt;ros2 topic&lt;/code&gt;、&lt;code&gt;ros2 service&lt;/code&gt;、&lt;code&gt;ros2 param&lt;/code&gt;、&lt;code&gt;rosbag2&lt;/code&gt;、&lt;code&gt;launch&lt;/code&gt; 这些工具把“开发-调试-验证-复现”串成了闭环。&lt;/p&gt;
&lt;h3&gt;4. 更接近产品化&lt;/h3&gt;
&lt;p&gt;相对 ROS1，ROS2 在这些方面明显更成熟：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;QoS&lt;/li&gt;
&lt;li&gt;lifecycle&lt;/li&gt;
&lt;li&gt;安全&lt;/li&gt;
&lt;li&gt;嵌入式延展&lt;/li&gt;
&lt;li&gt;多平台&lt;/li&gt;
&lt;li&gt;组合与性能路径&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. 社区标准化强&lt;/h3&gt;
&lt;p&gt;坐标、消息、驱动、仿真、导航、机械臂、可视化都有大量共识和标准接口，这会极大减少跨团队沟通成本。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十二、ROS2 的缺点，也必须讲清楚&lt;/h2&gt;
&lt;p&gt;如果只讲优点，你后面一做项目就会很挫败。&lt;/p&gt;
&lt;h3&gt;1. 学习曲线并不低&lt;/h3&gt;
&lt;p&gt;ROS2 表面上看入门容易，实际上要真正用好，必须同时理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Linux&lt;/li&gt;
&lt;li&gt;C++ / Python&lt;/li&gt;
&lt;li&gt;分布式通信&lt;/li&gt;
&lt;li&gt;QoS&lt;/li&gt;
&lt;li&gt;launch&lt;/li&gt;
&lt;li&gt;调试工具&lt;/li&gt;
&lt;li&gt;构建系统&lt;/li&gt;
&lt;li&gt;并发回调和 executor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它不是一门单点技术，而是一套系统工程方法。&lt;/p&gt;
&lt;h3&gt;2. 兼容性和版本治理是现实成本&lt;/h3&gt;
&lt;p&gt;真实项目里经常会遇到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不同 distro 差异&lt;/li&gt;
&lt;li&gt;第三方包移植不一致&lt;/li&gt;
&lt;li&gt;文档版本不统一&lt;/li&gt;
&lt;li&gt;不同 RMW 表现差异&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这意味着 ROS2 很强，但并不“省心”。&lt;/p&gt;
&lt;h3&gt;3. 不是天然硬实时&lt;/h3&gt;
&lt;p&gt;ROS2 可以更接近实时系统，但“支持实时”不等于“天然硬实时”。&lt;/p&gt;
&lt;p&gt;如果系统要满足极严苛确定性，仍需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RT 内核&lt;/li&gt;
&lt;li&gt;内存与线程策略&lt;/li&gt;
&lt;li&gt;执行器设计&lt;/li&gt;
&lt;li&gt;现场总线与控制器配合&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 安全能力存在，但落地并不自动&lt;/h3&gt;
&lt;p&gt;有 DDS-Security，不代表你开箱即用就安全。&lt;/p&gt;
&lt;p&gt;真实安全需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网络分区&lt;/li&gt;
&lt;li&gt;凭证管理&lt;/li&gt;
&lt;li&gt;权限设计&lt;/li&gt;
&lt;li&gt;运维策略&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. 分布式系统的调试复杂度天然更高&lt;/h3&gt;
&lt;p&gt;节点多了、机子多了、网络复杂了，排障就一定更难。&lt;/p&gt;
&lt;p&gt;ROS2 给了你工具，但不会替你思考。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十三、今天为什么还值得学 ROS2，而不是直接跳到“AI 机器人”&lt;/h2&gt;
&lt;p&gt;这是一个现在很容易误判的问题。&lt;/p&gt;
&lt;p&gt;很多人会觉得：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大模型来了&lt;/li&gt;
&lt;li&gt;具身智能火了&lt;/li&gt;
&lt;li&gt;那 ROS2 会不会过时？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我的判断是：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;短期到中期，恰恰相反，AI 越强，ROS2 这类系统底座越重要。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;原因很简单。&lt;/p&gt;
&lt;p&gt;AI 解决的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;感知理解&lt;/li&gt;
&lt;li&gt;决策生成&lt;/li&gt;
&lt;li&gt;语义交互&lt;/li&gt;
&lt;li&gt;策略泛化&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但机器人最终还是要落到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;传感器接入&lt;/li&gt;
&lt;li&gt;消息流组织&lt;/li&gt;
&lt;li&gt;状态同步&lt;/li&gt;
&lt;li&gt;控制执行&lt;/li&gt;
&lt;li&gt;任务编排&lt;/li&gt;
&lt;li&gt;故障回退&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是说：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI 决定“做什么”&lt;/li&gt;
&lt;li&gt;ROS2 往往负责“怎么把系统组织起来并真正执行”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;尤其在现阶段的大多数商业项目里，系统集成问题仍然比“模型推理本身”更刚性。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十四、学习 ROS2，正确的心智模型是什么&lt;/h2&gt;
&lt;p&gt;你后面开始 &lt;code&gt;W1&lt;/code&gt; 时，最应该带着的不是“我去学 API”，而是下面这几个心智模型。&lt;/p&gt;
&lt;h3&gt;1. ROS2 是系统工程，不是命令背诵&lt;/h3&gt;
&lt;p&gt;学习目标不是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;会 &lt;code&gt;ros2 topic list&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;能说清楚一个机器人系统为什么要拆成这些节点&lt;/li&gt;
&lt;li&gt;能解释消息流和数据流&lt;/li&gt;
&lt;li&gt;能解释为什么这里用 topic，不用 service&lt;/li&gt;
&lt;li&gt;能解释为什么这条链路需要 &lt;code&gt;reliable&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. 每学一个概念，都要问一句“工业里为什么需要它”&lt;/h3&gt;
&lt;p&gt;比如学：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;topic&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;action&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;parameter&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lifecycle&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;QoS&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;都不要停留在“定义是什么”。&lt;/p&gt;
&lt;p&gt;要继续追问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它解决了什么工程痛点？&lt;/li&gt;
&lt;li&gt;如果没有它，现场会怎么乱？&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 把 ROS2 学成“架构语言”&lt;/h3&gt;
&lt;p&gt;以后不论你做导航、感知、机械臂还是多机器人，最值钱的能力不是某个包的 API，而是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你能不能把系统画成图&lt;/li&gt;
&lt;li&gt;能不能解释模块边界&lt;/li&gt;
&lt;li&gt;能不能做技术取舍&lt;/li&gt;
&lt;li&gt;能不能把问题从日志一路定位到通信、参数、调度、执行&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 把项目经验和 ROS2 原理绑定&lt;/h3&gt;
&lt;p&gt;后续学习中，每个知识点最好都绑定你的项目：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前项目里有哪些节点&lt;/li&gt;
&lt;li&gt;哪些 topic 是主干数据流&lt;/li&gt;
&lt;li&gt;哪些地方可能需要 QoS 调优&lt;/li&gt;
&lt;li&gt;哪些节点未来适合用 lifecycle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样知识才不是飘着的。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十五、W0 学完以后，你应该能回答的 10 个问题&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ROS2&lt;/code&gt; 本质上是什么，为什么它不是真的操作系统？&lt;/li&gt;
&lt;li&gt;为什么 ROS 会成为机器人领域事实标准之一？&lt;/li&gt;
&lt;li&gt;ROS1 当年为什么成功？&lt;/li&gt;
&lt;li&gt;ROS1 为什么不再适合做未来主线？&lt;/li&gt;
&lt;li&gt;ROS2 诞生的根本行业背景是什么？&lt;/li&gt;
&lt;li&gt;DDS、RMW、QoS 在 ROS2 里分别扮演什么角色？&lt;/li&gt;
&lt;li&gt;ROS2 相对 ROS1 最重要的升级不是哪些表层变化，而是什么底层目标变化？&lt;/li&gt;
&lt;li&gt;ROS2 在工业系统里通常处在什么层，不适合替代什么层？&lt;/li&gt;
&lt;li&gt;为什么 ROS2 对 AMR、服务机器人、柔性制造这类场景特别有价值？&lt;/li&gt;
&lt;li&gt;学 ROS2 应该建立怎样的系统工程心智模型？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果这 10 个问题你能讲顺，后面的 &lt;code&gt;W1&lt;/code&gt; 就不会只是“学语法”，而会变成“学一套机器人系统方法论”。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十六、给你的学习建议：W0 之后怎么进入 W1&lt;/h2&gt;
&lt;p&gt;最合理的进入方式不是马上啃大而全源码，而是按下面顺序：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先建立系统图感&lt;/li&gt;
&lt;li&gt;学 &lt;code&gt;topic/service/action&lt;/code&gt; 三种通信模型&lt;/li&gt;
&lt;li&gt;学 &lt;code&gt;QoS&lt;/code&gt;，并开始和实际数据链路绑定&lt;/li&gt;
&lt;li&gt;学 &lt;code&gt;launch/parameter&lt;/code&gt;，理解系统组织方式&lt;/li&gt;
&lt;li&gt;学 &lt;code&gt;executor/callback group&lt;/code&gt;，理解并发执行&lt;/li&gt;
&lt;li&gt;再逐步进入 &lt;code&gt;rclcpp&lt;/code&gt;、&lt;code&gt;lifecycle&lt;/code&gt;、&lt;code&gt;composition&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;也就是说：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;W0&lt;/code&gt; 解决“为什么学、学什么、它在行业里处在哪”&lt;/li&gt;
&lt;li&gt;&lt;code&gt;W1&lt;/code&gt; 才开始解决“基础通信模型和最小系统”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个顺序会让你后面每学一个概念都更稳。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;十七、最后的总判断&lt;/h2&gt;
&lt;p&gt;如果你把机器人产业分成三个层次：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;底层硬件与控制&lt;/li&gt;
&lt;li&gt;中层系统集成与任务协同&lt;/li&gt;
&lt;li&gt;上层行业应用与运营平台&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那么 &lt;code&gt;ROS2&lt;/code&gt; 最强的价值，集中在中层。&lt;/p&gt;
&lt;p&gt;它不是万能的，但它极其关键。&lt;/p&gt;
&lt;p&gt;它不是所有机器人系统的唯一答案，但它是绝大多数现代机器人团队绕不过去的共同语言。&lt;/p&gt;
&lt;p&gt;它不是“学了就能直接做所有工业产品”，但它能让你具备进入机器人系统工程世界的主干能力。&lt;/p&gt;
&lt;p&gt;所以在你的学习路径里，&lt;code&gt;ROS2 W0&lt;/code&gt; 的真正意义，不是背历史，而是完成一个认知切换：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;从“我在学一个框架”，切换到“我在理解机器人产业里最重要的软件组织方式之一”。&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Open Robotics, &lt;code&gt;Why ROS 2?&lt;/code&gt;: https://design.ros2.org/articles/why_ros2.html&lt;/li&gt;
&lt;li&gt;ROS 2 Design: https://design.ros2.org/&lt;/li&gt;
&lt;li&gt;Managed nodes / lifecycle design: https://design.ros2.org/articles/node_lifecycle.html&lt;/li&gt;
&lt;li&gt;ROS 2 DDS-Security integration: https://design.ros2.org/articles/ros2_dds_security&lt;/li&gt;
&lt;li&gt;&lt;code&gt;2023 ROS Metrics Report&lt;/code&gt; (&lt;code&gt;2024-01&lt;/code&gt; 发布): https://download.ros.org/downloads/metrics/metrics-report-2024-01.pdf&lt;/li&gt;
&lt;li&gt;ROS 1 EOL official post (&lt;code&gt;2025-05-31&lt;/code&gt;): https://www.ros.org/blog/noetic-eol/&lt;/li&gt;
&lt;li&gt;ROS 2 Jazzy release page: https://docs.ros.org/en/kilted/Releases/Release-Jazzy-Jalisco.html&lt;/li&gt;
&lt;li&gt;ROS 2 distributions / EOL pages: https://docs.ros.org/en/kilted/Releases/End-of-Life.html&lt;/li&gt;
&lt;li&gt;micro-ROS overview: https://micro.ros.org/docs/tutorials/programming_rcl_rclc/overview/&lt;/li&gt;
&lt;li&gt;ROS-Industrial description: https://rosindustrial.org/about/description/&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item></channel></rss>