31#include <unordered_map>
34#include <rclcpp/rclcpp.hpp>
35#include <std_msgs/msg/header.hpp>
37#include "event_detector/datatypes.hpp"
53 std::shared_ptr<const T>
msg;
58using string_map = std::unordered_map<std::string, T>;
60using string_map_2d = std::unordered_map<std::string, string_map<T>>;
72#define DATATYPE(TYPE, VAR) \
73 std::vector<std::tuple<std::string, double, int>> VAR;
74#include "event_detector/datatypes.macro"
80using HasRosHeaderNo = std::false_type;
81using HasRosHeaderYes = std::true_type;
83template <
typename T,
typename = std_msgs::msg::Header>
90bool hasRosHeader(
const T&);
97#include "event_detector/common.tpp"
const std::string kTransformationTopic
topic for dynamic transforms
const std::string kStaticTransformationTopic
topic for static transforms
Struct containing all data topics from a connected client.
std::string name
client name
bool buffer_all_tf_static
whether to store the full /tf_static topic for this client
std::string base_frame
name of base frame
std::string tf_prefix
prefix of frames
bool buffer_all_tf
whether to store the full /tf topic for this client
Struct wrapping an object with a timestamp.
std::shared_ptr< const T > msg
ROS message.
rclcpp::Time stamp
timestamp