tf::TransformListener 定义成局部变量报错passed to lookupTransform argument target_frame does not exist.
时间: 2024-02-15 14:04:24 浏览: 241
TypeError: Unexpected keyword argument passed to optimizer: learning_rate 解决方法
`tf::TransformListener`定义成局部变量报错"passed to lookupTransform argument target_frame does not exist"很可能是因为在`lookupTransform`函数中使用了一个不存在的坐标系名称。坐标系名称通常在TF树中定义,必须与TF树中的名称匹配才能成功查询变换。请检查代码中`lookupTransform`函数中参数`target_frame`的名称是否正确,并确保在TF树中存在。
此外,如果你在程序中使用了多个`tf::TransformListener`对象,需要确保每个对象都使用不同的名称空间。否则,可能会发生TF树冲突的情况,导致查询变换失败。可以通过在创建`tf::TransformListener`对象时指定名称空间来避免这种情况,例如:
```c++
tf::TransformListener tf_listener(ros::Duration(10), true);
tf_listener.setUsingDedicatedThread(true);
tf_listener.setTargetFrame("base_link");
```
其中,`setTargetFrame`函数可以为`tf::TransformListener`设置目标坐标系,避免在`lookupTransform`函数中重复指定。
阅读全文