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

深圳市坪山区住房和建设局网站建站优化推广

深圳市坪山区住房和建设局网站,建站优化推广,wordpress linux 配置,海口公司做网站ROS2 入门应用 引用自定义消息(Python)1. 查看自定义消息2. 修改话题发布3. 修改话题订阅4. 修改依赖关系5. 编译和运行1. 查看自定义消息 引用在《ROS2 入门应用 创建自定义接口》中自定义的消息Sphere.msg ros2 interface show tutorial_interfaces/…

ROS2 入门应用 引用自定义消息(Python)

  • 1. 查看自定义消息
  • 2. 修改话题发布
  • 3. 修改话题订阅
  • 4. 修改依赖关系
  • 5. 编译和运行


1. 查看自定义消息

引用在《ROS2 入门应用 创建自定义接口》中自定义的消息Sphere.msg

ros2 interface show tutorial_interfaces/msg/Sphere# geometry_msgs/Point center
#         float64 x
#         float64 y
#         float64 z
# float64 radius

需要对《ROS2 入门应用 发布和订阅(Python)》中创建的发布者/订阅者功能包稍作修改

cd ~/ros2_ws/src/py_pubsub/py_pubsub

将把数值的字符串更改为球体半径


2. 修改话题发布

修改publisher_member_function.py话题发布源文件,涉及话题类型变更和应用变化

import rclpy
from rclpy.node import Nodefrom tutorial_interfaces.msg import Sphere  # CHANGEclass MinimalPublisher(Node):'''发布器节点类'''def __init__(self):# 初始化节点名、发布器、每0.5s回调的定时器和计数器super().__init__('minimal_publisher')self.publisher_ = self.create_publisher(Sphere, 'topic', 10)  # CHANGEtimer_period = 0.5 self.timer = self.create_timer(timer_period, self.timer_callback)self.i = 0def timer_callback(self):'''定时器回调函数'''# 打印并发布字符串附加计数器值的信息msg = Sphere()                                           # CHANGEmsg.radius = float(self.i)                               # CHANGEself.publisher_.publish(msg)self.get_logger().info('Publishing: "%d"' % msg.radius)  # CHANGEself.i += 1def main(args=None):# 初始化ROS2rclpy.init(args=args)# 创建节点minimal_publisher = MinimalPublisher()# 运行节点rclpy.spin(minimal_publisher)# 销毁节点,退出ROS2minimal_publisher.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

3. 修改话题订阅

修改subscriber_member_function.py话题订阅源文件,涉及话题类型变更和应用变化

import rclpy
from rclpy.node import Nodefrom tutorial_interfaces.msg import Sphere  # CHANGEclass MinimalSubscriber(Node):'''订阅器节点类'''def __init__(self):# 初始化节点super().__init__('minimal_subscriber')# 初始化订阅器,话题类型Sphere,话题topic,回调函数listener_callbackself.subscription = self.create_subscription(Sphere, 'topic', self.listener_callback, 10)  # CHANGEself.subscription  # 防止未使用变量警告def listener_callback(self, msg):'''订阅器回调函数'''# 打印订阅话题的消息数据self.get_logger().info('I heard: "%d"' % msg.radius)  # CHANGEdef main(args=None):# 初始化ROS2rclpy.init(args=args)# 创建节点minimal_subscriber = MinimalSubscriber()# 运行节点rclpy.spin(minimal_subscriber)# 销毁节点,退出ROS2minimal_subscriber.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

4. 修改依赖关系

package.xml清单文件中,添加对自定义消息的依赖项的声明

<exec_depend>tutorial_interfaces</exec_depend>

Python源文件应用不涉及到CMake编译信息,因此不用修改CMakeLists.txt编译文件

setup.py安装软件包说明的程序入口点entry_points字段在之前已经设置完成

entry_points={'console_scripts': ['talker = py_pubsub.publisher_member_function:main','listener = py_pubsub.subscriber_member_function:main',],
},

5. 编译和运行

进入工作空间根目录

cd ~/ros2_ws

编译:

colcon build --packages-select py_pubsub

打开一个新终端,运行话题发布节点:

ros2 run py_pubsub talker# [INFO] [minimal_publisher]: Publishing: "0"
# [INFO] [minimal_publisher]: Publishing: "1"
# [INFO] [minimal_publisher]: Publishing: "2"

打开一个新终端,运行话题订阅节点:

ros2 run py_pubsub listener# [INFO] [minimal_subscriber]: I heard: "10"
# [INFO] [minimal_subscriber]: I heard: "11"
# [INFO] [minimal_subscriber]: I heard: "12"

谢谢

http://www.tj-hxxt.cn/news/1718.html

相关文章:

  • 做哪一类网站容易有排名平台推广是什么意思
  • 请别人做网站有风险吗seo技术培训海南
  • 网站的数据库做备份热搜榜上2023年热门话题
  • 做公司网站的价格深圳小程序建设公司
  • 中小型教育网站的开发与建设软文广告的案例
  • 张家港网站制作服务seo外链建设方法
  • html5开发的网站百度热度指数排行
  • 城乡建设部注册建筑师网站小程序制作一个需要多少钱
  • 武汉网站建设公司地址seo美式
  • 网站首页 排版万能导航网
  • 公司flash网站模板app推广渠道商
  • 三只松鼠网络营销模式深圳百度seo公司
  • 个人简历在线填写东莞百度推广排名优化
  • 淄博网站建设公司推荐seo 360
  • 电子商务的网站案例seo云优化
  • 摄影网站设计色盲怎么治疗
  • 国外数据网站广东免费网络推广软件
  • 做网站的公司是什么seo排名赚app
  • 网站建设文化传播有限公司免费的网页制作软件
  • 香港赛马会网站怎么做国际域名注册网站
  • 无网站如何做淘宝客2345网址导航设为主页
  • 响应式企业网站设计与实现申请自媒体平台注册
  • 二手车为什么做网站长沙网络推广营销
  • lnmp搭建网站杭州小程序建设公司
  • 大型网站建设费用平台推广是什么
  • 北京商场关门网站优化推广平台
  • 提交网站亚马逊关键词排名查询工具
  • 微信上的网站怎么做的吗发帖推广平台
  • 网站开发用的工具苏州网络推广seo服务
  • 做网站用的产品展示横幅怎样做推广是免费的