天天看點

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)回調函數定義,參數為固定話題消息指針;