Ros学习
话题通信C++发布方框架代码:
#include "ros/ros.h"
#include "std_msgs/String.h" //发布消息的类型,普通的文本
#include <sstream>
/*
发布方实现:
1. 包含头文件;
Ros中文本类型-->std_msgs/String.h
2. 初始化ROS节点;
3. 创建节点够句柄
4. 创建发布者对象
5. 编写发布逻辑并发布数据
*/
int main(int argc, char *argv[])
{
//解决中文乱码问题:
setlocale(LC_ALL,"");
//2. 初始化ROS节点; erGouZi是节点名称(相亲对象)
ros::init(argc, argv,"erGouZi");
//3. 创建节点句柄
ros::NodeHandle nh;
//4. 创建发布者对象 fang是话题名称 10是队列长度
ros::Publisher pub = nh.advertise<std_msgs::String>("fang",10);
//5. 编写发布逻辑并发布数据
//要求以10HZ的频率发布数据,并且文本后添加编号
//先创建被发布的消息
std_msgs::String msg;
//发布频率
ros::Rate rate(10);
//设置编号
int count = 0;
//编写循环,循环中发布的数据 ros::OK表示这个节点还存在,还正常运行
while(ros::ok()){
count++;
//msg.data = "hello";
//实现字符串的拼接
std::stringstream ss;
ss << "hello -->" << count;
msg.data = ss.str();
pub.publish(msg);//调用public函数把消息发布出去
//添加日志
ROS_INFO("发布的数据是:%s",ss.str().c_str());
rate.sleep();
}
return 0;
}