# franka_robot_state_broadcaster因trylock失败频繁报错

> 原文链接：https://robotics.hellobike.com/pitfalls/2025-02-04-franka-ros2-94
> 频道：pitfalls | 更新日期：2025-02-04 | 标签：auto, github-issue, franka_ros2
> 核心摘要：ROS2 Humble新版ros2_control暴露broadcaster更新错误，系realtime_tools的trylock机制导致，需增加连续失败阈值或弃用该工具。

# franka_robot_state_broadcaster因trylock失败频繁报错

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Franka robot state broadcaster frequently fails to update](https://github.com/frankarobotics/franka_ros2/issues/94)（GitHub frankaemika/franka_ros2 #94）

**状态**：有绕过办法

## 问题

在ROS2 Humble最新版ros2_control中，controller_manager频繁输出franka_robot_state_broadcaster更新返回ERROR的日志。故障定位于源码L128的realtime_franka_state_publisher-&gt;trylock()调用。尽管控制器实际性能未受影响，但错误日志刷屏干扰监控。

## 环境

Franka机器人，ROS2 Humble，franka_ros2（commit 9b0f584），ros2_control（含PR #1969更新），realtime_tools humble分支

## 解决办法

1. 修改 franka_robot_state_broadcaster 中 trylock() 失败后的处理逻辑，引入连续失败计数器，仅在超过设定阈值后才返回 controller_interface::return_type::ERROR，避免单次伪失败触发报错
2. 评估移除对 realtime_tools::RealtimePublisher 的依赖，改用其他线程安全发布机制以彻底规避 try_lock 伪失败问题
3. 关注 franka_ros2 humble 分支后续修复提交，维护者已确认问题并计划合并解决方案

讨论原作者：@scastro-bdai 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub frankaemika/franka_ros2 #94：Franka robot state broadcaster frequently fails to update](https://github.com/frankarobotics/franka_ros2/issues/94)