2.1话题发布
在chao_node.cpp新增加代码
//NodeHandle 类似于管家ros::NodeHandle nh;//发送信息的对象ros::Publisher pub = nh.advertise<std_msgs::String>("快上车开黑群",10);
std_msgs::String msg;msg.data = "国服马超,带飞!*U*";pub.publish(msg);
全体代码
#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;
}
使用终端工具检测活跃话题
rostopic list
查看话题里的消息内容
rostopic echo /cluster
由于编码问题导致中文不能直接显示,另启终端执行命令,后面编码就上上图的编码
echo -e "\u56FD\u670D\u9A6C\u8D85\uFF0C\u5E26\u98DE\uFF01*U*"
查看话题消息发布频率
rostopic hz /cluster
新建频率控制对象,这里是控制话题每秒发送10个消息
ros::Rate loop_rate(10);
消息稳定在每秒10次
全部代码
#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;
}