【问题标题】:Why is ROSBag record only recording ten events per second from any sensor?为什么 ROSBag 记录每秒只记录来自任何传感器的十个事件?
【发布时间】:2021-09-12 00:53:35
【问题描述】:

作为 Cartographer 教程 (https://google-cartographer-ros.readthedocs.io/en/latest/demos.html) 的一部分提供的示例 ROSBags 的消息频率约为每秒 1507 条 LiDAR 消息,以及每秒 250 条来自 IMU 的消息。我有一个 IMU 每秒广播大约 100 条消息,还有一个 Velodyne VLP-16 使用 Velodyne 自己的驱动程序 (VLP16_points.launch) 广播消息。对于这两个传感器,rosbag record 似乎每秒最多只能记录 10 条消息。如何提高此录制频率?

【问题讨论】:

  • 你怎么称呼rosbag?通过启动文件,还是使用您自己的节点?
  • 只从命令行:rosbag record imu points2

标签: ros rosbag


【解决方案1】:

我怀疑它实际上是一个缓冲区瓶颈,而不是时间限制器的功能(例如,传递给执行记录的计时器回调的频率,就像您可能期望的那样)。

它只需要将这么多数据写入磁盘或订阅者缓冲区中的数据,然后才会丢弃帧以写入或处理已经存在的数据。

除了使用他们的 C++ api 编写您自己的节点并分析问题本身(如果非常必要,这也是一个有效且不太难的选项),还有一些命令行内置参数可以控制缓冲区大小(下面,强调添加)。

我还建议以 kB/s 为单位计算所需的记录速率;如果您知道一个激光雷达消息的大小、您想要存储的数量以及它们的生成速率 (rostopic hz/rostopic bw),那么您就可以很好地估计您实际要问的内容。

-b SIZE, --buffsize=SIZE

使用大小为 MB 的内部缓冲区(默认值:256,0 = 无限)。这 是记录器对象的消息队列,在消息之前 传到包里。 降低此值可能会导致消息 在进入录制过程之前被丢弃

$ rosbag record -b 1024 /chatter

--chunksize=SIZE

高级。记录到 SIZE KB 的块(默认值:768)。这是一个缓冲区 在包文件对象中。降低此值将导致更多 写入磁盘。

$ rosbag record --chunksize=1024 /chatter

http://wiki.ros.org/rosbag/Commandline#record


评论编辑:

当原始主题 msg 转换为文本并存储时,上述两个选项会影响序列化消息的缓冲区。如果超出,请在您的终端中使用there should be ROS_WARN msgs。 (If not, you can enable them.)

如果您没有看到任何有关丢帧的 ROS_WARN 消息,则问题可能是正常的 ros 消息丢包。 Refering to previous questions,您可以enable topic statistics 查看是否有任何消息因队列大小而被丢弃。 从源码来看,对于命令行工具,每个订阅的topic只有100的msg buffer(ops.queue_size = 100;)。如果这是问题,最简单的解决方案是将源包从 github 复制到您的工作区,并修改队列大小。但我怀疑这不是真正的问题。

如果您录制的主题超过 10 个,则假设可能存在另一个问题,默认情况下为 "only" launches 10 'async spinner' threads;但所有其他提到的潜在问题更有可能是根本原因。

【讨论】:

  • 谢谢你的回复,但是好像不管我在rosbag record的命令行调用中传递给--chunksize或者-b哪个值,imu和Velodyne_Points数据都只记录了十次每秒。
  • 我添加了更多细节;源代码中没有频率限制,只有内存大小(队列/缓冲区)限制。我会仔细检查是否没有警告打印输出,按 seq 号查看已删除消息的记录数据,并尝试使用这些诊断工具缩小您的问题范围。如果您发现更深层次的问题,那可能是另一个与您提出的问题不同的好问题。虽然这个答案并没有真正告诉你 为什么 在你的特定情况下,但答案应该在这个调试范围内。
猜你喜欢
  • 2011-03-09
  • 1970-01-01
  • 2017-07-18
  • 2016-05-27
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
相关资源
最近更新 更多