详细介绍:【ROS2学习笔记】节点篇:节点概述

news/2025/10/12 19:39:39/文章来源:https://www.cnblogs.com/tlnshuju/p/19137098

详细介绍:【ROS2学习笔记】节点篇:节点概述

2025-10-12 19:35  tlnshuju  阅读(0)  评论(0)    收藏  举报

前言

本系列博文是本人的学习笔记,自用为主,不是教程,学习请移步其他大佬的相关教程。主要学习途径为@鱼香ROS大佬的教程,欢迎各位大佬交流学习,若有错误,轻喷。

一、ROS2 节点是什么?—— 核心概念

节点是 ROS2 中负责单一模块化功能的 “小模块”,就像机器人的 “小分工”,一个节点只干一件具体的事,避免功能混乱。举个例子:

  • 节点 1:专门控制车轮转动(让机器人动起来)
  • 节点 2:专门从激光雷达读取原始数据(“眼睛” 看世界)
  • 节点 3:专门处理激光雷达数据(比如去掉噪声,让数据更准)
  • 节点 4:专门负责机器人定位(知道自己在哪)

二、节点之间怎么 “说话”?——4 种通信方式

不同节点要配合工作(比如 “读激光数据” 的节点,要把数据传给 “处理激光数据” 的节点),就需要 “通信”。ROS2 已经自带 4 种通信方式,不用我们自己造轮子:

  1. 话题(topics)
  2. 服务(services)
  3. 动作(Action)
  4. 参数(parameters)

小贴士:这 4 种方式的具体用法和代码实现,后面会在后续内容学习,现在先记住 “节点靠这 4 种方式交互” 就行。

三、怎么启动一个节点?—— 实操指令

知道了节点是什么,接下来动手启动一个节点感受下!

1. 核心指令格式

ros2 run  
  • 指令意思:启动某个 “包”(package)里的 “可执行文件”(executable)对应的节点(注:“包” 和 “工作空间” 的概念下一节学,现在先跟着操作)

2. 实际例子:启动小乌龟模拟器节点

最典型的 “小乌龟” 例子实操,指令如下:

ros2 run turtlesim turtlesim_node

运行后会弹出一个窗口,里面有一只小乌龟 —— 这就说明节点启动成功啦!

四、怎么查看节点信息?——ROS2 命令行工具(CLI)

启动节点后,我们需要知道 “当前有哪些节点”“节点的详细信息”,这就需要用命令行界面(CLI) 。

1. 先搞懂:CLI vs GUI

  • GUI(图形用户界面):就是我们平时用的 Windows/macOS 可视化界面,用鼠标点按钮操作(比如打开文件夹)。
  • CLI(命令行界面):就是 “黑框框” 终端,通过输指令操作。对机器人学习来说,CLI 更灵活、效率更高。

2. 常用的节点相关 CLI 指令

整理成表格,方便记和查:

指令格式作用示例
ros2 run <package_name> <executable_name>启动节点(常用)ros2 run turtlesim turtlesim_node(启动小乌龟节点)
ros2 node list查看当前所有节点的列表(常用)运行后会显示类似 /turtlesim 的节点名
ros2 node info <node_name>查看某个节点的详细信息(常用)ros2 node info /turtlesim(查看小乌龟节点的信息,会显示它的通信关系)
ros2 run <包名> <可执行文件名> --ros-args --remap __node:=<新节点名>重命名节点(比如不想用默认名)ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle(把小乌龟节点名改成my_turtle
ros2 run <包名> <可执行文件名> --ros-args -p <参数名>:=<参数值>启动节点时设置参数ros2 run example_parameters_rclcpp parameters_basic --ros-args -p rcl_log_level:=10(设置日志级别参数为 10)

五、本章重点总结

  1. 节点核心:一个节点负责一个单独的模块化功能,比如读激光数据、控车轮。
  2. 节点交互:靠 ROS2 自带的 4 种方式 —— 话题、服务、动作、参数(后面学代码)。
  3. 启动节点:用 ros2 run <包名> <可执行文件名>,例子:启动小乌龟 ros2 run turtlesim turtlesim_node
  4. 查看节点:记住 3 个常用 CLI 指令 ——ros2 node list(看列表)、ros2 node info <节点名>(看详情)、--remap __node:=新名(重命名)。
  5. 下一节内容:学习 “工作空间” 的概念(搞懂 “包” 是什么)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.1 函数逼近(Function Approximation)

函数逼近(Function Approximation) 此前介绍的所有方法都是表格方法(tabular methods),即为每个状态–动作对存储一个值:要么是该动作的 Q 值,要么是该动作的偏好值。在大多数实际应用中,这样存储的值数量会迅…

VSCode code-snippets Note

VSCode code-snippets Note在使用 VSCode 作为 C++ 开发工具的时候,编写头文件的时候会有大量的冗余代码,使用 Code Snippets 中的 transform 可以大幅提高该过程的效率,于是这里总结一些 VSCode 中一些开发常用的 …

Elasticsearch 备份:snapshot 镜像使用篇

本文是 ES 备份的镜像使用篇,主要介绍了 snapshot 的备份恢复原理和使用细节。上一篇文章中,我们简要的列举了 Elasticsearch 备份 主要的几个方案,比对了一下各个方案的实现原理、优缺点和适用的场景。现在我们来看…

本次科研收获

不要害怕修改项目源代码,现在的AI Agent已经很强大了,可以直接把需求告诉他,让他改

2025.10.12 - 20243867孙堃2405

早上太阳照到窗台上,风轻轻的飘进来,把我没看完的书吹得翻了两页,感觉这会儿时间都变慢了。

git clone 克隆下载深度层级仓库最新源码而不是整个仓库

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版 git version 2.9.0.windows.1二、命令原型 usage: git clone [<options>] [--] <repo> [<dir>]--depth <depth> create a shallow cl…

九、可供选择的体系结构

九、可供选择的体系结构 之前发现大多数时间只有20%的指令会使用,所以不使用复杂的扩展指令集,而是使用RISC,目前大多数体系结构采用RISC内核实现CISC架构RISC设备 RISC是一种设计方法,比CISC指令集规模更小的指令…

Linux查看一个文件的时候发生了什么?

Linux查看一个文件的时候发生了什么?概念辨析 整体的关系是这样的:下面来逐个介绍图中的内容。 文件系统磁盘文件系统:按照指定的格式和规则直接将数据存在磁盘中,Ext 2/3/4等等拿到磁盘首先格式化为具体的磁盘文件…

2025 年 10 月金属门窗厂家加盟代理品牌推荐排行榜,行业权威盘点与品质红榜发布

在金属门窗加盟代理市场,品牌的生产实力与产品竞争力是创业者核心考量。2025 年,消费者对金属门窗的耐用性、安全性、节能性需求提升,兼具先进技术与完善扶持的品牌更具加盟价值。以下十大品牌经权威盘点,凭硬实力…

五、指令集架构深入分析

五、指令集架构深入分析 雇主不是需要汇编语言程序员,而是需要有理解计算机体系结构的人来写出各高效的程序 指令的格式 指令集设计的考虑因素? ISA设计考虑因素:指令占用内存空间大小; 指令系统复杂程度,主要指指…

ARC 208 Div.2

三天之期已到,这一次,我要夺回属于我的一切!

八、系统软件

八、系统软件 编译时绑定Compile time binding :给定明确的代码 装载时绑定Load time binding:装载到内存里面不可以再修改 运行时绑定Run time binding:模块不运行就不会加载 链接:不同的二进制文件形成一个单一的…

七、输入输出和存储系统

七、输入输出和存储系统 AMDAHL定律(阿姆达尔) 计算机系统整体性能的速度提升(加速比)取决于某个特定部件本身的加速率和该部件在系统中的使用率。公式表示为式中,S为系统整体性能的加速率,f表示待替换部件完成的…

那快把题端上来吧(五)

十月训练好题记录量子通信 将 \(256\) 分成 \(16\times 16\) ,因为 \(k\le 15\) ,所以合法的串至少有一个块是和询问串完全相同的。 记录每个块每一种可能的值对于的字典编号,扫描这些字典判断是否合法。 因为字典是…

机器学习学术研讨会柏林举办

某中心柏林办公室将举办StatML牛津帝国理工学院机器学习研讨会,旨在搭建学术界与工业界的桥梁,促进机器学习与计算统计领域的学术交流与合作,探讨方法论进展及实际应用解决方案。某中心将主办StatML牛津帝国理工学院…

构建易受攻击的AWS DevOps环境:CloudGoat攻防实战

本文详细介绍了如何在CloudGoat中构建易受攻击的AWS DevOps环境,包含完整的攻击路径分析、IAM权限绕过技巧、供应链安全漏洞利用,以及使用Terratest进行端到端自动化测试的方法。构建易受攻击的AWS DevOps环境作为Cl…

虚拟机和windows

一、虚拟机 1.1 虚拟机的概念 ​ 一台计算机可以运算多个操作系统 1.2 虚拟机的两种模式寄居架构:在物理硬件上的操作系统中安装虚拟机软件运行其他操作系统 原生架构:虚拟机本身就是操作系统,在虚拟机上运行多个操…

实用指南:二型最大似然(Type II Maximum Likelihood):概述与核心概念

实用指南:二型最大似然(Type II Maximum Likelihood):概述与核心概念pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…

MySQL 5.7版本,搭建一个两主一从的多源主从复制环境

0. 概述 自MySQL5.7.6 版本开始,就支持多源复制。本文简要记录下两主一从的多源复制部署过程,及其中的要点。 1. 分别在两个主库中模拟需要同步的数据:主库1:在mm数据库中创建测试表mm,并插入几条数据。root@loca…

PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像疑问深度学习优化技术

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …