zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ROS机器人程序设计(原书第2版)2.4.12 使用新建的srv和msg文件

2023-03-14 10:20:52 时间

2.4.12 使用新建的srv和msg文件

首先,我们将会学习如何创建一个服务并且在ROS中使用。该服务将会对三个整数求和。我们需要两个节点,一个服务器一个客户端。

在chapter2_tutorials功能包中,新建两个节点并以example2_a.cpp和example2_b.cpp为名称。别忘了要在src文件夹下创建这两个文件。

在第一个文件example2_a.cpp中,添加以下代码:

 

 

解释一下这些代码:

 

这些行包含必要的头文件和我们创建的srv文件:

 

这个函数会对3个变量求和,并将计算结果发送给其他节点:

 

在这里,创建服务并在ROS中发布广播。

在第2个文件example2_b.cpp中,增加以下代码:

 

 

 

代码解释:

 

以add_3_ints为名称创建一个服务的客户端。

 

下面创建srv文件的一个实例,并且加入需要发送的数据值。如果你还记得,这个消息需要3个字段。

 

这行代码会调用服务并发送数据。如果调用成功,call()函数会返回true;如果没成功,call()函数会返回false。

为了编译节点,在CMakeList.txt文件中增加以下行:

 

 

现在执行以下命令:

 

为了启动节点,需要执行以下命令行:

 

并且你会看到如下显示:

 

现在将要用自定义的msg文件来创建节点。这个例子也一样,创建example1_a.cpp和example1_b.cpp文件,同时调用chapter2_msg1.msg。

将下面的代码放在example3_a.cpp文件中:

 

 

将下面的代码放在example3_b.cpp文件中:

 

如果现在运行这两个节点,将会看到如下信息: