ros rviz显示rosbag中的图像和imu数据

一、rosbag相关的指令

1. rostopic list //列举出系统中正在发布的ros 话题

2. rosbag record -a //录制系统中所有正在发布的ros 话题

3. rosbag record topic1 topic2 .... -o bagname.bag 

4. rosbag play bagname.bag //播放bag文件

5. rosbag info bagname.bag //查看bag中录制的话题信息

6. Ctrl + c //停止录制

二、 播放rosbag中的数据

rosbag play bagname.bag 播放的数据一点也不直观,类似于这种

比如说我们想看一下bag中的图像,点云或者IMU数据是什么样子的,我们可以使用rviz来实现。

//打开一个终端输入
roscore
//打开一个新的终端输入
rosrun rviz rviz

1. 显示image图像

在rviz的左下角点击“Add”在弹出的窗口中选择“Image”,然后点击OK

然后选择“Image”的话题为你正在发布的image的话题

2. 显示IMU数据

这个需要提前安装一个插件“rviz_imu_plugin”.安装方法如下:

注意:这里的"melodic"要切换成你自己的ros版本。安装上之后,rviz中会自动加载出来

sudo apt-get install ros-melodic-imu-tools

 按照同样的方法,点击RVIZ左下角的“Add”然后选择 “rviz_imu_plugin”中的“imu”,最后点击“OK”。然后就是选择imu的话题。

但是你很可能会遇到这样的error:for frame [xxx]: Fixed Frame [map] does not exist

这是因为在“Global Options”中的“Fixed Frame”设置为“map”,这是因为世界坐标定义成map,单独运行sensor 节点不会生成世界坐标,而传感器坐标imu找不到世界坐标,就定位不了自身的位置,从而报错。

那如何结局这个问题呢?只需要将"Fixed Frame"后面的map修改为 for frame [xxx]: Fixed Frame [map] does not exist 报错信息中括号中的 xxx,就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PX4的workqueue

Workqueue相当于是中断子程序,然后在queue的cycle里面要注意,不能在cycle函数里面用printf打印,在cycle里面printf函数是打印不出来的。 也不能在cycle里面用while(1),就是不能让程序一直在queue里面执行,要想让cycle执…

企业选择 多云管理平台 六大注意事项

企业选择 多云管理平台 六大注意事项 1、是否足够简单,学习曲线有多长 2、是否可实现自动化环境部署,日常运维作业等一系列操作? 3、是否可以管理全异构的云环境,支持主流公有云厂商的云资源? 4、是否能提供管理成本、…

面向接口编程

面向接口编程 一般在实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应该是所有的定义与实现分离,尽管这对于系统中某些复杂的情况有些繁烦。面向接口编程设计 使用面向接口编程思想将层与层之间通过接口依赖,下…

Java并发学习之一——线程的创建

与每个java语言中的元素一样,线程是对象。在Java中,我们有两种方式创建线程: 1、通过直接继承thread类,然后覆盖run方法。 2、构建一个实现Runnable接口的类,然后创建一个thread类对象并传递Runnable对象作为构造参数 …

day1||python

测试题: 0. Python 是什么类型的语言? Python是一种面向对象、解释型、动态类型计算机程序设计语言解释型:程序无需编译成二进制代码,而是在执行时对语句一条一条编译动态类型:在程序执行过程中,可以改变变…

2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...

在金融科技领域,风险控制的重要性,从其关联的金融业务和结合的技术维度可见一斑:风控涉及信用借贷、保险、支付、供应链金融等场景,并运用了包括生物特征识别、机器学习、自然语言处理、大数据、云计算等多项技术。 区别于美国有…

【原创】QT简单计算器

代码 //main.cpp#include "calculator_111.h" #include <QtWidgets/QApplication>int main(int argc, char *argv[]) { QApplication a(argc, argv); Calculator_111 w; w.show(); return a.exec(); /* //QT creator Calculator_111 win; win.show(); return…

cs堡垒机使用说明

一、堡垒机介绍 为了保证机房的网络安全&#xff0c;IDC内所有服务器不被允许从办公网直接ssh登录&#xff0c;必须通过跳板机进行间接登录。用户通过跳板机执行的所有命令&#xff08;包括通过跳板机登录的其他机器后的命令&#xff09;都会被保存并审计。 cs是我们登录IDC服…

export和export default的区别

es6中export和export default的区别 export与export default均可用于导出常量、函数、文件、模块&#xff1b;你可以在其它文件或模块中通过import(常量 | 函数 | 文件 | 模块)名的方式&#xff0c;将其导入&#xff0c;以便能够对其进行使用&#xff1b;在一个文件或模块中&am…

koa中间件机制详解

转自&#xff1a;https://cnodejs.org/topic/58fd8ec7523b9d0956dad945 koa是由express原班人马打造的一个更小、更富有表现力、更健壮的web框架。 在我眼中&#xff0c;koa的确是比express轻量的多&#xff0c;koa给我的感觉更像是一个中间件框架&#xff0c;koa只是一个基础的…

极度推荐的文章和网站

推荐文章---收录中 因为是及时雨,这里就给他放在开头啦&#xff1a;http://www.cnblogs.com/zhuzhenwei918/p/7241971.html webpack3.0配置指南&#xff1a;http://www.cnblogs.com/caideyipi/articles/7080010.html 超酷的伪元素网站&#xff1a;https://tympanus.net/Develop…

倍道而行:选择排序

一、为什么学了之后过段时间又会忘记了&#xff1f; 因为没有去运用它和认为面试需要而没有真正的重视。现在给它赋予意义&#xff1a;1.那就是基础牢固&#xff0c;才可触类旁通2.真正记得和随时可以拿出手&#xff0c;那么面试可以PK掉一大批人。不然看到一个精妙的算法就学一…

如何构建一个真实的推荐系统?

AI 前线导读&#xff1a;随着互联网行业的井喷式发展&#xff0c;数据规模呈现爆炸式增长。大数据中蕴含了巨大的价值&#xff0c;但同时也来了很 “信息过载” 的问题。推荐系统作为一个广泛应用的信息过滤系统&#xff0c;在很多领域取得了巨大的成功。在电子商务上&#xff…

volatile的适用场景

介绍 把代码块声明为 synchronized&#xff0c;有两个重要后果&#xff0c;通常是指该代码具有 原子性&#xff08;atomicity&#xff09;和 可见性&#xff08;visibility&#xff09;。 原子性意味着个时刻&#xff0c;只有一个线程能够执行一段代码&#xff0c;这段代码通过…

link和@import的区别

1、link属于HTML标签&#xff0c;import是css提供的 2、link是HTML标签&#xff0c;没有兼容问题&#xff0c;而import只在IE5以上才能识别 3、页面被加载时&#xff0c;link会同时被加载&#xff0c;而import引用的css会等到页面加载完再加载 4、link方式的样式的权重高于impo…

6.java 代码块

代码块 在java中用{}括起来的称为代码块&#xff0c;代码块可分为以下四种: 普通代码块构造代码块静态代码块同步代码块普通代码块 在方法或语句中出现的{}就称为普通代码块。普通代码块和一般语句的执行顺序由他们在代码中出现的次序决定&#xff0c;先出现先执行。 普通代码块…

C#如何测试代码运行时间

第一种方式&#xff1a;System.Diagnostics.Stopwatch stopwatch new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试的代码 .... stopwatch.Stop(); // 停止监视 TimeSpan timespan stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double …

0074 几道面试题

昨天参加了惠装网的面试&#xff0c;有些题不会做的&#xff0c;记录下来 switch语句能否作用在byte、long、String上 Java1.7以前&#xff1a;byte、short、int、char Java1.7开始&#xff1a;新增String 因此switch语句不能作用在long上&#xff0c;看下面代码&#xff1a; p…

SpringBoot入门之内嵌Tomcat配置

spring boot默认web程序启用tomcat内嵌容器tomcat&#xff0c;监听8080端口,servletPath默认为 / 。需要用到的就是端口、上下文路径的修改&#xff0c;在spring boot中其修改方法极其简单&#xff0c;实例如下&#xff1a; server.port8088 server.context-path/test 启动程序…

第二十二章:动画(六)

复合动画您可以混合等待和未等待的调用来创建复合动画。 例如&#xff0c;假设您希望按钮在大小扩展的同时旋转360度然后收缩。ViewExtensions类定义一个方法名称ScaleTo&#xff0c;它为Scale属性设置动画&#xff0c;就像RotateTo为Rotate属性设置动画一样。 Button大小的扩展…