ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题

ROS学习-----通过rviz读入.bag格式的文件并播放,并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题
ROS的嵌入式的深入学习就是需要了解rviz,那么什么是rviz?
Rviz :The ROS Visualization Tool ,即机器人操作系统3D可视化工具。它的作用就是:一个虚拟世界,用来模拟机器人在现实世界的运行效果。所以,对于rviz的使用是我们ROS嵌入式学习的一个重要步。
本次博客,主要通过rviz读取.bag格式的文件并进行播放来学习rviz的使用,话不多说,一起来看吧!

rviz读入.bag格式的文件并播放步骤

      • 一、准备bag格式的文件
      • 二、打开Rviz并播放bag格式的文件
        • 1、打开终端(命名为==终端1==),运行ROS
        • 2、新建一个终端(命名为==终端2==),打开rviz软件
        • 3、配置我们的rviz软件,方便播放==hongkang.bag==文件
        • 4、打开我们==hongkong.bag==文件
      • 三、解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题
        • 1、在运行==rosbag play hongkong.bag==后,我们会发现Rviz页面会出现,错误,如下所示:
        • 2、解决该问题

一、准备bag格式的文件

1、通过网上下载.bag格式的文件,并移动到ubuntudeHome里面
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第1张图片
如上图所示,自己将hongkong.bag文件放置在Home文件,这个步骤是方便后面我们打开这个文件的时候不用输入路径,直接输入名字就可以打开

二、打开Rviz并播放bag格式的文件

1、打开终端(命名为终端1),运行ROS

roscore

ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第2张图片

2、新建一个终端(命名为终端2),打开rviz软件

1)、打开终端,输入如下命令:

rosrun rviz rviz

如下图所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第3张图片
2)、上面命令的输入之后,系统会打开rviz软件(命名为窗口2),如下所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第4张图片
出现如上图所示,我们rviz就成功打开

3、配置我们的rviz软件,方便播放hongkang.bag文件

1)、选择左下角的add按钮点击,如下所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第5张图片
点击add后会出现如下页面:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第6张图片
2)、在出现的页面中选择by display type,下拉选择pointCloud2后点击ok,如下所示:

ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第7张图片
3)、左侧的Global Options,下面的For frame,双击右侧进行修改

livox_frame

如下图所示:
在这里插入图片描述
4)、下面翻,找到pointCloud2栏目下的Topic,修改为如下:

/livox/lidar

ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第8张图片
如上图所示,修改成功,记得Style选择Points,这样播放的图像会清晰很多!
到这里,我们的rviz配置工作就完成!
注意:以上的所有的窗口都不要关闭哦

4、打开我们hongkong.bag文件

在下面这一步之前,大家可以观看以下我的页面排版,方便观察:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第9张图片
1)、新建一个终端(命名为终端3),输入以下命令播放我们的文件

rosbag play hongkong.bag

2)、在输入以上命令回车后,我们可以发现,在窗口2上在播放我们雷达扫描的图像,如下所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第10张图片
提醒:在终端2中按下空格键可以暂停播放哦,要想继续播放我们可以再次按空格键
依次关闭终端和窗口,结束实验,到这里,我们的实验就完美结束啦!接下来,我们来看一下我们过程中可能遇到的问题吧!

三、解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题

1、在运行rosbag play hongkong.bag后,我们会发现Rviz页面会出现,错误,如下所示:

ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第11张图片
出现For frame [XX]: Fixed Frame [XXX] does not exist的问题,遇到这个问题,不要慌,以下步骤教你解决

2、解决该问题

1)、再次点击Add按键,选择By topic,然后找到pointCloud2对应的位置,如下所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第12张图片
我们这一步的操作目的主要是:找到我们每个人Rviz软件对应的pointCloud2的Topic
2)、由上图可以看出,我的pointCloud2topic存在于/livox/lidar 的目录下面,所以,我们返回pointCloud2的Topic中修改成如下:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第13张图片
3)、这里修改之后,我们最上面Global Options,下面的For frame也是需要修改的,当然,这时候我们不知道该修改成什么?这时候我们新建一个终端(终端4),输入如下命令查看我们For frame应该填入什么:

rostopic echo /livox/lidar | grep frame_id

注意:以上代码中的 /livox/lidar为我自己的pointCloud2对应的目录,大家根据自己的进行修改
4)、在上面的终端3中如果刚刚暂停了的,按空格键开始,观察终端4,没有暂停的就会直接看到终端4的变化,如下所示:
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第14张图片
在终端3按空格暂停播放:
5)、通过以上图终端4显示的可以看出:Global Options,下面的For frame修改为livox_frame,如下所示:
注意:具体的修改为什么得看你们自己的显示的什么哦!
ROS学习【6】-----如何通过rviz读入.bag格式的文件并播放?并解决“For frame [XX]: Fixed Frame [XXX] does not exist”的问题_第15张图片
通过以上步骤,我们的问题就解决了,再次在终端3按空格键,我们就可以在rviz中看到,我们hongkong.bag文件的播放了哦!
以上就是本次博客的全部内容啦,希望通过本次的博客,可以帮助大家更加了解Rviz哦!遇到问题的小伙伴,评论区留言,林君学长耐心给大家解答,这个学长不太冷!
陈一月的又一天编程岁月^ _ ^

你可能感兴趣的:(嵌入式开发项目学习,陈一月的编程问题)