ROS机器人程序设计(原书第2版)3.7 绘制标量数据图

简介:

3.7 绘制标量数据图

我们可以使用ROS中现有的一些通用工具轻松地绘制标量数据图。当然非标量数据也可以绘制,但是要分别在不同的标量域里进行。我们之所以在此仅讨论标量数据,是因为对于大多数非标量数据,有专门的工具能够更好地对其进行表示,我们会在后面进行部分介绍,例如图形、位姿、方向和角度等。

用rqt_plot画出时间趋势曲线

在ROS系统中,标量数据可以根据消息中提供的时间戳作为时间序列绘制。然后,我们就能够在y轴上使用rqt_plot工具绘制标量数据。rqt_plot工具有一套功能强大的参数语法,允许我们在结构化消息中指定多个字段(当然使用了相当简明的方式),也可以在GUI中手动添加或删除主题和字段。

为了能够实际展示rqt_plot工具,我们使用example4节点,它在两个不同的主题中分别发布一个标量和一个矢量(非标量),这两个主题分别是温度(temp)和加速度(accel)。在这些消息中的值是随机生成的,所以它们没有实际意义,仅用于示范曲线绘制。那么首先以下面的命令运行节点:

 

为了能够画出消息,我们必须知道具体的格式;如果你不知道具体格式则使用rosmg show?<msg type>获取。对于标量数据,我们通常使用data作为字段名来表示实际的值。因此,对于temp主题,数据格式为Int32,运行下面命令:

 

只要节点正常运行,我们就能看到曲线图随输入消息一直变化。如下图显示。

 

在示例节点提供的accel主题里,我们看到一个Vector3的消息(你可以通过rostopic type/accel来查看),我们可以在一个plot图中分别绘制三个字段的曲线。Vector3消息包含三个字段x、y和z。我们可以使用逗号(,)来区分字段或者像下面一样使用更加简洁的方式:

 

绘制的曲线图如下:

 

我们还可以将每个字段分开绘制。由于rqt_plot不直接支持这个功能,因此我们需要使用rqt_gui将三个图表手动分开,如下图所示:

 

 

rqt_plot的GUI支持三种绘图前端。在ROS hydro之前,只有matplotlib支持。现在,我们可以使用更快的QT前端,同时它支持更多的时间序列。可以点击配置(configuration)按钮选择(如右图所示):

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
1220 1
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
1220 14
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
1070 6
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
2266 1
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
940 1
|
机器学习/深度学习 传感器 算法
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
1577 2
|
NoSQL 机器人 Windows
ROS机器人编程技术控制两只小海龟的编队运动
ROS机器人编程技术控制两只小海龟的编队运动
984 1

热门文章

最新文章

推荐镜像

更多
  • ros