Ros机器人之(五)订阅subscriber消息
这个讲的是订阅节点消息。
learning_topic里src下创建一个cpp文件
touch pos_subscriber
内容如下:
/*
订阅消息
subscribe
*/
#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::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
运行上一篇讲的发步消息,会看到小乌龟的位置实时传回终端。
rosrun learning_topic publisher