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

    xiaoxiao2024-04-07  121

    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文件中:

     

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

     

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)