ROS1——ROS自定义消息格式配置相关

2023-05-16

在使用ROS时,其自带的消息格式已经使开发人员很方便,但是仍然避免不了会有一些特别的消息需要自己去定义,此时,就需要了解ROS中如何编写配置自定义消息格式。

1、新建filename.msg文件

首先,需要在本功能包pkg_name(功能包名,可自定义)下新建msg文件,并在msg文件下新建filename.msg(filename是文件名,可自定义)。

2、补充消息内容

在自定义消息文件中,我们最常用的是float32,float64,float32[]等,他们都在std_msgs标准消息格式下,当然也可以引用其他消息类型,比如geometry_msgs/Pose
举例:

float32 heigh
float32[] arr;
geometry_msgs/Pose pose

3、配置CMakeList.txt文件

1find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs ##自定义消息类型filename.msg中引用的标准消息
  geometry_msgs ##自定义消息类型filename.msg中引用的标准消息
  message_generation ##消息生成必加
)2)
## Generate messages in the 'msg' folder
add_message_files(
  FILES
  filename.msg ##新建的消息文件名
)3)
## Generate added messages and services with any dependencies listed here
generate_messages( 
#添加所依赖的消息类型
  DEPENDENCIES
  std_msgs ##
  geometry_msgs ##
)4catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES wgs84toenu
  CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
#  DEPENDS system_lib
)

4、配置package.xml文件

添加这两句

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

5、在本功能包pkg_name下使用filename.msg

#include<pkg_name/filename.h>//调用头文件
pkg_name::filename fn;//定义该类型变量,接下来就可以使用了

6、在其他功能包pkg2_name下使用filename.msg

(1)配置pkg2_name的CMakeList.txt文件

1find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  pkg_name ##将包含filename.msg的功能包放进来
)2add_dependencies(${PROJECT_NAME}_node 
                  ${${PROJECT_NAME}_EXPORTED_TARGETS} 
                  ${catkin_EXPORTED_TARGETS}
                  pkg_name_gencpp ##调用同一工作空间的自定义消息类型时注明依赖关系,防止发生头文件找不到的报错
                  )

(2)配置pkg2_name的package.xml文件

添加:

  <build_depend>pkg_name</build_depend>
  <exec_depend>pkg_name</exec_depend>

(2)在pkg2_name中使用filename.msg

#include<pkg_name/filename.h>//调用头文件
pkg_name::filename fn_;//定义该类型变量,接下来就可以使用了

结束

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS1——ROS自定义消息格式配置相关 的相关文章

随机推荐

  • 《大话数据结构》C++实现哈希表的创建、查找和插入

    include lt iostream gt using namespace std typedef int status constexpr auto SUCCESS 61 1 constexpr auto UNSUCCESS 61 0
  • 一文理解UART通信

    还记得当年的打印机 xff0c 鼠标和调制解调器吗 他们都有巨大笨重的连接器和粗电缆 xff0c 并且必须拧到你的电脑上 这些设备正是使用UART协议与计算机进行通信 虽然USB几乎完全取代了旧的电缆和连接器 xff0c 但UART绝对没有
  • UART串口通信协议概述

    1 UART协议介绍 UART是一种通用串行数据总线 xff0c 用于异步通信 UART能实现双向通信 xff0c 在嵌入式设计中 xff0c 常用于主机与辅助设备通信 UART包括RS232 RS449 RS423等接口标准规范和总线标准
  • 深入浅出C语言:(十)C预处理

    目录 一 C 语言 include 的用法 xff08 文件包含命令 xff09 二 C 语言宏定义 xff08 define 的用法 xff09 1 define 的基础用法 2 C 语言带参数的宏定义 3 对带参宏定义的说明 4 用宏参
  • STM32串口——5个串口的使用方法

    串口是我们常用的一个数据传输接口 xff0c STM32F103系列单片机共有5个串口 xff0c 其中1 3是 通用同步 异步串行接口 USART Universal Synchronous Asynchronous Receiver T
  • Ubuntu18.04 —— 安装环境及运行Vins_mono(2022年)

    Ubuntu18 04 安装环境及运行Vins mono 一 环境安装1 检查安装版本openCVEigenPangolin 二 ubunt18 04使用国内源安装ros及问题解决1 添加国内中科大源2 软件库更新3 安装全功能版本的ROS
  • Ubuntu 18.04 ———(Intel RealSense D435i)运行VINS-Mono

    Intel RealSense D435i 一 准备工作二 修改参数rs camera launchrealsense color config yaml 参考文献 一 准备工作 1 Intel Realsense D435i Ubuntu
  • RPLIDAR全面兼容ROS系统,赋能Mini款无人驾驶汽车

    从技术角度来说 xff0c 无人驾驶系统可分为环境感知 智能规划和决策 自适应控制和车辆底层线控四部分 感知系统主要是通过激光雷达 视觉 惯导等传感器获取 xff0c 并通过数据处理 xff0c 形成决策 目前 xff0c 单线激光雷达用在
  • 激光雷达在机器人中的避障方案

    如今 xff0c 在各种商用场景中服务机器人已屡见不鲜 xff0c 对于一些在餐厅 酒店等地的服务机器人来说 xff0c 往往会面临应用环境复杂多变的情况 xff0c 这就对机器人的避障能力提出了很大的挑战 xff0c 避障是指移动机器人根
  • 单片机的查询和中断两种方式怎么从程序里面看出来

    查询方式就是对某一标志位的不停检测 xff0c 直到发生变化 xff0c 例如 xff0c 汇编 xff1a LOOP JBC TF1 L 查询计数器是否溢出 xff0c 若溢出转L SJMP LOOP xff1b 无溢出转LOOP xff
  • 【STM32】SPI的基本原理、库函数(SPI一般步骤)

    STM32F1xx官方资料 xff1a STM32中文参考手册V10 第23章 串行外设接口SPI SPI的基本介绍 SPI的简介 SPI xff0c 是英语Serial Peripheral interface的缩写 xff0c 顾名思义
  • win10下安装emqx

    下载 进入官网EMQ 点击下载 xff08 这是我所选择的一个版本 xff09 装解压EMQ 1 把下载的EMQ解压到D盘 xff0c 得到一个emqx文件夹 2 启动EMQ step1 Win10 系统的 开始 右键 进入win10 系统
  • Apollo ROS原理(一)

    一 背景介绍 为什么选择ROS 高效的开发支持 1 具有完整的包管理和工程结构 2 庞大的基础库 3 多语言接口支持 模块灵活配置 1 消息驱动的异步运行模型 2 抽象的P2P通信接口 3 自定义的消息格式 丰富的调试工具 1 具有可视化的
  • Java 模板变量替换(字符串、占位符替换)

    1 org apache commons text 变量默认前缀是 xff0c 后缀是 lt dependency gt lt groupId gt org apache pdfbox lt groupId gt lt artifactId
  • Ubuntu16.04——推荐几个Ubuntu16.04镜像下载链接

    ubuntu16 04下载地址 xff1a 中科大源 xff1a http mirrors ustc edu cn ubuntu releases 16 04 阿里云开源镜像站 xff1a http mirrors aliyun com u
  • Matlab中计算程序运行时间的三种方法

    经常我们需要计算我们程序到底运行多长时间 xff0c 这样可以比较程序的执行效率 当然这个对于只有几秒钟的小程序没有什么意义 xff0c 但是对于大程序就有很重要的意义了 下面我们就说说MATLAB中计算程序运行时间的三种常用方法吧 xff
  • 经典力学(动力学)——刚体的转动

    目录 刚体的定轴转动 力矩刚体刚体转动的角速度和角加速度匀变速转动公式角量与线量的关系力矩 转动惯量 转动定律质点的转动惯量 角动量 角动量守恒定律角动量刚体定轴转动的角动量 力矩做功 刚体定轴转动的动能定理力矩做功刚体绕定轴转动的动能定理
  • 转动惯量到底是个什么物理量

    转动惯量 xff0c 对于大多数人可能都很难理解 xff0c 这个问题也困惑博主很久 xff0c 最近本人需要用到建模知识 xff0c 在回顾大学物理时重新学习了什么是转动惯量 xff0c 同时也是参考了几篇博文和知乎文章才基本理解 本人秉
  • ubuntu常见问题及解决方案——yr 不在 sudoers 文件中,此事将被报告,同时,su无法验证的解决办法

    昨晚因为改编译错误 xff0c 修改了sudoers里的内容 xff0c 导致 xff08 1 xff09 用户名 不在sudoers文件中 xff0c 同时 xff0c xff08 2 xff09 su无法验证的解决办法 对于问题 1 网
  • ROS1——ROS自定义消息格式配置相关

    在使用ROS时 xff0c 其自带的消息格式已经使开发人员很方便 xff0c 但是仍然避免不了会有一些特别的消息需要自己去定义 xff0c 此时 xff0c 就需要了解ROS中如何编写配置自定义消息格式 1 新建filename msg文件