15 #ifndef NAV2_ROS_COMMON__RATE_HPP_
16 #define NAV2_ROS_COMMON__RATE_HPP_
23 #include "rclcpp/rate.hpp"
24 #include "rclcpp/create_timer.hpp"
39 template<
typename NodeT>
40 rclcpp::Clock::SharedPtr selectSteadyOrSimClock(NodeT node)
42 bool use_sim_time =
false;
43 auto params = node->get_node_parameters_interface();
44 if (params->has_parameter(
"use_sim_time")) {
45 use_sim_time = params->get_parameter(
"use_sim_time").as_bool();
48 return node->get_clock();
50 return std::make_shared<rclcpp::Clock>(RCL_STEADY_TIME);
60 class Rate :
public rclcpp::Rate
68 template<
typename NodeT>
69 explicit Rate(NodeT node,
double rate)
70 : rclcpp::
Rate(rate, selectSteadyOrSimClock(node))
A sim-time-aware rate for Nav2 loops.
Rate(NodeT node, double rate)
Construct a Rate from a node and frequency.