INDEMIND相机ROS bag包数据的回放

news2024/7/6 17:37:37

实验需要IMU相机,跑算法是在ROS下跑,在 ROS 系统中,可以使用 bag 文件来保存和恢复系统的运行状态,比如相机话题的 bag 包,然后回放用来进行联合外参标定,也可以使用EVO工具显示算法轨迹,这里记录下我学习官方的 rosbag 教程的笔记。

文章目录

    • 一、rosbag基本用途
      • 1、rosbag 目前常用的命令
    • 二、录制话题
      • 1、指定的话题 topic_names 来录制 bag 包
      • 2、rosbag record参数列表
    • 三、显示包文件内容的可读摘要
    • 四、回放bag
        • (1)启动ROS
        • (2)INDEMIN回放bag
    • 五、rosbag check
    • 六、rosbag compress
    • 七、rosbag decompress
    • 八、rosbag reindex

一、rosbag基本用途

rosbag 工具可以记录一个包,重新发布一个或多个包的消息,汇总一个包的内容,检查一个包的消息定义,基于Python表达式过滤一个包的消息,压缩和解压一个包,重建一个包的索引。

rosbag 官方教程

1、rosbag 目前常用的命令

  • record:用指定的话题录制一个 bag 包
  • info:显示一个 bag 包的基本信息,比如包含哪些话题
  • play:回放一个或者多个 bag 包
  • check:检查一个 bag 包在当前的系统中是否可以回放和迁移
  • compress:压缩一个或多个 bag 包
  • decompress:解压缩一个或多个 bag 包
  • reindex:重新索引一个或多个损坏 bag 包

二、录制话题

1、指定的话题 topic_names 来录制 bag 包

rosbag record <topic_names>
rosbag record -o MH_03.bag /imsee/imu

2、rosbag record参数列表

参数作用备注
-h, --help帮助,显示用法并退出
-a, --all记录所有主题
-e, --regex使用正则表达式匹配主题
-p, --publish当记录开始写入新包时发布消息(topic =“ begin_write ”)ROS Melodic版新增
-x EXCLUDE_REGEX, --exclude=EXCLUDE=REGEX排除与给定正则表达式匹配的主题(从-a或-e中减去)
-q, --quiet抑制控制台输出
-d, --duration指定录制包文件的最长持续时间
-o PREFIX, --output-prefix=PREFIX在日期戳之前将 PREFIX 添加到包名称的开头常用
-O NAME, --output-name=NAME记录到名称为 NAME.bag 的包中常用
–split当达到最大尺寸或持续时间时拆分包
–max-splits=MAX_SPLITS最多拆分包 MAX_SPLITS 次,然后开始删除最旧的文件。这将创建固定大小或持续时间的记录ROS Melodic版新增
-b SIZE, --buffsize=SIZE使用 SIZE MB 的内部缓冲区
–chunksize=SIZE记录到 SIZE KB 的块
-l NUM, --limit=NUM每个主题只记录 NUM 条消息
–node=NODE记录特定节点订阅的所有主题
-j, --bz2使用 BZ2 压缩
–lz4使用LZ4压缩

三、显示包文件内容的可读摘要

rosbag info 显示包文件内容的可读摘要,包括开始和结束时间,主题及其类型,消息计数、频率以及压缩统计信息
在这里插入图片描述

四、回放bag

rosbag play 读取一个或多个 bag 文件的内容,并以时间同步的方式回放,时间同步基于接收消息的全局时间。回放开始后,会根据相对偏移时间发布消息

rosbag play record.bag

(1)启动ROS

一般来说使用roscore,INDEMIND相机单独使用ROS节点

roslaunch imsee_ros_wrapper start.launch

在这里插入图片描述
rostopic list 可以列出发布的节点,-o表示录制完保存 bag 包名称为 MH_03 + 时间戳.bag 格式,INDEMIND双目IMU相机的话题是imsee,相机话题是/imsee/image,imu话题是/imsee/imu

(2)INDEMIN回放bag

rosbag play MH_03_2023-06-22-16-04-51.bag

在这里插入图片描述

五、rosbag check

检查一个 bag 在当前系统中是否可以回放
在这里插入图片描述

六、rosbag compress

如果录制的 bag 很大,我们可以压缩它,默认的压缩格式是 bz2

rosbag compress MH_03_2023-06-22-16-04-51.bag

在这里插入图片描述

七、rosbag decompress

使用需要解压缩

rosbag decompress MH_03_2023-06-22-16-04-51.bag

在这里插入图片描述

八、rosbag reindex

如果回放遇到问题,提示 reindex 的话,直接执行即可,这个会自动生成一个原 bag 的备份

rosbag reindex MH_03_2023-06-22-16-04-51.bag 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/674929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合宙Air724UG Cat.1模块硬件设计指南--GPIO控制

GPIO控制 简介 GPIO&#xff08;General-purpose input/output&#xff09;&#xff0c;通用型之输入输出的简称&#xff0c;可实现某时刻电平状态的输出与输入&#xff0c;即可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。 特性 共支持28个GPIO&a…

A Neural Conversational Model 读后感

目录 摘要 1、介绍 2、相关工作 3、模型 4、数据&#xff08;后面都是具体的东西&#xff0c;不赘述&#xff09; 5、总结 使用微软翻译得到的中文原文&#xff1a; 摘要 会话建模是自然语言理解和机器智能中的一项重要任务。尽管存在以前的方法&#xff0c;但它们通常仅…

MySQL数据库:数据库的约束以及数据的聚合、联合查询

目录 一.关系模型的简要概述 二.数据库的约束 2.1约束类型 2.2NULL约束 2.3 UNIQUE&#xff1a;唯一约束 2.4 默认约束 2.5 PRIMARY KEY&#xff1a;主键约束 2.6 FOREIGN KEY&#xff1a;外键约束 2.7 CHECK约束 三.高效率查询 3.1高效率查询的分类 3.2聚合查询 …

Nginx热升级到1.23.4过程指导手册

一、问题描述 因环境内部安全扫描发现CVE-2021-23017、CVE-2022-41741、CVE-2022-41742、CVE-2019-20372漏洞&#xff0c;经分析后&#xff0c;需要将nginx升级到1.23.4版本&#xff1b; 现场环境&#xff1a;centos7.4 1708、nginx 1.20.1 资料&#xff1a;软件下载、360安全…

spring框架-循环依赖问题(二)

文章目录 什么是循环依赖解决循环依赖的办法知识扩展 什么是循环依赖 两个或多个类之间存在彼此依赖的情况,形成一个循环依赖链 代码&#xff1a; 单例bean的循环依赖&#xff1a; 先了解Bean的生命周期&#xff1a;1.实例化 2.初始化、3.使用 4.销毁 详细了解Bean生命周期…

数据库高级

数据库高级&#x1f985; 文章目录 数据库高级&#x1f985;范式&#x1f98d;什么是范式&#x1f40a;第一范式——1NF&#x1f996;第二范式——2NF&#x1f41f;第三范式——3NF&#x1f409;总结&#x1f419; 五大约束&#x1f40f;主键约束&#x1f421;外键约束&#x1…

第五章 ResNeXt网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

网络套接字函数 | socket、bind、listen、accept、connect

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

CSS3-补充-结构伪类选择器

结构伪类选择器 作用&#xff1a;在HTML中定位元素 优势&#xff1a;减少对于HTML中类的依赖&#xff0c;有利于保持代码整洁 场景&#xff1a;常用于查找某父级选择器中的子元素 选择器&#xff1a; 选择器 …

SAC算法小结

算法SAC 基于动态规划的贝尔曼方城如下所示&#xff1a; 则&#xff0c;基于最大熵的软贝尔曼方程可以描述为如下的形式&#xff1a; 可以这么理解soft贝尔曼方程&#xff0c;就是在原有的贝尔曼方程的基础上添加了一个熵项。 另外一个角度理解soft-贝尔曼方程&#xff1a; …

Vue-组件自定义事件(绑定和解绑)

组件自定义事件(绑定) 像click,change这些都是js的内置事件&#xff0c;我们可以直接使用&#xff0c;本次我们学习自己根据需求打造全新的事件&#xff0c;但是js内置的是给html元素用的,本次的自定义事件是给组件用的 注意&#xff1a;组件上也可以绑定原生DOM事件&#xf…

(十一)CSharp-LINQ(1)

一、LINQ 数据库可以通过 SQL 进行访问&#xff0c;但在程序中&#xff0c;数据要被保存在差异很大的类对象或结构中。由于没有通用的查询语言来从数据结构中获取数据。所以可以使用 LINQ 可以很轻松地查询对象集合。 LINQ 高级特性&#xff1a; LINQ 代表语言集成查询。LIN…

【机器学习】信息熵和信息度量

一、说明 信息熵是概率论在信息论的应用&#xff0c;它简洁完整&#xff0c;比统计方法更具有计算优势。在机器学习中经常用到信息熵概念&#xff0c;比如决策树、逻辑回归、EM算法等。本文初略介绍一个皮毛&#xff0c;更多细节等展开继续讨论。 二、关于信息熵的概念 2.1 …

尚硅谷课程vue学习(一)

目录 data两种写法el两种写法由vue管理的函数&#xff0c;一定不要写箭头函数&#xff0c;不然this指向windows实例了MVVM模型defineProperty属性数据代理v-on: v-bind:键盘事件keyup keydowncomputed计算属性监视属性watch监视属性和计算属性区别绑定class和style属性条件渲染…

cocosCreator 3.3~6 安卓热更新官方详细示例

官方的热更新虽给出了示例和源码&#xff0c;但是一些细节的地方和步骤还是没说清楚&#xff0c;导致新手包括我死活是运行不起来&#xff0c;热更新失败&#xff01;很打击人啊。这里有必要给出新手的热更新步骤&#xff0c;前提是你安装了Node.js和python环境&#xff0c;我装…

chatgpt赋能python:更新Python所有库,避免安全漏洞和兼容性问题!

更新 Python 所有库&#xff0c;避免安全漏洞和兼容性问题&#xff01; Python 是当今最受欢迎的编程语言之一&#xff0c;拥有强大而多功能的 API 和丰富的第三方库来支持开发&#xff0c;如 numpy、pandas、tensorflow 等等。但是&#xff0c;这些库不断地更新与改进&#x…

端午作业1

只要文件存在&#xff0c;就会有唯一对应的inode号&#xff0c;且相应的会存在一个struct inode结构体。在应用层通过open&#xff08;&#xff09;打开一个设备文件&#xff0c;会对应产生一个inode号&#xff0c;通过inode号可以找到文件的inode结构体 根据inode结构体中文件…

【Dart语言解密】想要深入了解Dart语法和类型变量吗?

快来读读这篇文章吧&#xff01;本文从Dart信息表示的角度出发&#xff0c;详细讲解了Dart的基础语法和类型变量。通过本文的学习&#xff0c;你将会对Dart语言有更深入的认识和理解&#xff0c;更好地掌握Dart的开发技巧和实践应用。快来一起解密Dart语言吧&#xff01; 1 Da…

数据透视表 - 学习笔记

教程资源&#xff1a;数据透视表_哔哩哔哩_bilibili 目录 一、内容概括 数据操作&#xff1a; 案例&#xff1a; 二、数据操作 &#xff08;一&#xff09;数据清洗 &#xff08;二&#xff09;创建数据透视表 1、数据格式 2、显示方式 3、分组 4、修改数据源 5、…

Web 安全之 HSTS 详解和使用

HSTS&#xff08;HTTP Strict Transport Security&#xff09; 是一种网络安全机制&#xff0c;可用于防范网络攻击&#xff0c;例如中间人攻击和 CSRF&#xff08;Cross-Site Request Forgery&#xff09;等攻击。本文将详细介绍 HSTS 的工作原理、应用场景以及如何在网站中开…