当前位置: 首页 > news >正文

ros2 跟着官方教学从零开始

ros2 从零开始2 节点概念

前言

接前文,命令行配置完成,示例也可以正常运行的情况下,继续学习本章节点nodes

背景

  1. ROS2图
    在接下来的几个教程中,你将学习一系列核心ROS 2概念,这些概念构成了所谓的“ROS (2)图”。
    ROS图是一个由ROS 2元素同时处理数据的网络。 如果你把它们都规划出来并可视化,它涵盖了所有可执行文件及其之间的连接
  2. ROS2节点
    ROS中的每个节点应负责单一的模块化任务,例如控制车轮电机或发布激光测距仪的传感器数据。 每个节点可以通过主题、服务、动作或参数从其他节点发送和接收数据。一个完整的机器人系统由多个节点协同工作组成。在 ROS 2 中,单个可执行文件(C++ 程序、Python 程序等)可以包含一个或多个节点。

从上图可以看出,节点(蓝色的圆代表)是一个实体的概念,一个正在执行的进程,其有一个或者多个节点。一个节点可以看成独立的模块。

实践

  1. 前一章的内容,运行turtlesim的显示节点,打开终端,执行ros2 run turtlesim turtlesim_node(ros2 run <包名> <执行名>)
  2. 查看当前活动节点ros2 node list另开终端,执行ros2 node list
    root@bc2bf85b2e4a:/ros2_ws# ros2 node list /turtlesim
    可以看出,目前只有一个节点 /turtlesim
  3. 运行turtlesim的控制节点,另开终端,执行ros2 node listros2 run turtlesim turtle_teleop_key
  4. 再返回第2步的终端,再次执行ros2 node list,可以看出来,新增了一个节点
    root@bc2bf85b2e4a:/ros2_ws# ros2 node list /teleop_turtle /turtlesim
  5. 重映射 Remap
    重新映射允许你将默认节点属性(如节点名、主题名、服务名等)重新分配到自定义值。现在,我们重新分配节点的名称。 在新终端中,执行以下命令:ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
    我们又调用了 turtlesim,另一个 turtlesim 窗口就会打开。 然而,再返回第2步的终端,再次执行ros2 node list,你会看到三个节点名称:
    root@bc2bf85b2e4a:/ros2_ws# ros2 node list /my_turtle /teleop_turtle /turtlesim
  6. 节点详情
    使用ros2 node info <节点名>可以查看节点的详细信息
    root@bc2bf85b2e4a:/ros2_ws# ros2 node info /turtlesim /turtlesim Subscribers: /parameter_events: rcl_interfaces/msg/ParameterEvent /turtle1/cmd_vel: geometry_msgs/msg/Twist Publishers: /parameter_events: rcl_interfaces/msg/ParameterEvent /rosout: rcl_interfaces/msg/Log /turtle1/color_sensor: turtlesim/msg/Color /turtle1/pose: turtlesim/msg/Pose Service Servers: /clear: std_srvs/srv/Empty /kill: turtlesim/srv/Kill /reset: std_srvs/srv/Empty /spawn: turtlesim/srv/Spawn /turtle1/set_pen: turtlesim/srv/SetPen /turtle1/teleport_absolute: turtlesim/srv/TeleportAbsolute /turtle1/teleport_relative: turtlesim/srv/TeleportRelative /turtlesim/describe_parameters: rcl_interfaces/srv/DescribeParameters /turtlesim/get_parameter_types: rcl_interfaces/srv/GetParameterTypes /turtlesim/get_parameters: rcl_interfaces/srv/GetParameters /turtlesim/list_parameters: rcl_interfaces/srv/ListParameters /turtlesim/set_parameters: rcl_interfaces/srv/SetParameters /turtlesim/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically Service Clients: Action Servers: /turtle1/rotate_absolute: turtlesim/action/RotateAbsolute Action Clients:

节点包含 订阅者,发布者,服务,动作等,这些概念要一一展开来讲。

总结

节点像是一个功能实体,包含特定的功能,完成特定的任务。

http://www.jsqmd.com/news/525646/

相关文章:

  • Dynamics 365 FO新手必看:Visual Studio 2019搭建项目框架全流程(含Model避坑指南)
  • 跨境业务中的语音分析:FUTURE POLICE多语种与跨文化适配
  • StructBERT语义相似度分析:手把手教你搭建本地中文句子比对工具
  • Java:数组的定义和使用(万字解析)
  • GPT-oss:20b镜像安装教程:Windows/Mac/Linux全平台指南
  • Python与MATLAB混编实战:手把手教你解决‘No module named matlab.engine’错误
  • SpringBoot 2.x 集成 MQTT 踩坑实录:从配置文件报错到消息成功收发(EMQX 4.4.1 Docker版)
  • Lychee Rerank MM算力方案:单卡A10实现图文混合检索重排序的低成本部署
  • 2023最全Figma样机指南:从Free iPhone 12 Pro Mockup到实战透视效果
  • Gemma-3-12B-IT实战教程:多轮对话技巧+上下文保持+追问优化策略
  • 10.数据标准与治理体系: 破解“同源不同数”,工业数据清洗与资产化实战
  • Realistic Vision V5.1 虚拟摄影棚开发实战:使用JavaScript实现批量图像生成工具
  • 论文洞察:基于重要性感知的多层级前缀KV Cache存储系统
  • 泛半导体 VMB 选型指南:国产实力派如何兼顾安全与适配性?
  • Nunchaku FLUX.1 CustomV3实战体验:19秒出图,效果惊艳的AI绘画神器
  • OpenClaw多模态实践:GLM-4-7-Flash解析截图生成操作日志
  • Crmeb二开服务号静默授权登录
  • OpenClaw关键SKILL技能优化
  • [GESP202603 一级] 数字替换
  • 用map文件揪出STM32隐藏的‘内存杀手‘——以USART库函数为例
  • AudioSeal问题解决:常见格式兼容与密钥恢复,手把手教你搞定
  • OpenClaw技能扩展:用Qwen3.5-4B-Claude实现Markdown文档自动整理
  • 2026卫生级酒瓶盖优质厂家推荐榜:避光瓶、铝塑盖、铝盖、食品级玻璃瓶、儿童安全盖、冻干瓶、医用玻璃瓶、撕拉盖选择指南 - 优质品牌商家
  • 迁移学习轴承诊断DSAN:ResNet50 - LMMD代码实战
  • 安全指纹浏览器排行榜Top10
  • Java 中的 String、StringBuffer 与 StringBuilder:区别、联系与实战选型
  • Fish Speech 1.5生成语音作品集:中英日三语惊艳效果
  • OpenClaw × 组学分析:让 AI 帮你读懂天书般的研究报告
  • SiameseUIE与Java集成开发:构建企业级信息抽取API
  • 音视频SDK深度解析:从技术演进到核心开发要点