Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ROS Tranform出错简易处理 tf出错现象及解析

ROS Tranform出错简易处理 tf出错现象及解析

作者头像
zhangrelay
发布于 2019-01-23 03:47:20
发布于 2019-01-23 03:47:20
2.9K00
代码可运行
举报
运行总次数:0
代码可运行

有时候由于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的详细教程,请查看 本教程

内容

  1. 作为ROS节点运行
    1. robot_state_publisher
      1. 订阅主题
      2. 参数
    2. 示例启动文件
  2. 作为库运行

当你使用一个有许多相关框架的机器人时,将它们全部发布到tf就成了一项任务。机器人状态发布者是一个工具,将为您完成这项工作。

机器人状态发布器帮助您将机器人的状态广播到tf转换库。机器人状态发布器内部具有机器人的运动学模型; 因此给定机器人的关节位置,机器人状态发布者可以计算和广播机器人中每个链接的3D姿态。

您可以将robot状态发布者用作独立的ROS节点或库:

作为ROS节点运行

robot_state_publisher

运行机器人状态发布器的最简单方法是作为节点。对于正常用户,这是建议的用法。你需要两件事来运行机器人状态发布者:

请阅读如何配置参数和主题下面的章节robot_state_publisher

订阅主题

joint_states(sensor_msgs / JointState

  • 关节位置信息
参数

robot_description(urdf地图)

tf_prefix(string)

  • 设置TF的变换的空间感知出版前缀。见tf_prefix了解更多详情。

publish_frequency(double)

  • 状态发布者的发布频率,默认值:50Hz。

示例启动文件

一旦你设置了XML机器人描述和一个关节位置信息源,只需创建一个启动文件,像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <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 ++代码中将机器人状态发布者作为库运行。在添加标题后:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  #include <robot_state_publisher / robot_state_publisher.h>

所有你需要的是一个发生在一个构造函数KDL树

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  RobotStatePublisher(const KDL :: Tree&tree);

现在,每次你想发布你的机器人的状态,你调用publishTransforms函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  //发布移动关节
  void publishTransforms(const std :: map <std :: string,double>&joint_positions,
                         const ros ::时间&time);

  //发布固定关节
  void publishFixedTransforms();

第一个参数是具有关节名称和关节位置的映射,第二个参数是记录关节位置的时间。如果地图不包含所有的联合名称,可以。如果地图包含一些不是运动模型一部分的关节名称,也可以。但请注意,如果你不告诉关节状态出版者关于你的运动学模型中的一些关节,那么你的tf树将不完整。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年03月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ROS编程(ETH)2018更新版习题说明(四)
本次练习的目标是处理真实的Husky机器人上记录的数据。记录的bag文件包含车轮里程计、惯性测量单元(IMU)和激光扫描测量 等传感器的测量数据。 本节的任务是使用这些原始传感器数据所提供的信息通过状态估计节点来定位机器人,该节点采用扩展卡尔曼滤波器(EKF)。与此相同的定位节点在仿真也同样在启动Husky的时候运行。使用rqt_multiplot查看定位信息的输出,并在RViz中可视化激光数据。
zhangrelay
2019/01/23
1.1K0
ROS机器人TF基础(坐标相关概念和实践)
机器人建模和控制必须掌握坐标系和坐标变换等基础知识。机器人在空间中运动主要有两种形式:
zhangrelay
2020/09/06
1.5K0
ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3
由于缺¥,所有设备都非常老旧,都是其他实验室淘汰或者拼凑出来的设备。机器人控制笔记本是2010年版本。
zhangrelay
2023/02/26
7410
ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3
使用myAGV、Jetson Nano主板和3D摄像头,实现了RTAB-Map的三维建图功能
在现代机器人技术中,高精度的环境感知与建图是实现自主导航的关键。本文将展示如何使用myAGV Jetson Nano移动平台搭载Jetson Nano BO1主板,结合RTAB-Map和3D相机,实现更加立体和细致的环境建图。myAGV Jetson Nano具备SLAM雷达导航功能,Jetson Nano提供了强大的计算能力,适合处理复杂的SLAM任务。通过引入3D摄像头,我们能够将摄像头采集的深度信息融入到地图中,使其不仅具有平面数据,还包含了丰富的立体信息。在本文中,我们将详细介绍这一过程中使用的技术,以及解决实施中遇到的问题。
大象机器人
2024/08/28
2461
使用myAGV、Jetson Nano主板和3D摄像头,实现了RTAB-Map的三维建图功能
ROS机械臂篇
从https://github.com/danfis/libccd下载源码,解压缩后进入主文件夹下的src,编译
算法之名
2023/10/16
1.1K0
ROS机械臂篇
ROS机器人操作系统资料与资讯(2018年8月)
暑假好快,转眼开学,假期基本都在出差,工作这些年,发现ROS讨论最火的时候基本在2015-17年,进入18年,基本教程已经完全普及,课程体系也已经完备,国内基本机器人相关专业和方向,都已经逐步开展基于ROS实践课程和设计,由爆发走向平稳发展啦。很多国内机器人实验室都积累了3年以上ROS研发经验了(部分高校有5-8年积累,非常强悍),对于课程需求而言,逐步向个性化,高品质,专业型发展。百度的Apollo 3也发布了,机器人相关发展势头依然非常迅猛,当然,相比人工智能的澎湃火力还是要差不少。
zhangrelay
2022/04/29
6690
ROS机器人URDF建模
所有内容均在ROS1 indigo,kinetic,melodic,noetic以及ROS2 dashing,foxy等测试通过。
zhangrelay
2020/09/16
1.9K0
ROS机器人URDF建模
ROS联合webots实战案例(五)导航功能包入门2
在前面几章中分别介绍了在webots中如何创建自己的机器人、添加传感器以及使用手柄或键盘驱动它在仿真环境中移动。在本章中,你会学习到ROS系统最强大的特性之一,它能够让你的机器人自主导航和运动。
锡城筱凯
2021/02/07
1.6K0
ROS联合webots实战案例(五)导航功能包入门2
[ROS2 基础] 仿真系统和搭建方法
机器人的开发需要很多的测试。而测试就需要搭建场地。测试项目一多,需要的场地的形式也会更多。搭建这样的场地不仅成本高,耗费的人力和物力都相当可观。有些场景在真实环境中不容易出现,但却可以在仿真环境中制造出来。
首飞
2022/06/12
3.8K0
[ROS2 基础] 仿真系统和搭建方法
基于ROS的机器人建图与导航仿真全过程
原文:https://blog.csdn.net/qq_45152498/article/details/124296963
一点人工一点智能
2023/03/02
1.4K0
基于ROS的机器人建图与导航仿真全过程
ROS专题----机器人模型urdf简明笔记
版权声明:本文为zhangrelay原创文章,有错请轻拍,转载请注明,谢谢... https://blog.csdn.net/ZhangRelay/article/details/60959642
zhangrelay
2019/01/23
2K0
ROS2机器人编程简述humble-第二章-SIMULATED ROBOT SETUP .4
到目前为止,已经看到了基本包,展示了ROS2的基本元素,以及如何创建节点、发布和订阅。ROS2不是通信中间件,而是机器人编程中间件,试图为机器人创建行为。因此,需要一个机器人。机器人相对昂贵。有可能有一个真正的机器人,比如装有激光和RGBD相机的Kobuki,价格约为1000欧元。一个被认为是专业机器人的价格可以达到数万欧元。由于并非所有读者都计划购买机器人来运行ROS2,将在模拟器中使用Tiago机器人。Pal Robotics的Tiago机器人由带距离传感器的差动底座和带手臂的躯干组成,头部装有RGBD摄像头。在我们已经添加到worsespace的软件包中,已经有必要在Gazebo中模拟Tiago机器人(ROS2中的参考模拟器之一)。
zhangrelay
2023/02/10
1K0
ROS2机器人编程简述humble-第二章-SIMULATED ROBOT SETUP .4
ROS机器人程序设计(原书第2版)补充资料 (捌) 第八章 导航功能包集入门 navigation
书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用。
zhangrelay
2019/01/23
6470
ROS深入探索(四)——简单的机器人仿真
这本书是关于国外关于ROS出版的第一本书,主要针对Electric和Fuerte版本,使用机器人主要是TurtleBot。书中详细讲解了关于机器人的基本仿真、导航、路径规划、图像处理、语音识别等等,而且在google的svn上发布了所有代码,可以通过以下命令下载、编译:
CreateAMind
2018/07/24
9060
ROS深入探索(四)——简单的机器人仿真
Python 机器人学习手册:1~5
本书的主要目的是教您如何从头开始构建自动移动机器人。 机器人将使用 ROS 进行编程,其操作将使用名为 Gazebo 的模拟器进行模拟。 在接下来的章节中,您还将看到使用 ROS 的机器人的机械设计,电路设计,嵌入式编程和高级软件编程。
ApacheCN_飞龙
2023/04/27
2.6K0
计算机操作系统(OS)安装机器人操作系统(ROS)实现物联网功能
博客中大量介绍了将Ubuntu等Linux系统借助机器人操作系统ROS实现机器人控制设计开发和物联网功能案例,并可基于OpenAI等实现人工智能相关训练。
zhangrelay
2021/03/03
2.1K0
ROS自平衡车案例学习(机器人操作系统+现代控制理论融合)
之前,现代控制理论,研究过一些倒立摆和自平衡小车,现在用ROS+Gazebo环境尝试一下。
zhangrelay
2020/09/22
1.3K0
URDF机器人模型ROS1&2案例
2020版如下: ☞  ROS机器人URDF建模 这里,简单补充一下win10/11版本的。 ********************************************************************** ** Visual Studio 2019 Developer Command Prompt v16.9.3 ** Copyright (c) 2021 Microsoft Corporation **************************************
zhangrelay
2022/05/01
2860
ROS深入探索(六)——使用smartcar进行仿真
之前我们使用的都是urdf文件格式的模型,在很多情况下,ROS对urdf文件的支持并不是很好,使用宏定义的.xacro文件兼容性更好,扩展性也更好。所以我们把之前的urdf文件重新整理编写成.xacro文件。
CreateAMind
2018/07/24
6350
ROS深入探索(六)——使用smartcar进行仿真
ROS2机器人实验报告提示05➡寻路⬅Nav2
对比ros2 launch nav2_bringup tb3_simulation_launch.py和ros2 launch sam_bot_description display.launch.py。
zhangrelay
2021/12/02
7710
ROS2机器人实验报告提示05➡寻路⬅Nav2
推荐阅读
相关推荐
ROS编程(ETH)2018更新版习题说明(四)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验