zoukankan      html  css  js  c++  java
  • ROS(四)---自定义消息.msg

    一、工程结构

     新的ros package book

    二、定义 msg

    编译后,在工作空间下的devel 中include  有头文件 book/Student.h

    发布端

    #include "ros/ros.h"
    #include "book/Student.h"
    #include <cstdlib>
    
    using namespace std;
    int main(int argc, char** argv)
    {
        // initial and name node
        ros::init(argc, argv, "node_MyMsgPub"); // 初始化节点名称
        if(argc!=4)
        {
            cout<<"Error command parameter!
    "<<"please run command eg:
    "<<"rosrun book_message Book_MyMsgPub LiLei 180 160"<<endl;
            return 1;
        }
    
        //create mode handle
        ros::NodeHandle nh;  // ros node handle 句柄
        ros::Publisher myMsgPub = nh.advertise<book::Student>("MyMsg",100);  //发布器
        book::Student stdMsg;
        stdMsg.name = argv[1];
        stdMsg.height = atof(argv[2]);
        stdMsg.weight = atof(argv[3]);
    
        ros::Rate rate(10);
        while(ros::ok)
        {
            myMsgPub.publish(stdMsg);
            rate.sleep();
        }
        return 0;
    }

    接收端口

    #include "ros/ros.h"
    #include "book/Student.h"
    
    void MyMsgCallback(const book::Student &stdInfo)
    {
        ROS_INFO("student message: 
     name:%s---height:%f---weight:%f
    ",stdInfo.name.c_str(),stdInfo.height
        ,stdInfo.weight);
    }
    
    int main(int argc, char ** argv)
    {
        // initial and name node
        ros::init(argc, argv, "node_MyMsgSub");
        
        ros::NodeHandle nh;
        // create subscriber
        ros::Subscriber MyMsgSub = nh.subscribe("MyMsg",1000,&MyMsgCallback);
        ros::spin();
        return 0;
    }
  • 相关阅读:
    Spring Boot
    AWS DynamoDB
    VBA读excel写xml
    WebSocket API 学习
    故障排除 Mybatis ORA-01000 和 本地缓存问题
    Java基础
    Java Tutorials Lambda表达式 翻译
    在代理环境中构建maven环境
    Pom
    我的JAVA笔记
  • 原文地址:https://www.cnblogs.com/feihu-h/p/12417683.html
Copyright © 2011-2022 走看看