ROS :Tranform出错简易处理 tf出错现象及解析
有时候由于urdf以及代码中有些遗漏,可能导致TF出现问题,此文只作为阐明TF重要性的示例,不是解决方案!
请注意此方法不保证正确和唯一,解决方案多样,欢迎留言补充,这里抛砖引玉~
以下面为例:
启动地图构建程序,但是没有出现地图,rviz现象为:
这里有两个警告和两个错误:
使用下面命令查看TF tree:
$ rosrun rqt_tf_tree rqt_tf_tree
/odom和/base_footprint断开了!
这里有一点需要重点说明,tf中的odom和topic的odom虽然名称一样,但完全不是一类。
怎么办呢?
只需要一步即可:可以参考官网robot_state_publisher具体可以参考附录:~
在launch文件中添加:
<node pkg="tf" type="static_transform_publisher" name="fix_odom" args="0 0 0 0 0 0 odom base_footprint 50" />
然后重新运行:
熟悉的地图出来了,再看一下tf:
OK!
在自己的机器人上使用机器人状态发布器
说明: 本教程介绍如何发布机器人的状态, TF ,使用机器人状态出版商。
教程级别: BEGINNER
下一个教程: 有关如何结合使用robot_state_publisher与urdf的详细教程,请查看 本教程
内容
- 作为ROS节点运行
- robot_state_publisher
- 订阅主题
- 参数
- 示例启动文件
- robot_state_publisher
- 作为库运行
当你使用一个有许多相关框架的机器人时,将它们全部发布到tf就成了一项任务。机器人状态发布者是一个工具,将为您完成这项工作。
机器人状态发布器帮助您将机器人的状态广播到tf转换库。机器人状态发布器内部具有机器人的运动学模型; 因此给定机器人的关节位置,机器人状态发布者可以计算和广播机器人中每个链接的3D姿态。
您可以将robot状态发布者用作独立的ROS节点或库:
作为ROS节点运行
robot_state_publisher
运行机器人状态发布器的最简单方法是作为节点。对于正常用户,这是建议的用法。你需要两件事来运行机器人状态发布者:
一个urdf XML描述机器人装上的参数服务器。
将关节位置发布为sensor_msgs / JointState的源。
请阅读如何配置参数和主题下面的章节robot_state_publisher。
订阅主题
joint_states(sensor_msgs / JointState)
- 关节位置信息
参数
robot_description(urdf地图)
该urdf XML机器人的描述。这是通过访问`urdf_model :: initParam`
tf_prefix(string)
设置TF的变换的空间感知出版前缀。见tf_prefix了解更多详情。
publish_frequency(double)
- 状态发布者的发布频率,默认值:50Hz。
示例启动文件
一旦你设置了XML机器人描述和一个关节位置信息源,只需创建一个启动文件,像这样:
<launch> <node pkg =“robot_state_publisher”type =“robot_state_publisher”name =“rob_st_pub”> <remap from =“robot_description”to =“different_robot_description”/> <remap from =“joint_states”to =“different_joint_states”/> </ node> </ launch>
作为库运行
高级用户还可以从自己的C ++代码中将机器人状态发布者作为库运行。在添加标题后:
#include <robot_state_publisher / robot_state_publisher.h>
所有你需要的是一个发生在一个构造函数KDL树
RobotStatePublisher(const KDL :: Tree&tree);
现在,每次你想发布你的机器人的状态,你调用publishTransforms函数:
//发布移动关节 void publishTransforms(const std :: map <std :: string,double>&joint_positions, const ros ::时间&time); //发布固定关节 void publishFixedTransforms();
第一个参数是具有关节名称和关节位置的映射,第二个参数是记录关节位置的时间。如果地图不包含所有的联合名称,可以。如果地图包含一些不是运动模型一部分的关节名称,也可以。但请注意,如果你不告诉关节状态出版者关于你的运动学模型中的一些关节,那么你的tf树将不完整。
ROS :Tranform出错简易处理 tf出错现象及解析相关推荐
- python3 tensorflowprint错误_解决import tensorflow as tf 出错的原因
笔者在运行 import tensorflow as tf时出现下面的错误,但在运行import tensorflow时没有出错. >>> import tensorflow as ...
- 【ROS学习】- tf学习 - tf中重要函数解析 (陆续更新....)
文章目录 一.函数waitForTransform().lookupTransform() 具体解释 二.函数 tf::StampedTransform().sendTransform() 具体解释 ...
- ROS教程译文1———TF转换树的设置和使用
本文属于ROS翻译文章,来自WIKI: http://wiki.ros.org/navigation/Tutorials/RobotSetup/TF (由于水平有限,翻译错误在所难免,发现错误欢迎评论 ...
- ROS代码经验系列-- tf进行位置查询变换
include文件: #include "tf/transform_broadcaster.h" #include "tf/transform_listener.h&qu ...
- TF之TF flags:TF flags(命令行解析)的简介、安装、使用方法之详细攻略
TF之TF flags:TF flags(命令行解析)的简介.安装.使用方法之详细攻略 目录 TF flags的简介 TF flags的安装 TF flags的使用方法 TF flags的简介 1.f ...
- Jupyter notebook import tensorflow as tf 出错
解决方法如下 activate tensorflow conda install ipython conda install jupyter 重新运行 jupyter notebook
- python打包一直出错_PyInstaller打包出错问题解决实践记录
代码小工蚁英语单词列表生成器V2.0开发过程中问题备忘 笔者近期在使用Pyinstaller制作.EXE程序时遇到问题,出现如下提示: PyInstaller cannot check for ass ...
- My SQL出错代码及出错信息对照
My SQL的出错代码表,根据My SQL的头文件mysql/include/mysqld_error.h整理而成.错误之处,请大家指正. 1005:创建表失败 1006:创建数据库失败 1007:数 ...
- MYSQL出错代码和出错信息对照表
mysql在操作中难免会出现不少错误,mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成.里面如有错误之处,恳请大家指正. 1005:创建表 ...
最新文章
- C语言输出素数简单,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...
- Docker怎样提交镜像(把容器打成镜像)
- pandas(五) -- 文本处理
- android studio- java注释自己动手弄起来
- SAP Spartacus 服务器端渲染调试的开发端版本
- 用字节流查看txt文件
- Test传送门(更新中)
- LazyInitializationException--由于session关闭引发的异常
- oracle串连接,Oracle中串连接符||的使用心得(个人见解)
- MATLAB:如何保存图片到指定文件夹?
- linux中备份mysql数据库命令_linux备份mysql数据库命令
- 卷积神经网络模型之——VGG-16网络结构与代码实现
- 行人重识别论文阅读7-基于图卷积的行人骨架识别
- quot 成为通用计算机器 quot,汉语拼音:从读写工具到文化津梁
- FPGA基础入门篇(三) 程序的固化和下载
- 全国最大孔雀养殖基地在哪里???
- python之模块导入及模块导入路径
- cisco Linux SRv6 实战踩坑记录
- Deep Learning Paper读后简记
- 计算机里的小游戏在哪,windows10游戏在哪里_win10电脑自带的游戏在哪里
热门文章
- FILETIME和LARGE_INTEGER
- python contourf色阶_matplotlib:plt.contourf(画等高线)
- 任务2:PCB投板方法
- stew() setfill()
- Vue基础复习(2)Vue2.X过渡、动画和自定义指令
- 美国诚实签经验——要观察面试官,能识人,找友好的面试官
- ClearML入门:简化机器学习解决方案的开发和管理
- iOS 字典转模型纯swift框架HandyJSON使用实例:本地存取
- 工业品MRO采购网站有哪些优势?一文带你读懂
- 南京市秦淮区税务局走访云创,并在央视频进行宣传报道