(十)ROS的常用组件——rosbag和rqt工具箱

前言

主要介绍以下ROS的一些工具的使用后续也要用到。

一、rosbag

机器人传感器获取到的信息,有时我们可能需要时时处理,有时可能只是采集数据,事后分析,比如:机器人导航实现中,可能需要绘制导航所需的全局地图,地图绘制实现,有两种方式,方式1:可以控制机器人运动,将机器人传感器感知到的数据实时处理,生成地图信息。方式2:同样是控制机器人运动,将机器人传感器感知到的数据留存,事后,再重新读取数据,生成地图信息。两种方式比较,显然方式2使用上更为灵活方便。在ROS中关于数据的留存以及读取实现,提供了专门的工具: rosbag。

1.概念

是用于录制和回放 ROS 主题的一个工具集

2.作用

实现了数据的复用,方便调试、测试。

3.本质

rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。实际上这个节点就是一个可执行性的文件。

4.rosbag使用_命令行

1.需求

ROS 内置的乌龟案例并操作,操作过程中使用 rosbag 录制,录制结束后,实现重放。

2.具体实现

1.创建一个保存包的文件夹
mkdir ./xxx
cd xxx
2.打开小乌龟运行程序进行包的录制。
rosbag record -a -o 目标文件

 

3.查看文件:
rosbag info 文件名
lvl@lvl-Legion-Y7000P-IRX9:~$ rosbag info bags_2025-01-14-15-11-31.bag 
path:        bags_2025-01-14-15-11-31.bag
version:     2.0
duration:    12.4s
start:       Jan 14 2025 15:11:31.59 (1736838691.59)
end:         Jan 14 2025 15:11:43.97 (1736838703.97)
size:        114.3 KB
messages:    1530
compression: none [1/1 chunks]
types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
             rosgraph_msgs/Log   [acffd30cd6b6de30f120938c17c593fb]
             turtlesim/Color     [353891e354491c51aabe32df673fb446]
             turtlesim/Pose      [863b248d5016ca62ea2e895ae5265cf9]
topics:      /rosout                   3 msgs    : rosgraph_msgs/Log  
             /turtle1/cmd_vel          5 msgs    : geometry_msgs/Twist
             /turtle1/color_sensor   761 msgs    : turtlesim/Color    
             /turtle1/pose           761 msgs    : turtlesim/Pose
4.回放文件:
rosbag play 文件名

可以看到在回放时,小乌龟重复之前的路径运动:

5.rosbag使用_编码

1.需求

命令实现不够灵活,可以使用编码的方式,增强录制与回放的灵活性,本节将通过简单的读写实现演示rosbag的编码实现。

2.写实现

3.读实现

这两部分的内容不常用可以了解一下即可。

二、rqt工具箱

之前,在 ROS 中使用了一些实用的工具,比如: ros_bag 用于录制与回放、tf2_tools 可以生成 TF 树 ..... 这些工具大大提高了开发的便利性,但是也存在一些问题: 这些工具的启动和使用过程中涉及到一些命令操作,应用起来不够方便,在ROS中,提供了rqt工具箱,在调用工具时以图形化操作代替了命令操作,应用更便利,提高了操作效率,优化了用户体验。

1.概念

ROS基于QT框架,针对机器人开发提供了一系列可视化的工具,这些工具的集合就是rqt。

2.作用

可以方便的实现 ROS 可视化调试,并且在同一窗口中打开多个部件,提高开发效率,优化用户体验。

3.组成

rqt 工具箱组成有三大部分:

1.rqt——核心实现,开发人员无需关注

2.rqt_common_plugins——rqt 中常用的工具套件

3.rqt_robot_plugins——运行中和机器人交互的插件(比如: rviz)

4.rqt工具箱的基本使用

1.启动

使用下列命令时请确保你的ROS是运行的。

rqt

或者是

rosrun rqt_gui rqt_gui

演示一些功能:

1.小乌龟的话题发布

首先启动小乌龟的GUI,之后进入rqt,选择插件,选择话题,选择信息发布选项,进行设置。

2.小乌龟的服务调用

最终结果:生成一个新的乌龟。

2.rqt常用插件:rqt_graph

之前的学习过程中已经应用过了。

3.rqt常用插件:rqt_console

rqt_console 是 ROS 中用于显示和过滤日志的图形化插件。

/*  
    ROS 节点:输出各种级别的日志信息
*/
#include "ros/ros.h"
 
int main(int argc, char *argv[])
{
    ros::init(argc,argv,"log_demo");
    ros::NodeHandle nh;
 
    ros::Rate r(0.3);
    while (ros::ok())
    {
        ROS_DEBUG("Debug message d");
        ROS_INFO("Info message oooooooooooooo");
        ROS_WARN("Warn message wwwww");
        ROS_ERROR("Erroe message EEEEEEEEEEEEEEEEEEEE");
        ROS_FATAL("Fatal message FFFFFFFFFFFFFFFFFFFFFFFFFFFFF");
        r.sleep();
    }
 
 
    return 0;
}

 运行结果:

下面两个窗口分别是过滤指定日志信息、过滤带有关键字的日志信息。

4.rqt常用插件:rqt_plot

1.简介

图形绘制插件,可以以 2D 绘图的方式绘制发布在 topic 上的数据。

2.运行结果:

5.rqt常用插件:rqt_bag

1.简介

录制和重放 bag 文件的图形化插件。

2.运行结果:

结束语

本章主要介绍了ROS中的常用组件,内容如下:

1.rosbag 用于ros话题的录制与回放

2.rqt工具箱,图形化方式调用组件,提高操作效率以及易用性

下一章开始将介绍机器人系统仿真,我们将在仿真环境下,创建机器人、控制机器人运动、搭建仿真环境,并以机器人的视角去感知世界。

以上就是我学习到的内容,如果对您有帮助请多多支持我,如果哪里有问题欢迎大家在评论区积极讨论,我看到会及时回复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值