ROS2创建自定义接口

news2024/10/7 12:18:44

ROS2提供了四种通信方式:

话题-Topics
服务-Services
动作-Action
参数-Parameters

查看系统自定义接口命令

使用ros2 interface package sensor_msgs命令可以查看某一个接口包下所有的接口

除了参数之外,话题、服务和动作(Action)都支持自定义接口,每一种通信方式所适用的场景各不相同,所定义的接口也被分为话题接口、服务接口、动作接口三种。

创建自定义接口节点

ros2 pkg create example_ros2_interfaces --build-type ament_cmake --dependencies rosidl_default_generators geometry_msgs


话题接口格式:xxx.msg
int64 num

自定义话题接口格式:

话题接口,采用基础类型 RobotStatus.msg
uint32 STATUS_MOVEING = 1
uint32 STATUS_STOP = 1
uint32  status
float32 pose

话题接口,混合包装类型 RobotPose.msg
uint32 STATUS_MOVEING = 1
uint32 STATUS_STOP = 2
uint32  status
geometry_msgs/Pose pose

服务接口格式:xxx.srv
int64 a
int64 b
---
int64 sum

自定义服务接口格式:

服务接口MoveRobot.srv

# 前进后退的距离
float32 distance
---
# 当前的位置
float32 pose

动作接口格式:xxx.action
int32 order
---
int32[] sequence
---
int32[] partial_sequence
 

 接口数据类型
根据引用方式不同可以分为基础类型和包装类型两类。

基础类型有(同时后面加上[]可形成数组)
bool
byte
char
float32,float64
int8,uint8
int16,uint16
int32,uint32
int64,uint64
string


包装类型

即在已有的接口类型上进行包含,比如
uint32 id
string image_name
sensor_msgs/Image

接口文件目录

修改CMakeLists.txt

# 添加下面的内容
rosidl_generate_interfaces(${PROJECT_NAME}
  "msg/RobotPose.msg"
  "msg/RobotStatus.msg"
  "srv/MoveRobot.srv"
  DEPENDENCIES geometry_msgs
)

修改package.txt

 <member_of_group>rosidl_interface_packages</member_of_group> #添加这一行

打包编译

colcon build --packages-select example_ros2_interfaces

查看所有接口定义

ros2 interface list
 

查看指定接口定义

ros2 interface show std_msgs/msg/String


 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

石墨舟氮气柜的特点和使用要求介绍

石墨舟是一种在半导体、太阳能光伏等高科技产业中广泛使用的专用工具&#xff0c;主要由高纯度石墨材料制成。它的形状通常像一只船&#xff0c;因此得名“石墨舟”。石墨舟主要用于承载硅片或其他基板材料通过各种高温处理过程&#xff0c;是制造半导体器件和太阳能电池片的关…

BLACKBOX.AI:解锁开发新纪元,加速编程学习的AI神器!

文章目录 &#x1f4af;BLACKBOX.AI 官网&#x1f341;1 BLACKBOX.AI 工具使用教程&#x1f341;2 BLACKBOX.AI工具使用界面介绍&#x1f341;3 Chat(聊天)功能&#x1f341;4 Explore (探索)功能&#x1f48e;4.1 Terminal(终端)功能&#x1f48e;4.2 Discover(发现)功能&…

Android进阶之路 - DialogFragment有没有了解的必要?

几个月前写到了弹框业务&#xff0c;以前经常用Dialog、ButtomDialog 、popupWindow 组件&#xff0c;为了契合项目结构参考了原有的 DialogFragment 组件&#xff0c;特此予以记录 我一般在项目中写弹框组件的话&#xff0c;主要用到 alertDialog、popupWindow 组件&#xff0…

对于AI最敏感的问题,高盛内部分歧不小,但“即便是泡沫,也会持续很长时间”

展望未来十年&#xff0c;质疑者预测&#xff0c;AI只能将美国生产率提高0.5%&#xff0c;对GDP增长的贡献累计仅为0.9%。乐观分析师则预计&#xff0c;生成式AI最终将自动化25%的工作任务&#xff0c;并推动美国生产率提高9%&#xff0c;GDP增长6.1%。 人工智能信仰下&#xf…

【Proteus仿真】多变循环彩灯

【Proteus仿真】多变循环彩灯 ‍ 01功能描述 10种灯光效果可通过按键进行切换/通过按键切换灯光效果&#xff0c;通过数码管显示当前灯光模式&#xff0c;并通过按键调节当前灯光速度快慢。 02原理图 ​​ ‍ 03资料内容 源码仿真 04资料获取链接 https://docs.qq.co…

MySQL事物

事务的概念 ●事务是一种机制、一个操作序列&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体 一起向系统提交或撤销操作请求&#xff0c;即这一组数据库命令要么都执行&#xff0c;要么都不执行。 ●事务是一个不可分割的工作逻辑单元&#…

Animate源文件修改要注意什么?

最近经常有同学提问&#xff0c;如何对Animate源文件&#xff0c;也就是fla格式文件进行修改&#xff0c;这里简单说一下要注意的内容。 首先是要使用Animate软件打开源文件&#xff0c;要尽量使用完整版本的软件&#xff0c;以免无法正常运行代码。接下来就是要注意的几点&…

fmsbggradar|复现CNS同款雷达图并且加上显著P值

文章目录 前言fmsb数据格式参数调整demo ggradar单样本demo多组demo 实战-给radar添加统计量 前言 雷达图&#xff0c;Radar&#xff08;也称为蜘蛛图或网络图&#xff09;是一种二维图表&#xff0c;用于显示多变量数据。每个变量由从中心延伸出来的辐条&#xff08;或轴&…

uniapp 使用cavans 生成海报

uniapp 使用cavans 生成海报 npm install qs-canvas1.创建 useCanvas.js /*** Shopro qs-canvas 绘制海报* version 1.0.0* author lidongtony* param {Object} options - 海报参数* param {Object} vm - 自定义组件实例*/ import QSCanvas from qs-canvas; import { getPos…

花了大几万的踩坑经验!宠物空气净化器哪个牌子好:希喂、小米、有哈PK

我的闺蜜最近向我大吐苦水&#xff0c;自从家里养了猫之后&#xff0c;她发现家里的空气质量大不如前。宠物的浮毛和排泄物的气味在空气中飘散&#xff0c;让她非常怀念以前没有养猫时家里清新的呼吸环境。她觉得这些漂浮的毛发和异味大大降低了居家的舒适度。 还引起了身体上…

容器:string

以下是对于string容器常用功能和函数的总结 主要包括 1、定义string 2、字符串赋值 3、字符串拼接&#xff1a;str.append() 4、字符串查找&#xff1a;str.find() / str.rfind() 5、字符串替换&#xff1a;str.replace(&#xff09; 6、字符串长度比较&#xff1a;str.compare…

Quartz定时任务组件

官网&#xff1a;http://www.quartz-scheduler.org/ 1&#xff09;job - 任务 - 你要做什么事&#xff1f; 2&#xff09;Trigger - 触发器 - 做什么事&#xff0c;什么时候触发&#xff0c;可以传入任务 3&#xff09;Scheduler - 任务调度 - 可以传入多个触发器进行任务调…

ASUS/华硕天选Air 2021 FX516P系列 原厂win10系统

安装后恢复到您开箱的体验界面&#xff0c;带原机所有驱动和软件&#xff0c;包括myasus mcafee office 奥创等。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http:…

Transformer教程之序列到序列模型(Seq2Seq)

在自然语言处理&#xff08;NLP&#xff09;的领域中&#xff0c;Transformer模型无疑是近年来最具革命性的方法之一。它的出现不仅大大提高了机器翻译、文本生成等任务的精度&#xff0c;还推动了整个深度学习研究的进步。本文将详细介绍Transformer模型中的序列到序列模型&am…

【Linux】性能分析器 perf 详解(一):简介、安装、stat命令演示

1、简介 perf 是由 Linux 官方提供的系统性能分析工具 。它包含两部分: perf_events ,Linux 内核中的一个子系统perf 命令,用户空间的应用程序内核子系统 perf_events 提供了性能计数器(hardware performance counters)和性能事件的支持,它以事件驱动型的方式工作,通过…

NVIDIA-NCCL下载资源分享,跳过Authenticator验证

目录 Authenticator进入下载页面Download NCCL 2.22.3, for CUDA 12.5, June 18th, 2024Local installers (x86)Network installers (x86)Local installers (ARM)Network installers (ARM) Download NCCL 2.22.3, for CUDA 12.4, June 18th, 2024Local installers (x86)Network…

如何实现高精度PCB切割?— 在线式激光切割机解决方案

在线式PCB精密激光切割机是一种专门用于电子行业中印刷电路板&#xff08;PCB&#xff09;切割的高精度设备。以下是关于在线式PCB精密激光切割机的详细信息和特点&#xff1a; 1. 工作原理&#xff1a; 在线式PCB精密激光切割机主要通过激光束的高能量密度对PCB板进行瞬时加热…

2024年客户体验的几个预测

数字化转型、以客户为中心的理念、数字技术的发展和产品的不断创新&#xff0c;都为客户体验带来了巨大的改变。 目前&#xff0c;我们看到很多公司都在致力于塑造一种以客户为中心的商业模式。企业开始用更多技术、更多数据和更多产品来强化自己在客户体验方面的能力。 那么&a…

应用DMAIC方法解决问题的注意事项有哪些?

在解决问题的过程中&#xff0c;DMAIC方法作为一种强大的工具&#xff0c;广泛应用于各类质量管理、流程改进以及持续优化的项目中。DMAIC代表定义&#xff08;Define&#xff09;、测量&#xff08;Measure&#xff09;、分析&#xff08;Analyze&#xff09;、改进&#xff0…

嵌入式应用开发屏幕教程8080并口通信

目录 #8080相关概念介绍 #8080并行通信硬件连接部分 #并行通信硬件电路连接图 #并行通信读数据规定 #并行通信写数据规定 #8080相关概念介绍 通信协议分为串行通信协议&#xff0c;并行通信协议&#xff0c;而本章所讲的8080是一种并行通信协议&#xff0c;并行通信协议 Pa…