publisher_ros2.h
Go to the documentation of this file.
1 #ifndef STATE_PUBLISHER_ROS2TOPIC_H
2 #define STATE_PUBLISHER_ROS2TOPIC_H
3 
4 #include <QObject>
5 #include <QtPlugin>
6 #include <map>
7 #include <unordered_set>
8 
9 #include <rclcpp/rclcpp.hpp>
10 #include <rclcpp/publisher.hpp>
11 #include <rosbag2_storage/serialized_bag_message.hpp>
12 #include <rosbag2_storage/storage_options.hpp>
13 
16 
19 #include "generic_publisher.h"
20 
21 using MessageRefPtr = std::shared_ptr<rosbag2_storage::SerializedBagMessage>;
22 
23 
25 {
26  Q_OBJECT
27  Q_PLUGIN_METADATA(IID "facontidavide.PlotJuggler3.StatePublisher")
28  Q_INTERFACES(PJ::StatePublisher)
29 
30 public:
32 
33  virtual ~TopicPublisherROS2() override;
34 
35  void updateState(double current_time) override;
36 
37  const char* name() const override
38  {
39  return "ROS2 Topic Re-Publisher";
40  }
41 
42  bool enabled() const override
43  {
44  return _enabled;
45  }
46 
47  const std::vector<QAction*>& availableActions() override;
48 
49  void play(double interval) override;
50 
51 public slots:
52 
53  void setEnabled(bool enabled) override;
54 
55  void filterDialog();
56 
57 private:
58 
59  std::shared_ptr<rclcpp::Context> _context;
60  std::unique_ptr<rclcpp::executors::MultiThreadedExecutor> _executor;
61  std::shared_ptr<rclcpp::Node> _node;
62 
63  bool _enabled;
64 
65  std::shared_ptr<tf2_ros::TransformBroadcaster> _tf_broadcaster;
66  std::shared_ptr<tf2_ros::StaticTransformBroadcaster> _tf_static_broadcaster;
67 
68  std::unordered_map<std::string, std::shared_ptr<GenericPublisher>> _publishers;
69 
71 
72  std::unordered_map<std::string, bool> _topics_to_publish;
73 
74  double previous_time;
75 
77 
78  std::vector<TopicInfo> _topics_info;
79 
80  std::vector<QAction*> _available_actions;
81 
82  void broadcastTF(double current_time);
83 
84  void updatePublishers();
85 };
86 
87 #endif // STATE_PUBLISHER_ROS2TOPIC_H
TopicPublisherROS2::setEnabled
void setEnabled(bool enabled) override
Definition: publisher_ros2.cpp:84
TopicPublisherROS2::~TopicPublisherROS2
virtual ~TopicPublisherROS2() override
Definition: publisher_ros2.cpp:39
TopicPublisherROS2::_available_actions
std::vector< QAction * > _available_actions
Definition: publisher_ros2.h:80
TopicPublisherROS2
Definition: publisher_ros2.h:24
TopicPublisherROS2::TopicPublisherROS2
TopicPublisherROS2()
Definition: publisher_ros2.cpp:23
generic_publisher.h
TopicPublisherROS2::filterDialog
void filterDialog()
Definition: publisher_ros2.cpp:134
TopicPublisherROS2::_enabled
bool _enabled
Definition: publisher_ros2.h:63
MessageRefPtr
std::shared_ptr< rosbag2_storage::SerializedBagMessage > MessageRefPtr
Definition: publisher_ros2.h:21
TopicPublisherROS2::_node
std::shared_ptr< rclcpp::Node > _node
Definition: publisher_ros2.h:61
TopicPublisherROS2::enabled
bool enabled() const override
Definition: publisher_ros2.h:42
TopicPublisherROS2::updateState
void updateState(double current_time) override
Definition: publisher_ros2.cpp:301
TopicPublisherROS2::availableActions
const std::vector< QAction * > & availableActions() override
Definition: publisher_ros2.cpp:44
transform_broadcaster.h
TopicPublisherROS2::_topics_info
std::vector< TopicInfo > _topics_info
Definition: publisher_ros2.h:78
TopicPublisherROS2::_select_topics_to_publish
QAction * _select_topics_to_publish
Definition: publisher_ros2.h:70
TopicPublisherROS2::name
const char * name() const override
Definition: publisher_ros2.h:37
TopicPublisherROS2::broadcastTF
void broadcastTF(double current_time)
Definition: publisher_ros2.cpp:200
TopicPublisherROS2::_previous_play_index
int _previous_play_index
Definition: publisher_ros2.h:76
ros2_parser.h
TopicPublisherROS2::_context
std::shared_ptr< rclcpp::Context > _context
Definition: publisher_ros2.h:59
statepublisher_base.h
TopicPublisherROS2::play
void play(double interval) override
Definition: publisher_ros2.cpp:351
TopicPublisherROS2::_tf_static_broadcaster
std::shared_ptr< tf2_ros::StaticTransformBroadcaster > _tf_static_broadcaster
Definition: publisher_ros2.h:66
TopicPublisherROS2::_topics_to_publish
std::unordered_map< std::string, bool > _topics_to_publish
Definition: publisher_ros2.h:72
TopicPublisherROS2::updatePublishers
void updatePublishers()
Definition: publisher_ros2.cpp:49
TopicPublisherROS2::previous_time
double previous_time
Definition: publisher_ros2.h:74
static_transform_broadcaster.h
TopicPublisherROS2::_tf_broadcaster
std::shared_ptr< tf2_ros::TransformBroadcaster > _tf_broadcaster
Definition: publisher_ros2.h:65
PJ::StatePublisher
TopicPublisherROS2::_executor
std::unique_ptr< rclcpp::executors::MultiThreadedExecutor > _executor
Definition: publisher_ros2.h:60
TopicPublisherROS2::_publishers
std::unordered_map< std::string, std::shared_ptr< GenericPublisher > > _publishers
Definition: publisher_ros2.h:68


plotjuggler_ros
Author(s): Davide Faconti
autogenerated on Sat May 24 2025 02:24:01