ros2_wait_for_cloud_message.py
Go to the documentation of this file.
1 # ros2_wait_for_cloud_message.py subscribes to topic "/cloud" on ROS2, receives 10 messages and exits.
2 # Replacement for missing "rostopic echo -n 10 /cloud" (ROS1), since ROS2 does not support parameter "-n 10" or something equivalent
3 # Taken from https://docs.ros.org/en/foxy/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.html
4 
5 import rclpy
6 from rclpy.node import Node
7 from sensor_msgs.msg import PointCloud2
8 
9 class CloudSubscriber(Node):
10 
11  def __init__(self):
12  super().__init__('cloud_subscriber')
13  self.cloud_msg_cnt = 0
14  self.subscription = self.create_subscription(PointCloud2, 'cloud', self.listener_callback, 10)
15 
16  def listener_callback(self, msg):
17  # self.get_logger().info('cloud_subscriber: "%s"' % msg)
18  self.cloud_msg_cnt = self.cloud_msg_cnt + 1
19 
20 def main(args=None):
21  max_msg_cnt = 10
22  rclpy.init(args=args)
23  cloud_subscriber = CloudSubscriber()
24  while cloud_subscriber.cloud_msg_cnt < max_msg_cnt:
25  rclpy.spin_once(cloud_subscriber)
26  print("CloudSubscriber: {} messages received".format(cloud_subscriber.cloud_msg_cnt))
27  cloud_subscriber.destroy_node()
28  rclpy.shutdown()
29 
30 if __name__ == '__main__':
31  main()
ros2_wait_for_cloud_message.CloudSubscriber
Definition: ros2_wait_for_cloud_message.py:9
ros2_wait_for_cloud_message.CloudSubscriber.listener_callback
def listener_callback(self, msg)
Definition: ros2_wait_for_cloud_message.py:16
roswrap::console::print
ROSCONSOLE_DECL void print(FilterBase *filter, void *logger, Level level, const char *file, int line, const char *function, const char *fmt,...) ROSCONSOLE_PRINTF_ATTRIBUTE(7
Don't call this directly. Use the ROS_LOG() macro instead.
ros2_wait_for_cloud_message.CloudSubscriber.subscription
subscription
Definition: ros2_wait_for_cloud_message.py:14
ros2_wait_for_cloud_message.CloudSubscriber.__init__
def __init__(self)
Definition: ros2_wait_for_cloud_message.py:11
ros2_wait_for_cloud_message.CloudSubscriber.cloud_msg_cnt
cloud_msg_cnt
Definition: ros2_wait_for_cloud_message.py:13
ros2_wait_for_cloud_message.main
def main(args=None)
Definition: ros2_wait_for_cloud_message.py:20


sick_scan_xd
Author(s): Michael Lehning , Jochen Sprickerhof , Martin Günther
autogenerated on Fri Oct 25 2024 02:47:10