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

网站怎样做东莞网站制作推广公司

网站怎样做,东莞网站制作推广公司,网站建设基本流程心得,手机导航下载2022新版在 ROS 系统中#xff0c;通信接口#xff08;Interface#xff09; 是节点之间传递信息的标准“语言协议”#xff0c;确保了不同功能节点之间可以正确理解和使用彼此传送的数据内容。我们可以将其理解为“数据结构格式定义”#xff0c;贯穿于话题#xff08;Topic通信接口Interface 是节点之间传递信息的标准“语言协议”确保了不同功能节点之间可以正确理解和使用彼此传送的数据内容。我们可以将其理解为“数据结构格式定义”贯穿于话题Topic、服务Service、动作Action等通信机制中。 在软件开发中“接口”是一种连接关系它规定了数据如何进出模块如何对接只有两边的格式和要求一致系统才能正常“搭伙做事”。 为了让每个 ROS 节点可以用不同的语言编写比如一个节点用 C 控制硬件另一个节点用 Python 实现上层逻辑ROS 把通信接口设计成与编程语言无关的格式。 int32 表示 32 位整型 int64 表示 64 位长整型 bool 表示布尔值 还支持数组如 int32[]、嵌套结构体等复合数据类型 这些接口定义写在 .msg消息或 .srv服务文件中。 在 编译时ROS 会自动生成对应语言如 C 或 Python里的数据结构文件供节点直接使用开发者不需要自己去写解析逻辑。 无论你用什么语言编写节点只要遵循统一接口数据就能准确传输、协同工作。 ROS 2 三种通信机制话题、服务、动作在接口定义上的格式差异。 在 ROS 2 系统中通信接口的定义格式因通信机制而异但都遵循统一的、语言无关的描述方式。 话题Topic通信 使用 .msg 文件定义属于单向异步通信。 只需定义每一帧数据的内容格式如 int32 x int32 y 表示消息中包含两个 32 位整型数据可用于发送二维坐标等。 服务Service通信 使用 .srv 文件定义属于请求-应答式的同步通信。 定义由请求部分和应答部分组成中间用 --- 分隔例如 int64 a int64 b --- int64 sum 客户端发起请求包含 a 和 b服务器处理后返回 sum。 动作Action通信 使用 .action 文件定义适合描述持续一段时间的过程性任务如移动、旋转、导航等。 定义包含三部分 # 目标 bool enable --- # 结果 bool finish --- # 反馈 int32 state 目标Goal开始任务如开始转动 结果Result任务最终是否完成 反馈Feedback周期性返回进度如当前已转动角度 通信机制接口文件特点数据方向话题.msg异步、广播单向服务.srv同步请求客户端 ⇄ 服务端动作.action可反馈过程客户端 ⇄ 服务端 反馈 服务接口的定义与使用 在本案例中我们以一个获取目标位置的服务为例全面了解 ROS 2 中服务接口的定义方法及实际应用方式。 learning_interface/srv/GetObjectPosition.srv bool get     # 请求是否获取目标位置 --- int32 x      # 响应目标X坐标 int32 y      # 响应目标Y坐标 bool get客户端请求参数true 表示请求当前目标位置。 ---分隔请求与响应。 int32 x, y服务端反馈的目标坐标。 import rclpy # ROS2 Python接口库 from rclpy.node import Node # ROS2 节点类 from learning_interface.srv import GetObjectPosition # 自定义的服务接口class objectClient(Node):def __init__(self, name):super().__init__(name) # ROS2节点父类初始化self.client self.create_client(GetObjectPosition, get_target_position)while not self.client.wait_for_service(timeout_sec1.0):self.get_logger().info(service not available, waiting again...)self.request GetObjectPosition.Request()def send_request(self):self.request.get Trueself.future self.client.call_async(self.request)def main(argsNone):rclpy.init(argsargs) # ROS2 Python接口初始化node objectClient(service_object_client) # 创建ROS2节点对象并进行初始化node.send_request()while rclpy.ok():rclpy.spin_once(node)if node.future.done():try:response node.future.result()except Exception as e:node.get_logger().info(Service call failed %r % (e,))else:node.get_logger().info(Result of object position:\n x: %d y: %d %(response.x, response.y))breaknode.destroy_node() # 销毁节点对象rclpy.shutdown() # 关闭ROS2 Python接口import rclpy # ROS2 Python接口库 from rclpy.node import Node # ROS2 节点类 from sensor_msgs.msg import Image # 图像消息类型 import numpy as np # Python数值计算库 from cv_bridge import CvBridge # ROS与OpenCV图像转换类 import cv2 # Opencv图像处理库 from learning_interface.srv import GetObjectPosition # 自定义的服务接口lower_red np.array([0, 90, 128]) # 红色的HSV阈值下限 upper_red np.array([180, 255, 255]) # 红色的HSV阈值上限class ImageSubscriber(Node):def __init__(self, name):super().__init__(name) # ROS2节点父类初始化self.sub self.create_subscription(Image, image_raw, self.listener_callback, 10) # 创建订阅者对象消息类型、话题名、订阅者回调函数、队列长度self.cv_bridge CvBridge() # 创建一个图像转换对象用于OpenCV图像与ROS的图像消息的互相转换self.srv self.create_service(GetObjectPosition, # 创建服务器对象接口类型、服务名、服务器回调函数get_target_position,self.object_position_callback) self.objectX 0self.objectY 0 def object_detect(self, image):hsv_img cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 图像从BGR颜色模型转换为HSV模型mask_red cv2.inRange(hsv_img, lower_red, upper_red) # 图像二值化contours, hierarchy cv2.findContours(mask_red, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) # 图像中轮廓检测for cnt in contours: # 去除一些轮廓面积太小的噪声if cnt.shape[0] 150:continue(x, y, w, h) cv2.boundingRect(cnt) # 得到苹果所在轮廓的左上角xy像素坐标及轮廓范围的宽和高cv2.drawContours(image, [cnt], -1, (0, 255, 0), 2)# 将苹果的轮廓勾勒出来cv2.circle(image, (int(xw/2), int(yh/2)), 5,(0, 255, 0), -1) # 将苹果的图像中心点画出来self.objectX int(xw/2)self.objectY int(yh/2)cv2.imshow(object, image) # 使用OpenCV显示处理后的图像效果cv2.waitKey(50)def listener_callback(self, data):self.get_logger().info(Receiving video frame) # 输出日志信息提示已进入回调函数image self.cv_bridge.imgmsg_to_cv2(data, bgr8) # 将ROS的图像消息转化成OpenCV图像self.object_detect(image) # 苹果检测def object_position_callback(self, request, response): # 创建回调函数执行收到请求后对数据的处理if request.get True:response.x self.objectX # 目标物体的XY坐标response.y self.objectYself.get_logger().info(Object position\nx: %d y: %d %(response.x, response.y)) # 输出日志信息提示已经反馈else:response.x 0response.y 0self.get_logger().info(Invalid command) # 输出日志信息提示已经反馈return responsedef main(argsNone): # ROS2节点主入口main函数rclpy.init(argsargs) # ROS2 Python接口初始化node ImageSubscriber(service_object_server) # 创建ROS2节点对象并进行初始化rclpy.spin(node) # 循环等待ROS2退出node.destroy_node() # 销毁节点对象rclpy.shutdown() # 关闭ROS2 Python接口 这是一个通过图像识别红色目标物体并通过ROS服务机制获取其当前坐标的系统。 服务器端服务提供方接收图像并处理检测红色物体位置一旦客户端请求就返回该位置。 客户端服务调用方主动发起“请告诉我目标位置”的请求获取最新坐标。 在 ROS2 中通信接口Interface 是一种标准格式的“数据结构定义”用于描述节点间如何传递数据。 对于 服务通信Service 来说接口包括两部分 请求部分Request客户端发送给服务端的数据。 响应部分Response服务端返回给客户端的结果。 接口使用 .srv 文件定义例如你定义的 定义通信接口文件 .srv bool get --- int32 x int32 y 在服务端创建服务对象绑定回调 self.srv self.create_service(     GetObjectPosition,                   # 使用定义好的接口     get_target_position,              # 服务名     self.object_position_callback       # 处理函数 ) 在客户端创建服务请求并发送 self.client self.create_client(GetObjectPosition, get_target_position) self.request GetObjectPosition.Request() self.request.get True self.future self.client.call_async(self.request) 服务端处理请求并返回响应 def object_position_callback(self, request, response):     if request.get:         response.x self.objectX         response.y self.objectY     return response 再次说明# 文件learning_interface/srv/GetObjectPosition.srv bool get --- int32 x int32 y 系统会自动生成 一个 GetObjectPosition.Request 类含 get 字段 一个 GetObjectPosition.Response 类含 x 和 y 字段 所以你在代码中哪里写了 .get、.x、.y就说明用了通信接口定义的字段 通信接口 .srv 文件是怎么关联上的 在代码中首先导入# 文件learning_interface/srv/GetObjectPosition.srv from learning_interface.srv import GetObjectPosition 意思是你定义的服务接口 GetObjectPosition.srv位于 ROS功能包 learning_interface 的 srv/ 文件夹里。 你就可以在你项目的工作空间中查找该文件cd ~/ros2_ws/src/learning_interface/srv ls # 应该能看到 GetObjectPosition.srv
文章转载自:
http://www.morning.crrmg.cn.gov.cn.crrmg.cn
http://www.morning.qnywy.cn.gov.cn.qnywy.cn
http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn
http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn
http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn
http://www.morning.xtqld.cn.gov.cn.xtqld.cn
http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn
http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn
http://www.morning.qqnh.cn.gov.cn.qqnh.cn
http://www.morning.tkfnp.cn.gov.cn.tkfnp.cn
http://www.morning.xflzm.cn.gov.cn.xflzm.cn
http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn
http://www.morning.jwefry.cn.gov.cn.jwefry.cn
http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn
http://www.morning.rxpp.cn.gov.cn.rxpp.cn
http://www.morning.nwfpl.cn.gov.cn.nwfpl.cn
http://www.morning.njddz.cn.gov.cn.njddz.cn
http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.qxxj.cn.gov.cn.qxxj.cn
http://www.morning.lsxabc.com.gov.cn.lsxabc.com
http://www.morning.nfzzf.cn.gov.cn.nfzzf.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.dfffm.cn.gov.cn.dfffm.cn
http://www.morning.mnrqq.cn.gov.cn.mnrqq.cn
http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn
http://www.morning.ubpsa.cn.gov.cn.ubpsa.cn
http://www.morning.xlyt.cn.gov.cn.xlyt.cn
http://www.morning.nnwmd.cn.gov.cn.nnwmd.cn
http://www.morning.chfxz.cn.gov.cn.chfxz.cn
http://www.morning.yfffg.cn.gov.cn.yfffg.cn
http://www.morning.cwgpl.cn.gov.cn.cwgpl.cn
http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn
http://www.morning.pphbn.cn.gov.cn.pphbn.cn
http://www.morning.dxpqd.cn.gov.cn.dxpqd.cn
http://www.morning.c-ae.cn.gov.cn.c-ae.cn
http://www.morning.coatingonline.com.cn.gov.cn.coatingonline.com.cn
http://www.morning.gjlml.cn.gov.cn.gjlml.cn
http://www.morning.nlygm.cn.gov.cn.nlygm.cn
http://www.morning.zqybs.cn.gov.cn.zqybs.cn
http://www.morning.rlzxr.cn.gov.cn.rlzxr.cn
http://www.morning.mfcbk.cn.gov.cn.mfcbk.cn
http://www.morning.cpzkq.cn.gov.cn.cpzkq.cn
http://www.morning.lxhrq.cn.gov.cn.lxhrq.cn
http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn
http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn
http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn
http://www.morning.ghssm.cn.gov.cn.ghssm.cn
http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn
http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn
http://www.morning.sxlrg.cn.gov.cn.sxlrg.cn
http://www.morning.rsjf.cn.gov.cn.rsjf.cn
http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.lzjxn.cn.gov.cn.lzjxn.cn
http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn
http://www.morning.jksgy.cn.gov.cn.jksgy.cn
http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn
http://www.morning.datadragon-auh.cn.gov.cn.datadragon-auh.cn
http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn
http://www.morning.blznh.cn.gov.cn.blznh.cn
http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn
http://www.morning.clpkp.cn.gov.cn.clpkp.cn
http://www.morning.qfths.cn.gov.cn.qfths.cn
http://www.morning.mlfgx.cn.gov.cn.mlfgx.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn
http://www.morning.frsbf.cn.gov.cn.frsbf.cn
http://www.morning.smj79.cn.gov.cn.smj79.cn
http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn
http://www.morning.wphfl.cn.gov.cn.wphfl.cn
http://www.morning.kkysz.cn.gov.cn.kkysz.cn
http://www.morning.rksnk.cn.gov.cn.rksnk.cn
http://www.morning.fsqbx.cn.gov.cn.fsqbx.cn
http://www.morning.nbsfb.cn.gov.cn.nbsfb.cn
http://www.morning.hwlk.cn.gov.cn.hwlk.cn
http://www.morning.dangaw.com.gov.cn.dangaw.com
http://www.morning.c7624.cn.gov.cn.c7624.cn
http://www.morning.xgbq.cn.gov.cn.xgbq.cn
http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn
http://www.tj-hxxt.cn/news/239781.html

相关文章:

  • app扁平化设计网站模板缙云建设局网站
  • 网站开发技术实验教程电子商务网站html模板
  • 什么样的网站利于seo怎么在微视上发视频赚收益
  • 阿里云怎么上传网站中国纪检监察报地址
  • 自己如何做网站应价交易系统网站开发
  • 网站用什么构建双创网站建设
  • 长沙做网站微联讯点很好室内设计师常去的网站
  • 网站快照更新慢开发网站的流程
  • 网站seo排名优化工具免费视频剪辑制作软件
  • 大连网站设计菲尔莱斯虎牙网页游戏大厅
  • 青岛贸易公司 网站制作个人网站可以做百度推广吗
  • asp.net做登录注册网站东莞常平有什么好玩的地方
  • 新开传奇网站发布站三端互通江门装修公司排名前十名
  • 网站防黑客入侵做相关防御百度智能门户建站怎么样
  • 网站建设使用的基本技术泉州网站制作哪个好微
  • 凡科轻站小程序模板网站设计超链接怎么做
  • 网站助手 伪静态类似百科式的网站建设
  • 文成网站建设大连网站建设
  • 如何查看网站的建设者wordpress 使用浏览器缓存
  • 企业网站建设与管理试题请求php网站数据库
  • 网站前后端用什么软件做网站解析后 问题
  • 大望路网站建设公司个人简历通用免费模板
  • 低价网站建设为您公司省去了什么建设银行网站无法登陆
  • 石家庄哪里有网站推广网络营销推广方式怎么收费
  • 网站建设seo优化培训中企动力z云邮企业邮箱登录
  • 不会技术怎么做公司网站提供网站建设公司报价
  • 传统类型的企业网站建站报价
  • 地方门户网站的特点什么nas可以做网站服务器
  • 东莞厚街做网站wordpress 手赚主题
  • 移动端网站建设的尺寸禅城网站建设哪家好