【解决】tf2.LookupException: “base_link“ passed to lookupTransform argument target_frame does not exist.
使用环境ROS MELODIC, Python 2.7在ROS中使用tf监听两个frame的变换关系时,出现以下报错``
·
使用环境ROS MELODIC, Python 2.7
在ROS中使用tf监听两个frame的变换关系时,出现以下报错
Traceback (most recent call last):
File "controller.py", line 241, in <module>
print(tf_listener.lookupTransform("base_link", "base", rospy.Time().now()))
File "/opt/ros/melodic/lib/python2.7/dist-packages/tf/listener.py", line 104, in lookupTransform
msg = self._buffer.lookup_transform(strip_leading_slash(target_frame), strip_leading_slash(source_frame), time)
File "/opt/ros/melodic/lib/python2.7/dist-packages/tf2_ros/buffer.py", line 87, in lookup_transform
return self.lookup_transform_core(target_frame, source_frame, time)
tf2.LookupException: "base_link" passed to lookupTransform argument target_frame does not exist.
本人代码如下
import tf
tf_listener = tf.TransformListener()
(trans,rot) = tf_listener.lookupTransform('base', 'base_link', rospy.Time(0))
发现print(tf_listener.canTransform("base", "base_link", rospy.Time().now()))
时,输入的第一个是0
,之后都是1
在代码中加入判断后,运行正常
import tf
tf_listener = tf.TransformListener()
if tf_listener.canTransform("base", "base_link", rospy.Time().now()):
(trans,rot) = tf_listener.lookupTransform('base', 'base_link', rospy.Time(0))
更多推荐
已为社区贡献1条内容
所有评论(0)