話題釋出者循環發送,話題的接受者的等待接收是将節點程式阻塞起來,節點沒有結束,就可以一直等待接收
話題接收者建立
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)回調函數定義,參數為固定話題消息指針;