外观
踩坑github.com7 天前
智元灵犀 X1 / 远征 A2 在非实时内核下 EtherCAT 1kHz 周期抖动触发关节过流保护
硬件与软件环境
- 机型:智元 灵犀 X1(全栈开源双足人形机器人)
- 软件栈:Ubuntu 22.04 + AimRT 通信框架 +
agibot_x1_infer+ IgH EtherCAT Master
故障现象与报错
在启动全身强化学习推理与硬件控制节点后,机器人站立数分钟内偶发出现腿部关节咔哒冲击声,随后从站驱动器亮红灯报过流或同步错误(AL Status 0x001A: Synchronization error),机器人进入软急停保护。
根因分析
全身 20+ 个高功率密度准直驱关节模组通过 EtherCAT 总线以 1kHz(1ms 周期)同步收发 PDO 过程数据。若上位机未打 PREEMPT_RT 补丁或未隔离 CPU 核心,当后台触发日志刷盘、Wi-Fi 扫描或 GPU 内存拷贝时,主站发送线程会出现 > 800 μs 的周期抖动(Jitter),导致从站插补器速度突变产生瞬时尖峰电流。
解决步骤
- 隔离专用实时 CPU 核心(
isolcpus): 假设机载 CPU 为 8 核,将第 6、7 核专门隔离给 EtherCAT 收发线程与 RL 运控环。修改/etc/default/grub:text执行GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=6,7 nohz_full=6,7 rcu_nocbs=6,7 irqaffinity=0-5"sudo update-grub并重启。 - 使用
chrt与taskset绑定最高 FIFO 实时优先级: 在 AimRT 启动脚本中将硬件通信线程绑定至隔离核并设为SCHED_FIFO优先级 90:bashsudo chrt -f 90 taskset -c 6,7 ./build/x1_control_node - 验证
cyclictest最大延迟:运行sudo cyclictest -m -sp90 -i200 -d60s,确保满载下 Max Latency 稳定在 50 μs 以内再上电使能下肢关节。
来源
本页事实对应的公开页面,以原文为准。
- GitHub AgibotTech/agibot_x1_infer访问 2026-10-21