ROS2保持了ROS1的特性--當然Node也完整維持了。差別主要發生在,ROS2比較偏物件導向,因此Node的各種方法是依照繼承而來的:

import rclpy 
from rclpy.node import Node 
class Ex_1(Node): 
    def __init__(self): 
        super().__init__('Ex_1') #初始化 Ex_1 node 
        self.get_logger().info('Hello World') 
        #印出 Hello World 
        
if __name__ == '__main__': 
    rclpy.init() 
    ex1 = Ex_1() 
    ex1.destroy_node() 
    rclpy.shutdown()

可以看到,和ROS1相比,這邊直接使用super關鍵字繼承屬性並初始化。

而雖然ROS2沒有所謂的Master,但每一個Node節點都需要rclpy.init(),這一行一定需要,請不要以任何理由去除它。