# tf2::TransformException：帧'base_link'已存在于静态变换树中

- **ID:** `ros2/tf2-static-transform-broadcaster-duplicate`
- **领域:** ros2
- **类别:** runtime_error
- **验证级别:** ai_generated
- **修复率:** 90%

## 根因

两个节点以不同的时间戳广播相同的静态变换（例如base_link到odom），导致静态变换缓冲区冲突。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| ros2-humble | active | — | — |
| ros2-iron | active | — | — |
| ros2-rolling | active | — | — |

## 解决方案

1. ```
   确保只有一个节点广播静态变换；从启动文件中移除重复的广播器。例如：在launch.py中注释掉第二个static_transform_publisher节点。
   ```
2. ```
   如果需要两个广播器，使用不同的帧名称（例如base_link_static和base_link_dynamic），并相应更新下游节点。
   ```

## 无效尝试

- **** — Static transforms are cached; delay doesn't resolve the duplicate conflict once both broadcast. (80% 失败率)
- **** — Renaming frames breaks transform chains and other nodes expecting the correct frame names. (70% 失败率)
