ros的基本用法一ROS的节点通信

[ROS](05)ROS通信 —— 节点,Nodes & Master 节点是一个可执行文件,它可以通过ROS来与其他节点进行通信。 阅读详情

第一节:ROS的节点通信

摘要:

介绍ROS的节点基础通信,也即发布端到订阅端的单向通信。

1. *理论介绍*

节点是ROS中最小的进程单位,每一个节点都是一个可执行的单位,负责实现具体的功能,如数据获取,坐标变换图像信息获取等功能。

编程语言可以是Python或者CPP

2. *功能实现*

创建一个发布端,发布内容是:hello,wpf

创建一个订阅端,接收发布的内容并在终端显示

3. *步骤实现*

3.1在ROS的工作空间中,创建一个功能包,并且进行编译:

wpf@wpfpc:$ cd ~/catkin_fs/src
wpf@wpfpc:~/catkin_fs/src$ catkin_create_pkg test_pkg std_msgs roscpp rospy
wpf@wpfpc:~/catkin_fs/src$ cd ..
wpf@wpfpc:~/catkin_fs$ catkin_make

文件功能包的文件目录如下

wpf@wpfpc:~/catkin_fs/src/test_pkg$ tree
.
├── CMakeLists.txt
├── include
│  └── test_pkg
├── package.xml
└── src  
	├── pubForBeginner.cpp  
	└── subForBeginner.cpp 

3.2在创建的功能包的src目录下创建两个文件

pubForBeginner.cpp

subForBeginner.cpp

3.3 修改功能包中CMakeList.txt的内容

3.4 代码修改之后,编译成功之后即可运行

3.5 打开四个终端分别执行,一个roscore;两个节点,以及运行rqt查看节点之间的通信关系。

wpf@wpfpc:~/catkin_fs$ roscore
wpf@wpfpc:~/catkin_fs$ rosrun test_pkg pubForBeginner
wpf@wpfpc:~/catkin_fs$ rosrun test_pkg subForBeginner
wpf@wpfpc:~/catkin_fs$ rosrun rqt_graph  rqt_graph

代码运行结果如下:

wpf@wpf:~$ rosrun test_pkg subForBeginner 
[ INFO] [1654669671.867138051]: The message subscribed is hello,wpf:
[ INFO] [1654669671.966282122]: The message subscribed is hello,wpf:
[ INFO] [1654669672.066592904]: The message subscribed is hello,wpf:
[ INFO] [1654669672.167693223]: The message subscribed is hello,wpf:
....

节点之间的通信框图如下:

1.
在这里插入图片描述

*实验分析:*

本实验,实现了节点之间的通信功能,发布端发送信息,订阅端口能接收到信息。通过通信的结构框图也可以看出效果。

ROS 的通信机制之话题订阅模型详解 话题订阅模型在ROS中的实现本质上依赖于底层的通信机制和网络编程。 阅读详情

相关推荐

ros入门 工程目录结构、节点通信方式、基本操作命令

目录 ROS(Robot Operating System) ros的特点 ros的系统实现 ROS(Robot Operating System) ros的基本框架是斯坦福大学人工智能实验室在STAIR项目与机器人技术公司Willow Garage的个人机器人项目(Personal Robots Program)之间的合作中为了提高机器人研发中的软件复用率,由吴恩达教授指导的Morga...

德prince 1万+

ROS学习2:ROS通信机制

ROS学习2:ROS通信机制

qq_42994487的博客 4967

ROS节点,消息,话题,服务的介绍

整理结合机器人操作系统(ros)浅析和网址http://wiki.ros.org/cnNODEnode几乎是无处不在,这个东西相当于可执行文件,目前我更愿意把它当做cpp文件,通过catkin_make之后生成可执行文件。Message不用说了,没有message就是哑巴了。还是这是血液吧,不然传递机制是无法建立起来的TOPIC就像是QQ群一样,当有人发了一条消息后,QQ群告诉任何一个加群的人,有没

Shirlim 1万+

动手学ROS2-2节点通信-话题之RCLCPP实现

编写好发布者后,通过ROS2中的定时器来设置指定的周期调用回调函数,在回调函数里实现发布数据功能。RCLCPP文档,找到创建定时器函数,观察参数。

mlf2051288062的博客 2997

ros功能包和节点以及常用命令

综合功能包:只有一个文件的(package.xml)的特定包,用于引用其他功能类似的功能包。 rospack 获取一个功能包的信息 roscd 切换ros目录 rosls 列出一个给你报目录下的目录与文件清单 rospack help rospack find 功能包 显示功能包目录所在路径 rospack list 列出电脑ros功能包的名称和路径 ros节点 ros提供节点之间的通信,采用分布...

安德洛夫 9684

ROS通信原理介绍

本文主要是在clearpathrobotics官网中介绍ROS的进程(或者任务)间通信的机制,介绍了ROS中各节点或者任务、进程间通过注册Topic和Services的方式实现通信,各节点都可以publish和subscribe一个Topic,publish用于声明一个数据传输通道,subscribe用于申请使用通道或者从通道中获取数据。

aitazhixin的专栏 1万+

ROS节点

前言 在介绍节点之前,先讲一下ROS: ROS是机器人操作系统(Robot Operating System)的简称,用于编写机器人的软件程序。 ROS是一种具有高度灵活性的软件架构,能够帮助软件开发者快速创建机器人应用软件。 ROS提供了一系列程序库和工具,包括:硬件抽象、设备驱动、库函数、可视化、进程间消息传递和软件包管理等 ROS是一个分布式的进程(也就是“节点”)框架,这些进程被封装在不同的程序包或功能包中。 ROS可以分成两层:底层是操作系统层(通常不需要用

mxh3600的博客 6711

ROS总结——ROS节点

理解ROS节点本博客是对http://wiki.ros.org/上ROS教程的学习总结,欢迎大家交流学习。本节介绍 ROS 图(graph)概念并介绍如何使用roscore、rosnode和 rosrun 命令行工具。 1.图概念概述 Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。 Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个话题。 T

YongqiangGao的专栏 5315

ROS2 学习(一)ROS2 简介与基本使用

ROS2 学习(一)ROS2 简介与基本使用

qq_42994487的博客 4万+

【ROS2】MOMO的鱼香ROS2(四)ROS2入门篇——ROS2节点通信之话题与服务

【ROS2】MOMO的鱼香ROS2(四)ROS2入门篇——ROS2节点通信之话题与服务

qq_44703886的博客 3277

ROS2学习——节点话题通信(2)

ROS2将复杂的系统分解为多个模块的节点,话题则是充当节点之间信息交换的总线。该语句可现实当前的话题,如果在指令的后面带上-t选项则可以显示出话题的类型。我们需呀知道话题的名称,话题发布信息的类型,args则是按照话题的类型输入的信息(如果我们需要查询一个话题使用的类型是有那些信息可以使用该语句,话题的类型可以通过。节点可以将数据发布到任意数量的话题,并同时订阅任意数量的话题。使用rqt_graph我们可以清晰的看见节点和话题之间的关系。如果已知话题的名字,可以使用该语句输出话题的信息在终端当中。

主要学习关于图像处理和SLAM领域 2105

ROS下多机协同——主从机节点通信

1. 介绍   现如今,随工业智能化水平提高,单机器人已难以满足大规模任务的需要,因此多机协同控制方法应运而生,并逐渐应用于无人车、无人机的集群以及物流配送等诸多领域。   要想实现多机协同控制,首要任务是实现多机通信,而ROS操作系统为我们提供了多机通信的优良环境,使得我们可以在分布式的ROS节点间进行通信。下面引入ROS通信的相关基础知识: 1.1 ROS节点:可以分布于多个相同或不同的主机中 1.2 ROS通信机制:1. 话题; 2. 服务; 3. action等进阶方式。本文主要介绍多机器人分布式节

weixin_43387635的博客 5990

ROS架构(五)——ROS的通信机制

ROS架构(四)——ROS的通信机制 ROS的核心——分布式通信机制

weixin_45661757的博客 6381

ROS初学(二):ROS的三种基本通信机制(来自赵虚左老师)

一、综述 ROS引入通信机制,是为了实现ROS节点(进程)之间的通信。利用ROS进程的分布式框架,可以使得每个进程独立的工作,甚至分布于不同的主机工作。机器人上的各种传感器,比如雷达、GPS等,需要传递数据以实现对机器人的合理控制,进程通信的实现则是其中传输数据的关键。 ROS的基本通信方式将分为三种: 1.话题通信(发布订阅模式) 2.服务通信(请求响应模式) 3.参数服务器(参数共享模式) 接下来将会详细介绍三种通信方式的理论模型 二、话题通信 1.话题通信的三个角色 话题通信涉及到三

qq_66257231的博客 2万+

ROS2 概念以及通信方式

ROS 2(Robot Operating System 2)是一个用于机器人开发的开源平台,它提供了一系列工具和库,用于构建机器人应用程序。相较于前身ROS(ROS 1),ROS 2在设计上考虑了更多的实时性、安全性和可靠性因素,因此适用于更广泛的应用场景和硬件平台。以下是ROS 2的一些关键特点和概念:分布式架构:ROS 2支持分布式架构,允许节点在多个物理机器上运行,通过网络进行通信。这种架构支持更复杂和大规模的机器人系统。实时性:ROS 2引入了实时通信机制,如数据流控制(DDS),以支持严格的实时

qq_50284870的博客 3085

手把手教你为智能手表DIY一个离线导航:LVGL + SD卡地图实战

本文详细介绍了如何为智能手表DIY一个离线导航系统,结合LVGL图形库和SD卡地图数据。从硬件选型、地图数据处理到LVGL地图引擎实现,提供了完整的实战指南,特别适合户外运动爱好者和嵌入式开发者。文章还分享了功耗优化、性能提升等实用技巧,帮助读者打造高效的离线导航解决方案。

weixin_42570484的博客 206

【ROS】如何让ROS中节点实现数据交换Ⅰ--ROS话题通信

如何让ROS中节点实现数据交换Ⅰ--ROS话题通信

qq_62839589的博客 2596

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2874

ROS的通信机制

文章目录写在前面的话ROS 的通信机制话题通信机制服务通信机制共享参数机制话题与服务的区别 写在前面的话 文档没有任何商业因素,本着共享的精神进行分享,如有素材侵权,请给我留言; 文档都是自己平时看书或工作中的笔记,观点错误的地方欢迎留言; ROS 的通信机制 ROS 最常用的通信方式有三种:话题通信、服务通信 和 共享参数,当然还有其他的通信方式,例如,节点之间的 Nodelet 通信...

ZachZheng的专栏 9767

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 256

torch.nn.rnn实现循环神经网络

------------------------------------nn.rnn模型实现。#------------------------------------模型实现。#-----------------------------------训练模型。#-----------------------------------训练模型。#--------------------------------读取数据。实现循环神经网络,并在至少一个数据集上进行实验,从训练时间、预测精度、...

matlab_python22的博客 2971
上一篇: 【基本容器的使用】
下一篇: ROS文件的注释说明(不断更新)
人间小客
博客等级 码龄8年 254粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值