学习大纲:
1、编写服务节点(Writing a Service Node)
服务节点介绍,我将创建一个名为 “add_two_ints_server” 的服务节点,该节点接收两个整数并返回它们的和。
导航到 beginner_tutorials 包,先按照上一教程中的指示,创建 AddTwoInts.srv 文件,并在 catkin 工作区中切换到 beginner_tutorials 包:
roscd beginner_tutorials
创建服务节点代码,在 src 文件夹中创建 add_two_ints_server.cpp,并粘贴以下代码:
代码解释:
#include 引入了 ROS 和服务的头文件。
add() 函数实现了服务的核心逻辑,接收两个整数并返回它们的和。
在 main() 函数中,初始化 ROS 节点,并创建一个服务端口 “add_two_ints”,等待客户端请求。
2、编写客户端节点(Writing the Client Node)
客户端节点代码
在 src 文件夹中创建 add_two_ints_client.cpp 文件,并粘贴以下代码:
代码解释:创建服务客户端:使用 ros::ServiceClient 创建了一个客户端,连接到服务 “add_two_ints”。
发送请求:将用户输入的两个整数作为请求参数发送给服务节点。
接收响应:如果调用成功,客户端会在终端显示结果,否则显示错误信息。
3、构建节点(Building Your Nodes)
编辑 CMakeLists.txt 文件,打开 ~/catkin_ws/src/beginner_tutorials/CMakeLists.txt 文件,在末尾添加以下内容:
构建节点
在 catkin 工作区中运行以下命令构建项目:
cd ~/catkin_ws
catkin_make
如果构建失败,请确保已正确创建 AddTwoInts.srv 文件,并按顺序完成所有步骤。
4、运行节点(Running the Nodes)
A.启动 ROS 核心
在新终端中启动 roscore:roscore
B.运行服务节点
在另一个终端中,运行服务节点:rosrun beginner_tutorials add_two_ints_server
你应该看到如下输出:Ready to add two ints.
C.运行客户端节点
在第三个终端中,向服务节点发送请求:rosrun beginner_tutorials add_two_ints_client 13
客户端节点的终端将显示:Sum: 4
服务节点的终端将显示: