当前位置: 首页 > 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.cnnetsun.cn/news/1445880.html

相关文章:

  • 2023最全Figma样机指南:从Free iPhone 12 Pro Mockup到实战透视效果
  • Adafruit SSD1306 OLED驱动库详解:I²C/SPI接口、GFX图形架构与嵌入式优化
  • 迁移学习轴承诊断DSAN:ResNet50 - LMMD代码实战
  • AI净界RMBG-1.4场景应用:平面设计素材快速获取指南
  • OptiScaler:跨平台游戏画质优化工具的技术解析与应用指南
  • GitHub上传避坑指南:项目太大、关联错误、SSH配置,一次讲清
  • 从经典到区块:Gutenberg编辑器实战进阶指南
  • XYCOM 9450-410016-T接口面板
  • 告别海量标注!用SimCLRv2对比学习,让AI自己从无标签数据中找规律
  • 如何借助TradingAgents-CN实现智能金融决策?——多智能体协作驱动的量化交易解决方案
  • TradingAgents-CN:如何用AI多智能体架构重塑智能投资决策
  • LLaMA Factory + AutoGPTQ + vllm 三件套安装避坑指南(附常见错误解决方案)
  • Transmission在绿联NAS上的避坑指南:端口设置与文件权限详解
  • 【限时技术解密】Dify 0.12+重排序Pipeline重构内幕:如何用异步Score缓存+动态Fallback机制将P99延迟压至63ms以下?
  • 【开题答辩全过程】以 列车信息查询系统为例,包含答辩的问题和答案
  • Step3-VL-10B-Base与Transformer架构优化:提升多模态理解性能
  • Qwen2-VL-2B-Instruct性能基准测试:不同GPU配置下的推理速度对比
  • 通义千问3-Reranker-0.6B新手教程:从环境搭建到第一个排序任务,全程详解
  • 运营实操经验:巧用短链接有效期,避坑还能提效
  • 描述逻辑赋能NLP语义分析新突破,自动化通信谜团:耐达讯自动化Modbus RTU如何变身 Profibus连接触摸屏。
  • 关于岩溶隧道突水渗流及围岩损伤的流固耦合行为分析的全面探讨(500M参考资源的岩土建模技术与方法)
  • 3个创意玩法揭秘:如何用Shap-E让文字和图片变成立体模型
  • Rsoft中四方晶格二维光子晶体TE与TM仿真的研究
  • 光刻技术第20期 | 非线性压缩感知光源-掩模优化技术及对比分析
  • 智能OpenCore EFI构建工具:OpCore Simplify自动化解决方案
  • Hap QuickTime编解码器:解锁GPU加速视频处理的终极方案
  • 【Dify 0.8+ Rerank安全合规升级手册】:满足等保2.0三级与GDPR第22条的向量重排序审计日志、权重隔离与可解释性落地方案
  • OpenCode应用场景:如何在VS Code中集成,实现边写代码边AI问答
  • MedGemma医学影像分析实战:上传X光CT,用自然语言提问获取AI解读
  • 告别出图焦虑!用Cadence Allegro导出Gerber文件的5个关键检查点与高效技巧