ROS实现自定义信息以及使用

这篇具有很好参考价值的文章主要介绍了ROS实现自定义信息以及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见的消息包

ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
消息包定义一般如下👇
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
(1)创建包和依赖项
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux

(2)在新建的qq_msgs的包新建msgs的文件夹,在该文件夹里面新建Carry.msg类型的文件。
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux

  其实,Carry.msg就是你自己定义的消息类型,属于qq_msgs包下面的。
(3)在对应CMakeList.txt文件下查看如下信息

  • 查看依赖项是否都满足

ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux

  • (4)选中如下文件
    ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
  • 取消注释
    ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
    ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
    ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
    因为我们只需要使用string 还有int64类型的数据组成我们的新的消息包,所以就只需要包括标准消息包就可以了。

保存即可 (5)打开package.xml文件 (6)保存 编译

使用新的消息包
chao_node节点文件如下

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

#include<qq_msgs/Carry.h>  //引进我们自己的消息包


int main(int argc, char  *argv[])
{
    ros::init(argc,  argv,  "chao_node");
    printf("小马同学,hello welcome coming Ros world!  \n ");
    // 建立节点句柄
    ros::NodeHandle nh;
    //建立发布者
    ros::Publisher pub=nh.advertise<qq_msgs::Carry>("play_game_topic",10);
    //控制循环次数,ros系统给我自带了控制语句,不用我们自己写睡眠函数
    ros::Rate loop_rate(10); // publish 10 times of per second
    while(ros::ok())
    {
        printf("xiaoma will carry  !\n");
        //开始定义标准消息包、
        qq_msgs::Carry msg;
        msg.grade = "hornor";
        msg.star=30;
        msg.data="please  come on!\n";
        //给发布者发布
        pub.publish(msg);
        loop_rate.sleep();//调用loop_rate的sleep函数,让其产生短暂的阻塞
    }
    return 0;
}

ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux

ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
ma_node的代码

#include<ros/ros.h>
#include<std_msgs/String.h>
#include<qq_msgs/Carry.h>   //引进我们自己的消息包
void xiaoli_callback(qq_msgs::Carry msg)
{
      ROS_INFO(msg.grade.c_str());
     ROS_INFO("%lld", msg.star);
    ROS_INFO(msg.data.c_str());
   
}

void play_game_callback(qq_msgs::Carry msg)
{
    ROS_WARN(msg.data.c_str());//这个输出语句只是把输出内容变成还黄色
}

int main(int argc, char  *argv[])
{
    ros::init(argc,  argv,  "ma_node");
    printf("马同学,我将接受发布者的消息! \n ");
    // 建立节点句柄
    ros::NodeHandle nh;
    //建立订阅者1
    ros::Subscriber sub=nh.subscribe("xiang_he_xiao_ma_wan_you_xi",10,xiaoli_callback);
   //建立订阅者2不能和第一个名字一样
    ros::Subscriber sub2=nh.subscribe("play_game_topic",10,play_game_callback);
    while(ros::ok())
    {

        ros::spinOnce();
       }
    return 0;
}

他的配置文件格式与chao_node一样,分别是CMakeList.txt文件和package.xml文件。
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux
运行结果:
ROS实现自定义信息以及使用,无人机设计开发,ROS,飞控,Linux文章来源地址https://www.toymoban.com/news/detail-644632.html

到了这里,关于ROS实现自定义信息以及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超维空间M1无人机使用说明书——53、ROS无人机二维码识别与降落——V2升级版本

    一、启动二维码识别与降落程序 未出现红色报错,表明程序运行正常 launch文件详解 launch文件启动了四个节点,节点作用如下 二、视频演示 视频演示: 二维码降落

    2024年02月03日
    浏览(50)
  • 超维空间M1无人机使用说明书——01、ROS机载电脑使用说明——远程连接

    1、SSH优缺点 优点:1、消耗网络资源 2、运行稳定 缺点:1、图形化界面卡顿 2、对新手不友好 2、可视化软件优缺点 优点:1、对新手友好 2、运图形化界面比ssh流畅 缺点:1、消耗网络资源 一、远程登录到无人机端的Jetson nano 步骤一、通过SSH 登录到ROS主控端 无人机上电后会默认发

    2024年01月22日
    浏览(70)
  • (无人机方向)ros小白之键盘控制无人机(终端方式)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ubuntu 18.04 pycharm ros melodic 做一个在终端中键盘输入指令,控制飞机起飞以及进入offbaord File-Settings-Project Interpreter-右边小齿轮Show All-选中正在使用的python 点击右边最下面的图标,打开Interpreter Path 添加/

    2024年02月15日
    浏览(46)
  • ROS无人机开发常见错误

    解决办法: 打开地面站的遥控器一栏 首先检查右下角Channel Monitor是否有识别出遥控各通道的值,如果没有,检查遥控器是否打开,遥控器和接收机是否对频成功,接收机和飞控的接线是否正确。 如果Channel Monitor可以识别出遥控各通道的值,再检查上方横滚/俯仰/水平/油门四

    2024年01月21日
    浏览(54)
  • 无人机遥感在农林信息提取中的实现方法与GIS融合制图教程

    详情点击链接:无人机遥感在农林信息提取中的实现方法与GIS融合制图 遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势,是智慧农业必须采用的重要技术之一。              

    2024年02月12日
    浏览(52)
  • 从ROS1到ROS2无人机编程实战指南

    亲爱的读者们,我今天非常荣幸地向大家推荐一本本人的全新力作——《从ROS1到ROS2无人机编程实战指南》。这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2的最佳选择。如今已在全国范围内上市,购书即可享受次日达的快捷服务! 本书的创

    2024年02月10日
    浏览(46)
  • 【PX4仿真】使用PX4+Gazebo+MAVROS+ROS进行无人机仿真中提高IMU消息频率的方法

    在无人机仿真中,IMU(惯性测量单元)消息频率对于路径规划和感知的仿真至关重要。然而,在使用PX4+Gazebo+MAVROS+ROS进行仿真时,可能会遇到频率受限的情况。本文将介绍如何提高IMU消息频率。 通过以下命令可以查看到IMU消息的发布频率 通常情况下固定在50Hz。 然而,通过

    2024年04月14日
    浏览(111)
  • 【ROS&GAZEBO】多旋翼无人机仿真(一)——搭建仿真环境

    【ROSGAZEBO】多旋翼无人机仿真(一)——搭建仿真环境 【ROSGAZEBO】多旋翼无人机仿真(二)——基于rotors的仿真 【ROSGAZEBO】多旋翼无人机仿真(三)——自定义无人机模型 【ROSGAZEBO】多旋翼无人机仿真(四)——探索控制器原理 【ROSGAZEBO】多旋翼无人机仿真(五)——位置

    2023年04月17日
    浏览(78)
  • (无人机方向)ros学习之路ROS 机器人系统仿真_导航仿真概述

    一:导航仿真概述 导航是机器人系统中最重要的模块之一,比如现在较为流行的服务型室内机器人,就是依赖于机器人导航来实现室内自主移动的,本章主要就是介绍仿真环境下的导航实现,主要内容有: 导航相关概念 导航实现:机器人建图(SLAM)、地图服务、定位、路径规划…

    2024年02月02日
    浏览(58)
  • ROS实现自定义信息以及使用

    消息包定义一般如下👇 (1)创建包和依赖项 (2)在新建的qq_msgs的包新建msgs的文件夹,在该文件夹里面新建Carry.msg类型的文件。   其实,Carry.msg就是你自己定义的消息类型,属于qq_msgs包下面的。 (3)在对应CMakeList.txt文件下查看如下信息   查看依赖项是否都满足 (4)选中

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包