ROS:订阅者Subscriber的编程实现(C++)

目录

  • 一、话题模型
  • 二、创建功能包
  • 三、创建Subscriber代码
  • 四、编译代码
  • 五、运行

一、话题模型

在这里插入图片描述
图中,我们使用ROS Master管理节点。
有两个主要节点:
Publisher,名为Turtle Velocity(即海龟的速度)
Subscriber,即海龟仿真器节点 /turtlesim
Publisher(Turtle Velocity),发布Message(即海龟的速度信息,以geometry_msgs::Twist的数据结构,包括线速度和角速度),通过Topic(/turtle1/cmd_vel)总线管道,将数据传输给Subscriber。Subscriber订阅得到的速度信息,来控制海龟发生运动。

“/turtle1/cmd_vel”这个topic是海归仿真器节点/turtlesim下自带的topic,可直接拿来用。

二、创建功能包

在ROS:发布者Publisher的编程实现(C++)中已经创建功能包

三、创建Subscriber代码

步骤:
初始化ROS节点
订阅需要的话题
循环等待话题消息,接收到消息后进入回调函数
在回调函数中完成消息处理

我们需要在src里创建C++的代码文件以输入代码,文件名称为:pose_subscriber.cpp

/*** 该例程将订阅/turtle1/pose话题,消息类型turtlesim::Pose*/#include <ros/ros.h>
#include "turtlesim/Pose.h"// 接收到订阅的消息后,会进入消息回调函数
void poseCallback(const turtlesim::Pose::ConstPtr& msg)
{// 将接收到的消息打印出来ROS_INFO("Turtle pose: x:%0.6f, y:%0.6f", msg->x, msg->y);
}int main(int argc, char **argv)
{// 初始化ROS节点ros::init(argc, argv, "pose_subscriber");// 创建节点句柄ros::NodeHandle n;// 创建一个Subscriber,订阅名为/turtle1/pose的topic,注册回调函数poseCallbackros::Subscriber pose_sub = n.subscribe("/turtle1/pose", 10, poseCallback);// 循环等待回调函数ros::spin();return 0;
}

四、编译代码

配置CMakeLists.txt中的编译规则:

设置需要编译的代码和生成的可执行文件
设置链接库

将下列代码拷贝至CMakeLists.txt中:

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

在这里插入图片描述
回到工作空间目录,执行编译.

cd ~/catkin_ws
catkin_make

五、运行

roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic pose_subscriber

在这里插入图片描述

这时海龟的位置就会一直被pose_subscriber监听,现在因为海龟没动,所以x、y的坐标值是不会变的。
我们让海龟动起来,再建立一个之前用过的键盘控制节点:

rosrun turtlesim turtle_teleop_key

控制它移动,坐标就发生实时变化啦
在这里插入图片描述
参考视屏:古月居ROS入门21讲
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251127.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【win】WINDOWS10系统自带桌面整理工具

最近强迫症又犯了&#xff0c;所有东西全丢在桌面&#xff0c;感觉桌面乱糟糟的&#xff0c;但是又不想下一堆没用的什么XX桌面整理工具&#xff0c;恰好看到一篇文写的就是win10自带的桌面整理&#xff0c;超级好用&#xff0c;特此记录下来。 #1-> 新建一个文件夹&#x…

闺蜜的电脑桌面总是杂乱无章,实在看不下去了。用Python实现一键实现自动分类管理文件。

闺蜜的电脑桌面是这样的。 只能说还好是mac。不然电脑应该是非常卡的。今天也教你们怎么意见整理。 不同的文件后缀归类为不同的类别 我们先罗列一下大致有几类文件&#xff0c;根据文件的后缀来设定&#xff0c;大致如下 SUBDIR { "DOCUMENTS": [".pdf&…

[Windows] 蜂巢收纳盒 V2.0.4---桌面分类整理

今天给关注的小伙伴带来一个好用的桌面整理软件 蜂巢收纳盒 V2.0.4 桌面有时候需要很多的文件&#xff0c;还有软件铺满整个桌面&#xff0c;让你看到桌面很烦。蜂巢收纳盒&#xff0c;让你告别杂乱无章的桌面软件图标、文件&#xff0c;以酷炫感十足的蜂巢造型来进行归类&…

简洁桌面(使用Windows自带的桌面整理功能)

简洁桌面(使用Windows自带的桌面整理功能) 本人比较喜欢整洁一点的桌面&#xff0c;不喜欢将所有的软件快捷方式都放在桌面上&#xff0c;Windows自带有这样的工具可以帮我们整理&#xff0c;不需要其他第三方工具。下面是我的桌面。 下面分享整理桌面的方法&#xff1a; 1、…

桌面文件太多?这个神器一键整理只需三秒!

△关注 星标~ 轻松get高效率神器&#xff01; 就现在&#xff0c;数数你电脑桌面上躺着多少凌乱的图标&#xff1f; 既然点进了这篇文章&#xff0c;那相信没有二百也有五十吧。 说了三秒帮你整理好&#xff0c;多一秒都不算&#xff01;来看看操作的效果—— 神奇不&#xff…

全自动桌面整理器

这是一款超级方便的桌面自动整理工具&#xff0c;需要简单的设置文件夹&#xff0c;可以移动复制&#xff0c;等操作了 使用時只需要把目標文件拖到 這個目標上就可以了。 DropIt 整理文件的帮手&#xff0c;选定很多各种类型的文件拖放到DropIt 的悬浮窗上&#xff0c;它就会…

【“免费”Windows优秀软件推荐】:Fences——自动整理桌面图标

Windows软件推荐&#xff1a;Fences——自动整理桌面图标 文章目录 Windows软件推荐&#xff1a;Fences——自动整理桌面图标一、Stardock Fences1.软件简介2.软件资源&#xff08;1&#xff09;百度网盘 二、安装方法1.将压缩包解压后&#xff0c;得到一个补丁文件夹和Fences安…

WebSocket的那些事(4-Spring中的STOMP支持详解)

目录 一、序言二、Spring对STOMP支持的相关注解三、聊天Demo代码示例1、前端页面chat.html2、相关实体(1) 请求消息参数(2) 响应消息内容(3) 自定义认证用户信息 3、自定义用户认证拦截器4、WebSocket消息代理配置5、ChatController控制器 四、测试用例1、指定用户定时消息推送…

600W个微信红包封面,人人都能领取到!!!

过年啦&#xff0c;祝大家春节快乐 牛年大吉&#xff0c;万事如意&#xff01; 别忘了春节还有红包封面领取 新的一年愿大家财运亨通&#xff01; 新年过完了&#xff0c;整理情绪上班了&#xff0c;祝福没有断&#xff0c;问候也依然。努力工作多表现&#xff0c;年后年终奖永…

微信这个设置你们关闭了吗?

我们每天都在使用微信&#xff0c;但你们知道微信这个设置可以关闭的吗&#xff1f;先知道怎么操作的&#xff0c;来跟我看看。 微信个性化广告推送原理&#xff1a; 微信在投放广告的过程中&#xff0c;会根据我们平时使用微信的各种习惯&#xff0c;包括浏览的信息&#xff…

Windows登录多个微信

方法一&#xff1a; 1. 新建一个txt文件。 2. 在txt里面写上以下内容&#xff08;写几行就可以打开几个&#xff0c;这里以两个为例&#xff09; start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe start C:\"Program Files (x86)"\Tencent\WeC…

@所有人:你即将被AI移出群聊

我们来看一组最新的数据&#xff1a; 2018年最新数据&#xff1a;python、大数据、人工智能从业者工资 为什么人工智能行业的工资那么高&#xff1f; 无论是科研院所&#xff0c;商业巨头还是初创企业&#xff0c;各行各业都在大力开发或者引进人工智能&#xff0c;由于储备不足…

用 Python 找出了删除你微信的所有人并将他们自动化删除

1. 概述 不知你是否遇到过在微信上给通讯录中的某个人发消息&#xff0c;结果出现了这一幕&#xff1a; 平时一直认为自己的心里素质过硬&#xff0c;不过遇到这种情况 ... 在我缓了半个钟头&#xff08;半分钟&#xff09;之后&#xff0c;缓缓拿出了手机&#xff0c;打开微信…

【DOS BAT】Windows下微信双开、微信多开

背景&#xff1a; 经常需要在电脑上双开或多开微信&#xff0c;即打开多个微信&#xff0c;分别登陆不同的账号&#xff0c;比如一个登陆自己的微信&#xff0c;另一个登陆工作用的微信&#xff1b;下面就介绍在Windows上利用系统自带的BAT脚本实现双开或微信多开&#xff0c;不…

每个人都可以用的开源微信机器人

经历过UOS web协议的重放荣光&#xff0c;又经过一段时间的封禁&#xff0c;又有大神把UOS web协议救回来了。免费的快乐又重新回来了&#xff0c;不是吗? 这意味着每个人都可以用Wechaty搞事情了&#xff0c;什么服务器通知&#xff0c;定时给女友发微信&#xff0c;群发消息…

有一个测试微信删除软件叫wool,如果出现这三种情况,便可以删除这些微信好友,此操作适用所有人...

原标题&#xff1a;如果出现这三种情况&#xff0c;便可以删除这些微信好友&#xff0c;此操作适用所有人 在什么情况下&#xff0c;你会迫不得已将自己的微信好友删除掉&#xff0c;下面就让我们来好好谈谈这个问题。 一、删除微信好友 1、微商广告 微商喜欢在哪些地方发广告呢…

搭建文件下载服务器

安装 apache2 服务 sudo apt-get install apache2 修改端口 默认监听的端口是80&#xff0c;可以自定义修改 修改/etc/apache2/ports.conf 修改/etc/apache2/sites-available/000-default.conf 重启服务 apache服务器的默认目录在/var/www/html&#xff0c;如果想利用ht…

从服务器下载文件到本地

第一种方法&#xff1a; /*** 下载文件到本地* param filePathArr path 文件路径* fileName 文件名* param response* throws IOException*/public static void download(String[] filePathArr, HttpServletResponse response) throws IOException {File fi…

上传和下载数据到服务器,服务器到服务器

1 从windows到Linux服务器 1.1 Xshell 和 Xftp 软件支持管理SSH连接&#xff0c;支持拖拉拽上传下载文件夹/文件&#xff0c;&#xff08;推荐使用&#xff09;(拿到Linux的账号和密码就可以使用) 下载链接 https://www.xshell.com/zh/free-for-home-school/ 连接(先名称和主机…

WSL 下载服务器加速

网络下载加速&#xff0c;这里使用修改 hosts 文件 &#xff0c;地址映射 方法&#xff0c;所有网址适用&#xff0c;这里以 WSL 下载服务器为例子 命令 wsl -l -o 访问的地址&#xff1a; https://raw.githubusercontent.com/microsoft/WSL/master/distributions/Distributi…