5 #include "rclcpp/rclcpp.hpp" 18 #define DEPTHAI_ROS_LOG_STREAM(loggerName, level, isOnce, args) \ 20 case LogLevel::DEBUG: \ 22 RCLCPP_DEBUG_STREAM_ONCE(rclcpp::get_logger(loggerName), args); \ 24 RCLCPP_DEBUG_STREAM(rclcpp::get_logger(loggerName), args); \ 27 case LogLevel::INFO: \ 29 RCLCPP_INFO_STREAM_ONCE(rclcpp::get_logger(loggerName), args); \ 31 RCLCPP_INFO_STREAM(rclcpp::get_logger(loggerName), args); \ 34 case LogLevel::WARN: \ 36 RCLCPP_WARN_STREAM_ONCE(rclcpp::get_logger(loggerName), args); \ 38 RCLCPP_WARN_STREAM(rclcpp::get_logger(loggerName), args); \ 41 case LogLevel::ERROR: \ 43 RCLCPP_ERROR_STREAM_ONCE(rclcpp::get_logger(loggerName), args); \ 45 RCLCPP_ERROR_STREAM(rclcpp::get_logger(loggerName), args); \ 48 case LogLevel::FATAL: \ 50 RCLCPP_FATAL_STREAM_ONCE(rclcpp::get_logger(loggerName), args); \ 52 RCLCPP_FATAL_STREAM(rclcpp::get_logger(loggerName), args); \ 58 #define DEPTHAI_ROS_LOG_STREAM(loggerName, level, isOnce, args) \ 60 ROS_LOG_STREAM_ONCE(static_cast<::ros::console::Level>(level), std::string(ROSCONSOLE_NAME_PREFIX) + "." + loggerName, args); \ 62 ROS_LOG_STREAM(static_cast<::ros::console::Level>(level), std::string(ROSCONSOLE_NAME_PREFIX) + "." + loggerName, args); \ 67 #define DEPTHAI_ROS_DEBUG_STREAM(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::DEBUG, false, args) 69 #define DEPTHAI_ROS_DEBUG_STREAM_ONCE(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::DEBUG, true, args) 72 #define DEPTHAI_ROS_INFO_STREAM(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::INFO, false, args) 74 #define DEPTHAI_ROS_INFO_STREAM_ONCE(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::INFO, true, args) 77 #define DEPTHAI_ROS_WARN_STREAM(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::WARN, false, args) 79 #define DEPTHAI_ROS_WARN_STREAM_ONCE(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::WARN, true, args) 82 #define DEPTHAI_ROS_ERROR_STREAM(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::ERROR, false, args) 84 #define DEPTHAI_ROS_ERROR_STREAM_ONCE(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::ERROR, true, args) 87 #define DEPTHAI_ROS_FATAL_STREAM(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::FATAL, false, args) 89 #define DEPTHAI_ROS_FATAL_STREAM_ONCE(loggerName, args) DEPTHAI_ROS_LOG_STREAM(loggerName, LogLevel::FATAL, true, args) 93 std::chrono::time_point<std::chrono::steady_clock> steadyBaseTime,
94 std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> currTimePoint) {
95 auto elapsedTime = currTimePoint - steadyBaseTime;
97 auto rclStamp = rclBaseTime + elapsedTime;
105 std::chrono::time_point<std::chrono::steady_clock> steadyBaseTime,
106 std::chrono::time_point<std::chrono::steady_clock, std::chrono::steady_clock::duration> currTimePoint) {
107 auto elapsedTime = currTimePoint - steadyBaseTime;
108 uint64_t nSec = rosBaseTime.
toNSec() + std::chrono::duration_cast<std::chrono::nanoseconds>(elapsedTime).count();
109 auto currTime = rosBaseTime;
110 auto rosStamp = currTime.
fromNSec(nSec);
116 template <
typename T>
117 T
lerp(
const T& a,
const T& b,
const double t) {
118 return a * (1.0 - t) + b * t;
121 template <
typename T>
122 T
lerpImu(
const T& a,
const T& b,
const double t) {
124 res.x =
lerp(a.x, b.x, t);
125 res.y =
lerp(a.y, b.y, t);
126 res.z =
lerp(a.z, b.z, t);
T lerpImu(const T &a, const T &b, const double t)
Time & fromNSec(uint64_t t)
#define DEPTHAI_ROS_DEBUG_STREAM(loggerName, args)
::ros::Time getFrameTime(::ros::Time rosBaseTime, std::chrono::time_point< std::chrono::steady_clock > steadyBaseTime, std::chrono::time_point< std::chrono::steady_clock, std::chrono::steady_clock::duration > currTimePoint)
T lerp(const T &a, const T &b, const double t)