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

建设银行移动门户网站深圳深圳龙岗网站建设

建设银行移动门户网站,深圳深圳龙岗网站建设,谷歌网页截图快捷键,wordpress php apache话题 节点之间的通信。 叫话题很形象。发布者发布一定数据类型的话题#xff0c;订阅者订阅发布者。 订阅者发布者不唯一。 异步通信#xff0c;适用于周期发布的数据而不是逻辑性强的数据。 .msg 格式的消息结构#xff0c;一种通信接口。 每个话题 topic 有话题名订阅者订阅发布者。 订阅者发布者不唯一。 异步通信适用于周期发布的数据而不是逻辑性强的数据。 .msg 格式的消息结构一种通信接口。 每个话题 topic 有话题名数据类型和数据三个属性。 Hello world pub 按一定周期发布 helloworld 信息sub 接收。 pub #!/usr/bin/env python3 # -*- coding: utf-8 -*- 作者: 古月居(www.guyuehome.com) 说明: ROS2话题示例-发布“Hello World”话题 import rclpy # ROS2 Python接口库 from rclpy.node import Node # ROS2 节点类 from std_msgs.msg import String # 字符串消息类型 创建一个发布者节点class PublisherNode(Node):def __init__(self, name):super().__init__(name) # ROS2节点父类初始化self.pub self.create_publisher(String, chatter, 10) # 创建发布者对象消息类型、话题名、队列长度self.timer self.create_timer(0.5, self.timer_callback) # 创建一个定时器单位为秒的周期定时执行的回调函数def timer_callback(self): # 创建定时器周期执行的回调函数msg String() # 创建一个String类型的消息对象msg.data Hello World # 填充消息对象中的消息数据self.pub.publish(msg) # 发布话题消息self.get_logger().info(Publishing: %s % msg.data) # 输出日志信息提示已经完成话题发布def main(argsNone): # ROS2节点主入口main函数rclpy.init(argsargs) # ROS2 Python接口初始化node PublisherNode(topic_helloworld_pub) # 创建ROS2节点对象并进行初始化rclpy.spin(node) # 循环等待ROS2退出node.destroy_node() # 销毁节点对象rclpy.shutdown() # 关闭ROS2 Python接口 sub #!/usr/bin/env python3 # -*- coding: utf-8 -*- 作者: 古月居(www.guyuehome.com) 说明: ROS2话题示例-订阅“Hello World”话题消息 import rclpy # ROS2 Python接口库 from rclpy.node import Node # ROS2 节点类 from std_msgs.msg import String # ROS2标准定义的String消息 创建一个订阅者节点class SubscriberNode(Node):def __init__(self, name):super().__init__(name) # ROS2节点父类初始化self.sub self.create_subscription(\String, chatter, self.listener_callback, 10) # 创建订阅者对象消息类型、话题名、订阅者回调函数、队列长度def listener_callback(self, msg): # 创建回调函数执行收到话题消息后对数据的处理self.get_logger().info(I heard: %s % msg.data) # 输出日志信息提示订阅收到的话题消息def main(argsNone): # ROS2节点主入口main函数rclpy.init(argsargs) # ROS2 Python接口初始化node SubscriberNode(topic_helloworld_sub) # 创建ROS2节点对象并进行初始化rclpy.spin(node) # 循环等待ROS2退出node.destroy_node() # 销毁节点对象rclpy.shutdown() # 关闭ROS2 Python接口 物品识别 之前 webcam 最好是分开写为两个节点之间的通信一个是摄像头一个是呈现的视频。 主要是拿到识别的图像数据之后不是第一时间就调用 opencv 算法处理而是发给 subsub 进行处理。 这个发送的过程中的消息数据类型应当是 imgmsg 类型所以需要一个 opencv - imgmsg 类型的转换方法。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- 作者: 古月居(www.guyuehome.com) 说明: ROS2话题示例-发布图像话题 import rclpy # ROS2 Python接口库 from rclpy.node import Node # ROS2 节点类 from sensor_msgs.msg import Image # 图像消息类型 from cv_bridge import CvBridge # ROS与OpenCV图像转换类 import cv2 # Opencv图像处理库 创建一个发布者节点class ImagePublisher(Node):def __init__(self, name):super().__init__(name) # ROS2节点父类初始化self.publisher_ self.create_publisher(Image, image_raw, 10) # 创建发布者对象消息类型、话题名、队列长度self.timer self.create_timer(0.1, self.timer_callback) # 创建一个定时器单位为秒的周期定时执行的回调函数self.cap cv2.VideoCapture(0) # 创建一个视频采集对象驱动相机采集图像相机设备号self.cv_bridge CvBridge() # 创建一个图像转换对象用于稍后将OpenCV的图像转换成ROS的图像消息def timer_callback(self):ret, frame self.cap.read() # 一帧一帧读取图像if ret True: # 如果图像读取成功self.publisher_.publish(self.cv_bridge.cv2_to_imgmsg(frame, bgr8)) # 发布图像消息self.get_logger().info(Publishing video frame) # 输出日志信息提示已经完成图像话题发布def main(argsNone): # ROS2节点主入口main函数rclpy.init(argsargs) # ROS2 Python接口初始化node ImagePublisher(topic_webcam_pub) # 创建ROS2节点对象并进行初始化rclpy.spin(node) # 循环等待ROS2退出node.destroy_node() # 销毁节点对象rclpy.shutdown() # 关闭ROS2 Python接口 sub 代码 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的图像消息的互相转换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) # 将苹果的图像中心点画出来cv2.imshow(object, image) # 使用OpenCV显示处理后的图像效果cv2.waitKey(10)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) # 苹果检测流程是 opencv 图像数据转换成 ros2 可以传输的图像数据传输给 subsub 再转回来再调用 opencv 库。 其实常用 usb 相机驱动基本都是一致的所以 pub 节点我们不需要自己手动写。可以用下面的命令替代 pub有一行 ERR 不影响。 $ sudo apt install ros-humble-usb-cam $ ros2 run usb_cam usb_cam_node_exe ros2 topic bw 可以看带宽数据量。 可以通过 /rqt_graph 查看节点关系图。
http://www.yutouwan.com/news/400192/

相关文章:

  • 美容院门户网站开发天猫的网站导航怎么做的
  • 成都网站建设 今网科技佛山网站设计实力乐云seo
  • wp网站怎么用插件做html网页wordpress设置不同分类的模板
  • 网站升级对外解决方案辽宁网站备案要多久
  • 上海网站建设专家创想商务网站建设
  • 福建:网站建设网站建设跟前端有什么区别
  • 只能家居网站建设目的沧州凯航网络技术有限公司
  • 网站建设 电话营销wordpress 排行
  • 内蒙古建设厅网站官网运营网站团队建设
  • 网站建设优化服务流程用ip的网站要备案吗
  • 做网站可以设账户吗电子商务平台有什么
  • flash 的网站万网主机网站建设数据库怎么弄
  • 做网站公司流程it培训机构培训排名
  • 关闭网站弹窗代码做润滑油网站图片
  • 深圳建站网站模板asp.net mvc 5网站开发之美
  • 宝安营销型网站建设公司软件技术方案
  • 廊坊网站建设墨子html网站免费模板下载
  • 正能量直播网站网站开发全流程
  • 做网站那几步建筑网址大全
  • 专业站电子商务企业 网站前台建设 苏宁
  • 郑州正规网站制作公司网站建设服务器价格
  • 上海网站建设q479185700強做的网站 显示乱码
  • 免费网站可以下载网站免费申请
  • 40个免费网站推广平台下载du制作网站
  • 定制网站建设开发北京交易中心网站
  • 做门户网站找哪家公司网站建设电子书资料
  • 微信制作网站开发电子商务网站建设的核心
  • 北京专业网站优化建设网站的注意事项
  • 郑州企业网站怎么优化靖江网站制作多少钱
  • 服务好的丹阳网站建设望野王绩翻译