参考摘录自《ROS机器人编程》
本书下载链接:https://pan.baidu.com/s/163ZLpJjjOIDYgUrRY7cMdw
一.创建功能包
首先移动到工作空间目录:$ cd ~/catkin_ws/src
执行创建功能包的命令:$ catkin_create_pkg ros_tutorials_service message_generation message_runtime std_msgs roscpp
然后移动到功能包目录:$ cd ros_tutorials_service
用ls 命令可以检查功能包内包含的目录和文件:$ ls
结果为:include 头文件目录
src 源代码目录
CMakeLists.txt 构建配置文件
package.xml 功能包配置文件
二.修改功能包配置文件(package.xml)
$ gedit package.xml
以下代码显示如何修改package.xml文件以匹配此次功能包的创建
三.修改构建配置文件(CMakeLists.txt)
$ gedit CMakeLists.txt
四.创建消息文件
$ roscd ros_tutorials_service 移动到功能包目录
$ mkdir srv 功能包中创建新的srv消息目录
$ cd srv 转到创建的srv目录
$ gedit SrvTutorial.srv 新建和修改SrvTutorial.srv文件
内容很简单,以int64格式设计服务请求(request)a、b,和结果服务响应(response)result,如下所示。“---”是分隔符,用于分隔请求和响应。除了请求和响应之间有一个分隔符之外,它与话题的消息格式相同。
五.创建服务服务器节点(service_server)
$roscd ros_tutorials_service/src 移动到功能包的源代码目录src
$gedit service_server.cpp 创建和修改源文件
六.创建服务客户端节点(service_client)
$ roscd ros_tutorials_service/src 移动到功能包的源代码目录src
$ gedit service_client.cpp 创建和修改源文件
七.构建节点(catkin_make)
$ cd ~/catkin_ws 移动到catkin目录
$ catkin_make 执行catkin构建
八.运行主节点
$ roscore
九.运行服务服务器
$ rosrun ros_tutorials_service service_server
十.运行服务客户端
$ rosrun ros_tutorials_service service_client 2 3