机器人学习!(二)ROS2-节点(7)2026/02/03

节点 的 理解

执行具体任务的进程

独立运行的可执行文件

可使用不同的编程语言

可分布式运行在不同主机

通过节点名称进行管理

示例:

注意:新建节点需要在对应文件夹下的setup.py文件中增加节点入口

复制代码
from setuptools import setup

package_name = 'learning_node'

setup(
    name=package_name,
    version='0.0.0',
    packages=[package_name],
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
    ],
    install_requires=['setuptools'],
    zip_safe=True,
    maintainer='Hu Chunxu',
    maintainer_email='huchunxu@guyuehome.com',
    description='TODO: Package description',
    license='TODO: License declaration',
    tests_require=['pytest'],
    entry_points={
        'console_scripts': [

         #新增节点 及 入口
         'node_nihao            = learning_node.node_nihao:main',
         'node_nihao_class      = learning_node.node_nihao_class:main',

         'node_helloworld       = learning_node.node_helloworld:main',
         'node_helloworld_class = learning_node.node_helloworld_class:main',
         'node_object            = learning_node.node_object:main',
         'node_object_webcam     = learning_node.node_object_webcam:main',
        ],
    },
)

文字:

面向过程编程

复制代码
import rclpy
from rclpy.node import Node
import time

def main(args=None):
    rclpy.init(args=args)
    node = Node("node_nihao")

    while rclpy.ok():
        node.get_logger().info("你好,ROS2")
        time.sleep(0.5)

    node.destory_node()
    rclpy.shutdown()

面向对象编程

复制代码
import rclpy
from rclpy.node import Node
import time

class nihaoNode(Node):
    def __init__ (self, name):
        super().__init__(name)
        while rclpy.ok():
            self.get_logger().info("你好,ROS2")
            time.sleep(0.5)
            
def main(args=None):
    rclpy.init(args=args)
    node = nihaoNode("node_nihao")
    node.destroy_node()
    rclpy.shutdown()

图像:

单张图片:

获取摄像头图像流:

相关推荐
酿情师2 小时前
yihan:一款面向连续网页学习的智能侧边栏插件
学习·学习方法·工具·学习工具
瞎某某Blinder2 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
love在水一方4 小时前
VLN 入门学习计划 —— 基于 InternNav
学习
red_redemption6 小时前
自由学习记录(175)
学习
nashane7 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
_李小白7 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
勤劳的进取家7 小时前
数据链路层基础
网络·学习·算法
d111111111d8 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
y = xⁿ9 小时前
Redis八股学习日记:布隆过滤器
数据库·redis·学习
d111111111d10 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习