一、ROS服务和话题的对比
int64 a
int64 b
---
int64 sum
二、ROS创建服务
1、在软件包目录下创建srv文件夹和.srv文件
mkdir srv
cd srv
gedit test.srv
2、在test.srv文件中添加:定义service通信的数据格式
int64 a
int64 b
---
int64 sum
3、在package.xml文件中取消以下两行的注释:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
4、在CMakeLists.txt文件中分别在对应位置添加:
message_generation
CATKIN_DEPENDS message_runtime
test.srv #注意前面不能有空格
取消以下注释:
generate_messages(
DEPENDENCIES
std_msgs
)
5、无需编译,在工作空间目录下使用下面的命令查看服务是否创建成功
source devel/setup.bash
rossrv show test
如果成功的话端口输出如下
创建测试节点test_client.cpp
和test_server.cpp
的部分参考:
但注意:
①
#include "test_srv/test.h"
test_srv是工作空间名,记得改成你自己的工作空间,后面
test_srv::test
同样要改
②先运行
rosrun test_srv test_client
再运行
rosrun test_srv test_server
否则会报错