机器人学习!(二)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()

图像:

单张图片:

获取摄像头图像流:

相关推荐
是隼人9 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
大衛說9 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好10 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
学运维的Kysan11 小时前
暑假运维学习打卡第二十九天8.29
学习
zbyyd11 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
一条破秋裤11 小时前
02_软件安装与新建工程
学习
来了就未晚12 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习
GHL28427109012 小时前
用codex做一个简单技能学习
学习·ai
西西弗Sisyphus13 小时前
模型训练 不同批次大小与学习率下的训练损失对比(2)
学习·batchsize·lr·learning rate
软件开发技术深度爱好者13 小时前
在线学习实践 TypeScript 的官方Playground(演练场)使用介绍
javascript·学习·typescript