ros自定义srv记录

文章目录

  • 自定义srv
    • 1. 定义srv文件
    • 2. 修改 package.xml
    • 3. 修改 CMakeLists.txt
    • 4. sevice_server.py
    • 5. 运行 `catkin build`
  • 测试

自定义srv

ros 版本:kinetic
自定义test包的文件结构如下

|-- test
|   |-- CMakeLists.txt
|   |-- srv
|   |   `-- WordCount.srv
|   |-- package.xml
|   |-- scripts
|   |   `-- sevice_server.py

srvmsg非常相似,有关自定义msg见链接。

1. 定义srv文件

WordCount.srv #通常大写字母开头;---上方表输入,下方表输出。

string words
---
uint32 count

2. 修改 package.xml

向其中添加如下信息,首先是<build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend>;其次,需要使用那些包就添加进去,例如 std_msgsroscpp

  <buildtool_depend>catkin</buildtool_depend><build_depend>rospy</build_depend><build_export_depend>rospy</build_export_depend><build_depend>message_generation</build_depend><build_depend>std_msgs</build_depend><build_depend>roscpp</build_depend><exec_depend>roscpp</exec_depend><exec_depend>rospy</exec_depend><exec_depend>message_runtime</exec_depend><exec_depend>std_msgs</exec_depend>

3. 修改 CMakeLists.txt

find_package(catkin REQUIRED COMPONENTSrospyroscppstd_msgsmessage_generation #放在末尾
)

添加自定义的srv文件

add_service_files(FILESWordCount.srv
)
## Generate added messages and services with any dependencies listed here
generate_messages(DEPENDENCIESstd_msgs  # Or other packages containing msgs
)
catkin_package(
#   INCLUDE_DIRS include
#   LIBRARIES testCATKIN_DEPENDS rospy message_runtime std_msgs roscpp
#   DEPENDS system_lib
)
## Mark executable scripts (Python etc.) for installation
## in contrast to setup.py, you can choose the destination
catkin_install_python(PROGRAMSscripts/sevice_server.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

4. sevice_server.py

#!/usr/bin/env pythonimport rospy
from test.srv import WordCount, WordCountRequest, WordCountResponsedef count_words(request):return WordCountResponse(len(request.words.split()))rospy.init_node("service_server")
service = rospy.Service("word_count", WordCount, count_words)rospy.spin()

5. 运行 catkin build

测试

roscore
rosrun test sevice_server.py
rosservice info word_count

顺利的话,会出现如下结果。
在这里插入图片描述

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

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

相关文章

DS:二叉树的顺序结构及堆的实现

创作不易&#xff0c;兄弟们给个三连&#xff01;&#xff01; 一、二叉树的顺序存储 顺序结构指的是利用数组来存储&#xff0c;一般只适用于表示完全二叉树&#xff0c;原因如上图&#xff0c;存储不完全二叉树会造成空间上的浪费&#xff0c;有的人又会问&#xff0c;为什么…

红色系可视化界面,偶尔用用可以,长时间太刺眼。

继昨日发了白色的可视化界面&#xff0c;表明了不适合做大屏展示用&#xff0c;友友们从很多角度阐述了&#xff0c;为什么不能用白色&#xff0c;大家的结论基本一致。 今天发一些红色&#xff0c;这些在某个节日用个一小会还行&#xff0c;长时间用肯定不适合。

SpringBoot Starter造了个自动锁轮子

可能有人会有疑问&#xff0c;为什么外面已经有更好的组件&#xff0c;为什么还要重复的造轮子&#xff0c;只能说&#xff0c;别人的永远是别人的&#xff0c;自己不去造一下&#xff0c;就只能知其然&#xff0c;而不知其所以然。&#xff08;其实就为了卷&#xff09; 在日常…

攻防演练后的一点随记

攻防演练 攻防演练算是告一段落了&#xff0c;各位红队和蓝队的兄弟们都辛苦了&#xff0c;写一点随记&#xff0c;供大家参考。 记得第一次参加攻防演练是在2018年&#xff0c;当时被派到北京&#xff0c;在某个政企单位做攻防演练支撑工作&#xff0c;然后2020年又被紧急派到…

探索微信小程序的奇妙世界:从入门到进阶

文章目录 一、什么是微信小程序1.1 简要介绍微信小程序的定义和特点1.2 解释小程序与传统应用程序的区别 二、小程序的基础知识2.1 微信小程序的架构2.2 微信小程序生命周期的理解2.3 探索小程序的目录结构和文件类型 三、小程序框架和组件3.1 深入了解小程序框架的核心概念和原…

Hive3.1.2——企业级调优

前言 本篇文章主要整理hive-3.1.2版本的企业调优经验&#xff0c;有误请指出~ 一、性能评估和优化 1.1 Explain查询计划 使用explain命令可以分析查询计划&#xff0c;查看计划中的资源消耗情况&#xff0c;定位潜在的性能问题&#xff0c;并进行相应的优化。 explain执行计划…

修改npm 的运行命令详解

在Node.js和npm中&#xff0c;你可以通过修改package.json文件中的scripts部分来定义和运行自定义的npm脚本。这些脚本可以是任何你希望在项目中运行的命令&#xff0c;包括启动服务器、运行测试、构建项目等。下面是一些修改npm运行命令的详解和代码示例。 修改npm运行命令的…

相机图像质量研究(17)常见问题总结:CMOS期间对成像的影响--靶面尺寸

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

OpenCV Mat实例详解 一

OpenCV中的Mat是一个类&#xff0c;它用存储图像信息。由两部分数据组成&#xff1a;矩阵头和像素值矩阵。矩阵头包含矩阵尺寸、存储方法、存储地址等信息&#xff0c;而像素值矩阵则存储实际的像素值数据。 Mat类在OpenCV中有十分重要的作用&#xff0c;图像信息的载入、保存、…

Hive的相关概念——架构、数据存储、读写文件机制

目录 一、架构及组件介绍 1.1 Hive整体架构 1.2 Hive组件 1.3 Hive数据模型&#xff08;Data Model&#xff09; 1.3.1 Databases 1.3.2 Tables 1.3.3 Partitions 1.3.4 Buckets 二、Hive读写文件机制 2.1 SerDe 作用 2.2 Hive读写文件流程 2.2.1 读取文件的过程 …

Python算法探索:从经典到现代(三)

一、引言 随着信息技术的飞速发展&#xff0c;数据已经成为现代社会不可或缺的资源。Python&#xff0c;作为数据处理和分析的利器&#xff0c;为我们提供了大量强大的库和工具&#xff0c;用于从经典到现代的各种算法探索。本文将带你领略Python在算法领域的魅力&#xff0c;从…

儿童护眼台灯哪个值得推荐?推荐专业的儿童护眼台灯

现在的孩子很多都存在视力问题&#xff0c;而且年龄也越来越早&#xff0c;不少还为上学的孩子都早已戴上小眼镜。虽说这可能存在家族近视遗传的可能性&#xff0c;不过更多的还是后天导致的。长时间玩耍电子产品、缺乏运动、不良用眼习惯、不合适的光线等等都是导致孩子近视的…