当前位置: 首页 > article >正文

ros 发布Topic

1、确定话题名称和消息类型

    自定义话题名称,消息类型根据发送消息需要从std_msgs中查找确定

2、在main函数中通过NodeHander发布话题

// 创建一个NodeHandle对象,用于与ROS系统进行交互
    ros::NodeHandle nh;
    
// 创建一个Publisher对象,用于发布std_msgs::String类型的消息到名为"topic1"的主题,队列大小为10
    ros::Publisher  pub  =  nh.advertise<std_msgs::String>("topic1",10);

3、创建要发送的消息对象并对消息数据赋值

// 创建一个std_msgs::String类型的消息对象
   std_msgs::String msg;
        
// 设置消息的数据字段为"message1"
   msg.data = "message1";
        
// 发布消息到"topic1"主题
   pub.publish(msg);

完整源码:

#include <ros/ros.h>
#include <std_msgs/String.h>

int main(int argc, char  *argv[])
{
    // 初始化ROS节点,节点名称为"chao_node"
    ros::init(argc,argv,"chao_node");
    
    // 创建一个NodeHandle对象,用于与ROS系统进行交互
    ros::NodeHandle nh;
    
    // 创建一个Publisher对象,用于发布std_msgs::String类型的消息到名为"topic1"的主题,队列大小为10
    ros::Publisher  pub  =  nh.advertise<std_msgs::String>("topic1",10);

    // 设置循环频率为10Hz
    ros::Rate loop_rate(10);
    
    // 进入循环,只要ROS系统正常运行就会一直执行
    while (ros::ok())
    {
        // 打印"start !"到控制台
        printf("start !\n");
        
        // 创建一个std_msgs::String类型的消息对象
        std_msgs::String msg;
        
        // 设置消息的数据字段为"message1"
        msg.data = "message1";
        
        // 发布消息到"topic1"主题
        pub.publish(msg);
        
        // 等待,直到达到预定的10Hz频率
        loop_rate.sleep();
    }
    
    // 返回0,表示程序正常结束
    return 0;
}


http://www.kler.cn/a/532612.html

相关文章:

  • Linux: 网络基础
  • CSS Display属性完全指南
  • openRv1126 AI算法部署实战之——Tensorflow模型部署实战
  • C#中的委托(Delegate)
  • CDDIS从2025年2月开始数据迁移
  • 读书笔记--分布式架构的异步化和缓存技术原理及应用场景
  • 【力扣】238.除自身以外数组的乘积
  • Rust HashMap :当储物袋遇上物品清单
  • 基于CY8CKIT-149 BLE HID设备实现及PC控制功能开发(BLE HID+CapSense)
  • ELF2开发板(飞凌嵌入式)搭建深度学习环境部署(RKNN环境部署)
  • 4种架构的定义和关联
  • 数据结构——并查集
  • 【单层神经网络】softmax回归的从零开始实现(图像分类)
  • gesp(C++六级)(8)洛谷:P10377:[GESP202403 六级] 好斗的牛
  • 【C++】泛型编程:吃透模板
  • 2023 年 12 月大学英语四级考试真题(第 3 套)——纯享题目版
  • 线性回归原理和算法
  • Verilog基础(四):组合逻辑
  • 深度求索DeepSeek横空出世
  • Swift语言的文件操作
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter1-什么是 JavaScript
  • 基于遗传算法的64QAM星座图的最优概率整形matlab仿真,对比优化前后整形星座图和误码率
  • Sumatra PDF:小巧免费,满足多样阅读需求
  • Java中的单例模式(如果想知道Java中有关单例模式的知识,那么只看这一篇就足够了!)
  • 【自然语言处理(NLP)】生成词向量:GloVe(Global Vectors for Word Representation)原理及应用
  • 为AI聊天工具添加一个知识系统 之86 详细设计之27 数据处理:ETL