外观
踩坑GitHub frankaemika/libfranka3 个月前
Ubuntu RT内核下libfranka通信约束违规报错及网卡排查
本文由 AI 根据公开内容整理,可能有误,请以原文为准:
communication_constraints_violationwith Ubuntu PREEMPT_RT kernel(GitHub frankaemika/libfranka #207)
状态:有绕过办法
问题
在Ubuntu 24.04搭配6.8.x-realtime内核运行libfranka 0.9.2时,机器人运动频繁被反射机制中止并报错communication_constraints_violation。时序日志显示receiveRobotState最大耗时近5ms且标准差超200us,远超1ms控制周期要求。
环境
libfranka 0.9.2;Ubuntu 24.04;内核6.8.1-1015-realtime或6.8.1-1031-realtime;网卡Realtek RTL8125 (r8169) 或 Aquantia AQC113 (atlantic)。
解决办法
- 执行
ping <Franka_Control_IP>测试网络延迟,若平均延迟持续大于1ms则判定为物理链路或驱动实时性问题。 - 尝试将机器人连接从主板集成LAN口或PCIe独立网卡切换至USB-C转以太网适配器,验证是否因原网卡在RT内核下调度抖动导致丢包。
- 检查
sudo dmesg输出,若出现pcieport AER Correctable error或特定网卡模块(如atlantic、r8169)报错,需排查PCIe通道稳定性或更换兼容RT内核的网卡型号。 - 对比XanMod等其他RT内核表现,若仅Ubuntu官方realtime内核复现该问题,建议暂时迁移至验证过的XanMod RT内核以规避底层调度差异。
讨论原作者:@christian-rauch 等,版权归原作者所有。
来源
本页事实对应的公开页面,以原文为准。