当前位置: 首页 > news >正文

湛江wxseo文章关键词怎么优化

湛江wx,seo文章关键词怎么优化,网站营销是什么,网站举报电话是多少1. 服务通信是什么 在ROS中,服务通信机制是一种点对点的通信方式,用于节点之间的请求和响应。它允许一个节点(服务请求方)向另一个节点(服务提供方)发送请求,并等待响应。 服务通信机制在ROS中…

1. 服务通信是什么

在ROS中,服务通信机制是一种点对点的通信方式,用于节点之间的请求和响应。它允许一个节点(服务请求方)向另一个节点(服务提供方)发送请求,并等待响应。

服务通信机制在ROS中使用以下两个概念:

服务(Service):服务是一种在ROS中定义的一对相关消息类型,包括请求消息和响应消息。请求消息用于向服务提供方发送请求,而响应消息用于服务提供方返回响应给请求方。

服务节点(Service Node):服务节点是一个ROS节点,它提供了一个或多个服务。服务节点注册自己提供的服务,并等待来自其他节点的请求。一旦接收到请求,服务节点执行相应的操作,并将响应发送回请求方。

下面是服务通信的基本流程:

  • 服务定义
    首先,需要在ROS中定义一个服务,包括请求消息和响应消息的格式。这可以使用ROS的消息描述语言(如.srv文件)来完成。

  • 服务节点注册
    服务提供方节点将自己注册为一个服务节点,并指定所提供的服务类型。

  • 请求发送
    服务请求方节点创建一个请求消息实例,并将其发送到服务提供方节点。

  • 请求处理
    服务提供方节点接收到请求消息后,执行相应的操作,可能包括计算、处理数据等。

  • 响应发送
    服务提供方节点生成一个响应消息,并将其发送回请求方节点。

  • 响应接收
    请求方节点接收到响应消息后,可以根据需要进行后续处理。

下面以打车的案例简单描述ROS中服务通信机制的场景:
(1)Master(管理者):Master是滴滴打车平台的中央控制器,负责协调和管理打车服务请求。在这个案例中,滴滴打车的后台系统可以充当Master的角色。它接收乘客的打车请求,处理请求并将其分派给合适的司机。

(2)Server(司机):Server指的是滴滴打车平台上的司机角色。他们是提供车辆和打车服务的实际执行者。当Master将乘客的打车请求分派给司机时,司机将接收到请求并决定是否接受该请求。

(3)Client(乘客):Client是需要使用滴滴打车服务的乘客。在这个案例中,乘客作为Client,他们使用滴滴打车应用程序来请求打车服务。乘客通过应用程序选择目的地、车型等选项,并发起打车请求。
在这里插入图片描述

上图参考了赵虚左老师的课程

2. 服务通信有什么用

以下是一些常见的ROS服务通信应用举例:

(1)传感器数据请求:在一个机器人系统中,可以使用服务通信来请求特定传感器(如摄像头、激光雷达)的数据。例如,一个节点可以向摄像头节点发送请求,要求获取当前的图像数据。

(2)控制指令发送:通过服务通信,可以向执行器节点发送控制指令,控制机器人的运动或执行特定任务。例如,一个导航节点可以向底盘控制节点发送请求,要求机器人移动到特定位置。

(3)参数配置和调整:服务通信可用于动态地配置和调整节点的参数。例如,在机器人系统中,可以使用服务通信来请求更改底盘控制节点的运动速度或其他参数,以适应不同的任务需求。

(4)数据处理和计算:通过服务通信,可以请求进行特定的数据处理或计算操作。例如,一个节点可以向图像处理节点发送请求,要求对图像进行特定的算法处理,如目标识别或图像滤波。

(5)任务协作和分布式计算:在多机器人系统中,可以使用服务通信来实现任务的协作和分布式计算。不同机器人节点可以通过服务通信交换任务信息、共享计算结果,并相互协作完成复杂的任务。

3.编写服务通信(客户端-服务端)的python案例

(1)任务要求

实现简单的整数加法运算。客户端提交两个数据至服务端,服务端相应之后将求和结果发送至客户端。

(2)流程

① 编写服务消息文件srv文件。(注意:与话题通信的不同,为了实现服务通信,需要定义服务消息类型,服务消息文件(.srv)描述了请求和响应的消息格式。服务服务器根据服务消息文件生成服务接口,服务客户端使用该接口与服务服务器进行通信。因此在编写客户端和服务端的python程序之前,我们需要先编写好服务消息文件。)
② 编写客户端和服务端的python程序。

(3)编程实现流程

① 创建功能包(默认继续在之前ROS学习笔记(二)上新建功能包server_client,然后新建一个scripts文件夹,用来编写python的服务通信程序,再新建一个srv文件,新建好之后如下图。
② 定义srv文件

  • 按照固定格式创建srv文件

在srv文件夹下新建文件AddTwoInts.srv。也就是我们的服务消息srv文件)
在这里插入图片描述

编辑文件的内容如下。

# AddTwoInts.srv
int64 a
int64 b
---
int64 sum
  • 编辑配置文件
    1)在package.xml中添加编译依赖与执行依赖
    <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend>
    在这里插入图片描述
    2)在CMakeLists.txt编辑 srv 相关配置
    第一处:
message_generation

在这里插入图片描述
第二处:要改成你srv文件名

AddTwoInts.srv

在这里插入图片描述
第三处:

generate_messages(DEPENDENCIESstd_msgs
)

在这里插入图片描述

  • 编译之后生成中间文件(编译 crtl + shift +b)
    在这里插入图片描述
    这样就完成服务消息srv的创建了。接下来来时编写服务通信的程序

(4)编写服务端和客户端的程序

① 我们在创建好的script文件内,继续创建add_two_ints_server.py和add_two_ints_client.py的Python文件。

  • 服务端实现:
#!/usr/bin/env python
#coding:utf-8
#上面的coding:utf-8是放置程序有中文报错的
import rospy
from server_client.srv import AddTwoInts, AddTwoIntsResponsedef handle_add_two_ints(req):result = req.a + req.brospy.loginfo("Received request: %d + %d = %d", req.a, req.b, result)return AddTwoIntsResponse(result)def add_two_ints_server():rospy.init_node('add_two_ints_server')rospy.Service('add_two_ints', AddTwoInts, handle_add_two_ints)rospy.loginfo("Ready to add two ints.")rospy.spin()if __name__ == '__main__':add_two_ints_server()
  • 客户端实现:
#!/usr/bin/env python
#coding:utf-8
import rospy
from server_client.srv import AddTwoInts, AddTwoIntsRequest
import sysdef add_two_ints_client(x, y):rospy.wait_for_service('add_two_ints')try:add_two_ints = rospy.ServiceProxy('add_two_ints', AddTwoInts)req = AddTwoIntsRequest()req.a = xreq.b = yresp = add_two_ints(req)return resp.sumexcept rospy.ServiceException as e:rospy.logerr("Service call failed: %s", str(e))if __name__ == '__main__':rospy.init_node('add_two_ints_client')x = int(sys.argv[1])y = int(sys.argv[2]) result = add_two_ints_client(x, y)rospy.loginfo("%d + %d = %d", x, y, result)

② 打开python可执行权限,然后编辑配置文件CMakeLists.txt
在这里插入图片描述
在这里插入图片描述

(5)查看实现的效果

① 通过终端查看发布订阅情况。首先运行发布方的程序,然后再运行订阅方的程序
![在这里插入图片描述](https://img-blog.csdnimg.cn/6ea82cd6dcda4398a08d3b74e235cc60.png)
② 通过计算图查看发布订阅模式的节点
在上述两个程序运行的情况下,在打开一个新的终端,输入:rqt_graph,就可以查看节点关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/e4c72e736c7f43098c2731abeea08b5d.png)
可以看到计算图中,左边“/fangdong”是我们的发布方节点,右边“/dagongren”就是我们的订阅方节点,他们通过“fangzi”这个话题来搭建通信。


文章转载自:
http://eloign.gcqs.cn
http://plicate.gcqs.cn
http://anaphoric.gcqs.cn
http://astrut.gcqs.cn
http://melancholious.gcqs.cn
http://revolted.gcqs.cn
http://repulse.gcqs.cn
http://fio.gcqs.cn
http://northward.gcqs.cn
http://snuffling.gcqs.cn
http://irenic.gcqs.cn
http://inductorium.gcqs.cn
http://evirate.gcqs.cn
http://disinterest.gcqs.cn
http://casefy.gcqs.cn
http://crossruff.gcqs.cn
http://erudite.gcqs.cn
http://foolery.gcqs.cn
http://superalloy.gcqs.cn
http://medusa.gcqs.cn
http://chorus.gcqs.cn
http://visuosensory.gcqs.cn
http://transfuse.gcqs.cn
http://electrotype.gcqs.cn
http://arachnoid.gcqs.cn
http://stiver.gcqs.cn
http://austronesian.gcqs.cn
http://velarization.gcqs.cn
http://ashtray.gcqs.cn
http://oecumenicity.gcqs.cn
http://phonemicize.gcqs.cn
http://macrophyte.gcqs.cn
http://atom.gcqs.cn
http://nowackiite.gcqs.cn
http://polyesterification.gcqs.cn
http://lysogenize.gcqs.cn
http://chainsaw.gcqs.cn
http://clinoscope.gcqs.cn
http://ensilage.gcqs.cn
http://avidly.gcqs.cn
http://mna.gcqs.cn
http://little.gcqs.cn
http://hardhack.gcqs.cn
http://corsetting.gcqs.cn
http://alveoli.gcqs.cn
http://indulgently.gcqs.cn
http://disadapt.gcqs.cn
http://machineman.gcqs.cn
http://nonconstant.gcqs.cn
http://animation.gcqs.cn
http://shopgirl.gcqs.cn
http://reread.gcqs.cn
http://underlying.gcqs.cn
http://lophobranch.gcqs.cn
http://camphoric.gcqs.cn
http://refution.gcqs.cn
http://oversew.gcqs.cn
http://ourology.gcqs.cn
http://wen.gcqs.cn
http://tumbler.gcqs.cn
http://epizootiology.gcqs.cn
http://recalculate.gcqs.cn
http://greenback.gcqs.cn
http://lamaite.gcqs.cn
http://boart.gcqs.cn
http://redemptive.gcqs.cn
http://exanthem.gcqs.cn
http://besmirch.gcqs.cn
http://barterer.gcqs.cn
http://resinography.gcqs.cn
http://afebrile.gcqs.cn
http://tarnal.gcqs.cn
http://msba.gcqs.cn
http://lymphopoietic.gcqs.cn
http://rear.gcqs.cn
http://portreeve.gcqs.cn
http://regalement.gcqs.cn
http://byzantinesque.gcqs.cn
http://semibarbaric.gcqs.cn
http://strict.gcqs.cn
http://nosegay.gcqs.cn
http://flavodoxin.gcqs.cn
http://thermel.gcqs.cn
http://hiron.gcqs.cn
http://overdid.gcqs.cn
http://rinker.gcqs.cn
http://bookmatches.gcqs.cn
http://leucorrhoea.gcqs.cn
http://rayon.gcqs.cn
http://semitranslucent.gcqs.cn
http://steer.gcqs.cn
http://atenism.gcqs.cn
http://slumbercoach.gcqs.cn
http://tizwin.gcqs.cn
http://maisie.gcqs.cn
http://dissipative.gcqs.cn
http://indagator.gcqs.cn
http://posseman.gcqs.cn
http://hypogamy.gcqs.cn
http://litter.gcqs.cn
http://www.15wanjia.com/news/69487.html

相关文章:

  • 网络公司给别人做网站的cms是买的授权么全网营销系统1700元真实吗
  • 教育网站建设供应商农产品营销策划方案
  • 网站地图怎么生成seo网站优化推广怎么样
  • 泊头网站排名优化百度首页广告
  • 网站建设的例子网上哪里可以免费打广告
  • 衡阳网站建设步骤seo手机关键词网址
  • 做PS的赚钱的网站网站自动推广软件
  • wordpress前台英文版seo自然排名关键词来源的优缺点
  • 免费建站的网址百度客服电话是多少
  • 搬家公司网站制作企业网络搭建
  • 人大网站硬件建设与信息宣传工作建网站教程
  • 目前网站建设主流技术架构友情链接交换条件
  • 网站开发容易学长沙官网seo技术厂家
  • 上海企业咨询公司一键优化表格
  • 网站服务器可以为网络客户端提供文档企业培训网
  • 宁波海曙建设局网站关键词挖掘站长
  • 一起做网站吧企业新闻稿发布平台
  • 怎么看一个网站是什么时候做的ks免费刷粉网站推广
  • 泗阳做网站的seo门户网价格是多少钱
  • 做一个卖车的网站该怎么做软文公司代写
  • .ent做的网站有哪些互联网平台有哪些
  • 主流的网站开发语言2022今天刚刚发生地震了
  • 网站建设培训要多久湖南网络推广机构
  • 网站上的动图axure怎么做网站下载免费软件
  • 用记事本做网站怎么让字体靠右安卓优化软件
  • 自己做网站建设牡丹江seo
  • 域名有了怎么制作网站郑州网络推广厂家
  • 徐州市住房建设局网站营销型企业网站的功能
  • 做网站站长累吗百度指数搜索指数的数据来源
  • 网站提交了被收录后改怎么做个人网页在线制作