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

建设网站申请空间需要多少钱口碑营销的概念是什么

建设网站申请空间需要多少钱,口碑营销的概念是什么,网站建设企业网站制作,电子商务公司有哪些0. 简介 在前几讲我们讲了Matlab中的Message以及Topic的相关知识。而ROS主要支持的通信机制还有服务这一类。服务通过允许请求以及响应的通信方式,来给整个系统完成更紧密的耦合。服务客户端向服务服务器发送请求消息并等待响应。服务器将使用请求中的数据构造响应…

0. 简介

在前几讲我们讲了Matlab中的Message以及Topic的相关知识。而ROS主要支持的通信机制还有服务这一类。服务通过允许请求以及响应的通信方式,来给整个系统完成更紧密的耦合。服务客户端向服务服务器发送请求消息并等待响应。服务器将使用请求中的数据构造响应消息并将其发送回客户端。每个服务都有一个类型,该类型决定请求和响应消息的结构。

1. ROS1的服务端和客户端

在这里插入图片描述

1.1 创建服务端

在ROS1当中,如果希望创建一个简单的服务服务器,并在调用服务时能够显示“A service client is calling”。使用rosssvcserver命令创建服务。从而指定服务名称和服务消息类型。然后还要将回调函数定义为exampleHelperROSEmptyCallback。

为了获得更快的性能,一般我们在设置rossvcsrve时候带上结构格式消息类型。

testserver = rossvcserver("/test","std_srvs/Empty",@exampleHelperROSEmptyCallback,"DataFormat","struct")

testserver =
ServiceServer with properties:
ServiceType: ‘std_srvs/Empty’
ServiceName: ‘/test’
NewRequestFcn: @exampleHelperROSEmptyCallback
DataFormat: ‘struct’

当列出ROS网络中的所有服务时,可以看到新服务/test。

rosservice list

/add
/matlab_global_node_55791/get_loggers
/matlab_global_node_55791/set_logger_level
/node_1/get_loggers
/node_1/set_logger_level
/node_2/get_loggers
/node_2/set_logger_level
/node_3/get_loggers
/node_3/set_logger_level
/reply
/test

此外还可以使用rosservice info获取有关您的服务的更多信息。

rosservice info /test

Node: /matlab_global_node_55791
URI: rosrpc://ah-csalzber:51639
Type: std_srvs/Empty
Args: MessageType

1.2 创建客户端

使用服务客户机从ROS服务服务器请求信息。要创建客户端,请使用带有服务名称的rossvcclient作为参数。

为我们刚刚创建的/test服务创建一个服务客户机。

testclient = rossvcclient("/test","DataFormat","struct")

testclient =
ServiceClient with properties:
ServiceType: ‘std_srvs/Empty’
ServiceName: ‘/test’
DataFormat: ‘struct’

为服务创建一个空请求消息。使用rosmessage函数并将客户端作为第一个参数传递。这将创建一个具有服务指定的消息类型和格式的服务请求函数。

testreq = rosmessage(testclient)

testreq = struct with fields:
MessageType: ‘std_srvs/EmptyRequest’

确保服务已连接到客户端,并在必要时等待客户端连接。

waitForServer(testclient,"Timeout",3)

当您希望从服务器获得响应时,请使用call函数,该函数将调用服务服务器并返回响应。您之前创建的服务服务器将返回一个空响应。此外,它将调用exampleHelperROSEmptyCallback函数并显示字符串“A service client is calling”。您还可以定义一个Timeout参数,该参数指示客户机应该等待响应的时间。

testresp = call(testclient,testreq,"Timeout",3);

如果上面的调用函数失败,就会出错。如果希望使用条件对调用失败做出反应,则可以从调用函数返回状态和statustext输出,而不是错误。状态输出指示调用是否成功,而statustext提供其他信息。waitForServer也可以返回类似的输出。

numCallFailures = 0;
[testresp,status,statustext] = call(testclient,testreq,"Timeout",3);
if ~statusnumCallFailures = numCallFailues + 1;fprintf("Call failure number %d. Error cause: %s\n",numCallFailures,statustext)
elsedisp(testresp)
end
MessageType: 'std_srvs/EmptyResponse'

1.3 两数之和

如果说我们想要完成两数求和这样的功能,我们可以先将现有的服务类型roscpp_tutorials/TwoInts用于此任务。您可以通过调用rosmsg show来检查请求和响应消息的结构。请求包含两个整数A和B,响应包含它们在Sum中的加法。

rosmsg show roscpp_tutorials/TwoIntsRequest

int64 A
int64 B

rosmsg show roscpp_tutorials/TwoIntsResponse

int64 Sum

使用此消息类型创建服务服务器和计算加法的回调函数。为了方便起见,exampleHelperROSSumCallback函数已经实现了这个计算。将函数指定为回调函数。

sumserver = rossvcserver("/sum","roscpp_tutorials/TwoInts",@exampleHelperROSSumCallback,"DataFormat","struct")

sumserver =
ServiceServer with properties:
ServiceType: ‘roscpp_tutorials/TwoInts’
ServiceName: ‘/sum’
NewRequestFcn: @exampleHelperROSSumCallback
DataFormat: ‘struct’

要调用服务服务器,必须创建一个服务客户机。注意,这个客户端可以在ROS网络中的任何地方创建。为了本例的目的,我们将在MATLAB中为/sum服务创建一个客户端。

sumclient = rossvcclient("/sum","DataFormat","struct")
sumreq = rosmessage(sumclient);
sumreq.A = int64(2);
sumreq.B = int64(1)
if isServerAvailable(sumclient)sumresp = call(sumclient,sumreq,"Timeout",3)
elseerror("Service server not available on network")
end

sumresp = struct with fields:
MessageType: ‘roscpp_tutorials/TwoIntsResponse’
Sum: 3

2. ROS2的服务端和客户端

…详情请参照古月居

http://www.shuangfujiaoyu.com/news/49420.html

相关文章:

  • 电商网站开发外包seo新方法
  • 新疆网站备案运营推广
  • 做网站的文章百度人工服务24小时电话
  • 推广获客合肥seo排名收费
  • 安全生产门户网站建设网络营销计划书怎么写
  • 醴陵网站建设站长工具 忘忧草
  • 实用电子商务网站建立定制网站
  • 音乐网站建立优秀营销案例分享
  • 360提示危险的网站嵌入式培训
  • 网站首页引导页模版2023年新闻热点事件
  • 网站建设招标评分标准网络营销的工作内容包括哪些
  • 仿4493美图网站程序开发小程序
  • 个人可以做b2b网站国家免费技能培训官网
  • 公众号怎么推广产品福州网站seo优化公司
  • 建设一个网站用什么搭建网站如何优化排名
  • 政府部门网站建设内容查询网 网站查询
  • 做网站链接怎么弄seo网站优化助理
  • site 危险网站好消息疫情要结束了
  • .net 网站管理系统设计案例网
  • 嘉兴网站建设哪家好百度网址大全首页链接
  • 怎么样用dw做网站运营网站是什么意思
  • 做网站要备案百度关键词搜索排名代发
  • 镇江网站建设价格网站制作培训
  • 做网站卖别人的软件可以吗吴忠seo
  • 网站登录页面美国seo薪酬
  • 网站如何做外链专业网站优化
  • 茶叶电子商务网站建设的结论谷歌seo代运营
  • 江苏省建设厅工会网站搜索引擎优化培训
  • wordpress拷站百度新版本更新下载
  • 乐山 做网站新手20种引流推广方法