IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> ROS:rosbag命令行指令详解(一) -> 正文阅读

[人工智能]ROS:rosbag命令行指令详解(一)

目录

获取当前工作目录下bag文件的信息

在当前工作目录下创建bag文件

对指定话题进行录制


获取当前工作目录下bag文件的信息

1. 以列表的方式显示bag文件的信息:

指令格式:rosbag info BagFileName.bag

结果如下所示:

在这个信息列表中包含了“参与通信的消息类型types、话题名称topics以及两者的对应关系(topics:types)”。

2. 以yaml格式显示bag文件的信息:

指令格式:rosbag info -y BagFileName.bag

结果如下所示:

YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。

3. 基于yaml信息表示形式,提取bag文件的某类信息:

指令格式:rosbag info -y -k info_type BagFileName.bag

结果如下所示:

可提取的信息类型为:消息的类型types、话题相关信息topics、bag文件存放路径path、ROS的版本信息vision、录制持续时长duration、录制开始时间start/停止时间end、bag文件大小(以byte为单位)、录制消息总数量messages、文件的压缩格式compression、是否添加至索引列表indexed。

在当前工作目录下创建bag文件

1. 文件以“NAME_开始录制时的时间戳“的名称命名

指令格式:rosbag record -o base_name

执行结果:

2. 文件以“指定名称”的名称命名

指令格式:rosbag record -O name

执行结果:

对指定话题进行录制

1. 对指定话题进行录制

指令格式:rosbag record topic_name1 topic_name2…

2. 对所有话题进行录制

指令格式:rosbag record -a

3. 对符合要求的topic进行录制

指令格式:rosbag record -e –regex

其中–regex表示正则表达式,表征着我们想要匹配的条件,简单示例:

ROS中正则表达式的使用规则:

ROS中正则表达式的使用(rosbag record -e --regex)_超级霸霸强的博客-CSDN博客https://blog.csdn.net/weixin_45590473/article/details/123271341

指令格式:rosbag record -e –regex -x –regex

我们对比发现:-x指令意味着从-e指令筛选出的topic中排除一些符合条件的topic。

4. 当开始录制时,发布一条通知消息

当我们查看topic列表,会发现:

当开始录制bag文件时,会产生一个节点专门记录订阅主题,并将在这些主题上发布的所有消息的内容写入一个包文件:

并且在开始录制时,监听节点会向/begin_write全局消息发送一条string类型的消息。

5. 录制指定时间

--duration数值

录制时长

--duration=0

无限长时间录制

--duration=5s

录制5s

--duration=5m

录制5min

--duration=5h

录制5hour

使用rosbag record指令时,指定录制时间使用—duration开头,以“—duration=time_value”的形式输入,主要形式有以下几种:

命令

单位

—duration=5s

s

—duration=5m

min

—duration=5h

hour

当然,也可以对某一个特定的topic进行指定时间的录制:

虽然—duration=time_value topic_name可以对指定topic话题发布的消息录制指定的时长,但是当-a -e与其同时存在时,情况如下所示:

无论使用什么topic匹配指令,最后录制的话题都是所有录制话题的“并集“

6. 创建bag文件

7. 按照指定条件拆分bag文件

指令格式:--split –duration=time_value?或者?—size=size_value

由于文件的输出有两种(-o和-O),一种是base_name加时间戳后缀的,一种是指定base_name,这两种文件名格式生成的拆分bag文件如下所示:

--duration和--size只能存在一个,两者不可共存!

8. 指定最大生成文件拆分次数

指令格式:–max-split=max_split_number

我们一定要将最大文件拆分次数和最大生成文件总是区分开来,文件拆分次数与文件总数关系如下所示:

文件拆分次数

文件总数

备注

1

2

一刀两块

2

3

两刀三块

3

4

三刀四块

N

N+1

N刀(N+1)块

从上面的关系表格就可以得出–max-split数值与文件总数的关系:

–max-split

文件总数

备注

0

最多可以得到无穷多个文件

N

N+1

最多可以得到(N+1)个文件

9. 消息缓冲队列的大小

--buffsize数值

录制文件大小

--buffsize=0

无穷大

--buffsize=5

消息队列缓冲区的大小为5MB

命令示例:

下面这个命令也是开辟缓冲区,但是比起—buffsize更加先进:

--chunksize数值

录制文件大小

--chunksize=0

无穷大

--chunksize=5

消息队列缓冲区的大小为5KB

命令示例:

对于chunksize和buffsize的区别,我着实没有理解,如果大家有新的见解,敬请回复,在ROS wiki上两者的区别如下:

我这里只知道:消息队列是协调消息收发双方速度不匹配而分配的缓冲区。关于文件缓冲区,详见:[Linux]——文件缓冲区_lucky52529的博客-CSDN博客_文件缓冲区https://blog.csdn.net/lucky52529/article/details/90546674

10. 针对于topic录制指定数量的消息

对于全部topic进行指定消息数量的录制:

对于特定topic进行指定消息数量的录制:

我们可以使用rosbag info bag_file_name.bag来查看:

11. 记录特定节点接受的消息

其中/turtlesim_node节点所在的节点图如下所示:

其中/turtlesim_node节点订阅的话题也就两个“/turtle2/cmd_vel“和”/turtle1/cmd_vel“。

12. bag文件的压缩

BZ2压缩格式:

LZ4压缩格式:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:02:47  更:2022-03-06 13:03:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:35:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码