当前位置:网站首页>[ROS](05)ROS通信 —— 节点,Nodes & Master
[ROS](05)ROS通信 —— 节点,Nodes & Master
2022-08-02 14:02:00 【CynalFly】
文章只是个人学习过程中学习笔记,主要参考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)之间能够相互定位,然后才能进行点对点通信。
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
这个节点,是用于收集和记录节点的调试输出,该节点总是运行。
ROS.otg. ROS教程[EB/OL]. 2020-12-22[2022-7-5].
http://wiki.ros.org/cn/ROS/Tutorials. ︎
边栏推荐
猜你喜欢
IDEA打包jar包
深度学习框架pytorch快速开发与实战chapter3
Sentinel源码(四)(滑动窗口流量统计)
网络安全第三次作业
【Tensorflow】AttributeError: '_TfDeviceCaptureOp' object has no attribute '_set_device_from_string'
不精确微分/不完全微分(Inexact differential/Imperfect differential)
yolov5改进(一) 添加注意力集中机制
理解TCP长连接(Keepalive)
Supervision strikes again, what about the market outlook?2021-05-22
Flask框架的搭建及入门
随机推荐
第十单元 前后连调
Large and comprehensive pom file example
EasyExcel 的使用
binary search && tree
drf路由组件Routers
ftp常用命令详解_iftop命令详解
Diodes and their applications
CVE-2020-27986 (Sonarqube sensitive information leak) vulnerability fix
chapter7
浅浅写一下PPOCRLabel的使用及体验
世界上最大的开源基金会 Apache 是如何运作的?
Tornado框架路由系统介绍及(IOloop.current().start())启动源码分析
第十三单元 混入视图基类
C language improvement (3)
Gstreamer Plugin注册流程详解
yolov5改进(一) 添加注意力集中机制
yolov5,yolov4,yolov3乱七八糟的
RKMPP 在FFmpeg上实现硬编解码
VMM是什么?_兮是什么意思
mysql的case when如何用