ros:time::now()詳解


為什么有時候ros:time::now()輸出值為0?

ROS設置了一個模擬時鍾的節點,使用模擬時鍾的時候,now()返回時間0直到第一條消息在/clock已經收到,所以當客戶端不知道時鍾時間時ros:time::now()輸出為0。

 

ros:time::now()輸出的值是什么?

ros:time::now()輸出的值與參數use_sim_time有關。

use_sim_time為true時,ros:time::now()輸出系統時間;

use_sim_time為false時,ros:time::now()輸出輸出仿真時間,如果回放bag則是bag的時間。

 

怎么設置參數use_sim_time?

launch文件設置:

<param name="use_sim_time" value="false" />

通過節點設置:

rosparam set use_sim_time true

 

如何直接使用系統時間?

使用 ros::WallTime::now() 

播放rosbag時,若參數/use_sim_time 為true,則此時

  • ros::WallTime::now()為當前的真實時間,也就是牆上的掛鍾時間,一直在走。
  • ros::Time::now()為rosbag當時的時間,是由bag中/clock獲取的。是仿真時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM