ROS——publisher、subscriber的实现

发布、订阅关系架构

在这里插入图片描述

创建发布者代码

在这里插入图片描述

通过CMakeList设置代码编译规则

在这里插入图片描述

  • add_executable(velocity_publisher src/velocity_publisher.cpp)
  • target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

Velocity

Velocity这个词有多重含义,具体意思根据上下文有所不同:
在这里插入图片描述

物理学中,velocity(速度)是指物体移动的速度和方向,是一个既有大小又有方向的矢量,用来描述物体在空间中的运动状态。

工程领域,特别是在流体力学中,velocity描述固体、液体或气体的速度,用于说明流体的动力学特性。

计算机编程领域,Velocity是一种模板语言,允许开发者以简单灵活的方式将数据插入到模板中,从而动态生成HTML、XML、JSON等多种格式的文档,常用于Web应用程序和框架中。

总结来说,velocity基本含义是“速度”或“速率”,但在不同学科和情境下有着具体的适用场景和解释。

编译并运行发布者

在这里插入图片描述

配置发布者的代码编译规则

在这里插入图片描述

目录结构(打开CMakeLists.txt,在build内,install前内容添加下面两句话,注意CMakeLists.txt与C++源程序之间的路径关系,CMakeLists.txt 里的src/velocity_publisher不能改,否则海龟动不了,泪的教训!)

在这里插入图片描述

将工作空间的启动脚本加入 .bashrc 文件,这样不用每次执行都输入一次脚本执行命令

在这里插入图片描述

订阅者代码(回调函数尽量避免嵌套)

在这里插入图片描述

设置环境变量、链接库

在这里插入图片描述

编译工作空间

在这里插入图片描述

编译运行发布者

在这里插入图片描述

### ROS2 中基于通信模型实现图像识别 在ROS2环境中,要实现图像识别功能,通常会采用话题(Topic)作为主要的通信方式之一。具体来说,在图像识别场景下,存在两个核心组件:一个是负责采集图像数据并将这些数据发布到特定主题上的节点;另一个则是订阅该主题获取图像流,并对其进行处理分析以完成识别任务。 对于图像发布的部分,可以通过如下命令启动一个名为`topic_webcam_pub`的节点来驱动摄像头设备并向指定的话题广播捕获到的画面帧: ```bash $ ros2 run learning_topic topic_webcam_pub ``` 此操作使得任何对该话题感兴趣的其他进程都能够接收到实时更新的视频序列[^1]。 而为了执行实际的视觉检测工作,则需另外开启一个新的终端窗口并激活相应的处理器模块——即`topic_webcam_sub`订阅者节点。这个实例将会监听由前述生产者发出的消息队列,并针对每一帧输入实施必要的算法运算从而达成目标探测的目的: ```bash $ ros2 run learning_topic topic_webcam_sub ``` 上述过程体现了典型的Topic-based消息交换模式,其中一方持续不断地推送新信息给另一方,后者则专注于消费所接收的内容而不必关心前者的工作细节。 值得注意的是,除了这种单向传播外,当涉及到更复杂的互动需求时(比如查询配置状态或是请求特定的服务),还可以借助Service机制建立更加双向且同步性质更强的关系链路。在这种情况下,每一次调用都会触发一次完整的问答循环直到获得预期的结果为止[^2]。 至于底层的技术支撑方面,《NodeHandle》提供了创建各类实体所需的API入口点,无论是Publisher还是Subscriber亦或者是Client/Server配对都能经由此处得到妥善管理。此外,它同样支持访问全局参数库以便于跨多个上下文共享设置项[^3]。 最后但同样重要的一点在于,所有形式的数据流通都离不开良好定义好的接口规范指导。这就好比人们之间的对话需要遵循一定的语法句法才能被对方正确解读一样,软件之间也依赖预先协商一致的信息格式来进行高效可靠的沟通协作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值