ROS server与client的创建 catkin_make编译指定功能包
目录
一、自定义服务数据
1 创建.srv文件
建议将自定义数据单独编译到一个包内 不要放到某个程序包内,在编译过程中可执行文件是要依赖这个***.srv文件的,一旦重新编译,会因为srv对应.h文件没有生成而编译报错。
在工作空间中创建一个新的package
catkin_create_pkg srv_h message_generation roscpp std_msgs
这个包里面只存放自定义服务数据的.srv文件
在package内创建srv文件夹 和src处于同级
在srv文件夹内创建AddTwoInts.srv文件
内容如下
int64 a
int64 b
---
int64 sum
横线上是请求数据(request)
下面是应答数据(responce)
2.修改cmakelists.txt文件并编译
修改cmakelists的内容如下:
###在“srv”文件夹中生成服务
###1###############
add_service_files(
FILES
AddTwoInts.srv
)
###使用此处列出的任何依赖项生成添加的消息和服务
###2##########
generate_messages(
DEPENDENCIES
std_msgs
)
之后再catkin_make一下
同时我查看了之后生成的.h文件发现还有一点有趣的是:
生成了三个.h文件分别是:
srv.h ***Reque.h ***Responce.h
所以在定义回调函数的时候可以使用两种方法调用这个类的对象
bool Addcallback(srv_h::AddTwoInts::Request &req,
srv_h::AddTwoInts::Response &res)
或者:
bool Addcallback(srv_h::AddTwoIntsRequest &req,
srv_h::AddTwoIntsResponse &res)
二、创建server
1.创建service.cpp文件
还是创建一个新的包存放server节点
catk

这篇博客详细介绍了如何在ROS中创建自定义服务数据,包括创建.srv文件,修改CMakeLists.txt,以及编译和测试过程。接着,分别展示了如何创建服务端(server)和客户端(client),包括编写cpp文件,修改CMakeLists.txt,以及运行和测试。此外,还阐述了catkin_make编译指定功能包的方法,以及如何恢复编译所有包。整个过程涉及ROS服务交互、catkin工作流和C++编程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



