我是靠谱客的博主 朴实雪糕,最近开发中收集的这篇文章主要介绍ROS_TF报错汇总,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

来源:https://zhengyu.tech

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

最后

以上就是朴实雪糕为你收集整理的ROS_TF报错汇总的全部内容,希望文章能够帮你解决ROS_TF报错汇总所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部