在上一篇基础上,在learning_topic包下创建.cpp文件

过程:
(1)初始化ROS结点;
(2)订阅需要的话题
(3)循环等待话题消息,接收到消息之后进入回调函数
(4)在回调函数中完成消息处理

pose_subscriber.cpp

/***********************************************************************
Copyright 2020 GuYueHome (www.guyuehome.com).
***********************************************************************//*** 该例程将订阅/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;
}

2.配置编译代码文件

add_executable(pose_subscriber src/pose_subscriber.cpp)
//把哪一个文件编译成一个可执行文件
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})
//把可执行文件和ros库设置接口

复制到包下的CMakeLists.txt中。

3.编译:cd到工作空间文件夹,输入catkin_make来执行命令
出现

说明编译成功
4.配置环境变量
在工作目录下输入:

source devel/setup.bash

每次执行前都需要执行该文件。
简化操作:主目录下,按ctrl+h显示隐藏文件夹,点击.bashrc文件,在最后一行添加devel/setup.bash的目录,这样就不必每次都执行该命令了。

5.运行
(1)打开终端输入 roscore
(2)打开终端输入:rosrun turtlesim
rosrun turtlesim turtlesim_node
海龟就跑起来了

(3)rosrun learning_topic pose_subscriber

订阅者Subscriber的编程实现——ROS相关推荐

  1. 【RK3399Pro学习笔记】七、ROS订阅者Subscriber的编程实现

    目录 如何实现一个订阅者 C++ 编写程序 配置CMakeLists.txt 编译并运行发布者 python 创建并编写脚本 运行 平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro ...

  2. ROS入门-9.订阅者Subscriber的编程实现

    还是通过海龟仿真器去发布数据,要实现一个订阅者来订阅海龟的位置信息等,publisher是海龟仿真器,subcriber即为这次我们要实现的程序 数据传输为从publisher传向subscriber ...

  3. ROS(三)——发布者Publisher 和 订阅者Subscriber 的编程实现

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.发布者(Publisher) 1.1 Publisher的实现流程 二.订阅者(Subscriber) 前言 本文 ...

  4. ros实验操作——订阅者Subscriber的编程实现

    目录 创建小海龟位置订阅者 订阅者实现代码 发布者代码实现 代码编译 每文一语 创建小海龟位置订阅者 在启动小海龟仿真之后,ROS会默认发布一个名为"/turtle1/Pose"的 ...

  5. 【ROS学习笔记】(四)订阅者Subscriber的实现

    一.目标功能 订阅者订阅海龟的位姿信息. 二.创建功能包 首先创建工作空间,参考[ROS学习笔记](二)工作空间与功能包的创建 然后创建一个功能包 cd ~/catkin_ws/src catkin_ ...

  6. ROS小车——发布与订阅节点(7)【ROS保姆注释教学】

    文章目录 前言 1.编写发布节点 2.修改CmakeLists 3.运行程序 4.编写订阅节点 5.修改CmakeLists 前言 本系列博客参照<ROS机器人编程原理与应用>一书,搭载平 ...

  7. 【一学就会的ROS基础入门教程 】03-1 ROS基础编程:ROS工作空间的创建、话题topic的发布与接收、以及话题消息的自定义使用

    [一学就会的ROS基础入门教程 ]03-1 ROS基础编程:ROS工作空间的创建.话题topic的发布与接收.以及话题消息的自定义使用 文前白话 1.创建工作空间与功能包 关于工作空间的介绍 创建开发 ...

  8. ROS(3)订阅者subscriber编程实现

    cd ~/testROS_ws/src/topic_publisher/src 创建代码pose_subscriber.cpp /*** 该例程将订阅/turtle1/pose话题,消息类型turtl ...

  9. ROS系统 C++或Python实现订阅者Subscriber

    在刚创建的 learning_topic 目录中的src文件夹下创建一个 cpp文件 cd ~/catkin_ws/src/learning_topic/src touch pose_subscrib ...

  10. ROS初学者的笔记(基于古月居21讲)——P11 订阅者Subsciber的编程实现

    学习日期:2022.7.24 初始化节点 创建节点句柄 创建subscriber,订阅需要的话题 循环等待话题消息,接受到消息后进入到回调函数 在回调函数中完成消息处理 回调函数的作用是,subcri ...

最新文章

  1. OpenStack Neutron浅析(二)
  2. winxp升级win7教程_WinXP桌面右下角提示网络电脑没有插好的原因及解决方法教程一览-...
  3. 坐标上升算法(Coordinate Ascent)及C++编程实现
  4. centerandzoom 无效_在bootstrap modal 中加载百度地图的信息窗口失效解决方法
  5. ibernate ID生成策略 小知识
  6. Django之Ajax刷新记住用户名
  7. ProgressBar与Handler的整合应用
  8. java ee无法安装_为什么要导入javax.servlet。*; 安装Java EE仍无法解决 面向Java EE开发人员的Eclipse...
  9. 如何重置华为交换机初始密码?
  10. java beetl输出demo_Beetl 快速入门
  11. 什么是企业用户画像,怎么构建企业用户画像
  12. abab的四字成语_带abab的四字成语大全
  13. 算法岗位真的需要顶会才能入场吗?
  14. 附晋级总决赛名单(二) | 云上竞技,本周精彩继续
  15. ITRON同步和通信管理
  16. 最低仅需万元到手,Gooxi AMD Rome平台服务器特价啦
  17. 物联卡中心:物联网卡运营商优劣对比,你选择哪家?
  18. 移动硬盘计算机无法打开硬盘,无法正常读取2T移动硬盘,让我教您一个轻松修复的窍门...
  19. 您与所提供的网站有什么关系? 告诉我们一些关于您的业务的情况。
  20. 快速把整篇英语短文拆分成各个单词

热门文章

  1. Decoupled Sparial-Temporal Attention Network forSkeleton-Based Action Recognition
  2. 网站架构资料收集整理
  3. ivr cti_简而言之,网络威胁情报(CTI)— 1
  4. 聚观早报 | 通信行程卡正式宣布下线;《三体》首日播放量破1亿
  5. 【MM模块】Credit Memos and Reversals 红字发票和冲销
  6. 大前端 HTML基础
  7. 公民委托诉讼代理人的注意事项
  8. 第5章第16节:案例:制作一份漂亮的翻页动画 [PowerPoint精美幻灯片实战教程]
  9. Ubuntu20.04安装Mysql(亲测有效,一定要按步骤来)
  10. Percent百分比布局用法