zoukankan      html  css  js  c++  java
  • 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获取的。是仿真时间。
  • 相关阅读:
    15.Linux的文件结构
    14.管道模型
    13.ubuntu下Qt5无法使用中文的问题解决
    12.时钟与信号
    11.进程控制
    10.设备文件
    [GXOI/GZOI2019]旅行者
    [GXOI/GZOI2019]旧词
    [BJOI2019] 删数
    [BJOI2019] 光线
  • 原文地址:https://www.cnblogs.com/didada/p/14581116.html
Copyright © 2011-2022 走看看