mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
Loading...
Searching...
No Matches
transform_broadcaster.h
1#ifndef TRANSFORM_BROADCASTER_H
2#define TRANSFORM_BROADCASTER_H
3
4#include <mutex>
5
6#include <rclcpp/rclcpp.hpp>
7#include <tf2_ros/transform_broadcaster.hpp>
8
9namespace mrs_lib
10{
11
12 /* TransformBroadcaster //{ */
13
22 {
23
24 public:
26 struct NotInitializedException : public std::exception
27 {
28 const char* what() const throw()
29 {
30 return "TransformBroadcaster: not initialized! Call the constructor and pass the node pointer.";
31 }
32 };
33
38
42 TransformBroadcaster(const rclcpp::Node::SharedPtr& node);
43
53
59 void sendTransform(const geometry_msgs::msg::TransformStamped& transform);
60
68 void sendTransform(const std::vector<geometry_msgs::msg::TransformStamped>& transforms);
69
70 private:
71 // guards last_messages_
72 std::mutex mutex_;
73
74 rclcpp::Node::SharedPtr node_;
75
79 std::shared_ptr<tf2_ros::TransformBroadcaster> broadcaster_;
80
87 std::map<std::string, rclcpp::Time> last_messages_;
88 };
89 //}
90
91} // namespace mrs_lib
92
93#endif // TRANSFORM_BROADCASTER_H
void sendTransform(const geometry_msgs::msg::TransformStamped &transform)
check if the transform is newer than the last published one and publish it. Transform is skipped if a...
Definition transform_broadcaster.cpp:43
TransformBroadcaster & operator=(TransformBroadcaster &&other)
A convenience move assignment operator.
Definition transform_broadcaster.cpp:23
TransformBroadcaster()
constructor, internally starts the TransformBroadcaster
Definition transform_broadcaster.cpp:8
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition attitude_converter.h:24
is thrown when calculating of heading is not possible due to atan2 exception
Definition transform_broadcaster.h:27