我正在使用roscpp并将里程表数据发布到ros节点。有两个类负责发布此数据。出于安全原因,有时有必要在主要类别上调用析构函数并发布其他类别的静止数据(使用相同值的里程表姿势,以使ros知道机器人处于静止状态)。我已经确认中学班级在正确的锚点上张贴了正确的姿势。
在大多数情况下,切换到第二类后,由于数据时间不大于先前数据的时间,我遇到了检查失败。
我得到的错误消息是:
F0402 08:12:25.187301 9044 map_by_time.h:43] Check failed: data.time > std::prev(trajectory.end())->first (636898039451158060 vs. 636898039451158060)
如您所见,它认为数据时间等于先前的数据时间。我已经确认从我的代码中发布的时间戳在1554227809034068
范围内(自纪元以来以微秒为单位),这与我收集数据的时间是准确的。切换后,时间戳仍然正确,该值接近并略高于前一个值。
我试图弄清楚为什么此错误消息的时间如此之大,以及为什么它与发布的时间戳不匹配。