话题通讯自定义msg

前言

 

在ROS通信协议中,ROS中通过std_msgs封装了一些原生的数据类型,比如:String,Int32,Char,Bool,Int64,Empty

但是这些数据一般只包含一个data字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如:激光雷达的信息,std_msgs由于描述性就会不理想,这种场景下可以使用自定义的消息类型。

msgs只是简单的文本文件,每行具有字段类型和字段名称,可以使用的字段类型有:

string

float32 float64

time duration

int8 int16 int32 int64

other msg files

variable-length array[] and fixed-length array[C] (数组)

ROS中还有一种特殊类型:Header,标头包含时间戳(消息被发出去的那一刻的时间值)和ROS中常用的坐标帧信息。会经常看到msg文件的第一行具有Header标头。

流程简介:

1、按照固定格式创建msg文件

2、编辑配置文件

3、编译生成可以被Python或C++调用的中间文件

1、定义msg文件(类似结构体)

功能包下新建msg目录,添加文件Person.msg

string name
uint16 age
float height

2、编辑配置文件

package.xml 中添加编译依赖与执行依赖


<build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend><!--exec_depend以前对应的是 run_depend 现在非法-->

CmakeList.txt 编辑msg相关配置


find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation)
#需要加入 message_generation,必须有 std_msgs

##配置msg源文件
 

add_message_files(FILESPerson.msg)

##生成消息时依赖于 std_msgs
 

generate_messages(DEPENDENCIESstd_msgs)

##执行时依赖
 

catkin_package(#       INCLUDE_DIRS include#        LIBRARIES demo02_talker_listenerCATKIN_DEPENDS roscpp rospy std_msgs message_runtime#        DEPENDS system_lib)

演示

1、在plumbing_pub_sub中新建文件夹msg

2、在msg中间中新建Person.msg文件

3、打开Person.msg文件

在里面输入

string name
int32 age
float32 height

 配置相关文件

打开package.xml

在<build_depend>std_msgs</build_depend>后面添加

<build_depend>message_generation</build_depend>

在<exec_depend>std_msgs</exec_depend>后面添加

<exec_depend>message_runtime</exec_depend>

打开CMakeLists.txt文件

找到

find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgs
)

将其替换成

find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation
)

找到

# add_message_files(
#   FILES
#   Message1.msg
#   Message2.msg
# )

将其替换成

add_message_files(FILESPerson.msg
)

找到

# generate_messages(
#   DEPENDENCIES
#   std_msgs
# )

将其注释去掉

generate_messages(

DEPENDENCIES

std_msgs

)

找到

catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES plumbing_pub_sub
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)

将其替换成

catkin_package(

# INCLUDE_DIRS include

# LIBRARIES plumbing_pub_sub

CATKIN_DEPENDS roscpp rospy std_msgs message_runtime

# DEPENDS system_lib

)

然后编译一下

看到 项目名称/devel/include下面出现Person.h

和 项目名称/devel/lib/python3/msg下面出现_Person.py

则证明你的自定义消息类型已经实现了

53. 54. 052话题通信_自定义msg_实现_Chapter2-ROS通信机制_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/62904.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信关键字自动回复功能实现

具体实现过程请加入QQ群进行讨论获取 一、微信API解读 微信自动回复可以分为三种&#xff0c;一种是首次关注的欢迎语&#xff0c;一种是关键字自动回复&#xff0c;还有就是无法识别的回复。这三种模式在实现上是完全一样的&#xff0c;只是基于的事件不同而已。要想实现自动回…

Python实现微信自动回复信息的功能(根据不同信息回复对应的信息),手把手搭建加代码分析

目录 一.效果展示 二.前言介绍 三.进入正题 1.需要用到的包 2.下面进入到代码的部分 2.1导入所需要用到的包 2.2定义微信窗口控件 2.3调用寻找微信控件的方法 2.3绑定窗口的会话列表控件并读取数据 2.4使用while True:死循环监听信息 2.5获取最新的信息 2.6进入循…

微信开发之自动回复图文消息

最近开始做公司的微信项目&#xff0c;深切的感受到了微信的不同&#xff0c;做微信是需要从头开始好好学的&#xff0c;在此记录一下学习微信的过程&#xff0c;也希望以后能根据这些文章迅速掌握微信开发的知识。少踩坑&#xff0c;&#xff0c;&#xff08;laravel框架&…

微信公众号开发—自定义菜单、被动回复消息

自定义菜单 自定义菜单需要我们以POST的方式去请求接口&#xff0c;并且需要携带按钮信息&#xff08;格式为json)。 由于自定义菜单较为简单&#xff0c;这里使用微信官方提供的接口测试工具对按钮增加接口进行测试: 通过appid和secret获取access_token。生成按钮数据(JSON)…

msg文件自定义消息话题

以LVI-SAM为例&#xff0c;cloud_info.msg就是LVI-SAM自定义的消息类型&#xff1b;通常&#xff0c;都是利用msg文件&#xff0c;生成.h文件&#xff0c;然后cpp文件添加.h就可以正常使用自定义消息了&#xff1b; 自定义msg消息步骤 Step1&#xff1a;创建并编写msg文件&am…

微信公众号自定义回复(关键词回复:文本消息、图文消息)

要回复客户发到微信公共号的消息&#xff0c;首先要获取用户发来的消息&#xff0c; 接收地址就是微信公众号基本配置里写的服务器地址所在的文件地址&#xff1b; $postStr $GLOBALS["HTTP_RAW_POST_DATA"]; //微信返回的信息。包含用户所发的消息 $postObj si…

微信开发 (自动回复图片,自定义菜单)

微信是一个高大上的东西&#xff0c;恩&#xff0c;没错 首先输入网址mp.weixin.qq.com进入微信公众平台 注册账号和密码&#xff08;注意的是这里的账号和密码不是微信的账号密码&#xff09; 进入之后点击左侧开发/开发者工具 在右侧点击进入公众平台测试账号&#xff08…

大众CEO提前“毕业”,马斯克:软件是通向未来的关键

过去&#xff0c;软件是汽车的一部分&#xff0c;而如今&#xff0c;软件决定了汽车的价值。 近日&#xff0c;知名传统汽车厂商大众CEO赫伯特迪斯 (Herbert Diess) 提前卸任新闻引发人们热议&#xff0c;其好友特斯拉CEO马斯克发推表示&#xff1a;“软件是通向未来的关键。”…

“AI 不会取代程序员,而是其增长的加速器!”

ChatGPT 热潮下&#xff0c;关于 AI 是否会取代程序员的讨论不绝于耳&#xff0c;而本文作者认为&#xff1a;AI 反而会推动更多开发者的出现。 原文链接&#xff1a;https://interconnect.substack.com/p/ai-will-create-more-developers-not 未经允许&#xff0c;禁止转载&am…

谷歌终于也坐不住了 。。。

来源于51CTO技术栈 整理 | 言征 刚过去的一周&#xff0c;我们刚经历了三场对话式AI的大事&#xff1a;OpenAI的GPT-4&#xff0c;微软Office 365“核弹式”升级&#xff0c;百度的中文语言大模型“文心一言”&#xff0c;谷歌终于坐不住了&#xff0c;21日&#xff0c;谷歌首席…

我对 ChatGPT 进行多方位了解后的报告,超级全面,建议想了解的朋友看看(截至 2023.5.17)

优质介绍视频&#xff1a; GPT4前端【AI编程新纪元】 【渐构】万字科普GPT4为何会颠覆现有工作流&#xff1b;为何你要关注微软Copilot、文心一言等大模型 此文章不定期更新&#xff08;一周应该会更新一次&#xff09; 最近一次更新&#xff1a;2023.5.17 23:00&#xff08;…

获取钉钉企业部门用户信息

获取钉钉企业用户信息 有一个需求,需要获取本公司钉钉里面所有部门的员工信息,查阅钉钉官方文档后整理出了以下步骤: 1.登录钉钉企业管理员账号,创建一个应用 因为是公司内部使用区别第三方,所以选择企业内部开发 点击创建应用,填写基本信息 服务器IP写公网IP(可直接百度本机…

企业数字化转型|钉钉小程序开发权威指南

书籍发布&#xff1a;《钉钉小程序开发权威指南》书籍正式预售 钉钉技术团队聚力撰写&#xff0c;本书细致全面地介绍钉钉小程序技术原理及开发要点&#xff0c; 详细介绍从成为一名钉钉开发者到小程序应用上架的每一步流程。助力企业实现组织数字化和业务数字化。 购买渠道 …

钉钉E应用架构详解

&#xff25;应用框架详解&#xff1a; App:指的是E应用。 Page&#xff1a;页面&#xff0c;一个app有多个page。 App的生命周期&#xff1a; 当用户点击应用&#xff0c;进去onLaunch(启动应用)->onShow,当用户点返回按钮时&#xff0c;不会销毁当前页面(保活状态)&…

Python结合钉钉实时自动监控股票行情,上班炒股再也不怕老板发现

最近全球股市开始回暖&#xff0c;之前清仓的股民现在又陆续开始建仓。股市交易时间&#xff0c;一般也是上班时间&#xff0c;频繁的查看股票软件不仅会影响工作效率&#xff0c;也容易被老板以为工作不饱和。所以&#xff0c;我们就借助python的强大功能&#xff0c;把提前设…

【钉钉-场景化能力包】应用内发DING消息

客户痛点 面对不同类型的中小型企业&#xff0c;人员较多&#xff0c;找人非常困难&#xff0c;管理子公司的时候&#xff0c;协调的问题就更多&#xff0c;企业使用常规的个人聊天软件&#xff0c;消息发送后&#xff0c;不能准确判断消息是否已读&#xff0c;导致沟通管理效…

DingTalk「开发者说」如何开发钉钉高价值应用三部曲

一、钉钉是什么&#xff1f; 钉钉是企业应用数字化的操作系统 简单来说&#xff0c;钉钉是企业应用数字化的操作系统&#xff0c;就如同PC上的windows操作系统一样&#xff0c;我们可以在上面安装各种应用比如office、WPS&#xff0c;用于企业的各种实际应用。 钉钉自带原生…

数据分析:扩展企业微信、钉钉、飞书等告警通知渠道

本章节主要讲述如何扩展告警的通知渠道&#xff0c;以便将告警发送到第三方应用中 企业微信 实现目标 ●在鸿鹄中创建的告警被触发后&#xff0c;将告警通知发送至指定的企业微信群聊 配置步骤 1、打开“企业微信”&#xff0c;点击告警群右上角的“...”按钮 2、点击“群机器人…

Meta 开源 ImageBind 新模型,超越 GPT-4,对齐文本、音频等 6 种模态!

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 据外媒报道&#xff0c;上周四&#xff0c;Google、微软、OpenAI 几家公司的 CEO 受邀去白宫&#xff0c;共论关于人工智能发展的一些重要问题。然而&#xff0c;让人有些想不通的是&#xff0c;深耕 A…

刷屏的Llama 2性能究竟如何?

Datawhale干货 大模型&#xff1a;Llama 2&#xff0c; 来源&#xff1a;机器之心 虽然性能仍不及ChatGPT 3.5&#xff0c;但开源的力量是无法估量的。 相信很多人都被 Meta 发布的 Llama 2 刷了屏。OpenAI 研究科学家 Andrej Karpathy 在推特上表示&#xff0c;「对于人工智能…