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

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

常见的消息包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
消息包定义一般如下👇
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(1)创建包和依赖项
在这里插入图片描述
在这里插入图片描述

(2)在新建的qq_msgs的包新建msgs的文件夹,在该文件夹里面新建Carry.msg类型的文件。
在这里插入图片描述

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

  • 查看依赖项是否都满足

在这里插入图片描述

  • (4)选中如下文件
    在这里插入图片描述
  • 取消注释
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    因为我们只需要使用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 secondwhile(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;
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
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;//建立订阅者1ros::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实现自定义信息以及使用

常见的消息包 消息包定义一般如下&#x1f447; &#xff08;1&#xff09;创建包和依赖项 &#xff08;2&#xff09;在新建的qq_msgs的包新建msgs的文件夹&#xff0c;在该文件夹里面新建Carry.msg类型的文件。 其实&#xff0c;Carry.msg就是你自己定义的消息类型&am…...

初始C语言——详细讲解操作符以及操作符的易错点

系列文章目录 第一章 “C“浒传——初识C语言&#xff08;更适合初学者体质哦&#xff01;&#xff09; 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 第四章 初始C语言——详细地讲解数组的内容以及易错点 第五章 初始C语言—…...

论文写作常用词句积累

X 连接词 表目的To this end/Toward that endto do soto this aimso as toTo tackle these issuesfor the sake ofaiming to do表转折howeverNevertheless表递进moreverFurthermore表对比on the other hand/On the contraryAlternativelyas in the case ofwhereas表顺序in a f…...

伺服系统::编码器

一、主要分类 二、组成与原理 光电编码器 磁编码器&#xff1a;N-->磁感元件&#xff08;0&#xff09;&#xff1b;S-->磁感元件&#xff08;1&#xff09;》脉冲 增量编码器的分辨率、倍频与细分技术 (99 封私信 / 81 条消息) 编码器有什么分类&#xff1f; - 知乎 (z…...

计算机网络 数据链路层 虚拟局域网 VLAN

...

Git全栈体系(五)

第八章 IDEA 集成 GitHub 一、设置 GitHub 账号 如果出现 401 等情况连接不上的&#xff0c;是因为网络原因&#xff0c;可以使用以下方式连接&#xff1a; 然后去 GitHub 账户上设置 token。 点击生成 token。 复制红框中的字符串到 idea 中。 点击登录。 二、分享工程…...

spring-boot webservice的例子

webservice发布服务 源码下载地址 spring-boot-webservice例子资源-CSDN文库 webservice cilent调用 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库...

第八章 SpringBoot @ConfigurationProperties配置绑定

原始做法&#xff1a;读取到文件内容&#xff0c;再进行bean的绑定 public static void readProperties(String propertiesPath) throws IOException {Properties pps new Properties();pps.load(MainApplication.class.getClassLoader().getResourceAsStream("applicat…...

【SpringBoot】88、SpringBoot中使用Undertow替代Tomcat容器

SpringBoot 中我们既可以使用 Tomcat 作为 Http 服务,也可以用 Undertow 来代替。Undertow 在高并发业务场景中,性能优于 Tomcat。所以,如果我们的系统是高并发请求,不妨使用一下 Undertow,你会发现你的系统性能会得到很大的提升。 1、Tomcat 介绍 Tomcat是一个开源的Ja…...

java8 求和

1.BigDecimal求和 对象字段求和 List<Car> listnew ArrayList<>(); BigDecimal sumOfBigDecimals list.stream().filter(Objects::nonNull).filter(c -> c.getMiles() ! null).map(Car::getMiles).reduce(BigDecimal.ZERO, BigDecimal::add);BigDecimal集合求…...

手眼标定眼在手上

1、为什么要用手眼标定 参考手眼标定特别是眼在手上在网上的文章很多&#xff0c;但很多在实际中调试不通。在定位时候&#xff0c;往往希望相机能返回的是机械的世界坐标&#xff0c;而不是相机的的图像坐标。从而间接计算出相机坐标系与机械坐标世界坐标转换矩阵&#xff0c…...

【数据结构】初始二叉树

满二叉树 每个结点都有左右子树的二叉树。 完全二叉树 从上到下、从左到右排列&#xff0c;不落下一个结点进行排列的二叉树。 二叉树的性质 第i层最多有2(i-1)个结点深度为k的二叉树最多有 2k-1 个结点因为一颗深度为k的满二叉树的结点有2k-1&#xff0c;即nk-1&#xff…...

创建和使用角色(RHCE)

题目&#xff1a; 创建和使用角色 根据下列要求&#xff0c;在 /home/curtis/ansible/roles 中创建名为 apache 的角色&#xff1a; httpd 软件包已安装&#xff0c;设为在系统启动时启用并启动 防火墙已启用并正在运行&#xff0c;并使用允许访问 Web 服务器的规则 模板文件 i…...

Leetcode 583 两个字符串的删除操作(经典)

【问题描述】 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1&#xff1a; 输入: word1 "sea", word2 "eat" 输出: 2 解释: 第一步将 "sea" 变为…...

c#实现工厂模式

可以使用以下代码实现C#中的工厂模式&#xff1a; 首先&#xff0c;定义一个接口作为产品的抽象&#xff1a; public interface IProduct {void Operation(); }然后&#xff0c;创建具体的产品类&#xff1a; public class ConcreteProductA : IProduct {public void Operat…...

c#在设计时调试自定义 Windows 窗体控件

private string demoStringValue null; [Browsable(true)] public string DemoString {get{return this.demoStringValue;}set{demoStringValue value;} } 参考链接 在设计时调试自定义控件 - Windows Forms .NET Framework | Microsoft Learnhttps://learn.microsoft.com/z…...

Ajax 笔记(二)—— Ajax 案例

笔记目录 2. Ajax 综合案例2.1 案例一-图书管理2.1.1 渲染列表2.1.2 新增图书2.1.3 删除图书2.1.4 编辑图书 2.2 案例二-背景图的上传和更换2.2.1 上传2.2.2 更换 2.3 案例三-个人信息设置2.3.1 信息渲染2.3.2 头像修改2.2.3 信息修改2.3.4 提示框 Ajax 笔记&#xff1a; Ajax…...

微信小程序隐私协议模板

在 设置 中找到 用户隐私保护 进行更新&#xff0c;如下图&#xff1a; 具体协议补充可参考如下&#xff1a; 为了分辨用户&#xff0c;开发者将在获取你的明示同意后&#xff0c;收集你的微信昵称、头像 为了显示距离&#xff0c;开发者将在获取你的明示同意后&#xff0c;收…...

Three.js WebXR沉浸式渲染简明教程

在前面文章中&#xff0c;我们了解了 VR 概念以及它们如何在 WebXR 中映射。 这使你可以考虑想要为用户提供的体验。 在本文中&#xff0c;我们将介绍如何将 WebXR 与 Three.JS 结合使用来创建针对大型异构用户群的沉浸式体验。 警告&#xff1a;WebXR API 仍在完善中&#xf…...

flask使用cookie (设置cookie与查看cookie内容)

1.flask包cookie的使用 设置cookie app.route(/set_cookie) def set_cookie():resp make_response(Setting cookie)resp.set_cookie(username, John)return resp查看cookie: app.route(/get_cookie) def get_cookie():username request.cookies.get(username)return Welco…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...