在chao_node.cpp新增加代码
cpp
//NodeHandle 类似于管家
ros::NodeHandle nh;
//发送信息的对象
ros::Publisher pub = nh.advertise<std_msgs::String>("快上车开黑群",10);
cpp
std_msgs::String msg;
msg.data = "国服马超,带飞!*U*";
pub.publish(msg);
全体代码
cpp
#include <ros/ros.h>
#include<std_msgs/String.h>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"chao_node");
printf("苔花如米小,也学牡丹开。\n");
//NodeHandle 类似于管家
ros::NodeHandle nh;
//发送信息的对象,话题名称不能是中文
ros::Publisher pub = nh.advertise<std_msgs::String>("cluster",10);
while(ros::ok())
{
printf("我要刷屏了!^U^\n");
//生成消息包
std_msgs::String msg;
msg.data = "国服马超,带飞!*U*";
pub.publish(msg);
}
return 0;
}
使用终端工具检测活跃话题
cpp
rostopic list
查看话题里的消息内容
cpp
rostopic echo /cluster

由于编码问题导致中文不能直接显示,另启终端执行命令,后面编码就上上图的编码
cpp
echo -e "\u56FD\u670D\u9A6C\u8D85\uFF0C\u5E26\u98DE\uFF01*U*"

查看话题消息发布频率
cpp
rostopic hz /cluster
新建频率控制对象,这里是控制话题每秒发送10个消息
cpp
ros::Rate loop_rate(10);
消息稳定在每秒10次

全部代码
cpp
#include <ros/ros.h>
#include<std_msgs/String.h>
int main(int argc, char *argv[])
{
ros::init(argc,argv,"chao_node");
printf("苔花如米小,也学牡丹开。\n");
//NodeHandle 类似于管家
ros::NodeHandle nh;
//发送信息的对象,话题名称不能是中文
ros::Publisher pub = nh.advertise<std_msgs::String>("cluster",10);
//频率控制对象,这里是控制话题每秒发送10个消息
ros::Rate loop_rate(10);
while(ros::ok())
{
printf("我要刷屏了!^U^\n");
//生成消息包
std_msgs::String msg;
msg.data = "国服马超,带飞!*U*";
pub.publish(msg);
loop_rate.sleep();
}
return 0;
}