#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 节点;
ros :: init(argc, argv, "erGouZi");
// 3.创建节点句柄;
ros :: NodeHandle nh;
// 4.创建发布者对象;
ros :: Publisher pub = nh.advertise<std_msgs :: String>("fang", 10);
// 5.编写发布逻辑并发布数据;
// 要求以 10HZ 的频率发布数据,并且文本后添加编号
// 先创建被发布的消息
std_msgs :: String msg;
// 发布频率
ros :: Rate rate(10);
// 设置编号
int count = 0;
// 使程序休眠一段时间,防止前几条数据丢失
ros :: Duration(3).sleep();
// 编写循环,循环中发布数据
while (ros :: ok())
{
count++;
// 实现字符串拼接数字
std :: stringstream ss;
ss << "hello --->" << count;
// 将 ss 里面的数据提取为字符串
msg.data = ss.str();
// 发布频率
pub.publish(msg);
// 添加日志
ROS_INFO("发布的数据是:%s", ss.str().c_str());
rate.sleep();
}
return 0;
}
ROS话题通讯(发布订阅模式)发布方框架 C++
于 2022-08-13 18:00:39 首次发布