Skip to content

踩坑GitHub frankaemika/libfranka3 个月前

Ubuntu RT内核下libfranka通信约束违规报错及网卡排查 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:communication_constraints_violation with 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)。

解决办法 ​

  1. 执行ping <Franka_Control_IP>测试网络延迟,若平均延迟持续大于1ms则判定为物理链路或驱动实时性问题。
  2. 尝试将机器人连接从主板集成LAN口或PCIe独立网卡切换至USB-C转以太网适配器,验证是否因原网卡在RT内核下调度抖动导致丢包。
  3. 检查sudo dmesg输出,若出现pcieport AER Correctable error或特定网卡模块(如atlantic、r8169)报错,需排查PCIe通道稳定性或更换兼容RT内核的网卡型号。
  4. 对比XanMod等其他RT内核表现,若仅Ubuntu官方realtime内核复现该问题,建议暂时迁移至验证过的XanMod RT内核以规避底层调度差异。

讨论原作者:@christian-rauch 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub frankaemika/libfranka #207:`communication_constraints_violation` with Ubuntu PREEMPT_RT kernel访问 2026-10-23