
宇树人形机器人H1软件架构

图片来源:宇树科技
宇树人形机器人H1软件架构中,PC1是英特尔的i5-1235U,PC2是英特尔的i5-1255U,PC3是i7-1265U。图上不难看出软件架构核心就是ROS2。

图片来源:The Autoware Foundation
自动驾驶领域最常见的开源系统AUTOWARE,其核心就是ROS,从自动驾驶跳槽到具身智能可以说是易如反掌,无论是硬件还是软件,自动驾驶领域内的核心技术在具身智能领域同样是核心技术。自动驾驶领域鲁棒性、安全性、性价比等要求远高于具身智能领域,智驾跳槽具身智能是妥妥的降维打击。
ROS2架构(核心是通讯层的DDS)

图片来源:英特尔
ROS2的全称是Robot Operating System 2。它是由Open Robotics所开发的开源机器人软件框架,旨在帮助开发者快速建立、测试与部署机器人应用。虽名称中有Operating System,但其实ROS2并非像是Windows或Linux那般完整的操作系统。ROS2必须依附在操作系统下进行安装,它提供了函式库、工具及中间件来实现机器人进行感知、控制与通讯等功能。
Open Robotics是一家非盈利机构,位于美国加州山景城,成立于2012年,负责ROS系统维护,2014年开始ROS2开发,2017年12月第一版ROS2即Ardent Apalone发布,基本上每年ROS社区就会出一版最新的ROS2,2025年最新版命名为Kilted Kaiju,支持周期到2026年11月,长期支持版本(支持到2029年5月)还是2024年5月发布的Jazzy Jalisco。目前大多数企业用的是2022年5月份发布的Humble Hawksbill ,一直支持到 2027 年 5 月。它是 Ubuntu 22.04 (Jammy Jellyfish) 上的第一个 ROS 2 版本。ROS不仅可以用于工业机器人、人形机器人,用在自动驾驶领域也没任何问题。
Jazzy Jalisco一级支持平台:Ubuntu 24.04(amd64/arm64)、Windows 10(VS2019,amd64)。二级支持平台:RHEL 9(amd64)。三级支持平台:macOS(amd64)、Debian Bookworm(amd64)。
ROS2核心特色:
实时性 - 使用 DDS(Data Distribution Service)架构,ROS2将通讯从TCPROS/UDPROS这种依赖master管理的架构改为DDS,实现高效可靠的数据通讯,确保数据不延迟、不遗失。这对多机协作或者AGV车队管理来说相当重要。
跨平台支持 - 改善ROS第一代只能支持Linux系统,ROS2可以支持Linux、macOS、Windows增加开发弹性,并且在实时性应用上可串接RT-PREEMPT Linux、QNX、VxWorks,落实RTOS应用。
数据安全性 - ROS2搭载DDS-Security。提供加密、访问控制与节点认证,符合资讯安全标准。
工业协议整合 - 透过桥接方式,ROS2可以与OPC UA、EtherCAT等工业通讯协议对接,降低导入成本。
ROS2成为一层强大的『软件基础建设』,提升机器人系统开发效率与模块化能力,并且ROS2背后有庞大的开源社群支持可以讨论及参考。ROS2同时可支持 ABB、Fanuc、Yaskawa、Epson 等主流工业型机械手臂,让开发者能快速整合异质设备。
ROS2相较于电脑操作系统,功能简化了很多,只需要实现网络&通信这么一件事情,其他事情都由操作系统实现或者压根儿没用其他功能。在ROS2中代码管理单位是软件包package,运行时最小参与单位是节点node,概念类似于操作系统中的进程,ROS2负责实现node间的通信。node发布topic,其他node订阅topic,就可以实现publishers-subscribers模式的通信,这有点像网络广播,这个广播可以是本地的也可以是跨机器的,ROS提供了通信域概念,不同通信域间不互通,相同通信域都可以互通,就上面配置的domain_id,这个概念有点像局域网。
ROS2有点像汽车软件领域的自适应AUTOSAR,只不过自适应AUTOSAR支持面更广,在 AUTOSAR 自适应平台中,通信管理功能集群提供面向服务的通信建模和基础设施。应用程序构建在中间件之上,应用程序级 API 与协议无关,中间件在 API 和实际的底层通信技术之间进行代理。AUTOSAR 中代理或者此类映射称为“网络绑定”,下面是三个标准化的通信协议:
DDS
SOME/IP
基于信号的通信
而ROS2只有DDS,DDS与专门用于车载通信系统的SOME/IP有所不同。DDS最初由OMG(Object Management Group)组织于2003年发布,目的是为了满足现代实时系统的需求,在物联网、工业自动化、航空航天、国防等多个领域均得到广泛应用。OMG组织2003年发布的DDS v1.0,目前主要是2015年的v1.4版本。
DDS标准涵盖了两个主要部分:
DCPS(Data-Centric Publish-Subscribe)模型:是DDS的核心模型,它定义了数据发布者和订阅者之间的交互方式。Publisher/Subscriber(发布者/订阅者):发布者负责将数据发布到特定的主题(Topic)中,而订阅者则通过订阅相关主题来接收所需的数据。DataWriter/DataReader(数据写入者/数据读取者):DataWriter负责将数据写入到特定的主题中,而DataReader负责从主题中读取相应的数据。Topic(主题):主题是DCPS中定义数据传输的逻辑分类和组织单元。它可以看作是一种数据的标签,用于区分不同类型的数据。
QoS(Quality of Service)策略:它为数据传输提供了质量服务。DDS的QoS策略非常丰富,包括实时性、可靠性、带宽控制等。通过配置和调整这些QoS策略,实现不同的通信要求。
DCPS(Data-Centric Publish-Subscribe)模型

图片来源:OMG
它定义了应用程序在DDS中发布和订阅数据对象的功能。发布和订阅很容易理解,"Publisher"发布者将"Topic"主题发布出来,"Subscriber"订阅者则对感兴趣的主题进行订阅。"Topic"主题是DDS中定义的一个抽象概念,它代表一类数据的集合,用于标识一组相关的数据。数据通过"DataWriter"传递给"Publisher"。对于"Subscriber",当订阅数据后,需要通过"DataReader"来访问和接收具体的数据。这里需要注意的是,一个"DataWriter"/"DataReader"只能对应一个"Publisher"/"Subscriber",也可以理解成前者是由后者创造的,而一个"Publisher"/"Subscriber"可以创造多个"DataWriter"/"DataReader"。当我们想发布不同的"Topic"时,可以使用不同的"DataWriter"来向发布者传递数据。
DDS域

图片来源:宇树科技
如果有非常多的"Publisher", "Subscriber", "Topic"该如何处理?DCPS模型通过引入全局数据空间(Global Data Space)来解决这个问题。全局数据空间是一个集中存储和管理所有数据对象的共享空间。一个全局数据空间即一个DDS域(DDS Domain),DDS域是一个逻辑上的容器,它将所有的"Publisher", "Subscriber", "Topic"集中在一个空间中,用于组织和管理相关的数据对象。
在DDS域中,有一个关键的概念"Domain Participant"域参与者。域参与者是一个抽象的实体,主要负责创建和管理"Publisher", "Subscriber", "Topic"。不同的Domain之间是相互独立的,它们不能直接进行通信或访问对方的数据。每个Domain都被分配一个唯一的Domain ID(域标识),通过该ID可以唯一地识别一个Domain。应用程序可以通过指定特定的Domain ID来创建Domain Participant(域参与者),以获取相应Domain的访问权限。
DCPS提供了多种策略来满足不同的发布和订阅需求。对于订阅方来说,DDS提供了以下两种基础策略:
Listen(监听):订阅者可以使用监听方式来接收数据。它会一直等待,直到接收到数据为止。这种方式是阻塞型的,即订阅者在接收到数据之前会一直等待。
StatusCondition(状态条件):使用Condition和Waitset(条件和等待集),订阅者可以实现异步数据访问。可以为一个或多个条件对象设置条件,然后等待条件满足或特定事件发生。这种方式是非阻塞的,订阅者可以继续执行其他操作,而不必一直等待。
DDS与 QoS

图片来源:OMG
与SOME/IP相比,DDS的QoS数量可谓相当丰富。目前,DDS提供了22种不同的QoS策略,它们可以独立或组合使用。通过定义和配置一系列QoS参数和策略,能够在数据传输过程中实现对带宽、延迟、可靠性和安全性等的控制和优化。
ROS2包含很多工具以及Gazebo仿真平台。Gazebo是ROS系统中最为常用的三维物理仿真平台,支持动力学引擎,可以实现高质量的图形渲染,不仅可以模拟机器人及周边环境,还可以加入摩擦力、弹性系数等物理属性。
Gazebo特点:
真实物理仿真:Gazebo内置多种物理引擎(如ODE和Bullet),可以精确模拟机器人在真实世界中的物理行为,包括重力、碰撞、摩擦等;
多传感器模拟:Gazebo支持多种传感器的模拟,包括相机、激光雷达、惯性测量单元(IMU)等;
可定制性和可扩展性:Gazebo提供了丰富的插件系统和API,允许开发人员自定义仿真环境、模型和控制器;
ROS集成:Gazebo与ROS(机器人操作系统)无缝集成,这为使用ROS进行机器人开发的开发人员提供了一个强大的仿真平台。
ROS2与Gazebo

图片来源:网络
上图所示,ros_control为Gazebo仿真提供了一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等。通过向URDF模型文件中添加Gazebo插件,从而将Gazebo仿真模型与ros_control建立起联系。controller可以实现对URDF模型中每个joint的控制,并且提供了PID控制器,Controller Manager则提供了一种通用接口,负责管理不同的controller。Gazebo也可以做自动驾驶领域的仿真,其内部有阿克曼(Ackermann)四轮小车模型。
ROS中常见的工具还有RViz,RViz是三维可视化工具,强调把已有的数据可视化显示。RViz需要已有数据。此外,RViz提供了很多插件,这些插件可以显示图像、模型、路径等信息,但前提都是这些数据已经以话题、参数的形式发布,RViz做的事情就是订阅这些数据,并完成可视化的渲染,让开发者更容易理解数据的意义。使用Gazebo的时候,经常也会和RViz配合使用。
ROS2还包含一系列工具集,特别是有关机器人导航的,这基本和自动驾驶任务完全重叠,即三大任务,一是定位,二是SLAM建图,三是路径规划。
定位包括了TF坐标变换,多传感器融合,自适应蒙特卡罗定位:- 概率 2D 定位 (X,Y,Θ),- 粒子滤波(粒子是猜测位置姿态的向量)- 对已知地图进行位置姿态跟踪- 纠正里程计漂移。
SLAM 是通过传感器获取环境信息然后进行定位和建图。在 ROS 2 中,提供了很多的 SLAM 功能包,比如 slam_toolbox,cartographer_ros 和 rtabmap_slam 等。针对二维场景,其中 slam_toolbox 开箱即用,上手较为简单。这中间连传感器算法都包含了,比如laser_filters:激光雷达数据滤波(去噪、截取有效区域)。image_transport:图像传输优化(压缩、分块)。
路径规划nav2_planner:路径规划(A*、RRT*等算法)。nav2_controller:轨迹跟踪与避障。nav2_localization:基于地图的定位(AMCL算法)。nav2_behavior_tree:用行为树管理导航流程(如“到达目标→充电”逻辑)。
还有机械臂的运动规划(MoveIt2),机械臂运动规划框架,支持碰撞检测、逆运动学求解、轨迹优化,是工业机械臂开发的核心工具。
除了这些特定功能包之外,一些机器人领域常用的传感器驱动和配置也集成到了ROS2中,典型的如机器人领域几乎标配的RGBD双目相机,即RealSense D435i,ROS2内部包含RealSense D435i完整的软件系统,无需任何工作,键入命令行:ros2 topic echo /camera/aligned_depth_to_color/image_raw sensor_msgs/msg/Image就能得到深度图,深度图像数据的编码通常是16UC1,表示每个像素的深度值是一个16位的无符号整数(单位通常是毫米)。
汽车领域要求远高于机器人领域,包括了可靠性、安全性、鲁棒性、一致性,还要考虑性价比,汽车领域的人跳槽到具身智能领域是妥妥的降维打击。
免责说明:本文观点和数据仅供参考,和实际情况可能存在偏差。本文不构成投资建议,文中所有观点、数据仅代表笔者立场,不具有任何指导、投资和决策意见。
更多报告
| AI机器人 | ||
AI机器人 | ||
| 云端和AI | ||
| 车云 |
| 动力层 | ||
| 动力 | 混合动力报告 | |
| 800-1000V高压平台 | 电驱动与动力域研究 | |
热管理 |
| 电子电气架构层 | ||
| E/E架构框架 | E/E架构 | 汽车电子代工 |
| 48V低压供电网络 | ||
| 智驾域 | 自动驾驶SoC | |
| 座舱域 | 座舱域控 | |
| 车控域 | 车身(区)域控研究 | |
| 通信/网络域 | ||
| 跨域融合 | ||
| 其他芯片 | ||
| 车载存储芯片 |
| 智舱系统集成和应用层 | ||
智能座舱应用框架 | 座舱设计趋势 | |
自动驾驶算法和系统 |
| OS和支撑层 | ||
| SDV框架 | SDV:软件定义汽车 | |
信息安全/功能安全 |
| 其他宏观 | ||
| 车型平台 | 车企模块化平台 |

「联系方式」
手机号同微信号

产业研究部丨赵先生 18702148304
推广传播部|杜先生 13910162318