TF_REPEATED_DATA ignoring data with redundant timestamp for frame
编写时出错
在进行tf广播时出现以上错误,出现以上错误,汇总各种可能的改进建议:
# 首先建议使用tf2,替代tf1
import tf2_ros
m=tf2_ros.TransformBroadcaster()
# 时间戳使用now(),并且注意在发布时前实时更新
t.header.stamp = rospy.Time.now()
m.sendTransform(t)
运行其他时出错
首先可视化tf节点信息,第一个用不了用第二个,tf2_tools可能不是预装好的:
rosrun tf view_frames
rosrun tf2_tools view_frames.py
等一会,它会先订阅5秒tf广播来打印当前的tf节点图
evince frames.pdf
仔细看看那个节点没连上,自己添加上。
- 自己在launch文件一面加:
<node pkg="tf" type="static_transform_publisher" name="A_to_B" args="0.0 0.0 0.0 0 0 0.0 /A /B 100"/>
- 直接在终端发布
rosrun tf static_transform_publisher 0.0 0.0 0.0 0 0 0.0 /A /B 100
TF_DENORMALIZED_QUATERNION: because of an invalid quaternion in the transform
原因:传入的四元数没有归一化。
解决方案:导入pyquaternion,进行归一化处理。注意在ROS中是(x,y,z,w),而在pyquaternion中是(w,x,y,z)
from pyquaternion import Quaternion
rot_4 = Quaternion(rot_3[3],rot_3[0],rot_3[1],rot_3[2])
rot_4 = rot_4.normalised
评论区