首页 > 其他分享 >ROS服务通信

ROS服务通信

时间:2024-09-07 14:27:15浏览次数:8  
标签:__ 服务 AddInts req 通信 rospy ROS

ROS服务通信是基于 C/S 模式的双向数据传输模式(有应答的通信机制),ROS话题通信是无应答的通信机制。根据 Master 是否参数也分为两部分:连接前的准备,连接和通信;通信流程如下:

服务通信与 话题通信的 连接和通信 步骤都是一样的。唯一不同的是服务通信是有应答的。

1、Listener 接收到 Talker 的确认消息后,使用 TCP 尝试与 Talker 建立网络连接;

2、成功连接之后,Talker 开始向 Listener 发布话题消息数据;

3、至此,服务通信完成连接和通信过程,可以进行有应答的信息交流了。

4、需要注意,有可能是一个 Talker 连接上多个 Listener。

 

# 服务端
import rospy
from demo03_server_client.src import AddInts,AddIntsRequest,AddIntsResponse

def doReq(req):
    # 解析提交的数据
    sum = req.num1 + req.num2
    rospy.loginfo("提交的数据:num1 = %d, num2 = %d, sum = %d", req.num1, req.num2, sum)
    # 创建响应对象,赋值并返回
    resp = AddIntsResponse(sum)
    return resp

if __name__ == "__main__":
    # 初始化ROS节点
    rospy.init_node("addints_server_p")
    # 创建服务对象
    server = rospy.Service("AddInts", AddInts, doReq)
    # 回调函数处理请求并产生响应
    rospy.spin()



# 客户端
import rospy
import sys

if __name__ == "__main__":
    # 初始化ROS节点
    rospy.init_node("AddInts_Client_p")
    # 创建请求对象
    client = rospy.ServiceProxy("AddInts", AddInts)
    # 等待服务器就绪
    client.wait_for_service()
    # 发送请求,接受并处理响应
    req = AddIntsRequest()

 

标签:__,服务,AddInts,req,通信,rospy,ROS
From: https://www.cnblogs.com/lzcnblogs/p/18401642

相关文章

  • 部署黑马商城至云服务器
    1阿里云ECS1.1获取云服务器想要将项目部署到云服务器,首先我们需要有一个云服务器,本次我们用的是阿里云ECS云服务器 我们登录进入主页,点击左上角的产品依次按照上图点击,我们可以利用学生认证,然后领取免费的服务器时长 拥有了服务器后,我们点击管理控制台我们创建......
  • 魔珐科技受邀参与外滩大会:以3D数字人AIGC产品赋能大资管行业,重塑金融服务边界
    在人工智能浪潮的推动下,金融行业正经历着前所未有的场景革命。2024年Inclusion·外滩大会作为行业交流的盛会,汇聚了众多学者、专家及企业领袖,共同探讨AI技术在多领域的深度应用,特别是其在金融行业中的革新潜力。在外滩大会上,魔珐科技以3D数字人AIGC全栈技术及产品解决方案亮相......
  • ROS话题通信
    #发布方#以发布订阅的方式实现不同节点之间数据交互的通讯模式,用于不断更新的、少逻辑处理的数据传输场景impoosytrospyfromstd_msgs.msgimportString#初始化ROS节点(命门)rospy.init_node("talker_1")#实例化发布者对象pub_1=rospy.Publisher("chatter",String......
  • 微服务相关面试题
     1Springboot1.1讲一讲SpringBoot自动装配的原理在SpringBoot项目中的引导类上有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是: @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan其中@EnableAutoConfiguration是实现自......
  • 智慧体检服务信息管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着社会经济的快速发展和人民生活水平的不断提高,公众对健康的需求日益增长,体检服务作为保障健康的重要手段,其服务质量直接关系到人们的身体健康。然而,传统的体检服务模式存在着诸如效率低下、信息不透明、管理不规范等问题,已经无法满足现代社会的需求。因此,开发智慧体检服务......
  • java计算机毕业设计旅游服务管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,旅游市场的竞争日益激烈,旅游服务管理面临着前所未有的挑战与机遇。传统的人工管理模式已难以满足旅游企业高效、精准、个性化的......
  • java计算机毕业设计留学服务管理平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在全球化日益加深的今天,留学已成为众多学生拓宽国际视野、提升综合素质的重要途径。然而,留学过程中的信息繁杂、流程复杂、服务需求多样化等问题,给广......
  • 服务端
    //服务端(以C++作范例)#include"mysocket.h"//导入头文件:由于mysock头文件本身就有其它文件,这里无需导入usingnamespacestd;SOCKETs_accept;intmain(){cout<<"---------------------------服务端---------------------------\n";cout<&......
  • 服务端
    //mysocket.h#ifndef__MYSOCKET_H__#define__MYSOCKET_H__//头文件保护#include<bits/stdc++.h>#include<winsock.h>#pragmacomment(lib,"ws2_32.lib")usingnamespacestd;WSADATAwsdata;voidstartup(){//异步启动if(WSAStart......
  • 服务端,客户端
    //服务端(以C++作范例)#include"mysocket.h"//导入头文件:由于mysock头文件本身就有其它文件,这里无需导入usingnamespacestd;SOCKETs_accept;intmain(){cout<<"---------------------------服务端---------------------------\n";cout<<......