ROS2学习(六)Bag回放使用plotjugger

news2024/11/16 0:20:00

Plotjugger

Plotjugger是一个类似rqt_plot的可视化工具,但PlotJuggler拥有更强大和好用的功能。你可以导入文本文件让它显示文本文件中的数据,可以导入csv等各种格式的文件,支持画出数据曲线2.

Bag回放

使用Plotjugger 可以导入ros的bag包,它能自动解析bag包中的数据。在ros1中有rqt_bag等一些列比较完善的工具,可能实用起来不会觉得有什么问题。但是当在ROS2上,各类工具并不完善,比如我现在使用的foxy版本,就没有提供rqt_bag等工具,想要回放bag,分析数据比较困难。
好在Plotjugger已经提供了可以分析ROS2 bag方法。

apt安装Plotjuggler

注意一下,如果是配合ROS1来使用,推荐安装PlotJuggler 2.X.X,如果是配合ROS2来使用,则推荐安装PlotJuggler 3.X.X。

ubuntu上安装plotjuggler, 可以根据对应的ROS版本直接apt安装。

sudo apt-get update
sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros

启动:

ros2 run plotjuggler plotjuggler

源码安装

对于ROS2, plotjugger也在不一直修复一些bug,所以有些情况下可能希望手动修改源码再进行编译使用. 编译方式如下:

  1. 建立工作空间并拉取代码
    需要去github拉取对应的分支代码。
  mkdir -p ~/ws_plotjuggler/src
 cd ~/ws_plotjuggler/src
 git clone https://github.com/PlotJuggler/plotjuggler_msgs.git -b ros2
 git clone https://github.com/facontidavide/PlotJuggler.git
 git clone https://github.com/PlotJuggler/plotjuggler-ros-plugins.git -b foxy
  1. 解决依赖和编译
cd ~/ws_plotjuggler
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
colcon build
  1. 启动
source install/setup.bash
ros2 run plotjuggler plotjuggler

录制ROS2 bag

使用下记命令可以记录ros2 的bag

ros2 bag record  [topics [topics ...] [-o OUTPUT]

回放Bag

如果是自定义的topic类型,需要现在唉自己的工程目录下进行source,加载msg的类型

source install/setup.sh

然后启动plotjuggler

ros2 run plotjuggler plotjuggler

点击 data,然后选择对应bag文件中的metadata.yaml.
在这里插入图片描述
[Ctrl + A]选择所有的topic,或者可以点击选择固定的几个topic
在这里插入图片描述
如果需要将topic public出来,就将Re-Publisher选中。
在这里插入图片描述
从左面的topic栏中选择要查看的数据,拖动到中间,就会自动画出数据曲线。
在这里插入图片描述
在靠下的位置有播放按钮,点一下播放,再点击暂停,时间轴可以拖动,从任一时间开始播放。 speed可以设置任一大于0的速度。

Segmentation Fault when trying to topic Re-Publisher

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

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

相关文章

docker pull 拉取镜像报错

报错信息:Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit 简单理解就是拉取镜像失败,外部原因&…

HDLbits: Lfsr5

我的错误写法,半成品,完全错误: module top_module(input clk,input reset, // Active-high synchronous reset to 5h1output [4:0] q ); dff dff_1(clk, 0 ^ q[0],q[4]);dff dff_2(clk, q[4] ,q[3]);dff dff_3(clk, q[3] ^ q[0] ,q[2]);…

2023年中国棋牌桌市场规模及行业前景:更具创意和功能是未来趋势[图]

棋牌桌行业是指涉及棋牌类游戏的桌面制造、销售和相关服务的产业,它包括生产和销售各种类型的棋牌桌,如象棋桌、扑克桌、麻将桌等,以及提供与这些游戏相关的配件和设备。 棋牌桌行业分类 资料来源:共研产业咨询(共研网…

Android多线程学习:多线程同步

一、多线程 多线程就是指一个进程中同时有多个线程正在执行。 二、多线程优缺点: 优点: 1、提高程序运行效率,如同时上传多个图片; 2、耗时操作放子线程执行,提高主线程执行效率,无需等待。 缺点&#…

【Spring MVC研究】聊聊web绑定器(WebDataBinder、@InitBinder)

文章目录 1. 绑定器的作用2. 使用方式(测试代码)InitBinder3. 相关的几个核心类的真实类型4. 原理4.1. 正向推理4.2. 反向推理4.3. 正向反向推理结合分析4.4. 重点来了(如果前后衔接是接4.3章节)4.4.1. InitBinder注解的注册4.4.2…

vue学习-12路由组件的基本使用

vue的路由是vue,js官方的路由管理器,其主要用于构建单页应用程序,允许你通过定义路由来管理不同页面之间的导航。 1.引入路由 在使用vue的路由之前,一般我们在创建vue项目的时候,是可以选择添加路由的,只要你选择了y…

antd树型表格的逐级展开折叠(每次展开都只展开到当前未展开的最小层级,每次折叠都只折叠到当前未折叠的最大层级)

需求有些变态,我们用一段话和一张图来演示下 效果如下: 如遇到每级展开层级不一致的,如【2级2】展开到第3级,那此时点击展开,所有已展开的不动,将未展开到第3级的其他元素全部展开到第3级 效果如下&…

东土科技与诺贝尔物理学奖2006年度得主斯穆特签约,加快布局工业AI

近日,诺贝尔物理学奖2006年度得主乔治.斯穆特教授与东土科技正式签约,成为东土科技工业人工智能顾问。 乔治斯穆特(George Fitzgerald Smoot)教授也曾获得爱因斯坦奖,在宇宙学、大数据、生物医学诊断仪器以及人工智能…

第一章:随机过程预备知识

第一章:随机过程预备知识 随机过程属于概率论的分支学科。概率论注重结果:上涨的概率,下跌的概率。随机过程注重过程,随着时间的推移,结果的演化过程。 1.1 随机事件与概率的定义 事件的本质是集合,有关集…

workerman的基本用法(示例详解)

workerman是什么? Workerman是一个异步事件驱动的PHP框架,具有高性能,可轻松构建快速,可扩展的网络应用程序。支持HTTP,Websocket,SSL和其他自定义协议。支持libevent,HHVM,ReactPH…

朋友一口气拿下字节27K的offer,实名羡慕了....

最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…

DRM全解析 —— framebuffer详解(1)

本文参考以下博文: Linux内核4.14版本——drm框架分析(1)——drm简介 特此致谢! 1. 简介 framebuffer是一块内存区域,可以理解为一块画布,驱动和应用层都能访问它。绘制前需要将它格式化,设定绘制的色彩模式&#x…

leetcode:217. 存在重复元素(python3解法)

难度:简单 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2: 输…

DruidDataSource导致OOM问题处理

DruidDataSource导致OOM问题处理 起因分析日志分析Dump文件问题分析处理 起因 一个平凡的工作日,我像往常一样完成产品提出的需求的业务代码,突然收到了监控平台发出的告警信息。本以为又是一些业务上的 bug 导致的报错,一看报错发现日志写着…

Deepwalk,Node2vec算法原理生动理解(图文)

Deepwalk算法原理详解 DeepWalk算法之所以能够有效地学习节点的低维表示,是因为它利用了本质上与自然语言处理相同的思路:图是一种高维数据,很难直接处理,但是可以将其映射到低维空间中,这样可以更好地进行处理 Deep…

ElasticSearch 使用 searchAfter() 进行遍历查询 查到的数据总数小于 totalHits

ElasticSearch 使用 searchAfter() 进行遍历查询,查到的数据总数小于 totalHits,并且每次查询的页 size 越大,遍历总数和 totalHits 的差距越小。 原因 这是由于如下的机制: 每个文档具有一个唯一值的字段应该用作排序规范的仲裁…

2023 IDC中国数字金融论坛丨中电金信向行业分享“源启+应用重构”新范式

9月8日,IDC主办的“2023 IDC中国数字金融论坛”在北京召开。中电金信受邀参会,并带来了深度数字化转型趋势之下关于应用重构的分享与洞见。 论坛重点关注金融科技创新发展趋势与数字化转型之路,中电金信副总经理、研究院院长况文川带来了“创…

多无人机编队集群飞行

matlab2016b可直接运行 多无人机集群编队飞行(8架无人机)资源-CSDN文库

S7-1200PLC与力控通过S7协议进行通信的具体步骤示例

S7-1200PLC与力控通过S7协议进行通信的具体步骤示例 准备条件: TIA PORTAL V16 力控7.2 SP3 PLC:1214 DC/DC/DC PLC一侧的配置: PLC IP设置为192.168.2.10 PLC属性中的连接机制,勾选允许来自远程对象的PUT/GET 新建一个名为FirstDB的数据块,数据块编号为1 在FirstDB中添加…

大屏设计器项目部署详细步骤

一.项目效果图 二.部署步骤 1.nginx配置前端配置 #gzip on;server {listen 48009;server_name analyse;location / {root /home/designer/dist;index index.html;try_files $uri