Publisher发布者节点// 1. 包含ROS核心功能头文件必须写否则用不了ROS #include ros/ros.h // 2. 包含字符串消息类型用来发文字消息 #include std_msgs/String.h // 3. 程序入口所有C程序从这里开始运行 int main ( int argc,char *argv[] ) { // 4. 初始化ROS节点给节点起名chao_node ros::init(argc,argv,chao_node); // 5. 终端打印提示start!告诉我们程序启动了 printf(start!\n); // 6. 创建ROS节点句柄相当于ROS的“钥匙/管理员”必须写 ros::NodeHandle nh; // 7. 创建发布者 // 作用向名为 kuai 的话题发送字符串类型消息 // 10 缓存队列大小固定写10即可 ros::Publisher pubnh.advertisestd_msgs::String(kuai,10); // 8. 设置循环频率 10Hz每秒循环10次 // 作用控制循环速度不让CPU跑满卡死 ros::Rate loop_rate(10); // 9. 循环只要ROS正常运行就一直执行里面的代码 while(ros::ok()) { // 10. 终端打印will start printf(will start\n); // 11. 创建一个字符串消息变量 msg std_msgs::String msg; // 12. 给消息赋值内容是 my friend msg.datamy friend; // 13. 把消息发布出去发到kuai话题 pub.publish(msg); // 14. 配套使用按照上面设置的10Hz暂停等待 // 没有这句loop_rate设置了也没用 loop_rate.sleep(); } }解释记住 4 个核心用最简单的话总结整个程序做什么#include导工具打开 ROSinit起名字告诉 ROS 我叫 chao_nodeNodeHandle拿权限创建一个发消息的工具Publisher发消息往 kuai 这个频道不停发my friendwhile循环一直发一直发永远发直到关掉程序运行新节点roscore rosrun 包名 节点名称 //rosrun ssr_pkg chao_node常用工具查找活跃的话题名称rostopic listAI写代码bash话题里的消息的内容rostopic echo /话题名称AI写代码bash话题发送频率rostopic hz /话题名称