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

简介:

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

 

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

 

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
Ubuntu 机器人 Linux
|
XML 存储 机器人
06 ROS配置launch文件
本文介绍了如何在ROS(机器人操作系统)中配置launch文件,包括设置节点、参数、局部变量、重映射以及嵌套launch文件的方法,并通过XML格式实现了多节点的一键配置与启动。
411 0
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
687 14
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
730 6
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
1281 1
|
XML 存储 网络安全
ROS入门(二):launch文件解析
该文章是关于ROS入门的第二篇教程,详细解析了ROS中的launch文件,包括其运行方式、XML格式规范、标签使用、参数替代、条件属性以及通过简单和复杂案例来演示launch文件的使用,最后介绍了如何在参数服务器上设置参数。
ROS入门(二):launch文件解析
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
951 0
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速
995 0
|
5月前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
498 1
|
11月前
|
人工智能 自然语言处理 机器人
9.9K star!大模型原生即时通信机器人平台,这个开源项目让AI对话更智能!
"😎高稳定、🧩支持插件、🦄多模态 - 大模型原生即时通信机器人平台"
390 0

热门文章

最新文章

推荐镜像

更多
  • ros