资讯详情

资讯详情

人形机器人多总线融合通信架构设计与实践

1. 为什么人形机器人控制要上多总线融合而不是一根线走天下人形机器人这个赛道这几年确实热起来了但真正干控制系统的人心里都清楚人形机器人这套通信架构一点都不“人形”它是典型的“多总线混搭”。我手头这个项目主控侧既有冗余双CAN/CANFD现场总线又上了EtherCAT中间还挂了CANWeb网关和千兆以太网很多人第一次看到拓扑图都会问是不是为了复杂而复杂实际上每一路总线承担的角色完全不一样少任何一条链路都会在某些场景下卡脖子。先看人形机器人对通信有哪些硬性要求。全身关节少说20多个多的四五十个每个关节都是一体化伺服驱动模组位置环、速度环、电流环全都要在驱动器内部闭环而整机的运动控制周期做到1ms以内只是基础高动态步态或者奔跑动作甚至要求500μs周期内把全部关节指令刷新一遍。与此同时六维力传感器、IMU、视觉相机、双足力控踏面传感器都在产生数据带宽需求大、实时性等级又各不相同。这种场景下没有任何一种总线能从头扛到尾。所以我在方案设计里做了明确拆分关节伺服控制走CAN/CANFD并且做成冗余双网保证驱动链路不断全身运动协调走EtherCAT主站统一调度分布时钟保证所有关节同步视觉、点云等大数据量的非实时信息走千兆以太网现场调试、参数配置、远程监控则通过CANWeb网关把CAN网络桥接到以太网Web接口。下面我把这套架构的来龙去脉和落地细节逐一拆开讲。1.1 人形机器人控制系统到底需要什么样的通信链路人形机器人控制系统本质上是一个“多模态感知—实时决策—关节执行”的闭环回路。感知端有IMU、关节角度传感器、六维力传感器数据频率从几百赫兹到几千赫兹决策端跑运动规划、步态控制、平衡算法典型周期是1kHz执行端几十个关节模组每个模组内部还有伺服级控制。这里最大的矛盾在于执行链路要求极低延迟和极强的同步性感知链路要求高带宽和大吞吐而调试链路要求易用性和可观测性。这三种需求如果用同一种总线硬扛结果就是两头不讨好。我最早用纯CAN跑过全身控制2ms周期下总线利用率就到了70%以上稍微加一点传感器上报和上下位机交互立刻出现报文丢帧、关节抖动。后来换成CANFD稍微好一些但受限于拓扑和仲裁机制从站数量一旦超过30个周期还是压不下去。真正促使我下决心做多总线融合的是一次整机联调时出现的“总线雪崩”所有关节同时回传详细状态加上力传感器数据CAN总线持续重发错误帧整机直接保护停机。从那以后我就确定了一件事——人形机器人的通信架构必须按数据特性和实时性分道扬镳而不能指望靠提高单条总线带宽解决所有问题。1.2 四条总线各管一段责任边界必须清晰我把整个通信架构里各总线的角色整理成一张责任清单项目推进过程中所有争议都靠这张表来对齐总线类型承担角色关键指标典型控制周期冗余双CAN/CANFD关节伺服控制、底层保护、降级兜底500kbps~5Mbps双通道独立1ms~2msEtherCAT全身运动同步控制、过程数据刷新40从站DC同步精度100ns级250μs~1ms千兆以太网视觉数据、离线标定、人机交互千兆带宽非实时数据块/毫秒级CANWeb网关CAN设备联网、Web调试、远程监控网关协议转换寄存器映射交互式请求/响应这张表里的逻辑是EtherCAT负责“同步快”CAN/CANFD负责“安全稳”千兆以太网负责“带宽大”CANWeb负责“调试方便”。四条链路在物理层和协议层互不挤占任何一个环节出问题故障域都能被限制在局部而不是整机瘫痪。下面每个部分的实现细节我都会结合本项目的实际参数和踩坑过程来展开。2. 冗余双CAN/CANFD现场总线关节控制的保底链路很多人会问既然EtherCAT实时性这么强为什么还要保留一套CAN/CANFD这就要说到人形机器人和普通工业机器人最大的区别工业机器人固定在围栏里EtherCAT断链后急停停机问题不大人形机器人是移动的、与人共融的而且关节多、重心高一旦EtherCAT主站或某个从站掉线整条链路直接中断如果关节级没有一个独立可用的兜底网络机器人可能瞬间失去保持力矩的能力直接摔倒甚至伤人。所以CAN/CANFD这条链路在我的项目里承担的是“肌肉层保护”和“掉链保命”的角色。2.1 冗余双CAN/CANFD的网络结构设计与切换机制我做的CAN/CANFD网络是“双网A/B”结构。A网和B网物理上完全独立走不同线束、不同连接器、不同收发器每个关节控制节点都同时接入两个网络。正常工作时以A网为主、B网为备B网处于静默监听状态当A网出现总线错误、连续接收超时或物理层故障时节点自动切换通信通道到B网。这里有一个关键点切换动作不能等到“已经出现超时告警再做”那样关节已经有一段时间没有收到新的指令了轨迹必然产生扰动。实际工程里我采用的切换依据是“网络管理状态机心跳超时判定”。主控周期性发送带递增序号的广播心跳帧关节模组在预设时间窗口内收不到心跳或者收到的序号不连续就判定A网失效并立刻切换到B网。切换事件本身要记录下来包括切换时间、触发原因、当前关节状态统一回传给主控便于事后分析。切换时间窗口我最初设计的是10ms实测下来从丢帧到B网接管只需要5ms左右关节力矩曲线看不出任何扰动。这个数值和CPU中断响应时间、CAN控制器错误状态退出时间有关不同平台要重新实测不能照抄。2.2 CANFD的波特率与位定时参数计算方法CANFD相比传统CAN最大的价值在于数据场从8字节扩展到64字节波特率从最高1Mbps提升到5Mbps。在人形机器人上关节模组不仅要传位置、速度和电流还要传温度、故障码、母线电压、驱动器状态CANFD的48字节数据场可以一条报文覆盖一个关节的完整指令和反馈不需要像CAN那样拆包重组实时性和可维护性都好了很多。但CANFD的波特率设置比CAN复杂仲裁段和数据段是两个独立的位定时。仲裁段仍然采用较保守的1Mbps保证兼容性数据段可以跳到5Mbps提高载荷。具体参数计算以常见的CANFD控制器为例位时间由同步段、传播段、相位缓冲段1、相位缓冲段2四部分组成。假设外设时钟80MHz目标仲裁段波特率1Mbps先做4分频得到20MHz的位时钟位时间就是20个Tq。若同步段1Tq、传播段5Tq、相位缓冲段1是6Tq、相位缓冲段2是8Tq采样点就是(156)/2060%这个采样点明显偏低在总线较长时容易采到信号边沿必须重新分配。我最终调下来的一组参数是同步段1Tq、传播段2Tq、相位缓冲段1为13Tq、相位缓冲段2为4Tq采样点(1213)/2080%。采样点在75%~87.5%之间都算安全80%是个比较通用的折中值。数据段5Mbps时需要单独设置数据段的位时序不能直接沿用仲裁段参数否则会出现大量的位填充错误。下面给出一份参考配置参数项仲裁段数据段目标波特率1Mbps5Mbps位时钟20MHz40MHz8分频位时间20Tq8Tq同步段1Tq1Tq传播段2Tq1Tq相位缓冲段113Tq3Tq相位缓冲段24Tq3Tq采样点80%87.5%这组参数在总长不超过5m的机体内网中跑得很稳但如果后续某个关节需要跨更大的机械结构导线变长之后建议把数据段降到2Mbps同时把采样点往75%方向调优先保证通信可靠性。2.3 双网冗余的容错设计与布局禁忌冗余不是简简单单再接一路线就完事物理隔离必须做彻底。第一A/B两路线束在走线时不要并排绑在一起尤其是经过关节弯折区域如果两条线束用同一捆扎带固定在同一活动区机械磨损时很可能一起断掉冗余就名存实亡了。第二连接器要选不同键位或者不同颜色防止现场插错。第三A/B网的收发器电源最好做隔离至少不能共用同一路LDO输出否则一个浪涌打进来两条链路同时失效。我在项目里吃过亏——最初为了省空间两块CAN收发器的电源共用一个5V供电结果一次调试中电机反电动势把该路电源打出一个毛刺两块收发器同时复位整机差点摔了。后来改成两路独立电源再叠加TVS管问题才彻底消除。还有一个容易忽略的点冗余网络中的备网不能完全静默到底建议每隔一定周期在B网上也发送一次状态同步帧保证B网链路在平时也是热备状态。否则到了真正切换的时候可能发现B网某段线路已经被氧化或松动却因为没有流量而从未暴露这就是“备而不用等于没有”。3. EtherCAT全身运动控制的同步中枢EtherCAT这部分是全网讨论热度最高的从从站芯片选型、SSC从站协议栈代码、主站移植到从站XML配置大家都特别关心。我判断EtherCAT能在人形机器人里当骨干主要看三点一是它采用“一帧到底”的刷新模式大量从站共用一帧数据刷新效率远高于传统以太网逐包寻址二是分布式时钟DC能把几十个从站的采样输出同步到100ns级别这是全身协调控制的前提三是它本身有丰富的状态机和诊断机制从站状态一目了然调试阶段非常友好。3.1 主站方案选型原型验证用免费量产稳定再上硬实时EtherCAT主站方案的选择直接影响后续开发效率。人形机器人对主站的要求很具体关节数多意味着过程数据量大控制周期短意味着主站周期不能抖动机器人运动过程中从站可能偶发掉线主站要在短时间内恢复且不能误触发安全保护实验室环境还离不开抓包分析。我实际比较过的方案有三类。第一类是SOEM这类开源免费主站轻量、移植快、调试方便社区资料多非常适合原型验证和学习。SOEM在Linux加实时补丁、STM32加RTOS这类平台都能跑但它在Windows下的周期抖动比较大只适合做功能验证不适合硬实时控制。第二类是商业主站诊断功能强稳定性好适合量产但许可证费用不低而且对控制器的网卡和CPU都有要求导入PDO映射也相对封闭。第三类是把EtherCAT主站运行在带工业实时操作系统的控制器上通过专用网卡直接收发EtherCAT帧周期固定抖动可以控制在几十微秒甚至更低。我的建议很直接原型阶段直接用SOEM免费方案配合Wireshark抓包解决协议层问题到整机联调、需要跑长时间连续运动的时候再切换硬实时主站平台。有些团队一上来就上商业主站结果发现FreeRUN模式和DC同步没搞明白一样抓瞎有些团队一直用SOEM跑整机最后发现关节轨迹精度不够查来查去是主站所在操作系统调度抖动并不是EtherCAT本身的问题。这个弯路完全可以避免。3.2 从站控制器选型与SSC从站代码生成EtherCAT从站硬件通常由从站控制器ESC芯片加PHY再加从站MCU构成。市面上常见的ESC芯片包括AX58100、LAN9252、ET1100/ET1200等。AX58100这类芯片也集成了电机控制外设适合直接把关节驱动器和EtherCAT从站做在一块板上LAN9252在很多伺服驱动器和IO模块上有大量应用验证ET1100/ET1200是经典款资料多但外围逻辑相对复杂。从站能不能成功跑起来关键是在ESC的EEPROM里写入正确的从站信息以及配套的XML设备描述文件。如果用的是现成的关节模组厂家通常会提供XML文件直接导入主站就可以了。如果是自己做从站硬件就要用SSC工具生成从站协议栈代码修改PDO映射后编译下载同时根据生成的ESI文件配置主站。这里有个坑我必须提醒SSC生成的代码默认参数不一定会适配你的具体电机驱动方案尤其是同步模式。EtherCAT从站有FreeRun、SM Synchronous、DC Synchronous三种同步模式。如果只做简单IO控制FreeRun也能用但人形机器人全身关节要求同一时刻刷新指令和采集反馈必须用DC Synchronous模式。使用DC模式时要在SSC配置里打开DC相关选项还要把ESC的SYNC中断引脚接到从站MCU的外部中断引脚上MCU在SYNC中断里更新PWM占空比和采样编码器数据。如果这个中断没接或者没配置从站时间基准只能跟随主站周期关节之间会产生肉眼可见的不同步。3.3 从站XML配置和PDO映射的实操细节XML文件是主站识别从站的“身份证”里面的信息必须和ESC的EEPROM内容一致。我遇到过的情况是同一个从站硬件由于EEPROM中厂商ID或产品代码写错主站工具一直报“从站无响应”或者“无法匹配设备描述”折腾好几天最后发现是EEPROM和XML里的产品版本号差了一位。XML配置里最重要的几个部分是过程数据对象PDO的映射关系、同步管理器SM的配置、分布式时钟参数。以关节模组为例通常需要映射的控制对象包括目标位置、目标速度、目标力矩、控制字、模式切换反馈对象包括实际位置、实际速度、实际电流、状态字、故障码。PDO映射的原则是“够用就好”——不要把所有对象都映射进去一方面PDO对象越多每周期刷新时间越长另一方面从站代码处理过多PDO也可能拖慢中断服务。我习惯把运行周期内必须刷新的数据放进去其他诊断类数据通过SDO非周期读取。同步管理器配置上常用的是SM2做周期输入、SM3做周期输出映射到过程数据。SM模式要选择Buffered还是Mailbox过程数据推荐Buffered模式邮箱数据用Mailbox两者混用配置不对会直接导致主站无法进入OP状态。还有FMMU现场总线存储映射管理单元一般由主站工具自动配置但如果你在自定义主站中直接操作寄存器就要理解FMMU如何把从站本地地址映射到主站逻辑地址。3.4 关节模组挂载EtherCAT网络的周期预算评估人形机器人要把几十个关节模组串在一个EtherCAT网段里就存在一个非常现实的工程问题一个周期到底能刷多少个从站EtherCAT的标准是百兆全双工理论上一帧最多能容纳约1486字节以太网数据每个从站有几十字节PDO一帧过几十个从站完全没问题但实际周期还要看主站软件开销和PHY转发延迟。我这边36个关节模组、每从站PDO约48字节往返250μs周期跑下来帧传输时间只占一小部分剩余时间是主站调度和处理余量整体算下来余量还算健康。不过一旦某个从站被配置了特别大的PDO比如需要传输高速电流环明细数据单个从站占用帧字节数会显著增加帧变长后周期就可能从250μs被拉到350μs以上。所以我把所有关节模组的PDO都做了裁剪只保留位置、速度、电流、状态字和故障码这些必要对象诊断类的寄存器全部走SDO按需读取这样既保证控制实时性又能保留调试时的完整观测能力。3.5 用Wireshark抓取EtherCAT报文定位问题EtherCAT调试离不开Wireshark。EtherCAT使用以太网类型0x88A4Wireshark能直接识别并解析协议层。抓包时要注意几点网卡要支持混杂模式最好用一个工业级USB网卡避免板载网卡丢包抓包点一般选择主站网卡和第一个从站之间这样能看到完整的一帧如何从头到尾经过所有从站并返回。通过Wireshark里的EtherCAT解析树可以清晰看到每条LRW命令的地址、长度和WKC工作计数器WKC不对就说明从站没有按预期处理数据。还能在抓包里看到从站状态机迁移的报文比如从INIT到PREOP、SAFEOP、OP的过程如果某个状态切换失败通常会伴随AL状态码查从站手册对应的错误码就能快速定位。我遇到过最典型的一种问题从站可以进PREOP但一进SAFEOP就报错最终查出来是SM2的邮箱配置和SSC代码里不一致从站在SAFEOP阶段无法正确发送过程数据。4. CANWeb网关与千兆以太网让现场总线“上云”和“上车”CANWeb这个词有些朋友可能不太熟简单说就是把CAN总线的设备、报文和数据打包成Web或工业以太网可访问的资源网关负责把CAN帧“翻译”成TCP/IP或Web接口让上位机、远程监控平台、调试终端都能通过HTTP、MQTT等协议读取关节状态和修改参数。在这套人形机器人控制系统里CANWeb网关放在控制网段和调试网段之间一边接底层的CAN/CANFD网络一边接千兆以太网交换机让整个关节下位机的“盲盒状态”变成了可远程打开的Web页面。4.1 CANWeb网关的两种工作模式透明传输和寄存器映射CANWeb网关一般有透明传输和寄存器映射两种典型工作模式。透明传输模式适合联调早期网关只是把CAN/CANFD帧原封不动地转成UDP或TCP报文上位机收到的是带CAN ID的原始帧优点是实现简单缺点是谁都得懂CAN报文协议才能看懂数据。寄存器映射模式更适合系统稳定之后的运行阶段网关内部维护一张“CAN ID偏移地址→寄存器地址”的查找表上位机读取寄存器地址时网关主动去CAN总线请求对应数据收到响应后按照字段解析再返回。这样上层算法和监控界面只关心数据本身不需要关心CAN底层哪些ID怎么编码、哪个字节是什么含义。在人形机器人项目中我坚定选择寄存器映射模式。原因很简单后期参与联调的不仅有嵌入式工程师还有做步态算法、做UI、做现场维护的同事不可能要求所有人都去记忆每个关节模组的CAN寄存器表。网关配置页面上把“关节1目标位置”“关节1实际位置”“关节1电流”等语义化字段映射好谁来都能看懂。4.2 网关节点的关键配置项与调试手段配置CANWeb网关时有几个关键项一定要填对。第一是CANFD的波特率参数仲裁段和数据段要分别设置和前面提到的CAN节点保持一致否则网关根本收不到关节报文。第二是CAN滤波ID建议先按关节编号分段配置比如只接收本组关节相关的ID避免无关报文占用网关处理时间。第三是报文映射表这里最容易出错因为每个关节模组的寄存器地址不一定连续映射表填错后上位机读出来的数值千奇百怪。我建议把映射表做成配置模板先在文本里按表头逐条比对再从Web页面导入不要直接在网页上一个一个手敲。第四是周期上报配置网关可以按周期主动推送指定寄存器的变化值非常适合做曲线监控。调试阶段我会把网关的以太网抓包打开先在网关侧确认CAN帧确实进来了再看以太网侧报文是否把数据字段解析正确。如果CAN侧状态正常但以太网侧拿不到数据优先检查网关的MAC地址、IP地址和端口冲突这类设备经常因为和上位机不在同一网段导致通信失败。命令“ping网关IP”通不通并不能代表应用层正常必须同时验证TCP端口或UDP端口能通。4.3 千兆以太网的数据通路与实时网段的物理隔离千兆以太网在人形机器人身上主要跑三类数据视觉传感器的原始图像或轻量处理后数据、整机调试监控数据、控制系统与上位机之间的非实时交互数据。这类数据量大、实时性要求不高但带宽占用很高所以和EtherCAT这种实时总线在物理上一定要分开。我在项目里规划了两个网段实时控制网段跑EtherCAT和CAN/CANFD非实时数据网段跑千兆以太网。两个网段之间用主控的独立网卡或网桥隔开。必须分开的原因很简单EtherCAT对时间敏感哪怕交换机只引入几十微秒的转发延迟都可能影响250μs控制周期的稳定性。如果视觉数据流和EtherCAT帧混在同一交换机里一个突发大帧就可能阻塞EtherCAT帧的转发造成关节周期抖动。千兆以太网即使偶发拥塞顶多造成视觉帧的延迟或丢帧不会影响关节控制。有人觉得可以用VLAN隔离一个物理网口我不推荐在人形机器人这种强实时场景里做太复杂的虚拟局域网配置故障排查时物理拓扑越简单越安全。控制器有条件就至少两个独立网口一个绑EtherCAT一个绑千兆以太网互不干扰这也是最省心的做法。4.4 全系统时间基准的统一多总线融合后最头疼的问题之一就是时间戳对不齐。EtherCAT侧有DC时间CAN侧有自己的心跳帧千兆以太网上的视觉数据又有相机自己的时间戳如果各用各的算法融合时需要手动换算稍微差几毫秒就会导致步态数据错位。我的做法是以主控的硬件定时器作为全局时间基准所有数据到主控后统一打上本机时标。EtherCAT的数据根据分布式时钟的偏移换算成主控时间CAN数据以网络管理帧的上升沿作为锚点接收后用主控定时器打戳视觉数据则由主控在收到完整图像帧时统一打戳。虽然这做不到真正的硬件级同步但对大多数融合算法已经够用了。想要更高精度只能把视觉曝光信号和EtherCAT SYNC信号统一接到FPGA或专门的时间同步芯片上这是下一步优化的方向。5. 工程实施中的常见问题与排查技巧实录多总线融合系统问题往往出在“边界”上也就是协议转换和跨网交互的地方。下面这些问题都是我在这套架构上实际遇到并逐一排查过的记录下来给后来人少走点弯路。5.1 EtherCAT从站掉线、进不了OP状态和同步不稳EtherCAT从站掉线是调试阶段遇到最多的问题。我的排查顺序是固定的先看主站日志里的错误码和掉线从站地址再确认是物理层还是协议层。物理层的典型表现是从站“偶发掉线”每次掉线后自动恢复运行一段时间又掉这种十有八九是线缆屏蔽层没有接好、插头氧化或者连接器虚接EtherCAT对线序和屏蔽的要求比普通以太网高得多。如果排查完物理层没问题再看从站状态机卡在哪个阶段一直在PREOP进不了SAFEOP多半是邮箱通信或SM配置的问题能从SAFEOP进OP但跑一会儿又退回SAFEOP通常是看门狗超时说明主站和从站之间的数据刷新链断了。抓包确认WKC是否正常是定位这类问题的关键手段WKC错误反映了从站没有正确响应主站对过程数据的写入或读取请求。同步不稳的问题排查重点在DC。如果关节同步偏差过大先读从站寄存器0x092C到0x0930的时钟差看看和主站参考时钟差了多少。如果差值在几百纳秒到几微秒量级通常是SYNC中断处理不及时从站MCU的中断优先级被其他任务拉低了如果差值在毫秒量级那基本上是DC模式没真正开启从站实际跑的是FreeRun。5.2 CAN/CANFD总线偶发错误帧和冗余切换时的关节抖动CAN网络偶发错误帧排在第一位的原因永远是物理层。终端电阻没接好、屏蔽层单端接地没有实施、电机动力线和CAN线布线间距不够都会引入干扰。我们项目里出现过高速运动时关节模组偶发总线错误最终查到是动力线对CAN线串扰。解决方案不复杂CAN线用双绞屏蔽线屏蔽层单端接地动力线和通信线分层走线保持至少10cm间距通信线不要和电机线经过同一个过线孔。CAN收发器选型上尽量选用带共模电感和总线保护能力的一体化收发器对抑制现场干扰有明显的帮助。冗余切换出现关节抖动要看切换过程是否丢了报文。我在关节模组侧加了一个“切换计数器”每次发生A/B切换都会记录触发原因和时间戳包括心跳超时、物理层错误、连续错误帧等方便复现和定位。另外要提醒一点A/B网同时启用时备网不能只是被动监听也要周期性地在B网上做链路自检和数据预同步这样真正切换时B网上的数据关系已经建立接管才顺滑。5.3 多总线跨界问题CANWeb映射对不上、时间戳不准跨界问题最典型的现象是EtherCAT控制正常CAN也正常但CANWeb网关读上来的数据对不上或者帧时间戳和控制系统时间错位。第一种情况基本上就是网关映射表没维护好关节模组换了固件版本导致寄存器地址整体偏移但网关映射表没有同步更新。我的习惯是维护一份寄存器映射表脚本每次固件变更后自动生成网关配置而不是手动改。第二种情况是各总线时间基准统一做得不好尤其当CANWeb网关作为独立设备存在时它打的时间戳是网关自己的时钟和主控并不一致。如果要让监控曲线和算法日志对得上最好在网络管理帧里带一个主控的时钟域值网关收到后换算并标记保证全链路观察窗口一致。5.4 常用调试工具链组合多总线系统调试单靠一个软件是玩不转的我日常固定用这样一套组合工具用途实战要点WiresharkEtherCAT帧分析确认0x88A4帧、WKC、状态机迁移专业CAN分析仪CANFD总线监控统计错误帧、总线负载率保存原始帧日志主站配置工具导入XML、配置PDO和DC检查从站EEPROM和XML一致性CANWeb网关Web页面查看寄存器映射、远程参数先看CAN侧计数再看以太网侧报文逻辑分析仪定位跨板级时序抓SYNC中断和PWM更新边缘看中断是否准点这套组合里Wireshark和CAN分析仪使用频率最高。遇到边界问题的时候我会同时开着抓包工具和总线路由监控两边对照着看通常很快就能判断是A网还是B网、是协议层还是物理层。5.5 常见问题速查表现象常见原因排查方向EtherCAT从站偶发掉线物理层信号质量差、看门狗超时查线缆屏蔽、接地、从站状态日志从站进不了OP状态XML/EEPROM不一致SM配置错误检查设备描述文件、同步管理器参数关节同步偏差过大DC未开启、SYNC中断未接对读0x092C时钟差、检查中断配置CAN总线错误帧多终端电阻、动力线串扰、地电位差查终端电阻、分层布线、屏蔽接地冗余切换引起关节抖动切换时间过长、切换过程丢报文缩短心跳超时窗口、记录切换计数器上位机读CAN数据异常CANWeb映射表错误、CAN ID滤波错检查寄存器映射、CAN滤波配置视觉数据和关节数据对不齐时间基准未统一、网关时钟独立主控统一时标、硬件定时器锚定6. 一些个人实际经验与后续扩展建议文章写到这里不做什么宏大总结就聊几句切身体会。多总线融合方案刚上项目时团队确实觉得“重”因为要维护的通信链路变多了调试工具变多了出错排查的范围也变大了。但人形机器人这种把控制带宽、同步精度、安全可靠都逼到极限的系统“分总线各司其职”其实是最稳妥的路子没有之一。我踩过几次坑之后最深的体会是物理层永远是排在第一位的排查对象。CAN线不要省屏蔽线EtherCAT连接器要选质量好的冗余线束要物理分层很多看起来像“软件bug”的问题最后都归结为接触不良或者布线干扰。其次所有总线的可观测性一定要在方案早期就规划好抓包接口、独立网卡、时间戳统一手段都要提前留出来后期再补不仅麻烦而且很多现场问题根本复现不了。再一个PDO映射和寄存器映射表是调试的地基开工之前先把这两份文档梳理清楚比什么都重要。A/B冗余不是图纸上画两条线就完了要反复做断线试验把切换时间、切换抖动和切换日志测出来用数据说话再谈可靠性。如果后续还要扩展我建议把CANWeb网关的寄存器映射表做成自动生成脚本因为项目后期关节模组固件迭代频繁人工维护映射表容易出错。更远一步人形机器人后续大概率会上更多视觉、点云、集群通信数据这套“EtherCAT管同步、CAN/CANFD保底、千兆以太网传大包、CANWeb做运维”的基础架构依然扛得住只需要在网络带宽和时间同步精度上持续做增量优化就好。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →