ROS学习篇(七)rostopic消息记录、回放、转.txt

2023-05-16

一、通过bag文件记录话题消息

当发布话题的节点运行后,可以通过rostopic list 列出当前运行的话题,然后记录:

mkdir bagfile
cd bagfile
rosbag record -a  #记录所有的话题

当消息记录完成后,结束ctrl+c终止record的命令行,在新建的bagfile文件中会生成年-月-日-时-分-秒.bag文件。

二、数据重现

我们使用rosbag命令将数据记录在bag文件之后,还可以利用里面的数据重现我们节点的运行状态。

cd bagfile
rosbag info <file_name>

会显示此bag文件的一些详细信息(如下图):
这里写图片描述
回放

cd bagfile
rosbag play <bagfile_name>

默认情况下,rosbag play命令会等待0.2秒之后才开始发布信息,这是为了在发布信息之前通知所有订阅信息的节点,以使它们能够及时地接收到rosbag play发布的信息。这个等待时间可以用-d选项指定。

因为rosbag record记录数据是有延迟的,所以在执行rosbag play最初的一小段时间里消息不会发布,使用-s选项后跟秒数可以跳过bag文件记录的前几秒。

-r,它可以改变信息发布的速度:

rosbag play -r 2 <bagfile_name>   #以两倍的速度发布记录的消息

回放指定话题

rosbag play <your bagfile name> --topics /topic_name

三、选定话题记录

在一个包含数百个话题的大型系统中,经常会发布诸如图像等的大量的信息,把它们都记录到一个文件里是不现实的,好在rosbag record命令提供了仅记录部分话题的能力。

rosbag record -O subset /turtle1/cmd_vel /turtle1/pose

-O选项指定了我们要保存的bag文件的名字(subset.bag),后面的/turtle1/cmd_vel/turtle1/pose则指定了我们要记录信息的话题。

注:rosbag record/play无法完美重现系统的状态。

四、.bag文件转.txt

file_name.bag文件中topic_name话题的消息转换到Txt_name.txt文件中:

rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt

五、.bag文件生成失败,只出现.bag.active文件

根据目前的经验,出现这情况是因为电脑在记录消息时卡掉了,没有完成最终的录制。可以转换成.bag文件,但是消息有丢失(电脑卡掉后的话题内容)
恢复:

  • ①切换到"xxx.bag.active"文件所在的目录下;
  • ②命令行输入“rosbag reindex xxx.bag.active”;
  • ③输入"rosbag fix xxx.bag.active outfile_name.abg";

注:
在第二步结束后,除了原来的以.bag.active为后缀的文件之外,还会生成一个以.bag.org.active为后缀的文件,注意该文件只是中间文件,第三部输入的时候不要对该文件进行修复。

在第三步结束之后,会生成正常的.bag文件

六、使用rxplot画时间趋势曲线

在ROS系统中,标量数据可以根据消息中提供的时间戳作为时间序列绘制图形。
运行可以发布话题的节点后,可以通过rostopic list查看当前的发布的话题,现在,我们不再去使用rostopic echo <topic>,而是通过rxplot命令就能够看到随时间变化的值的曲线。

rqt_plot /topic/data //单个话题,单个数据
rqt_plot /topic/x:y:z //单个话题,向量数据
rqt_plot /topic/x /topic/y /topic/z

或是先打开GUI界面:

rosrun rqt_plot rqt_plot

这里写图片描述
然后再topic中输入想要观测的话题就可以了。
但是当某个话题数据较多时,需要plot单个数据才会有曲线,或是根本不行。待进一步研究…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习篇(七)rostopic消息记录、回放、转.txt 的相关文章

  • MySQL中order by排序将NULL排在最前或最后面

    NULL的意思表示什么都不是 xff0c 或者理解成 未知 也可以 xff0c 它与任何值比较的结果都是false 注意 xff1a 默认情况下 xff0c MySQL会认为NULL值比其他类型的数据小 xff0c 也就是说 xff1a 在
  • C# 如何获取本机IP

    百度搜索的方案 如果你去百度C 如何获取本机IP xff0c 那么大概率的你会得到以下的几段代码 xff0c 第一种就是这样 xff1a string name 61 Dns GetHostName IPAddress ipadrlist
  • winform DevExpress contextMenuStrip右键事件

    span class token keyword private span span class token return type class name span class token keyword void span span sp
  • Linux TCP连接数限制配置

    在进行接口测试时 xff0c 在用户数超过400后 xff0c 就会出现socket connection reset xff0c 明显就是系统无法创建连接 xff0c 查看此时系统建立的TCP连接 xff0c netstat ant gr
  • 摘要认证及实现HTTP digest authentication

    最近工作需要做了摘要认证 xff08 digest authentication xff09 xff0c 下面就工作中遇到的问题及过程做一个总结 第一次客户端请求 GET POST 服务器产生一个随机数nonce xff0c 服务器将这个随
  • HTTPURL Connection及session保存问题

    HTTPURL Connection及session保存问题 HTTPURL Connection是一种多用途 轻量极的HTTP客户端 xff0c 使用它来进行HTTP操作可以适用于大多数的应用程序 虽然HttpURLConnection的
  • SpringBoot 集成redis-jedis

    SpringBoot 集成redis jedis 配置application properties中的redis Redis配置 Redis数据库索引 xff08 默认为0 xff09 spring redis database 61 0
  • Python爬虫常用之登录(三) 使用http请求登录

    前面说了使用浏览器登录较为简单 不需要过多分析 而使用请求登录恰恰就是以分析为主 开发一个请求登录程序的流程 分析请求 gt 模拟请求 gt 测试登录 gt 调整参数 gt 测试登录 gt 登录成功 一 分析网页 从网页着手 打开博客园的登
  • memmove的算法思想

    1 memmove的用法 C 库函数 void memmove void str1 const void str2 size t n 从 str2 复制 n 个字符到str1 如果目标区域和源区域有重叠的话 memmove 能够保证源串在被
  • 菜菜之路-C语言求阶乘和

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 阶乘是什么 xff1f 二 思想 1 思路12 思路2总结 前言 C语言其实要学好并不简单碰到一道题我们有时根本无从下手
  • 题目:将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5

    思路1 xff1a 首先先提一个这样的思路 假如这个数是90 xff0c 我们让它被2到90之间的数进行整除 xff0c 如90 2 61 45 0 余数 xff0c 90 3 61 30 我们获取这样的除数 但是有问题 xff0c 90每
  • C语言--求比赛名次问题

    题目内容 xff1a 5位运动员参加了10米台跳水比赛 xff0c 有人让他们预测比赛结果 xff1a A选手说 B第二 xff0c 我第三 B选手说 我第二 xff0c E第四 C选手说 我第一 xff0c D第二 D选手说 C最后 xf
  • 编写程序,输入一个较小的实数deta,利用e=1+1/1(嘿哈)+1/2(嘿哈)+1/3(嘿哈)+⋯+1/n(嘿哈)计算e的近似值,直到最后一项的绝对值小于deta时为止,输出此时e的近似值。

    碰到了一种避开惯性思维的写法想分享出来 由于标题不能打叹号 你品一下哈 include lt stdio h gt include lt math h gt int main int n 61 1 double e 61 1 0 term
  • Linux主板支持多机系统的Mark/Space校验

    Linux主板支持多机系统的Mark Space校验 关键词 xff1a Linux 主板摘要 xff1a 英创Linux主板可以通过RS485总线挂载多个单片机组成多机系统 xff0c 当从机设备比较多 传输数据比较频繁的时候 xff0c
  • 库函数memcpy的实现

    1 先看一下memcpy的声明 从str2所指向的内容的n个字节 复制到str1所指向的内容中 注意这里是n个字节 后面实现该库函数时我会详细解释 size t你们可以查一下它的定义 代表着无符号整型 2 好 来看看我们如何实现它 void
  • linux 抓包tcp

    tcpdump是linux下的网络数据包截获分析工具 在linux的日常网络管理中 xff0c tcpdump的使用频率很高 xff0c 熟练掌握对提高工作效率很有帮助 支持针对网络层 协议 主机 网络或端口的过滤 并提供and or no
  • STM32串口中断接收一帧数据

    STM32串口中断接收一帧数据 IDLE即串口空闲中断 xff0c 串口收到一帧数据后 xff0c 发生的中断 比如说给单片机一次发来1个字节 xff0c 或者一次发来8个字节 xff0c 这些一次发来的数据 xff0c 就称为一帧数据 x
  • shell中各种括号的作用()、(())、[]、[[]]、{}

    一 小括号 xff0c 圆括号 xff08 xff09 1 单小括号 命令组 括号中的命令将会新开一个子shell顺序执行 xff0c 所以括号中的变量不能够被脚本余下的部分使用 括号中多个命令之间用分号隔开 xff0c 最后一个命令可以没
  • 双极性(相)四线步进电机TC1508S(双通道直流马达驱动器)

    实验现象 xff1a 下载程序后 xff0c 步进电机旋转 接线说明 xff1a 具体接线图可见开发攻略对应实验的 实验现象 章节 1 xff0c 单片机 gt 四线双极性步进电机模块 P10 gt IA P11 gt IB P12 gt
  • c语言实现广播(udp协议)

    广播 xff1a 顾名思义可以把自己的数据发送给在特定范围内的所有人 xff1b 我们网络编程中的广播一般是通过特定的广播地址把自己的数据发送给局域网内当前在线的客户端 我们可以使用命令查看我们Linux下当前的广播地址 xff1a ifc

随机推荐

  • C++中的结构体与类

    C 43 43 中继承了C语言中的结构体 xff0c 但同时也在C语言的基础上新增了一个类 class 的概念 xff0c 类可以说是C语言中结构体的升级版 这里主要细讲C 43 43 中的类 1 C 43 43 结构体 2 C 43 43
  • 在VMware的Ubuntu18.04搭建vsftp(上传文件)和apache2(http服务)

    在VMware的Ubuntu18 04下 xff1a 搭建vsftp xff08 本机win上传文件 xff09 xff1a 第一步安装vsftp xff1a 直接安装可能会报错Ubuntu 34 E Unable to locate pa
  • 安装ROS时, rosdep update出错解决办法

    网上查了一下 原因基本指向一个 网速问题 按如下步骤进行操作 步骤1 将电脑连接到手机热点 寄希望可以提高网速 依然出错 出错内容大致如下 reading in sources list data from etc ros rosdep s
  • get请求的参数包含中括号[]时,报错400

    1 问题描述 在正式环境中 xff0c 上传文件 2003年鉴 docx 时 xff0c 报错400 但是 xff0c 只有此文件上传时会报错 xff0c 其他文件是正常的 xff08 后文为了方便描述 xff0c 将问题文件称为a xff
  • GPS模块实验

    一 GPS简介 全球定位系统 Global Positioning System GPS 是一种以空中卫星为基础的高精度无线电导航的定位系统 它在全球任何地方以及近 空间都能够提供准确的地理位置 车行速度及精确的时间信息 GPS主要由三大组
  • Python异常捕捉try except else finally有return时执行顺序探究

    在没有return的情况下 try 尝试执行的代码 except 错误类型1 xff1a 针对错误类型1 xff0c 对应的代码处理 except 错误类型2 针对错误类型2 xff0c 对应的代码处理 except 错误类型3 xff0c
  • Linux curl命令最全详解

    目录 一 最常用的curl命令 1 发送GET请求 2 发送POST请求 3 发送json格式请求 xff1a 二 curl命令语法与curl命令参数详解 1 curl命令语法 2 curl命令参数详解 三 Linux curl命令退出码
  • ubuntu16.04安装NS2出现问题及解决办法

    NS2安装与使用 下载NS2软件包到工作目录 地址http nchc dl sourceforge net sourceforge nsnam ns allinone 2 33 tar gz 解压tar zxf ns allinone 2
  • 阿里评测—空闲时间/公益机会/公益积分

    公益机会需要从开始到结束全程参与才能获得积分 span class token keyword import span java span class token punctuation span io span class token p
  • 求二叉树的结点个数

    求二叉树的结点个数 xff0c 如果根节点为空 xff0c 则返回 0 include lt iostream gt include lt malloc h gt using namespace std static int D 61 0
  • 记录android studio 遇到的错误和解决办法

    1 关于android studio 出现Error Execution failed for task app preDebugAndroidTestBuild 39 的解决办法 https blog csdn net fighting
  • 与WebRTC实时通信

    与WebRTC实时通信 一 介绍 WebRTC是一个开源项目 xff0c 可以在Web和本机应用程序中实现音频 xff0c 视频和数据的实时通信 WebRTC有几个JavaScript API xff1a getUserMedia xff1
  • webRTC Android与Web 视频通信

    对于视频聊天 xff0c 首先需要访问用户的音频和视频 在web上 xff0c 有getUserMedia API 调用此API xff0c 它会为您提供MediaStream对象 xff0c 用于来自摄像头和麦克风的音频和视频 下面是代码
  • Android studio安装的痛苦历程

    安装需要IDE和SDK xff0c 安装位置一致 xff0c 我是D Android AndroidStudio 目录下as和sdk 我在第一次装AndroidStudio 创建第一个项目时 在没有创建成功的时候就取消了 然后再次导入别人的
  • CentOS7 无法上网问题分析

    主机现象 xff0c IP及Mac地址都配置完后 xff0c 却ping不通baidu com xff0c 只能ping通局域网 xff0c 一直出现 xff1a ping unknown host baidu com 查看DNS服务器 网
  • 再见!Postman

    点击上方 码农突围 xff0c 马上关注 这里是码农充电第一站 xff0c 回复 666 xff0c 获取一份专属大礼包 真爱 xff0c 请设置 星标 或点个 在看 作者 xff1a 陈凯玲 原文链接 xff1a http www kai
  • 常用c库及其简单介绍

    C标准库 lt assert h gt 可用于验证程序做出的假设 xff0c 并在假设为假时输出诊断消息 lt ctype h gt 可用于测试和映射字符 如数字 xff0c 十六进制数字 xff0c 小写字母 xff0c 大写字母 xff
  • ROS 学习篇(六)发布imu和gps消息

    一 创建工作空间 mkdir p imu gps src span class hljs comment 创建工作空间 span catkin make span class hljs comment 编译 span span class
  • ubuntu下Terminator终端的使用及配置

    Terminator终端最大的优点 xff1a 可以在同一个窗口中启动多个终端 安装 xff1a sudo add span class hljs attribute apt span span class hljs attribute r
  • ROS学习篇(七)rostopic消息记录、回放、转.txt

    一 通过bag文件记录话题消息 当发布话题的节点运行后 xff0c 可以通过rostopic list 列出当前运行的话题 xff0c 然后记录 xff1a mkdir bagfile cd bagfile rosbag record a