60 #if defined __ROS_VERSION && __ROS_VERSION == 2
61 static rclcpp::Clock s_wrapper_clock;
68 #if defined __ROS_VERSION && __ROS_VERSION == 1
70 #elif defined __ROS_VERSION && __ROS_VERSION == 2
71 rclcpp::NodeOptions node_options;
72 node_options.allow_undeclared_parameters(
true);
73 nh = rclcpp::Node::make_shared(node_name,
"", node_options);
77 ROS_WARN_STREAM(
"## ERROR ROS::createNode(): time confusion, ROS::secondsSinceStart(ROS::now()) returned negative seconds " << timestamp_sec);
81 #if defined __ROS_VERSION && __ROS_VERSION == 2
83 void ROS::init(
int argc,
char** argv,
const std::string nodename)
90 #if defined __ROS_VERSION && __ROS_VERSION <= 1
100 #if defined __ROS_VERSION && __ROS_VERSION == 1
112 std::this_thread::sleep_for(std::chrono::microseconds((int64_t)(1.0e6*
seconds)));
118 #if defined __ROS_VERSION && __ROS_VERSION <= 1
120 #elif defined __ROS_VERSION && __ROS_VERSION == 2
121 return s_wrapper_clock.now();
130 #if defined __ROS_VERSION && __ROS_VERSION == 1
132 nanoseconds = time.nsec;
133 #elif defined __ROS_VERSION && __ROS_VERSION == 2
134 seconds = (uint32_t)(time.nanoseconds() / 1000000000);
135 nanoseconds = (uint32_t)(time.nanoseconds() - 1000000000 *
seconds);
142 #if defined __ROS_VERSION && __ROS_VERSION == 1
144 nanoseconds = time.nsec;
145 #elif defined __ROS_VERSION && __ROS_VERSION == 2
146 seconds = (uint32_t)(time.nanoseconds() / 1000000000);
147 nanoseconds = (uint32_t)(time.nanoseconds() - 1000000000 *
seconds);
163 int32_t i32seconds = (int32_t)(
seconds);
164 int32_t i32nanoseconds = (int32_t)(1000000000 * (
seconds - i32seconds));
165 return ROS::Time(std::max(0,i32seconds), std::max(0,i32nanoseconds));
174 int32_t i32seconds = (int32_t)(
seconds);
175 int32_t i32nanoseconds = (int32_t)(1000000000 * (
seconds - i32seconds));
182 #if defined __ROS_VERSION && __ROS_VERSION == 1
183 return duration.toSec();
184 #elif defined __ROS_VERSION && __ROS_VERSION == 2
185 return duration.seconds();
201 #if defined __ROS_VERSION && __ROS_VERSION == 1
202 return (uint64_t)(time.sec * 1000) + (uint64_t)(time.nsec / 1000000);
203 #elif defined __ROS_VERSION && __ROS_VERSION == 2
204 return (uint64_t)(time.nanoseconds() / 1000000);