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——框架
    Spring——简介
    系统常识——系统碎片
    php5.3.3以上重启php-fpm的方法
    linux后端跑redis
    php的post
    微信场景二维码
    phantomjs和selenium模拟登陆qq空间
    python登录知乎
    python的request抓https的警告问题
  • 原文地址:https://www.cnblogs.com/feihu-h/p/12417683.html
Copyright © 2011-2022 走看看