ROS Noetic中rosbag偶现连续时间戳相同问题求助
ROS Noetic分析rosbag时出现同时间戳不同消息的问题
环境信息
- 硬件:MSI GF66笔记本
- 系统:Ubuntu 20.04(内核版本5.15.0-53-generic)
- ROS版本:Noetic
- 仿真环境:Gazebo
- 控制方式:Simulink模型以10Hz频率向TurtleBot的
/cmd_vel话题发布消息
问题现象
录制/odom和/cmd_vel话题的rosbag后分析发现:同一话题下偶尔出现连续两条消息时间戳完全相同,但消息内容不同,/odom和/cmd_vel话题均存在该现象;话题发布频率越高,问题出现越频繁——例如录制/clock话题时,连续同时间戳的情况更严重,甚至出现超过两条连续同时间戳但内容不同的消息。
数据提取方式
使用Matlab脚本提取bag信息:
bagSelect = rosbag('BagPubSimulink.bag'); odomBag = select(bagSelect, 'Time', [bagSelect.StartTime bagSelect.EndTime], 'Topic', '/odom'); odomStructs = readMessages(odomBag, 'DataFormat','struct'); odomTime = odomBag.MessageList.Time;
遍历odomStructs提取数据时,问题出现的示例:
odomTime(k : k + 1) = {149.674000000000; 149.674000000000} odomX(k : k + 1) = {-0.790906331505904; -0.787962666465643}
补充说明
- 仅同一话题内出现时间戳重复问题,不同话题间的时间戳无重复,示例bag的MessageList如下:
Time Topic MessageType FileOffset 99.3160000000000 '/cmd_vel' 'geometry_msgs/Twist' 402403 99.3170000000000 '/odom' 'nav_msgs/Odometry' 402497 99.3270000000000 '/odom' 'nav_msgs/Odometry' 403261 99.3690000000000 '/odom' 'nav_msgs/Odometry' 404025 99.4150000000000 '/cmd_vel' 'geometry_msgs/Twist' 404789 99.4170000000000 '/odom' 'nav_msgs/Odometry' 404883 99.4610000000000 '/odom' 'nav_msgs/Odometry' 405647 99.4610000000000 '/odom' 'nav_msgs/Odometry' 406411 99.5050000000000 '/odom' 'nav_msgs/Odometry' 407175 99.5160000000000 '/cmd_vel' 'geometry_msgs/Twist' 407939 99.5270000000000 '/odom' 'nav_msgs/Odometry' 408033 99.5730000000000 '/odom' 'nav_msgs/Odometry' 408797 99.6160000000000 '/cmd_vel' 'geometry_msgs/Twist' 409561 99.6170000000000 '/odom' 'nav_msgs/Odometry' 409655 99.6650000000000 '/odom' 'nav_msgs/Odometry' 410419 99.6650000000000 '/odom' 'nav_msgs/Odometry' 411183 99.7120000000000 '/odom' 'nav_msgs/Odometry' 411947 99.7150000000000 '/cmd_vel' 'geometry_msgs/Twist' 412711
- 自行发布的话题未受影响,仅Gazebo输出的
/odom、/clock话题出现该问题;单独录制静止在Gazebo中的TurtleBot的/clock话题时,MessageList中出现大量同时间戳但内容不同的消息。
内容的提问来源于stack exchange,提问作者Heisenasd
相关产品推荐
相关产品推荐

