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

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


目录

  • 1、概念
  • 2、Nodes
  • 3、Master
  • 4、rosnode
  • 5、 实例测试

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)之间能够相互定位,然后才能进行点对点通信。
   

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 的节点注册, 参数服务器, 话题通信管理等等。
[ROS](05)ROS通信 —— 节点,Nodes & Master_第1张图片
#步骤2:运行rosnode 相关命令。
[ROS](05)ROS通信 —— 节点,Nodes & Master_第2张图片

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


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

你可能感兴趣的:(ROS,笔记,自动驾驶)