天天看点

ROS之话题创建(二) 接受者创建

话题发布者循环发送,话题的接受者的等待接收是将节点程序阻塞起来,节点没有结束,就可以一直等待接收

话题接收者创建

cd ~/my_catkin_ws/src/learning_communication/src
touch listener.cpp
gedit listener.cpp
           

打开listener.cpp后复制下列代码

#include "ros/ros.h"
#include "std_msgs/String.h"

//回调函数
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
	ROS_INFO("I heard: [%s]", msg->data.c_str());
}

int main(int argc, char **argv)
{
 	ros::init(argc,argv,"listener");
 	ros::NodeHandle n;
 	ros::Subscriber sub = n.subscribe("asker", 1000, chatterCallback);
	ros::spin();
	return  0;
}
           

话题接收的主要步骤

1)初始化节点,给节点命名

2)创建句柄,并利用句柄创建接收者,指定话题名,队列1000,回调函数名称

3)循环阻塞;

4)回调函数定义,参数为固定话题消息指针;