time.md 830 B

rclcpp: Time

rclcpp::Timerclcpp::Duration 和ROS1中的用法偏差较大,但与std::chrono 的关系更为密切。ROS Discourse 可以看到与其有关的比较深入的讨论。

在移植某些ros1库时,时间戳可能会被大量用作浮点秒。从 rclcpp 获取浮点秒 rclcpp::Time:

// node is instance of rclcpp::Node
rclcpp::Time t = node.now();
double seconds = t.seconds();

没有用于从浮点表示的秒开始的时间的构造函数,因此你首先需要转换为纳秒:

rclcpp::Time t(static_cast<uin64_t>(seconds * 1e9));

确实具有双向功能:

rclcpp::Duration d = rclcpp::Duration::from_seconds(1.0);
double seconds = d.seconds();