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

专业做网站 优帮云方案策划网站

专业做网站 优帮云,方案策划网站,濮阳建设网站,论坛的网站开发项目vda5050 VDA5050协议介绍 和 详细翻译-CSDN博客 ros与mqtt相互转换 如何转换的#xff0c;通过某个中转包#xff0c;获取ros的消息然后以需要的格式转换为mqtt 需要的参数 ros相关 parameters[ (ros_subscriber_type, vda5050_msgs/NodeState), (ros_subscriber_queue…vda5050 VDA5050协议介绍 和 详细翻译-CSDN博客 ros与mqtt相互转换 如何转换的通过某个中转包获取ros的消息然后以需要的格式转换为mqtt 需要的参数 ros相关 parameters[ (ros_subscriber_type, vda5050_msgs/NodeState), (ros_subscriber_queue, 1), ] mqtt相关 parameters[ (interface_name, uagv), (major_version, v2), (manufacturer, RobotCompany), (serial_number, carter01), (mqtt_client_name, RosToMqttBridge), (mqtt_host_name, localhost), (mqtt_port, 1883), (mqtt_transport, tcp), (mqtt_ws_path, ), (mqtt_keep_alive, 60), (convert_snake_to_camel, True), (reconnect_period, 5), (retry_forever, False), (num_retries, 10) ] ros需要的内容 订阅了需要转换为mqtt的ros订阅者 self.subscription self.create_subscription(ros_loader.get_message_class(self.get_parameter(ros_subscriber_type).value),ros_sub_topic, self.__ros_subscriber_callback,self.get_parameter(ros_subscriber_queue).value)mqtt需要的内容 mqtt客户端 self.mqtt_client mqtt.Client(self.get_parameter(mqtt_client_name).value,transportself.get_parameter(mqtt_transport).value)mqtt配置项 if self.get_parameter(mqtt_transport).value websockets and \self.get_parameter(mqtt_ws_path).value ! :self.mqtt_client.ws_set_options(pathself.get_parameter(mqtt_ws_path).value)self.interface_name self.get_parameter(interface_name).valueself.major_version self.get_parameter(major_version).valueself.manufacturer self.get_parameter(manufacturer).valueself.serial_number self.get_parameter(serial_number).valueself.mqtt_topic_prefix \f{self.interface_name}/{self.major_version}/{self.manufacturer}/{self.serial_number}mqtt状态检查 基于次数、或bool值结合try-except来实现对mqtt_host_name、mqtt_port、mqtt_keep_alive的检查 max_retries self.get_parameter(num_retries).valueretries 0connected Falseretry_forever self.get_parameter(retry_forever).valuewhile retries max_retries or retry_forever:try:self.mqtt_client.connect(self.get_parameter(mqtt_host_name).value,self.get_parameter(mqtt_port).value,self.get_parameter(mqtt_keep_alive).value)connected Truebreakexcept ConnectionRefusedError as e:self.get_logger().error(fConnection Error: {e}. Please check the mqtt_host_name.)time.sleep(self.get_parameter(reconnect_period).value)retries 1except socket.timeout as e:self.get_logger().error(fConnection Error: {e}. Please check the mqtt_host_name and make sure it is reachable.)time.sleep(self.get_parameter(reconnect_period).value)retries 1except socket.gaierror as e:self.get_logger().error(fConnection Error: {e}. Could not resolve mqtt_host_name)time.sleep(self.get_parameter(reconnect_period).value)retries 1if connected:self.mqtt_client.loop_start()else:self.get_logger().error(Failed to connect to MQTT broker, ending retries.)ros话题转换mqtt 需要使用的包 from rosbridge_library.internal import message_conversion import json使用message_conversion提取话题数据利用json将提取的数据转换并发布到mqtt客户端中。 def __ros_subscriber_callback(self, msg):try:extracted message_conversion.extract_values(msg)if self.get_parameter(convert_snake_to_camel).value:self.mqtt_client.publish(f{self.mqtt_topic_prefix}/state,json.dumps(convert_dict_keys(extracted, snake_to_dromedary)))else:self.mqtt_client.publish(f{self.mqtt_topic_prefix}/state, json.dumps(extracted))except (message_conversion.FieldTypeMismatchException,json.decoder.JSONDecodeError) as e:self.get_logger().info(repr(e))mqtt转换ros 使用包 from rosbridge_library.internal import ros_loader from rosbridge_library.internal import message_conversion import json用ros_loader.get_message_instance创建ros消息 接收mqtt的msg由json加载为ros消息键值再用message_conversion将ros消息键值对转换为ros_msg并利用发布者发布。 def on_mqtt_message(client, userdata, msg):try:publisher Noneself.get_logger().info(fFrom {msg.topic}: {str(msg.payload)})if msg.topic.endswith(order):ros_msg ros_loader.get_message_instance(self.get_parameter(ros_publisher_type).value)publisher self.publisherif msg.topic.endswith(instantActions):ros_msg ros_loader.get_message_instance(vda5050_msgs/InstantActions)publisher self.instant_actions_publisherif self.get_parameter(convert_camel_to_snake).value:message_dict json.loads(str(msg.payload, utf-8))converted_message_dict convert_dict_keys(message_dict, camel_to_snake)message_conversion.populate_instance(converted_message_dict, ros_msg)else:message_conversion.populate_instance(json.loads(str(msg.payload, utf-8)), ros_msg)if publisher:publisher.publish(ros_msg)except (message_conversion.FieldTypeMismatchException,json.decoder.JSONDecodeError) as e:self.get_logger().info(repr(e))error_msg String()error_msg.data repr(e)self.error_publisher.publish(error_msg)源码 如下页面 isaac_ros_mission_client — isaac_ros_docs documentation git clone git clone -b release-3.1 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_mission_client.git isaac_ros_mission_client
http://www.w-s-a.com/news/110263/

相关文章:

  • 亲 怎么给一个网站做备份财务系统有哪些软件
  • wordpress重新手机优化专家下载
  • 怎样把网站做成软件设计工作室怎么接单
  • html网站设计实例代码重庆多个区划定风险区
  • 推广方案设计同一个网站可以同时做竞价和优化
  • 论坛网站开发 go电商扶贫网站建设
  • 个人建站教程优秀的定制网站建设
  • 农村建设集团有限公司网站下载百度极速版
  • 微信公众号个人可以做网站么做企业网站需要哪些
  • 如何用付费音乐做视频网站wordpress如何设置首页
  • 杨凯做网站网站首页 排版
  • 网站图片标签江苏省建设类高工申报网站
  • 网站建设中的英文什么网站可以做医疗设备的
  • 柳州购物网站开发设计服装网站的建设与管理
  • 做网站的上海市哪家技术好北京百姓网免费发布信息
  • 网站文章排版制作网站软件
  • 云南网站开发公司网站商城定制网站建设
  • 企业网站的新闻资讯版块有哪些肇庆自助建站模板
  • 怎么做平台网站吗为网站做seo需要什么
  • 苏州吴江建设局招标网站海南网站搭建价格
  • 网站建设主要研究内容用哪个程序做网站收录好
  • 网站建设如何开单装修设计图免费
  • 做内容网站赚钱吗seo推广具体做什么
  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板
  • 百度怎么免费做网站网站建设大作业有代码
  • 小说素材网站设计素材网站特点
  • 如何建设一个好的网站WordPress主题设置数据库