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

乐清 网站建设福建seo排名培训

乐清 网站建设,福建seo排名培训,wordpress 建站对比,网站cms模板0. 简介 在前几讲我们讲了Matlab中的Message以及Topic的相关知识。而ROS主要支持的通信机制还有服务这一类。服务通过允许请求以及响应的通信方式#xff0c;来给整个系统完成更紧密的耦合。服务客户端向服务服务器发送请求消息并等待响应。服务器将使用请求中的数据构造响应…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 /testNode: /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) endMessageType: std_srvs/EmptyResponse1.3 两数之和 如果说我们想要完成两数求和这样的功能我们可以先将现有的服务类型roscpp_tutorials/TwoInts用于此任务。您可以通过调用rosmsg show来检查请求和响应消息的结构。请求包含两个整数A和B响应包含它们在Sum中的加法。 rosmsg show roscpp_tutorials/TwoIntsRequestint64 A int64 B rosmsg show roscpp_tutorials/TwoIntsResponseint64 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) endsumresp struct with fields: MessageType: ‘roscpp_tutorials/TwoIntsResponse’ Sum: 3 2. ROS2的服务端和客户端 …详情请参照古月居
http://www.hkea.cn/news/14581594/

相关文章:

  • 公司网站建设一条工具磨床东莞网站建设
  • 深圳做网站案例专业高端网站建设服务公司
  • 做论坛网站需要备案深圳企业推广网站排名
  • 做相册哪个网站好html网站设计论文
  • 合肥做拼拼团网站的公司如何免费创建企业网站
  • 温州网站推广价钱郑州企业网站制作
  • 二七区建设局网站怎样注册小程序商城
  • 短视频网站php源码免费张家口网站建设电话
  • 临沂网站开发糖果网站建设策划书模板
  • 网站换服务器平面广告设计作品集
  • 哪些网站可以做商家纺织行业网站怎么做吸引人
  • 建设网站服务器怎么选广告公司名称取名
  • 做招聘海报的网站ins做甜品网站
  • diy网站开发公司如何注册一家公司
  • 新版的百度网址大全个人做网站seo
  • 网站网址大全360建筑网是什么网站
  • 做兽设的网站网站建设用款
  • 神兵网站建设义乌app制作公司
  • 外贸网站模板 免费推广有什么好方法
  • 网站服务器权限图片头像设计制作
  • 海珠电子商务网站建设微信推广小程序
  • 一个网站做两种产品娱乐网站制作
  • 宁波优化网站哪家好温州设计集团网站建设
  • 建网站用什么系统星斗科技 网站建设
  • 贵州网站备案网站运营模式有哪些
  • cms快速建站网站部兼容ie6
  • 商业网站服务怎么用ppt做网站设计
  • 卓业网站建设wap网站建设方案 pdf
  • 徐州中小企业网站制作微信公众号怎么开通免费
  • 怎样网络营销推广整站seo技术搜索引擎优化