ROS订阅者Subscriber的编程实现(六)

9 篇文章 1 订阅

编程实现

前言: 和上一个教程创建过程一样,这里不进行详细介绍,上一个教程链接如下

ROS发布者Publisher的编程实现(五)

正文开始

首先,在src文件夹下创建pose_subscriber.cpp的文件。
在这里插入图片描述

然后在上一步创建的文件下编写代码。

代码如何实现:

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

代码如下:

//该例程将订阅/turtle1/pose话题,消息类型turtlesim::pose

#include <turtlesim/Pose.h>
#include <ros/ros.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;

        //创建一个pose_subsciber,订阅名为/turtle1/cmd_vel的topic,注册回调函数poseCallback
        ros::Subscriber pose_sub =n.subscribe("/turtle1/pose",10,poseCallback);

        //设置等待回调函数
        ros::spin();
        
        return 0;
        
 }

在这里插入图片描述

配置CmakeLists.txt中的编译规则

之后打开src/learning_topic下的CMakeList.txt文件
在这里插入图片描述

在该文件中加入如下俩句:

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

在这里插入图片描述

保存并推出。

之后在进行编译,输入

catkin_make

在这里插入图片描述

最后,运行代码:

roscore

rosrun turtlesim turtlesim_node

rosrun learning_topic pose_subscriber

之后可以看到输出了小海龟的位置,也可打开键盘节点,来控制其运动,看其数值是否发生变化。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值