话题发布者循环发送,话题的接受者的等待接收是将节点程序阻塞起来,节点没有结束,就可以一直等待接收
话题接收者创建
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)回调函数定义,参数为固定话题消息指针;