py_pubsub 패키지를 jupyter에서 실행하는 코드입니다.

Subscriber code

import rclpy
from rclpy.node import Node
from std_msgs.msg import String
 
 
class MinimalSubscriber(Node):
 
    def __init__(self):
        super().__init__("minimal_subscriber")
        self.subscription = self.create_subscription(
            String, "topic", self.listener_callback, 10
        )
        self.subscription  # prevent unused variable warning
 
    def listener_callback(self, msg):
        self.get_logger().info(f"I heard: {msg.data}")
 
 
# def main(args=None):
#     rclpy.init(args=args)
#     minimal_subscriber = MinimalSubscriber()
#     rclpy.spin(minimal_subscriber)
#     minimal_subscriber.destroy_node()
#     rclpy.shutdown()

Publisher 코드드

# import rclpy
# from rclpy.node import Node
# from std_msgs.msg import String
 
 
class MinimalPublisher(Node):
 
    def __init__(self):
        super().__init__("minimal_publisher")
        self.publisher_ = self.create_publisher(String, "topic", 10)
        timer_period = 0.5  # seconds
        self.timer = self.create_timer(timer_period, self.timer_callback)
        self.i = 0
 
    def timer_callback(self):
        msg = String()
        msg.data = f"Hello World: {self.i}"
        self.publisher_.publish(msg)
        self.get_logger().info(f"Publishing: {msg.data}")
        self.i += 1
 
 
# def main(args=None):
#     rclpy.init(args=args)
#     minimal_publisher = MinimalPublisher()
#     rclpy.spin(minimal_publisher)
#     minimal_publisher.destroy_node()
#     rclpy.shutdown()
import time
 
rclpy.init()
minimal_subscriber = MinimalSubscriber()
minimal_publisher = MinimalPublisher()
 
try:
    for _ in range(30):
        rclpy.spin_once(minimal_publisher)
        rclpy.spin_once(minimal_subscriber)
        time.sleep(1.0)
finally:
    minimal_subscriber.destroy_node()
    minimal_publisher.destroy_node()
    rclpy.shutdown()
[INFO] [1745347587.345396758] [minimal_publisher]: Publishing: Hello World: 0
[INFO] [1745347587.363020318] [minimal_subscriber]: I heard: Hello World: 0
[INFO] [1745347588.382281375] [minimal_publisher]: Publishing: Hello World: 1
[INFO] [1745347588.392444829] [minimal_subscriber]: I heard: Hello World: 1
[INFO] [1745347589.397276489] [minimal_publisher]: Publishing: Hello World: 2
[INFO] [1745347589.401492075] [minimal_subscriber]: I heard: Hello World: 2
[INFO] [1745347590.406465800] [minimal_publisher]: Publishing: Hello World: 3
[INFO] [1745347590.412285797] [minimal_subscriber]: I heard: Hello World: 3
[INFO] [1745347591.423198741] [minimal_publisher]: Publishing: Hello World: 4
[INFO] [1745347591.428896320] [minimal_subscriber]: I heard: Hello World: 4
[INFO] [1745347592.437301431] [minimal_publisher]: Publishing: Hello World: 5
[INFO] [1745347592.464249416] [minimal_subscriber]: I heard: Hello World: 5
[INFO] [1745347593.472981225] [minimal_publisher]: Publishing: Hello World: 6
[INFO] [1745347593.478466727] [minimal_subscriber]: I heard: Hello World: 6
[INFO] [1745347594.497613850] [minimal_publisher]: Publishing: Hello World: 7
[INFO] [1745347594.505079717] [minimal_subscriber]: I heard: Hello World: 7
[INFO] [1745347595.510113455] [minimal_publisher]: Publishing: Hello World: 8
[INFO] [1745347595.517906515] [minimal_subscriber]: I heard: Hello World: 8
[INFO] [1745347596.523199037] [minimal_publisher]: Publishing: Hello World: 9
[INFO] [1745347596.528418310] [minimal_subscriber]: I heard: Hello World: 9
[INFO] [1745347597.547920403] [minimal_publisher]: Publishing: Hello World: 10
[INFO] [1745347597.573039215] [minimal_subscriber]: I heard: Hello World: 10
[INFO] [1745347598.603897191] [minimal_publisher]: Publishing: Hello World: 11
[INFO] [1745347598.646759026] [minimal_subscriber]: I heard: Hello World: 11
[INFO] [1745347599.672670776] [minimal_publisher]: Publishing: Hello World: 12
[INFO] [1745347599.702398701] [minimal_subscriber]: I heard: Hello World: 12
[INFO] [1745347600.726534768] [minimal_publisher]: Publishing: Hello World: 13
[INFO] [1745347600.758351270] [minimal_subscriber]: I heard: Hello World: 13
[INFO] [1745347601.764941660] [minimal_publisher]: Publishing: Hello World: 14
[INFO] [1745347601.778125855] [minimal_subscriber]: I heard: Hello World: 14
[INFO] [1745347602.787342286] [minimal_publisher]: Publishing: Hello World: 15
[INFO] [1745347602.796627497] [minimal_subscriber]: I heard: Hello World: 15
[INFO] [1745347603.809495917] [minimal_publisher]: Publishing: Hello World: 16
[INFO] [1745347603.813750236] [minimal_subscriber]: I heard: Hello World: 16
[INFO] [1745347604.825612163] [minimal_publisher]: Publishing: Hello World: 17
[INFO] [1745347604.829793945] [minimal_subscriber]: I heard: Hello World: 17
[INFO] [1745347605.848952911] [minimal_publisher]: Publishing: Hello World: 18
[INFO] [1745347605.869222031] [minimal_subscriber]: I heard: Hello World: 18
[INFO] [1745347606.884785328] [minimal_publisher]: Publishing: Hello World: 19
[INFO] [1745347606.902707266] [minimal_subscriber]: I heard: Hello World: 19
[INFO] [1745347607.908448828] [minimal_publisher]: Publishing: Hello World: 20
[INFO] [1745347607.922098954] [minimal_subscriber]: I heard: Hello World: 20
[INFO] [1745347608.929721433] [minimal_publisher]: Publishing: Hello World: 21
[INFO] [1745347608.934622211] [minimal_subscriber]: I heard: Hello World: 21
[INFO] [1745347609.941516718] [minimal_publisher]: Publishing: Hello World: 22
[INFO] [1745347609.947172148] [minimal_subscriber]: I heard: Hello World: 22
[INFO] [1745347610.952531499] [minimal_publisher]: Publishing: Hello World: 23
[INFO] [1745347610.957460791] [minimal_subscriber]: I heard: Hello World: 23
[INFO] [1745347611.964997774] [minimal_publisher]: Publishing: Hello World: 24
[INFO] [1745347611.969349325] [minimal_subscriber]: I heard: Hello World: 24
[INFO] [1745347613.006396495] [minimal_publisher]: Publishing: Hello World: 25
[INFO] [1745347613.019271631] [minimal_subscriber]: I heard: Hello World: 25
[INFO] [1745347614.027281606] [minimal_publisher]: Publishing: Hello World: 26
[INFO] [1745347614.033271141] [minimal_subscriber]: I heard: Hello World: 26
[INFO] [1745347615.049126482] [minimal_publisher]: Publishing: Hello World: 27
[INFO] [1745347615.055239037] [minimal_subscriber]: I heard: Hello World: 27
[INFO] [1745347616.066164864] [minimal_publisher]: Publishing: Hello World: 28
[INFO] [1745347616.076176764] [minimal_subscriber]: I heard: Hello World: 28
[INFO] [1745347617.081895438] [minimal_publisher]: Publishing: Hello World: 29
[INFO] [1745347617.085371150] [minimal_subscriber]: I heard: Hello World: 29