服务通信:自定义srv文件以及服务端的编写
首先新建功能包,可利用VS Code或者 catkin_create_pkg server_client roscpp rospy std_msgs
在其下建立srv文件夹,再建立Addints.srv文件(---用于区分请求和响应)
int32 num1
int32 num2
---
int32 sum
再在package.xml中修改如下:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
再在CMakeList.txt修改如下:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation
)
add_service_files(
FILES
Addints.srv
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
CATKIN_DEPENDS roscpp rospy std_msg message_runtime
)
在c_cppc_properies.json文件中的includePath加入:
"/home/jhx/demo03_ws/devel/include/server_client/**"
对srv的初步编译完成
现在编写server.cpp文件:
#include "ros/ros.h"
#include <sstream>
#include "server_client/Addints.h"
bool doNums(server_client::Addints::Request &request, server_client::Addints::Response &response){
int num1=request.num1;
int num2=request.num2;
ROS_INFO("Received data: num1 = %d, num2 = %d",num1,num2);
int sum=num1+num2;
response.sum=sum;
ROS_INFO("calculated data: sum = %d",sum);
return true;
}
int main(int argc,char *argv[]){
setlocale(LC_ALL,"");
ros::init(argc,argv,"server");
ros::NodeHandle n;
ros::ServiceServer server=n.advertiseService("Addints",doNums);
ros::spin();
return 0;
}
再对CMakeList.txt进行修改:
add_executable(server src/server.cpp)
add_dependencies(server ${PROJECT_NAME}_gencpp)
target_link_libraries(server
${catkin_LIBRARIES}
)
然后roscore,source ./devel/setup.bash,进行rosrun操作
再开启一个终端,输入rosservice call Addints,敲击空格再使用tab键,再直接修改num1和num2的值,敲击回车,就能得到结果。
效果如下:
服务通信:自定义srv文件以及服务端的编写相关推荐
- 【服务通信自定义srv调用3----客户端的优化】
客户端的优化 服务通信自定义srv调用,客户端随意提交两个数,完成数的相加.也就是实现参数的动态提交: 1.格式:rosrun xxxx xxxx 12 34 2.节点执行时候,需要获取命令中的参数, ...
- 服务通信—自定义srv
1.创建工作空间并初始化与生成srv文件 1.创建工作空间并初始化 mkdir -p demo02_ws/src cd demo03_ws catkin_make 2.进入 src 创建 ros 包并 ...
- ROS通信机制(二) —— 服务(service)与srv文件
文章目录 简述 特点 相关常用命令 通信模型 核心元素 通信过程 代码示例(服务端和客户端) 服务端(server.cpp) 客户端(client.cpp) 配置 CMakeLists.txt 编译和 ...
- ROS通信机制:话题、服务、参数
目录 话题通信 理论模型 流程 通信样例 自定义消息的通信 服务通信 理论模型 服务通信自定义srv 参数服务器 理论模型 参数操作 话题通信 话题通信是ROS中使用频率最高的一种通信模式,话题通信是 ...
- 在服务器端调用微软office接口,Office 365 服务通信 API 参考
Office 365 服务通信 API 参考 2021/8/11 本文内容 重要 Microsoft Graph 中的服务运行状况和通信 API 现已推出. Microsoft Graph API 替 ...
- 2.6 自定义srv python
功能介绍 以自定义数据类型为基础,完成一个节点作为服务器,另一个节点接收传送两个数字到服务端,服务端计算后反馈到客户端进行打印输出 1.工作空间 1.1 创建工作空间lee_ws mkdir -p ~ ...
- 2.5 自定义srv C++
功能介绍 以自定义数据类型为基础,完成一个节点作为服务器,另一个节点接收传送两个数字到服务端,服务端计算后反馈到客户端进行打印输出 1.工作空间 1.1 创建工作空间lee_ws mkdir -p ~ ...
- ROS话题通信自定义msg实现发送接收(六)c++、python
目录 自定义msg简介 自定义msg实现 话题通信自定义msg调用(C++) vscode配置 实现发布方 实现订阅方 Python实现 编写发布方 实现订阅方 自定义msg简介 在 ROS 通信协议 ...
- android显示服务器端文件夹,Android上传文件到服务端并显示进度条
最近在做上传文件的服务,简单看了网上的教程.结合实践共享出代码. 由于网上的大多数没有服务端的代码,这可不行呀,没服务端怎么调试呢. Ok,先上代码. Android 上传比较简单,主要用到的是 Ht ...
最新文章
- C++和Python的OpenCV中关于图像坐标的注意事项
- 了解这些,你就可以在Spring启动时为所欲为了
- 增强使用功能的Steam开源工具箱一枚
- PHP代码为什么不能直接保存HTML文件——PHP生成静态页面教程
- DataGridRow的创建
- day8网络编程,面向对象1
- matlab矩阵论文,回归函数论文,关于基于Matlab矩阵运算的多元回归函数编程相关参考文献资料-免费论文范文...
- Visio画图允许两条线交叉的操作
- java将输入的阿拉伯数字金额转换为中文大写金额
- Java MMdd 日期格式转换问题
- 目录-中文版Excel 2016宝典(第9版)
- PCL中仿射变换Affine3f(四维)矩阵与Matrix4f(四维)矩阵之间的转换
- 中国文化产业基地(园区)前景预测和发展战略规划建议报告2021年版
- ROG 冰刃 3 枪神 2 Plus 第二时间上手体验
- Pytorch深度学习实战教程:UNet语义分割网络
- 简单的按键继电器控制
- 在windows本地创建svn及遇到错误:svn create repository here 报错
- 程序人生:从全栈工程师看技术人生
- html代码高亮带行号,无法解决的难题:代码高亮插件SyntaxHighlighter Evolved的行号问题...
- 小试牛刀---用python实现超市买水果