ROS/ROS2FoxyUbuntu20.04RPi4B

Motor Drive Control on RPi4B using ROS2 Topic

leohycho 2022. 5. 12. 15:04

my_pub_motor344.py : 

# !/usr/bin/env/ python3

import rclpy
from rclpy.node import Node
from rclpy.qos import QoSProfile
from std_msgs.msg import Int32
import time


class PubMotor344(Node):

    def __init__(self):
        super().__init__('pub_node_motor344')
        qos_profile = QoSProfile(depth=10) # queue_size = 10
        self._publisher = self.create_publisher(Int32, 'topic_motor344', qos_profile)    
        msg = Int32()
        msg.data = 5
        self._publisher.publish(msg)
        now = time.localtime()
        datetime_pub = time.strftime('%c', now)
        self.get_logger().info(f'message {msg.data} is published at {datetime_pub}')        

def main(args=None):
    rclpy.init(args=args)

    pub_motor344 = PubMotor344()
    
    try:
        rclpy.spin_once(pub_motor344)
    except KeyboardInterrupt:
        pub_motor344.get_logger().info('keyboard Interrupt')
    finally:        
        pub_motor344.destroy_node()
        rclpy.shutdown()

if __name__ == '__main__':
    main()

my_sub_motor344.py :

# !/usr/bin/env/ python3

import rclpy
from rclpy.node import Node
from rclpy.qos import QoSProfile
from std_msgs.msg import Int32
import time


class PubMotor344(Node):

    def __init__(self):
        super().__init__('pub_node_motor344')
        qos_profile = QoSProfile(depth=10) # queue_size = 10
        self._publisher = self.create_publisher(Int32, 'topic_motor344', qos_profile)    
        msg = Int32()
        msg.data = 5
        self._publisher.publish(msg)
        now = time.localtime()
        datetime_pub = time.strftime('%c', now)
        self.get_logger().info(f'message {msg.data} is published at {datetime_pub}')        

def main(args=None):
    rclpy.init(args=args)

    pub_motor344 = PubMotor344()
    
    try:
        rclpy.spin_once(pub_motor344)
    except KeyboardInterrupt:
        pub_motor344.get_logger().info('keyboard Interrupt')
    finally:        
        pub_motor344.destroy_node()
        rclpy.shutdown()

if __name__ == '__main__':
    main()

 

[Reference]

[1] https://github.com/ros/std_msgs