Ros机器人之(五)订阅subscriber消息

Ros机器人之(五)订阅subscriber消息

Ros机器人之(五)订阅subscriber消息_第1张图片
这个讲的是订阅节点消息。
learning_topic里src下创建一个cpp文件

touch pos_subscriber

内容如下:

/*
订阅消息
subscribe
*/
#include
#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::init(argc,argv,"pos_subscriber");
	//创建节点句柄
	ros::NodeHandle n;
	//设置创建订阅消息
	ros::Subscriber pose_sub= n.subscribe("/turtle1/pose",10,posecallback);
	//循环等待回调
	ros::spin();
	return 0;
}

完成后在Cmakelist中添加:

#消息订阅
add_executable(pos_subscriber src/pos_subscriber.cpp)
target_link_libraries(pos_subscriber ${catkin_LIBRARIES})

编译

catkin_make
source devel/setup.bash

然后运行小乌龟

roscore
rosrun turtlesim turtlesim_node

开启订阅

rosrun learning_topic pos_subscriber

Ros机器人之(五)订阅subscriber消息_第2张图片
运行上一篇讲的发步消息,会看到小乌龟的位置实时传回终端。

rosrun learning_topic publisher

Ros机器人之(五)订阅subscriber消息_第3张图片

你可能感兴趣的:(ROS)