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文件中:
如果现在运行这两个节点,将会看到如下信息:
相关文章
- 用osworkflow写一个请假例子
- 给年轻的自己的忠告
- 物联网设备安全1.1 选用色调照明设备的原因
- 《设计模式精解》读后感
- 使用javamail通过代理发送邮件
- websphere5.1上使用普通client调用EJB需要注意的问题
- 物联网设备安全1.3 使用iOS App控制灯光
- 创建型模式摘记
- 物联网设备安全1.4 改变灯泡状态
- 贯彻TDD
- 物联网设备安全1.6 小结
- rails的REST特性简记
- 《Programming Ruby中文版:第2版》终于正式出版了
- 暗渡陈仓:用低消耗设备进行破解和渗透测试第1章 初识Deck
- 物联网设备安全2.1 酒店门锁和磁卡
- 关于rails和Grails的性能讨论
- 暗渡陈仓:用低消耗设备进行破解和渗透测试1.1 引子
- 暗渡陈仓:用低消耗设备进行破解和渗透测试1.2 Deck
- 暗渡陈仓:用低消耗设备进行破解和渗透测试1.2.1 运行Deck的设备
- 暗渡陈仓:用低消耗设备进行破解和渗透测试1.2.2 渗透测试工具集