| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> ROS Noetic入门笔记(六)使用C++编写简单的Publisher与Suscriber -> 正文阅读 |
|
[C++知识库]ROS Noetic入门笔记(六)使用C++编写简单的Publisher与Suscriber |
文章目录1.创建Publisher(1) 在功能包下创建src目录
(2) 在src目录下创建talker.cpp 文件并粘贴以下代码
(3) talker.cpp代码解释
ros/ros.h 包含了大部分ROS中通用的头文件
这个包含了消息类型的头文件,该头文件根据String.msg的消息结构定义自动生成
初始化ROS节点,这允许ROS进行命名重映射,节点名称在运行的ROS中必须是唯一的
创建节点句柄,开始创建的节点句柄会进行节点初始化,而最后一个销毁的将清除节点正在使用的所有资源
告诉ROS Master我们将会发布以chatter为话题的Sring类型消息,第二个参数表示消息发布队列的大小,当消息发布过快时,ROS会自动删除队列中最早入队的消息,保持不超过1000条的缓冲
设置调用Rate::sleep()时的等待时间,调用Rate::sleep()时ROS节点会根据此处设置的频率休眠相应的时间,这里我们设置为10Hz,即延时100ms
进入节点主循环,正常情况下一直在循环中运行,发生异常ros::ok()就会返回false并跳出循环
一旦ros::ok()返回 false,所有 ROS 调用都会失败
初始化即将发布的消息,ROS中定义了很多通用的消息类型,这里我们使用了最为简单的String消息类型,它只有一个成员“data”
发布消息给所有订阅该话题的节点
ROS_INFO类似于printf/cout,用来打印日志信息
ros::spinOnce()用来处理节点订阅话题的所有回调函数,在这里并不需要,因为这个程序我们没有订阅任何消息
现在按之前设置的10Hz休眠时间休眠100ms然后才进行下一次的循环 流程简要梳理如下:
2.创建Suscriber(1) 在src目录下创建listener.cpp 文件并粘贴以下代码
(3) listener.cpp代码解释这里我们省略上边在talker.cpp中已经讲过的部分
有消息到达时会调用的回调函数
订阅消息,有新消息到达时,ROS会调用chatterCallback回调函数,第一个参数是消息话题,第二个参数是接收消息队列的大小,当新消息到达时如果超出1000条就会自动丢掉最早的数据
节点进入循环状态,当有消息到达时,会尽快调用回调函数完成处理,ros::spin()在ros::ok()返回false时退出 流程简要梳理如下:
3.编译功能包编辑 CMakeLists.txt 文件
修改完成后,回到工作空间的根目录下开始编译
编译生成的2个可执行文件如下,默认在~/catkin_ws/devel/lib/beginner_tutorials文件夹下 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/19 2:07:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |