服务通信—自定义srv
1.创建工作空间并初始化与生成srv文件
1.创建工作空间并初始化
mkdir -p demo02_ws/src
cd demo03_ws
catkin_make
2.进入 src 创建 ros 包并添加依赖
配置功能包 plumbing_server_client
导入依赖的包 roscpp rospy std_msg
3.定义srv文件
在src目录下的功能包文件夹中-新建文件夹srv-新建文件ADDints.srv(服务消息的载体)
4.编辑配置文件
package.xml中添加编译依赖与执行依赖(2处)
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
CMakeLists.txt编辑 msg 相关配置 (4处)
1.加入 message_generation
find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation
)
# 需要加入 message_generation,必须有 std_msgs
2.加入ADDints.srv文件
## 配置 msg 源文件
add_message_files(FILESADDints.srv
)
3.
# 生成消息时依赖于 std_msgs
generate_messages(DEPENDENCIESstd_msgs
)
4.
#执行时依赖
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES demo02_talker_listenerCATKIN_DEPENDS roscpp rospy std_msgs message_runtime
# DEPENDS system_lib
)
5.编译
若无异常,生成中间文件。找到include的路径(不同版本路径不一样)
例:c++包含的头文件-Addints.h
二:服务端与客户端源码实现(c++)
1.vscode 配置
找到include的路径(不同版本路径不一样)
右键单击include 在集成终端中打开
输入 pwd 显示路径
/home/rosnotic/demo02_ws/devel_isolated/plumbing_server_client/include/plumbing_server_client
将路径/home/rosnotic/demo02_ws/devel_isolated/plumbing_server_client/include/**径配置进 c_cpp_properties.json
2.服务端源码编写
3.客户端源码编写
4.配置 CMakeLists.txt
三:编译与执行(三个命令行窗口)
第一个命令行:启动 roscore
第二个命令行:启动服务端节点
cd demo02_ws
catkin_make
source ./devel/setup.bash
rosrun plumbing_server_client demo01_server
第三个命令行:启动订阅节点
source ./devel/setup.bash
rosservice call Addints(后面用tab补齐)
服务通信—自定义srv相关推荐
- 【服务通信自定义srv调用3----客户端的优化】
客户端的优化 服务通信自定义srv调用,客户端随意提交两个数,完成数的相加.也就是实现参数的动态提交: 1.格式:rosrun xxxx xxxx 12 34 2.节点执行时候,需要获取命令中的参数, ...
- ROS通信机制(二) —— 服务(service)与srv文件
文章目录 简述 特点 相关常用命令 通信模型 核心元素 通信过程 代码示例(服务端和客户端) 服务端(server.cpp) 客户端(client.cpp) 配置 CMakeLists.txt 编译和 ...
- ROS服务通信机制原理及示例代码
ROS服务通信:节点间直接通信并获得应答.服务需要用户自己开发,可在功能包下创建srv文件夹并编写源代码,服务类型是功能包名称和.srv文件名称的组合,比如python中引入srv类型为,from g ...
- ROS笔记(8) 服务通信
ROS笔记(8) 服务通信 1. 自定义服务请求与应答 2. 服务端 Service 3. 客户端 Client 4. 服务通信 1. 自定义服务请求与应答 在 hh_ros 功能包 srv 文件夹中 ...
- 美团大规模微服务通信框架及治理体系OCTO核心组件开源
来源:美团技术团队 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区 微服务通 ...
- 2.6 自定义srv python
功能介绍 以自定义数据类型为基础,完成一个节点作为服务器,另一个节点接收传送两个数字到服务端,服务端计算后反馈到客户端进行打印输出 1.工作空间 1.1 创建工作空间lee_ws mkdir -p ~ ...
- 【Zuul2】zuul集成ribbon完成服务通信和负载均衡
目录 Zuul2服务通信 超时相关 默认超时配置 自定义超时配置 负载均衡 Zuul2服务通信 描述:zuul2通过Ribbon完成客户端负载均衡以及与服务器群集进行通信. zuul2的通信是集成Ri ...
- #自定义srv消息:实现四则运算
#自定义srv消息:实现四则运算 tips:养成良好习惯,新建工作包之前,先把工作空间编译一下,确保之前建好的工作包没有错误,再新建新的工作包,以免后续编译出现错误一直找不到原因. 1.在工作空间下创 ...
- 高性能服务通信框架Gaea的详细实现--server请求处理流程
为什么80%的码农都做不了架构师?>>> #<i class="icon-file">Gaea请求处理流程</i> Gaea支持tc ...
最新文章
- 了解HTML 元素分类
- WebSocket的C++服务器端实现
- 【转】更简单的非递归遍历二叉树的方法
- datepicker不能选择是为什么_腻子膏为什么与墙沾不上?我来教您几招
- EF性能优化-有人说EF性能低,我想说:EF确实不如ADO.NET
- 关于JavaWeb项目加密的实现 2021-04-24
- 快速掌握消息队列MQ最内核,图文并茂详解
- Python图像的基本操作
- OV7725学习(二)
- numpy 全部笔记的思维导图精简记忆版
- Win11系统的显卡驱动安装的详细方法步骤
- GoogleChrome最新的代理设置流程
- 小飞鱼APK签名工具
- PHP 生成PDF文件并向PDF添加图片
- 第4节:alphapose项目运行和参数
- 适者生存还是强者生存
- 搭建exchange邮件服务器一定要ad域么?_域渗透神器-AD Explorer使用指南
- 研发效能工程实践-代码评审
- 昨晚,奔奔第一次哭伤心了。。。
- 软件产品界面设计-培训PPT发布