ROS服务通信自定义srv

服务通信自定义srv

  • 流程:
  • 创建ROS功能包
  • 按照固定格式创建srv文件
  • 编译配置文件
  • 编译生成中间文件

流程:

srv 文件内的可用数据类型与 msg 文件一致,且定义 srv 实现流程与自定义 msg 实现流程类似,需查阅msg文件的可以浏览ROS话题通信流程自定义数据msg格式:

  • 1.创建一个ROS功能包

  • 2.按照固定格式创建srv文件

  • 3.编辑配置文件

  • 4.编译生成中间文件

创建ROS功能包

  • 选定 src 右击 —> create catkin package
    在这里插入图片描述
  • 创建一个 pluming_server_client 功能包
    在这里插入图片描述
  • 使用 roscpp rospy std_msgs 作为依赖库
    在这里插入图片描述
  • pluming_server_client 功能包下的结构如图所示,功能包创建成功
    在这里插入图片描述

按照固定格式创建srv文件

  • 在功能包下创建一个 srv 文件夹
    在这里插入图片描述

  • srv文件夹下新建一个 AddInts.srv文件
    在这里插入图片描述

  • 编辑 srv 文件
    在这里插入图片描述

服务通信中,数据分成两部分,请求与响应,在 srv 文件中请求和响应使用---分割,具体实现如上所示

编译配置文件

  • package.xml中添加编译依赖与执行依赖
    plumbing_server_client 功能包下的 package.xml 文件添加如图所示的编译依赖和执行依赖

    在这里插入图片描述

  • CMakeLists.txt 编辑 srv 相关配置

    • 加入 message_generation
      CMakeLists.txt 中找到 find_package 添加 message_generation 编译依赖,如图所示:

      在这里插入图片描述

    • 配置 srv 源文件
      CMakeLists.txt 中找到 add_service_files 配置 srv 文件,如图所示:

      在这里插入图片描述

    • 添加生成消息时依赖std_msgs
      CMakeLists.txt 中找到 generate_messages 添加生成依赖,如图所示:

      在这里插入图片描述

    • 添加执行时依赖
      CMakeLists.txt 中找到 catkin_package 添加执行依赖,如图所示:

      在这里插入图片描述

编译生成中间文件

  • 编译
    按快捷键 ctrl + shift + B 编译

    在这里插入图片描述

  • 生成的中间文件
    编译完成后就生成了 C++Python 调用时所需的中间文件

    • C++ 的中间文件
      生成的 C++ 中间文件在工作空间的 devel/include/pluming_server_client 文件下,有一个请求文件和一个响应文件,请求文件就是需要请求的数据,响应文件就是响应请求数据后的返回数据
      在这里插入图片描述

    • Python的中间文件
      生成的Python中间文件在工作空间的 devel/lib/python2.7/dist-packages/plumbing_server_client/srv 文件下

      在这里插入图片描述

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

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

相关文章

【服务器】在Linux查看运行的Python程序,并找到特定的Python程序

在Linux查看运行的Python程序并找到特定的Python程序 写在最前面1. 使用ps命令查看所有Python进程查看详细信息 2. 使用pgrep命令查找Python进程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python进程打开的文件 5. 使用nvidia-smi命令查看GPU使用情况…

JDBC编程的学习——MYsql版本

目录 前言 什么是JDBC ??? 前置准备 使用JDBC的五个关键步骤 1.建立与数据库的连接 2.创建具体的sql语句和Statement 3.执行SQL语句 4.处理结果集 5.释放资源 完整流程展示 前言 笔者在先前的博客就提过会写关于JDBC的内容 [Mysql] 的基础知识和sql 语句.教你速成…

R包:reticulate R对python的接口包

介绍1 R和python是两种不同的编程语言,前者是统计学家发明并且服务数学统计计算,后者则是最万能的胶水语言。随着大数据时代的到来,两者在数据分析领域存在越来越多的共同点且可以相互使用,为了破解二者的编程壁垒,CR…

软考《信息系统运行管理员》-3.1信息系统设施运维的管理体系

3.1信息系统设施运维的管理体系 1 信息系统设施运维的对象 基础环境 主要包括信息系统运行环境(机房、设备间、配线室、基站、云计算中心 等)中的空调系统、供配电系统、通信应急设备系统、防护设备系统(如消防系统、安全系统) 等,能维持系统安全正常运转&#xf…

从零开始学习嵌入式----Linux系统命令集合与shell脚本

Shell是一门编程语言,作为学习shell的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? shell本身就是一门解释型、弱类型、动态语言,与python相对应,Python属于解…

aardio —— 今日减bug

打字就减bug 鼠标双击也减bug 看看有多少bug够你减的 使用方法: 1、将资源附件解压缩,里面的文件夹,放到aardio\plugin\plugins 目录 2、aardio 启动插件 → 插件设置 → 选中“今日减bug” → 保存。 3、重启 aardio,等aa…

旗晟智能巡检机器人:开启工业运维的智能化新篇章

在当今快速发展的工业领域,安全、效率和成本控制是企业运营的核心。旗晟科技以创新为驱动,推出了一站式的工业级智能巡检机器人数字化全景运维解决方案,为石油、天然气、化工、电力等高危行业提供了一个全新的运维模式。 一、面对挑战&#x…

提升机器视觉与机器学习软件安全性的实践策略

在近几年科技爆发中,机器学习(ML)和机器视觉(MV)的结合正在改变各行各业。机器学习通过数据驱动的算法让计算机能够自我学习,而机器视觉赋予计算机识别和理解图像的能力。这种结合使得计算机可以高效地执行…

浅谈化工厂环保管理的痛点、智慧环保的必要性及EHS系统的实现路径

在全球环保意识日益增强的背景下,化工厂作为工业领域的重要组成部分,其环保管理显得尤为重要。然而,化工厂在追求经济效益的同时,也面临着诸多环保管理的痛点。本文将围绕化工厂环保管理的痛点、化工厂为何需要智慧环保以及如何借…

设计分享—国外后台界面设计赏析

国外后台界面设计将用户体验放在首位,通过直观易懂的布局和高效的交互设计,提升用户操作效率和满意度。 设计不仅追求美观大方,还注重功能的实用性和数据的有效展示,通过图表和图形化手段使数据更加直观易懂。 采用响应式布局&a…

Global Mapper:地理信息的温柔探索

引言 在这纷繁复杂的世界里,地理信息系统(GIS)如同一把利器,帮助我们剖析、理解和改造这个世界。而在众多GIS软件中,Global Mapper无疑是其中的佼佼者。作为一款功能全面且易于使用的GIS应用程序,Global M…

数字安全护航技术能力全景图 | 亚信安全实力占据75领域

近日,2024全球数字经济大会——数字安全生态建设专题论坛在北京成功举办。会上,中国信息通信研究院(简称“中国信通院”)正式发布了《数字安全护航技术能力全景图》,亚信安全凭借全面的产品技术能力,成功入…

【网络安全】SSRF 之 Azure Digital Twins Explorer

未经许可,不得转载。 文章目录 正文 正文 Azure Digital Twins 是一个微软下的平台服务,允许开发者创建和运行数字孪生模型,这些模型能够反映物理世界中的实体及其关系,通过这些模型可以进行监控、分析和预测等操作。 1、进入主…

构建机部署之Azure DevOps添加代理机(Linux)

目录 一、权限检查二、添加代理机三、更换代理四、删除并重新配置代理 一、权限检查 确认用户具有权限 默认代理池的所有者有添加代理的权限 1)代理池所有者可以生成一个PAT,共享使用。代理不会在日常操作中使用此人凭据,但需要使用有权限的…

【多线程】线程同步--条件变量的原理及其使用

文章目录 前言线程同步的基本概念条件变量定义条件变量初始化条件变量销毁条件变量等待条件(重要)唤醒等待简单运用常见使用条件变量的格式 前言 线程同步意味着在多线程并发执行中,协调线程之间的执行顺序,以确保共享资源被正确…

hive架构详解:HQL案例解析(第15天)

系列文章目录 一、Hive基础架构(重点) 二、Hive数据库,表操作(重点) 三、Hadoop架构详解(hdfs)(补充) 四、Hive环境准备(操作)(补充) 文章目录 系列文章目录前言一、Hive基础架构1、…

4. 小迪安全v2023笔记 javaEE应用

4. 小迪安全v2023笔记 javaEE应用 ​ 大体上跟随小迪安全的课程,本意是记录自己的学习历程,不能说是完全原创吧,大家可以关注一下小迪安全。 若有冒犯,麻烦私信移除。 默认有java基础。 文章目录 4. 小迪安全v2023笔记 javaEE应…

linux下安装cutecom串口助手;centos安装cutecom串口助手;rpm安装包安装cutecom串口助手

在支持apt-get的系统下安装 在终端命令行中输入: sudo apt-get install cutecom 安装好后输入 sudo cutecom 就可以了 关于如何使用,可以看这个https://www.cnblogs.com/xingboy/p/14388610.html 如果你的电脑不支持apt-get。 那我们就通过安装包…

‘wget‘ 不是内部或外部命令,也不是可运行的程序

在Windows环境下创建了虚拟环境并安装了wget包,但在使用该命令的时候仍然报错,‘wget’ 不是内部或外部命令,也不是可运行的程序 解决方案: 去官网下载对应位数的.exe文件,将其放在C:\Windows\System32目录下即可, 别下错版本&a…

宝塔面板部署Flask项目教程(最新版)

本教程适用于最新版的宝塔!!! 本教程适用于最新版的宝塔!!! 本教程适用于最新版的宝塔!!! 1 准备 1.1 依赖文件 在你的项目根目录下生成一个依赖文件,执行…