ROS中的时间

ROS时间信息的来源有两种,系统时间和仿真时间,分别被称为Wall TimeROS Time,可以通过参数use_sim_time来进行选择,当use_sim_time为true时选择使用仿真时间,反之使用系统时间。

系统时间直接通过访问本地时钟来获得,而仿真时间则需要订阅/clock话题获得,每当接收到该话题的消息,时间才会更新,在没有接收到该话题的第一个消息时,当前时间为0,/clock是通过仿真时间服务器发布的,通常为ros_bag节点或仿真器如gazebo

由于Rviz也订阅了clock话题,所以在Rviz的状态栏里能看到这两个时间。clock由秒和纳秒两部分组成:

1
2
3
clock: 
secs: 26
nsecs: 7000000