/eulero_manager/feedback
#
Caution
This documentation page has been auto-generated.
It may be missing some details.
/eulero_manager/feedback
Quick Facts
- Category
- Message type
- Direction
↔️ you might both publish and subscribe to this topic.
Visualizes and modifies environmental metadata using RViz.
Quick snippets#
Check the publication rate#
$ ros2 topic hz /eulero_manager/feedback
Display the data published on the topic#
$ ros2 topic echo /eulero_manager/feedback
How to use in your code#
Subscribe to the topic using Python#
1#!/usr/bin/env python
2
3import rclpy
4from rclpy.node import Node
5
6from visualization_msgs.msg import InteractiveMarkerFeedback
7
8
9class FeedbackSubscriber(Node):
10
11 def __init__(self):
12 super().__init__('eulero_manager_feedback_subscriber')
13 self.subscription = self.create_subscription(
14 InteractiveMarkerFeedback,
15 '/eulero_manager/feedback',
16 self.listener_callback,
17 10)
18
19 def listener_callback(self, msg):
20 # see https://docs.ros2.org/latest/api/visualization_msgs/msg/InteractiveMarkerFeedback.html
21 # for the msg structure
22 self.get_logger().info('I heard: "%s"' % msg.data)
23
24
25if __name__ == '__main__':
26 rclpy.init(args=args)
27
28 subscriber = FeedbackSubscriber()
29
30 rclpy.spin(subscriber)
31
32 rclpy.shutdown()
Publish to the topic#
1#!/usr/bin/env python
2
3import rclpy
4from rclpy.node import Node
5
6from visualization_msgs.msg import InteractiveMarkerFeedback
7
8
9class FeedbackPublisher(Node):
10
11 def __init__(self):
12 super().__init__('eulero_manager_feedback_publisher')
13 self.publisher = self.create_publisher(
14 InteractiveMarkerFeedback,
15 '/eulero_manager/feedback',
16 10)
17 timer_period = 0.5 # seconds
18 self.timer = self.create_timer(timer_period, self.timer_callback)
19
20 def timer_callback(self):
21
22 msg = InteractiveMarkerFeedback()
23
24 # check https://docs.ros2.org/latest/api/visualization_msgs/msg/InteractiveMarkerFeedback.html
25 # for the msg structure
26 # msg.data = ...
27
28 self.publisher.publish(msg)
29 self.get_logger().info('Publishing: "%s"' % msg.data)
30
31
32if __name__ == '__main__':
33 rclpy.init(args=args)
34
35 publisher = FeedbackPublisher()
36
37 rclpy.spin(publisher)
38
39 rclpy.shutdown()
Subscribe to the topic using C++#
1#include <memory>
2
3#include "rclcpp/rclcpp.hpp"
4#include "visualization_msgs/msg/interactive_marker_feedback.hpp"
5
6using std::placeholders::_1;
7using namespace rclcpp;
8
9class FeedbackSubscriber : public rclcpp::Node
10{
11public:
12 FeedbackSubscriber()
13 : Node("eulero_manager_feedback_subscriber")
14 {
15 subscription_ = this->create_subscription<visualization_msgs::msg::InteractiveMarkerFeedback>(
16 "/eulero_manager/feedback",
17 10,
18 std::bind(&FeedbackSubscriber::topic_callback, this, _1));
19 }
20
21private:
22 void topic_callback(const visualization_msgs::msg::InteractiveMarkerFeedback::SharedPtr msg) const
23 {
24 // see https://docs.ros2.org/latest/api/visualization_msgs/msg/InteractiveMarkerFeedback.html
25 // for the msg structure
26 RCLCPP_INFO_STREAM(this->get_logger(), "Got " << msg->data);
27 }
28
29 Subscription<visualization_msgs::msg::InteractiveMarkerFeedback>::SharedPtr subscription_;
30};
31
32int main(int argc, char * argv[])
33{
34init(argc, argv);
35spin(std::make_shared<FeedbackSubscriber>());
36shutdown();
37return 0;
38}
Publish to the topic using C++#
1#include <chrono>
2#include <functional>
3#include <memory>
4#include <string>
5
6#include "rclcpp/rclcpp.hpp"
7#include "visualization_msgs/msg/interactive_marker_feedback.hpp"
8
9using namespace std::chrono_literals;
10using namespace rclcpp;
11
12class FeedbackPublisher : public rclcpp::Node
13{
14public:
15 FeedbackPublisher()
16 : Node("eulero_manager_feedback_publisher")
17 {
18 publisher_ = this->create_publisher<visualization_msgs::msg::InteractiveMarkerFeedback>("/eulero_manager/feedback", 10);
19 timer_ = this->create_wall_timer(
20 500ms,
21 std::bind(&FeedbackPublisher::timer_callback, this));
22 }
23
24private:
25 void timer_callback()
26 {
27 auto msg = visualization_msgs::msg::InteractiveMarkerFeedback();
28
29 // check https://docs.ros2.org/latest/api/visualization_msgs/msg/InteractiveMarkerFeedback.html
30 // for the msg structure
31 //msg.data = ...;
32 publisher_->publish(msg);
33 }
34
35 TimerBase::SharedPtr timer_;
36 Publisher<visualization_msgs::msg::InteractiveMarkerFeedback>::SharedPtr publisher_;
37};
38
39int main(int argc, char * argv[])
40{
41init(argc, argv);
42spin(std::make_shared<FeedbackPublisher>());
43shutdown();
44return 0;
45}