话题通信——创建发布方
ros中节点之间的通信通过话题发布/订阅实现,节点之间是通过ros master节点进行建立连接,发布者与订阅者的话题必须一致方可建立连接。建立起连接之后即可实现两个节点的消息通讯。
#include"ros/ros.h"
#include<sstream>
#include"std_msgs/String.h"
using namespace std;
int main(int argc, char *argv[])
{
ros::init(argc,argv,"pub");//名字为pub的节点
ros::NodeHandle nh;//节点句柄
ros::Publisher pub=nh.advertise<std_msgs::String>("monkey", 10);//创建发布者对象,话题为monkey
std_msgs::String msg;
stringstream ss;
ros::Rate rate(10);//以10hz的频率发布消息
int count=0;
while(ros::ok())
{
ss.clear();//清空流的错误标记
ss.str("");//清空缓存
ss << "hello " << count;
msg.data=ss.str();
pub.publish(msg);
ROS_INFO(ss.str().c_str());
count++;
rate.sleep();
ros::spinOnce();
}
return 0;
}