0

我试图了解在录制和播放 rosbag 时将 use_sim_time 设置为 true 有什么特别的效果,但不幸的是,信息很少且难以理解。

我已经知道如何将其设置为 true,所以没问题。怎么做

我用我拥有的 rosbag 文件做了一些实验,我注意到:

  • 当我这样做时rosplay play file.bag,主题不会发布\clock
  • 当我这样做时rosplay play file.bag --clock,主题\clock 发布

我也注意到,当我做rostopic echo \clock和我玩包的时候,很多时候发布的都是一样的!(这是什么意思??)

最后,我注意到这对任何这些结果use_sim_time没有影响。

那么设置这个参数为true有什么影响呢?

4

1 回答 1

0
  • 为了使 ROS 节点根据 /clock 主题使用仿真时间,必须在节点初始化之前将 /use_sim_time 参数设置为 true。换句话说,用于获取时间的 ROS APIros::Time time = ros::Time::now()将从/clock主题中检索时间数据,而不是使用系统时钟。如果您关闭use_sim_time,则发布到的任何时间值都/clock将被忽略

  • 如果设置了 /use_sim_time 参数,ROS Time API 将返回 time=0,直到它收到来自 /clock 主题的值。然后,时间只会在收到来自 /clock 主题的消息时更新,并且在更新之间保持不变

更多信息如下:[1][2]

于 2021-09-13T06:04:05.077 回答