ROS机器人程序设计(原书第2版)第3章 可视化和调试工具

简介:

第3章

可视化和调试工具

ROS附带了大量功能强大的工具,帮助用户和开发人员可视化和调试代码,以便检测并解决软硬件问题。其中包括消息日志系统(类似log4cxx)、诊断消息、可视化以及检测工具。这些工具展示了哪些节点正在运行和它们是如何连接的。

 

本章我们还会展示如何用GDB调试器调试ROS节点,介绍用于日志记录的API,以及如何设置日志记录级别。接着,我们将解释如何用ROS工具集检测哪些进程正在运行以及它们之间通信的内容。例如,在下图所示的系统可视化图中可以看到正在运行的节点以及用连线表示的数据流。这个工具是rqt_graph,这里显示的是REEM机器人在Gazebo仿真中运行的节点和主题。

从图中我们可以看到多个关于机械臂、肢体和头部的控制器、MoveIt!的move_group节点、抓取和放置操作服务以及play_motion节点的预存储动作。其他节点发布joint_states、大量机器人控制器以及移动底盘的手柄控制等信息。

同样,本章会介绍标量数据的时序绘图工具,视频流数据的可视化图,以及用于不同类型数据的3D可视化工具rviz(或rqt_rviz)等,如下图所示:

 

可以使用下面命令运行上图的REEM机器人仿真:

 

注意,在开始安装此仿真前,请认真阅读下面网页的使用说明:http://wiki.ros.org/Robots/REEM。

在本节中,将介绍以下内容:

如何在ROS中调试和优化代码。

介绍在代码中添加消息日志并设置不同的级别、命名、特定条件和流选项。这里我们将解释rqt_logger_level和rqt_console接口,它们可以分别设置节点错误级别和消息可视化。

介绍如何通过列表来检测ROS系统状态,包括运行的节点、主题、服务和它们之间传递信息的行为以及ROS节点管理器中声明的参数等。我们将介绍以有向图形式显示主题和节点的rqt_graph,和可以用来修改动态参数的rqt_reconfigure。

讲解如何使用runtime_monitor和robot_monitor接口可视化诊断信息。

讲解如何使用rqt_plot绘制特定消息的标量数据。对于非标量数据,我们将讲解ROS中的其他rqt工具,例如用rqt_image_view显示图像以及用rqt_rviz以3D形式显示多维数据。还包括如何可视化标记和交互式标记。

介绍坐标系以及如何将它们集成到ROS消息和可视化工具之中。以及如何使用rqt_tf_tree来可视化转换坐标系树Transform Frame(tf)。

讲解如何保存主题发送的消息,以及如何重播它们用于仿真或测试目的,并介绍rqt_bag接口。

最后,将介绍rqt_gui接口,以及如何在一个GUI窗口中排列显示它们。

大部分rqt工具可以在终端输入名称运行,例如rqt_console,但有时不行,必须使用rosrun rqt_reconfigure rqt_reconfigure,注意名字虽然是重复的,但其实前一个是功能包的名称,后一个是节点名称。

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
1月前
|
网络协议 机器人 中间件
单片机和FreeRTOS上跑机器人ROS的应用
单片机和FreeRTOS上跑机器人ROS的应用
50 0
|
3月前
|
传感器 机器人 C++
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
ROS 2机器人编程实战:基于现代C++和Python 3实现简单机器人项目
179 0
|
5月前
|
传感器 机器人 C++
机器人操作系统ROS 编程开发--详细总结
最近工作涉及到自动驾驶的,需要学习ROS,学习中总结了一些知识点,分享给大家。 机器人操作系统ROS,是一种分布式处理框架(又名Nodes),ROS常用C++和python编程语言开发;(这里项目开发采用C++ 11版本)。ROS的点对点设计以及服务和节点管理器等机制,可以分散由计算机视觉和语音识别等功能带来的实时计算压力,能够适应多机器人遇到的挑战。ROS免费并且开源。
295 0
|
8月前
|
传感器 Ubuntu 机器人
【5. ROS机器人的运动控制】
【5. ROS机器人的运动控制】
309 0
【5. ROS机器人的运动控制】
|
2月前
|
传感器 人工智能 监控
智能耕耘机器人
智能耕耘机器人
42 3
|
6月前
|
人工智能 自然语言处理 机器人
智能电话机器人核心技术:自然语言处理
什么是自然语言处理? 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向.它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法.自然语言处理是一门融语言学、计算机科学、数学于一体的科学.因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别. 自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统.因而它是计算机科学的一部分. 自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域.
|
1月前
|
传感器 人工智能 自然语言处理
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
|
2月前
|
传感器 机器学习/深度学习 算法
植保机器人具备智能感知与决策能力
植保机器人具备智能感知与决策能力
19 2
|
3月前
|
传感器 搜索推荐 机器人
具身智能赋能人形机器人产业将蓬勃发展
【1月更文挑战第12天】具身智能赋能人形机器人产业将蓬勃发展
45 3
具身智能赋能人形机器人产业将蓬勃发展
|
3月前
|
机器学习/深度学习 人工智能 算法
智能AI机器人管家
应用场景:四层别墅,每层面积1000平+,有自己的地下停车场,地下酒窖,阳光房,花园,广场。在此场景下想做一个智能机器人管家。 主要功能: 1、自动跟随制定的人,可以根据设定的人的语音指令做一些动作,比如:停下、充电、倒退、去某个地方等等。 2、可以根据设定的人的语音回答一些常见问题,比如:今天天气,股票走势,黄金走势,钢铁走势等能够从网上直接获取到的信息。 3、可以根据设定的人的语音回答一些本地问题,比如家里还有多少酒,调一下某地的监控,花房的温度多少,打开某房间的空调。 4、可以帮助做一些本企业决策性的问题。

热门文章

最新文章

推荐镜像

更多