[ROS](05)ROS通信 —— 节点,Nodes & Master

17 篇文章 12 订阅

  文章只是个人学习过程中学习笔记,主要参考ROS教程1


1、概念

节点(Nodes):节点是一个可执行文件,它可以通过ROS来与其他节点进行通信。
节点管理器(Master):ROS的命名服务,例如帮助节点发现彼此。

2、Nodes

    一个节点(Node)实际上只不过是ROS软件包中的一个可执行文件(C++编译生成的可执行文件、python脚本),可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫做节点。。ROS节点使用ROS客户端库与其他节点通信。节点可以发布或订阅话题,也可以提供或使用服务。一个ROS控制系统包含许多节点,例如无人车,一个节点(Node)控制无人车的车轮电机、一个节点(Node)通过惯导获取定位信息、一个节点(Node)通过摄像头获取图像信息、一个节点(Node)融合各种信息执行路径规划等等。

ROS客户端库可以让用不同语言编写的节点进行相互通信:

  • roscpp = C++客户端
  • rospy = python客户端

3、Master

   机器人是一种组件众多、功能庞大、高度复杂的系统性实现。在实际的应用中,机器人可能集成激光雷达、惯导、毫米波雷达、摄像头、GPS等各种传感器以及运动控制器件,负责感知、控制、决策和计算等功能,每一项功能点都是一个单独的节点(Nodes)。那么如何去管理、分配、控制这些节点呢?这就用到ROS Master,它为ROS系统中的其余节点提供命名和注册服务。Master的作用是使各个ROS节点(Nodes)之间能够相互定位,然后才能进行点对点通信。
   
启动ROSNodes并连接Master

4、rosnode

   rosnode是用于显示有关ROS节点信息的命令行工具。命令有:

命令功能
rosnode ping测试与节点的连接
rosnode list列出活动的节点
rosnode info打印关于节点的信息
rosnode machine列出指定设备上的节点
rosnode kill杀死一个正在运行的节点
rosnode cleanup清除不可连接的节点

在使用ctrl+C停止节点时,该节点并没有彻底清除,可以使用rosnode cleanup清除节点。

5、 实例测试

#步骤1:(ROS首要操作)运行roscore命令, 启动 master, master负责 ros 的节点注册, 参数服务器, 话题通信管理等等。
在这里插入图片描述
#步骤2:运行rosnode 相关命令。
在这里插入图片描述

/rosout这个节点,是用于收集和记录节点的调试输出,该节点总是运行。


  1. ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5].
    http://wiki.ros.org/cn/ROS/Tutorials. ↩︎

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值