EtherCAT与ROS2如何协同构建智能机器人“小脑“与“大脑“

从技术角度观察行业发展,努力跟上时代的步伐。公众号致力于点云处理,SLAM,三维视觉,具身智能,自动驾驶等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。文章未申请原创,未经过本人允许请勿转载,有意转载联系微信920177957。

摘要

在现代工业自动化和人形机器人技术的浪潮中,一套高效、可靠且协调的通信系统就如同生物的神经网络,至关重要。本文将深入探讨如何通过EtherCAT(实时工业以太网)和ROS2(以DDS为中间件的机器人操作系统)的协同配合,构建智能机器人的"小脑"与"大脑"。

图1.图片来源于网络

EtherCAT实时控制的基石

EtherCAT介绍

EtherCAT 的全称是 Ethernet for Control Automation Technology(用于控制自动化技术的以太网)。它是由德国倍福自动化(Beckhoff)公司开发,并于 2003 年引入市场,随后成为国际标准 IEC 61158 和 IEC 61784-2 的一部分。“高性能、低成本、易于使用且具有灵活拓扑” 完美地概括了它的核心优势。

与传统以太网协议的区别

EtherCAT 的强大源于其革命性的数据处理机制。它与传统工业以太网协议的工作方式截然不同,传统方式像“邮递卡车”:主站(控制器)发出的数据帧每到一个从站(伺服驱动器、IO模块等),该从站都必须接收整个数据帧 -> 读取给自己的指令 -> 写入要发送的数据 -> 再将整个帧转发给下一个从站。这种方式会产生累积延迟,节点越多,速度越慢。

而EtherCAT 方式更像“高速列车”:主站发出的数据帧同样会依次经过每个从站。但关键区别在于,每个从站都有一个专用的 EtherCAT 从站控制器(ESC) 芯片。数据帧在物理层通过ESC时,从站会在数据帧经过的瞬间(纳秒级) 直接读取发送给自己的指令数据,并同时将其要发送的数据(如传感器值)插入帧中为它预留的位置。整个过程几乎不产生延迟。其过程如下示意图:

EtherCAT通信机制示意图,EtherCAT的“飞速帧”极大提升了效率

以人形机器人为例,EtherCAT就是遍布全身的周围神经系统,负责连接每一个关节、感知每一处传感器,并执行大脑发出的每一条精密指令。

  • 主从架构:一个主站(小脑)控制多个从站(四肢)。

  • 数据帧的闪电之旅:主站发出一个数据帧(一列火车),依次穿过每个从站。

  • 实时读写:每个从站像高速站台一样,在数据帧经过的瞬间(通常<1μs)读取自己的命令,并插入自己的状态数据,无需存储和转发整个帧。

  • 高效返回:帧遍历所有从站后返回主站,完成一次高效、同步的循环通信。

EtherCAT数据帧“在飞处理”示意图

EtherCAT 运行原理

 一个 EtherCAT 数据帧足以完成所有节点控制数据的发送和接收,这种高性能的运行模式克服传统方法面临的各种问题! EtherCAT 主站发送一个报文,报文经过所有节点。EtherCAT 从站设备高速动态地(on the fly)读取寻址到该节点的数据,并在数据帧继续传输的同时插入数据。这样,数据帧的传输延时只取决于硬件传输延时。当某一网段或分支上的最后一个节点检测到开放端口( 无下一个从站)时,利用以太网技术的全双工特性,将报文返回给主站。 EtherCAT 报文的最大有效数据利用率达 90% 以上,而由于采用全双工特性,有效数据 利用率理论上高于 100 MBit/s。 EtherCAT 主站是网段内唯一能够主动发送 EtherCAT 数据帧的节点,其他节点仅传送数 据帧。这一设想是为了避免不可预知的延时,从而保证 EtherCAT 的实时性能。 EtherCAT 主站采用标准的以太网介质访问控制器(MAC),无需额外的通信处理器。 因此,任何集成了以太网接口的硬件平台都可以实现 EtherCAT 主站,而与所使用的实时操 作系统或应用软件无关。 EtherCAT 从站设备采用 EtherCAT 从站控制器(ESC)在硬件中高速动态地(on the fly) 处理 EtherCAT 数据帧,不仅使网络性能可预测,而且其性能独立于具体的从站设备实施 方式。这种数据帧处理机制赋予了EtherCAT无与伦比的优势:

  • 极高的带宽利用率:>90%,几乎无协议开销。

  • 极低的延迟与极高的同步精度:利用分布式时钟(DC) 技术,可实现纳秒级同步,确保上百个关节同时启动、步调一致。

  • 灵活的拓扑结构:线型、树型、星型,简化现场布线。

  • 成本效益:从站只需一颗专用的ESC芯片,无需强大的CPU。

因此,EtherCAT完美胜任了机器人底层那些要求极致实时性和确定性的任务,如关节力矩控制、高精度传感器数据采集等。它是机器人与物理世界交互的“快速反射弧”。

在同一系统中应用层的不同设备行规可共存

SOEM是打开EtherCAT世界的开源钥匙

强大的EtherCAT技术早期被商业协议栈所垄断,开发成本高昂。SOEM的出现, 普世了这项技术。SOEM(Simple Open EtherCAT Master Library)是由rt-labs AB, Sweden开发的一款自由软件,实现EtherCAT主机。SOEM是一个轻量级、开源且跨平台的EtherCAT主站协议栈。它的意义在于:

  • 零成本入门:开发者无需支付昂贵的授权费。

  • 代码透明与可定制:完全开源的C代码,允许开发者深入理解原理并根据特定需求进行修改和优化。

  • 广泛的硬件兼容性:可在标准以太网卡(需支持底层RAW Socket访问)或各种嵌入式平台上运行。

使用SOEM开发主站,就像是训练自己成为EtherCAT乐团的指挥,其开发流程与功能如下图所示:

1. 初始化与扫描:ec_init -> ec_config_init。指挥家上台,扫描网络,识别所有乐手(从站)。

2. 拓扑映射与配置:解析ESI(从站描述文件),了解每个乐手的技能(支持的PDO/SDO)。通过SDO通信为其配置参数,分配乐谱(配置PDO映射)。

3. 同步化:启用分布式时钟(DC),确保所有乐手的节拍器完全同步,这是演奏和谐乐章的关键。

4. 进入实时操作状态:ec_state_check -> 切换到OP状态。指挥棒举起,准备开始。

5. 实时循环:在一个严格的周期循环中,调用 ec_send_processdata 和 ec_receive_processdata。指挥棒挥下,准时发出指令并接收反馈。

6. 错误处理:持续监控 ec_slave[0].state 和 ec_group[currentgroup].docheckstate,确保任何乐手的错误都不会导致整个演出崩溃。

SOEM让研究者、学生和工程师都能以最低的成本,接触到最顶级的实时工业通信技术,极大地加速了创新和原型开发。

ROS2/DDS—人形机器人的"大脑"与智能中枢

如果说EtherCAT负责的是底层的、本能的“反射”,那么ROS 2及其采用的DDS协议,则构成了机器人高级的“中枢神经系统”,负责感知、认知、决策和复杂的协调。

第一代ROS(ROS1)使用自定义的TCP/UDP通信机制,存在中心化、实时性差、网络鲁棒性不佳等固有缺陷。ROS2做出了革命性的改变:直接构建在DDS之上。DDS是由对象管理组织(OMG)制定的数据分发服务标准,最初应用于军事、航空、金融等对实时性和可靠性要求极高的领域。它是一种以数据为中心的发布-订阅模型。

架构图(ROS2中没有了master中心节点了)

DDS构建了一个“全球数据空间”的概念。参与者无需知道彼此的存在,只需关心自己需要的数据。DDS采用以数据为中心的发布-订阅模型:

  • 发布/订阅模型:节点可以发布某个“主题”的数据,也可以订阅它感兴趣的主题。

  • 自动发现:DDS内置了强大的发现机制,节点加入或离开网络时,会自动找到彼此,无需中心节点协调。

  • 丰富的QoS策略:可精确控制通信行为(可靠性、持久性、截止时间等)

  • 去中心化架构:无单点故障,系统更健壮

ROS2的数据发布与订阅

丰富的QoS策略,这也是DDS的灵魂所在。开发者可以通过配置服务质量策略,精确控制通信行为,例如:

  • Reliability:选择BEST_EFFORT(尽力而为,适用于连续传感器数据)或RELIABLE(确保送达,适用于关键指令)。

  • History & Depth:设置缓存历史数据的深度。

  • Deadline:规定数据更新的最长时间间隔。

  • Lifespan:设置数据的有效期。

  • Durability:TRANSIENT_LOCAL策略可以让新加入的订阅者获取最后一条发布的消息。

融合与协同——构建完整的机器人神经系

一个先进的机器人系统,绝非单一技术所能成就,而是大小脑的完美。它们在不同层级上协同工作,构成了一个完整的机器人通信架构,如下图所示:

决策与感知层(大脑 - ROS2)

作为机器人的"大脑",该层负责高级认知功能:

  • 多传感器融合处理:集成视觉、激光雷达、IMU、力矩传感器等多元数据,通过DDS的话题和服务机制实现高效数据分发

  • 复杂环境感知与建模:实时构建3D环境地图,识别和跟踪动态障碍物

  • 智能决策与规划:基于机器学习算法生成运动轨迹,考虑全身动力学约束和平衡控制

  • 人机交互处理:处理自然语言指令、手势识别和情感交互等高级功能

  • 任务级协调:管理任务优先级,处理异常情况和故障恢复策略

实时控制层(脊髓 - ROS2 + 主站)

这一层充当"大脑"与"小脑"之间的桥梁,实现关键的中枢协调功能:

  • 硬实时保障:通常运行在Linux PREEMPT_RRT实时内核上,确保控制循环的微秒级定时精度

  • 控制算法执行:实现先进的控制策略,如:

    * 全身阻抗控制:协调多个关节的力矩输出

    * 零力矩点(ZMP)控制:维持双足行走的稳定性

    * 自适应控制:根据负载变化实时调整控制参数

  • 状态监控与安全管理:实时监测系统状态,实现硬件限位、过流保护等安全功能

  • 数据采集与预处理:对底层传感器数据进行滤波和预处理,减少上层计算负担

物理层(周围神经 - EtherCAT)

作为机器人的"小脑"和反射弧,提供极致的实时性能,将ROS2控制层计算出的关节目标位置、速度或力矩,发送给伺服驱动器,并读取电机编码器和力传感器的真实数据:

  • 纳秒级同步控制:通过分布式时钟技术,实现多关节的精确协同运动

  • 高带宽数据采集:同步采集所有关节的编码器、力矩传感器和温度数据

  • deterministic响应:保证在最坏情况下的响应时间确定性,满足安全关键需求

  • 热插拔与冗余设计:支持模块的热插拔和链路冗余,提高系统可靠性

总结

EtherCAT和ROS2/DDS的协同代表了机器人系统架构的最高水准,它们各自发挥独特优势,共同构建了一个完整的技术栈。

  • EtherCAT提供了连接物理世界的极致性能,其纳秒级同步和确定性响应为机器人提供了可靠的"小脑"功能,确保底层控制的精确性和实时性。而SOEM等开源解决方案则大大降低了使用这一先进技术的门槛,促进了技术的普及和创新。

  • ROS2和DDS则提供了构建复杂分布式系统的软件框架和通信基石,其丰富的生态系统和强大的工具链大大加速了开发进程。DDS的以数据为中心的架构和丰富的QoS策略为机器人"大脑"提供了灵活而可靠的通信保障。

最重要的是,这两者的协同不是简单的叠加,而是深度的融合。通过精心设计的架构和优化策略,它们实现了从高层智能决策到底层精密控制的无缝衔接,为开发具有人类般灵活性和智能性的机器人系统提供了坚实的技术基础。

特别提醒:有意购买智元灵犀系列和宇树系列产品的朋友,以及需要人形机器人二次开发的朋友,后台发送“人形机器人”获取我的联系方式哦,也欢迎交流。

相关阅读:2024年度历史文章大汇总

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享与合作方式:微信“920177957”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。

点一下“在看”你会更好看耶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云PCL公众号博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值