首页 > 其他分享 >rosbag&evo

rosbag&evo

时间:2024-10-30 16:47:46浏览次数:2  
标签:plot name evo -- bag rosbag

  本文主要介绍Rosbag和evo常用的一些命令。

一、rosbag命令详细解读

1. rosbag record 录制时使用

rosbag record -a  录制所有话题

rosbag record -a  test.bag 录制所有话题,到指定包下
 
rosbag record /topic_name    录制指定话题(默认按照录制结束时间命名)
 
rosbag record -O filename.bag /topic_name  指定生成数据包的名字filename.bag并录制指定话题
 
rosbag record -b 4092 /topic_name   扩大录制内存限制

2. rosbag play 回放时使用

rosbag play name.bag 回放数据包

rosbag play -r 1.5 name.bag  1.5倍速回放,按一定频率回放,-r选项用来设定消息发布速率;

rosbag play -l name.bag 按一定频率回放,-l选项用来设定循环播放;

rosbag play name.bag --topic /topic1 只播放感兴趣的topic;

      -d 用来指定延迟播放的时间(sec);

        -s 参数用来指定从几秒开始;rosbag play -s 10 xx.bag

        -u 参数表示仅播放包的前几秒信息;rosbag play -u 10 xx.bag

        -r 参数用来指定播放速度

        -l 循环播放

             在上述播放命令执行期间,空格键可以暂停播放。

 

如果想修改topic名字播放

rosbag play file.bag /topic_name:=/reame_topic_name
#//topic_name是原topic,reame_topic_name是新topic

 

rosbag play --pause record.bag 启动时暂停按空格键开始回放

rosbag play recorded1.bag recorded2.bag 如果播放两个及以上bag包,那么他们会第一帧对其,后面根据第一帧时间戳的时间差播放。

rosbag play -s 5 recorded1.bag 启动5秒进入包中。


 回放完后,我一般会用 rostopic list 查看下发布的主题,确保是我需要的:

rostopic list

3. rosbag info 查看bag包的信息

rosbag info 包名.bag  #查看录制包的信息

rosbag info -h 用于获取关于 rosbag 工具的更多信息

rosbag info -y name.bag  输出yaml配置参数 

rosbag info -y -k duration name.bag 输出 bag 中指定域的信息,比如只显示持续时间

  rosbag info 显示包文件内容的可读摘要,包括开始和结束时间,主题及其类型,消息计数、频率以及压缩统计信息,常见用法如下:

  显示一个 bag 包的信息:

rosbag info name.bag

$ rosbag info foo.bag
path:        foo.bag
version:     2.0
duration:    1.2s
start:       Jun 17 2010 14:24:58.83 (1276809898.83)
end:         Jun 17 2010 14:25:00.01 (1276809900.01)
size:        14.2 KB
messages:    119
compression: none [1/1 chunks]
types:       geometry_msgs/Point [4a842b65f413084dc2b10fb484ea7f17]
topics:      /points   119 msgs @ 100.0 Hz : geometry_msgs/Point

4. rosbag help 查看帮助信息

rosbag --help

5. rosbag check 检查包

rosbag check xxx.bag  检查一个 bag 在当前系统中是否可以回放

6. rosbag compress 压缩包

rosbag compress xxx.bag  如果录制的 bag 很大,我们可以压缩它,默认的压缩格式是 bz2

rosbag compress -j xxx.bag 可以添加 -j 手动指定压缩格式为 bz2

rosbag compress --lz4 xxx.bag 也可以使用 LZ4 来压缩数据

7. rosbag decompress 解压缩包

rosbag decompress xxx.bag  压缩完后,使用需要解压缩

8. rosbag filter 截取包

rosbag filter temp.bag temp1.bag "topic=='/odom' or topic=='/tf'"  rosbag文件提取话题数据,生成temp1.bag只保留/odom,/tf数据

rosbag filter my.bag out.bag "t.to_sec() >= 123564.77 and t.to_sec() <= 794545.88"  过滤,保留某个时间段的数据
rostopic echo -b file_name.bag -p /odom > odom_name.txt
将file_name.bag文件中/odom话题的消息转换到odom_name.txt文件中

9. rosbag fix 修复包

rosbag fix name.bag  修复包(暂时没用)

10. rosbag reindex 备份包

rosbag reindex xxx.bag  如果回放遇到问题,提示 reindex 的话,直接执行即可,这个会自动生成一个原 bag 的备份

11. rosbag 转换格式(bag2txt)

rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
#在bag下将指定话题转换成txt

 二、EVO工具使用命令

1. evo_ape命令

计算绝对位姿误差,常被用作绝对轨迹误差。

比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性。

通过 evo_ape +数据格式 + --help查看更多参数的含义以及如何使用(如:evo_ape euroc --help)。

evo_ape  格式  参考轨迹  估计轨迹  [可选项]
#格式:包括kitti、euroc、tum等数据格式
#可选项:有对齐命令、画图、保存结果等
-r  full  ———考虑旋转和平移误差得到的ape,无单位(unit-less)
-r  trans_part  ———考虑平移部分得到的ape,单位为m
-r  rot_part  ———考虑旋转部分得到的ape,无单位(unit-less)
-r  angle_deg  ———考虑旋转角得到的ape,单位°(deg)
-r  angle_rad  ———考虑旋转角得到的ape,单位弧度(rad)
不添加-r和可选项,则默认为trans_part
-v ———详细模式/-verbose mode 

  -a ———采用SE(3) Umeyama对齐,只处理平移和旋转(轨迹匹配)
  -as    ———采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
  -s    ———仅对齐尺度(尺度修正)

  不添加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐

  注:单目SLAM是没有尺度的,所以两个轨迹一定不会一样大)

--plot  ———画图
--plot_mode  xyz———选择三维xyz画图模式,可选参数[xy, xz, yx, yz, zx, zy, xyz],默认为xyz 
 --save_plot ———保存画图结果,后接保存路径

--save_result———存储结果,后接保存路径以及压缩文件名称,存储后得到zip压缩文件

栗1:

evo_ape kitti 参轨.txt 估轨.txt -r full --plot --plot_mode xyz
#-r full:计算考虑平移和旋转部分误差的ape
#省略-a:进行平移和旋转对齐
#省略-v: 以详细模式显示
#–plot: 画图
#–plot_mode: 选择三维xyz画图模式,可选参数为[xy, xz, yx, yz, zx, zy, xyz],默认为xyz

栗2:

#多个轨迹画到一起
evo_traj tum 1**.txt 2**.txt --ref 1**.txt -va -p
#其中ref是参考轨迹,-va是对齐后的详细信息,-p是画出图像

栗3:

evo_ape euroc 参轨.csv 估轨.txt -r full -va --plot --plot_mode xyz --save_plot ./VINSplot --save_results ./VINS.zip
#VINSplot: 表示存储在当前路径下的名称为VINSplot的文件中。
#保存文件的类型可以通过evo_config设置。
#常见的可以保存成png,pdf等,详见evo_config部分

栗4:

evo_ape kitti a.txt b.txt
#不进行画图
此时的终端输出为:
max:表示最大误差;
mean:平均误差;
median:误差中位数;
min:最小误差;
rmse:均方根误差;
sse:和方差、误差平方和;
std:标准差。

2. evo_rpe命令

  evo_rpe是相对位姿评估工具,evo_ape是绝对位姿评估工具。
两者使用方式基本一样

3. evo_traj命令

  evo_traj 命令用于绘制轨迹,比较两个 topic 数据之间的的偏差 ,输出轨迹文件,转换数据格式等功能。evo共支持kitti、tum、euroc这三个公开数据集格式,同时也支持bag文件里的topic。

evo_traj  bag 包名.bag  /话题名1 /话题名2 ....  -p
//该命令:适用于一个录制包下,相同消息类型的话题
//参数-p 可绘制出轨迹的图形,两个 topic 对应的坐标曲线。 

  evo_traj可以将轨迹转换成其他格式(因euroc格式只对euroc数据集的groundtruth数据有意义,所以没有–save_as_euroc)。

*–save_as_bag–save_as_kitti–save_as_tum
bag yes yes yes
euroc yes yes yes
kitti no(no timestamps) yes no(no timestamps)
tum yes yes yes
evo_traj euroc data.csv --save_as_tum #将euroc转换成tum格式

ps:可通过 evo_traj +数据格式 + --help查看更多参数的含义以及使用(evo_traj euroc --help )

4. evo_res命令

 

5. evo_fig命令

 

6.evo_config命令 

evo_config show——查看设置文件中的参数和参数的简要注释

evo_config set以下参数:(evo配置工具)

参数含义可选项
plot_export_format 输出图像时图像存储格式 常用png,pdf等
plot_linewidth 作图时线的宽度 matplotlib支持的宽度,默认1.5
plot_reference_color 图像中参考轨迹的颜色 black,red,green等
plot_reference_linestyle 参考轨迹的线型 matplotlib支持的线型,默认–
plot_seaborn_style 图像背景和网格 whitegrid,darkgrid,white,dark
plot_split 是否分开显示/存储图像 false/true
plot_figsize 画图的图像大小 默认宽高均为6,可使用其他值
table_export_format 表格数据输出格式 常用 csv,excel,latex,json

 

例如:

evo_config set plot_seaborn_style whitegrid 将画图背景更改成白色网格
evo_config set plot_fontfamily serif plot_fontscale 1.2 将字体改为衬线型并调为1.2倍大小
evo_config set plot_reference_linestyle - 将画图所使用的线型改为 -
evo_config set plot_figsize 10 9 将所画图的图像大小调整为10 9(宽 高)

evo_config reset 将参数还原到默认值

evo_config命令并不怎么常用,多数情况下,我们正常使用是不需要额外设置evo的一些配置项的。

你可以使用如下命令,查看evo默认的一些系统参数设置:

evo_config show --brief

运行上面的命令之后,你的终端上就可以输出如下信息:

{
    "console_logging_format": "%(message)s", 
    "euler_angle_sequence": "sxyz", 
    "global_logfile_enabled": false, 
    "plot_axis_marker_scale": 0.0, 
    "plot_backend": "Qt5Agg", 
    "plot_export_format": "pdf", 
    "plot_figsize": [
        6, 
        6
    ], 
    "plot_fontfamily": "sans-serif", 
    "plot_fontscale": 1.0, 
    "plot_invert_xaxis": false, 
    "plot_invert_yaxis": false, 
    "plot_linewidth": 1.5, 
    "plot_multi_cmap": "none", 
    "plot_reference_alpha": 0.5, 
    "plot_reference_color": "black", 
    "plot_reference_linestyle": "--", 
    "plot_seaborn_palette": "deep6", 
    "plot_seaborn_style": "darkgrid", 
    "plot_split": false, 
    "plot_statistics": [
        "rmse", 
        "median", 
        "mean", 
        "std", 
        "min", 
        "max"
    ], 
    "plot_texsystem": "pdflatex", 
    "plot_trajectory_alpha": 0.75, 
    "plot_trajectory_cmap": "jet", 
    "plot_trajectory_linestyle": "-", 
    "plot_usetex": false, 
    "plot_xyz_realistic": true, 
    "ros_map_alpha_value": 1.0, 
    "ros_map_unknown_cell_value": 205, 
    "save_traj_in_zip": false, 
    "table_export_data": "stats", 
    "table_export_format": "csv", 
    "table_export_transpose": true
}

如果你想要对某一项参数进行修改,比如你想修改输出的图像格式,你可以使用如下命令:

evo_config set plot_export_format png

又比如你想做如下的操作:
1.将画图背景更改成白色网格

evo_config set plot_seaborn_style whitegrid

2.将字体改为衬线型并调为1.2倍大小

evo_config set plot_fontfamily serif plot_fontscale 1.2 

3.将画图所使用的线型改为 -

evo_config set plot_reference_linestyle - 

4.将所画图的图像大小调整为10 9(宽 高)

evo_config set plot_figsize 10 9 

5.当你想要将配置还原为默认时,只需要使用命令:

evo_config reset

当你对evo的使用有一个大致的理解之后,我觉得你再摸索和使用就会方便很多,当你看完本篇博客之后,如果你还想进一步了解它更细致的使用,你可以浏览的evo在github上的wiki,网址为:https://github.com/MichaelGrupp/evo/wiki

 

 

参考文献:

rosbag命令 | EVO工具 的使用_evo bag 绘制轨迹-CSDN博客

ROS 机器人技术 - rosbag 详细使用教程! - 知乎

evo安装、evo使用方法详细介绍使用教程,SLAM轨迹精度评估工具,如何用来评估ORB-SLAM2生成的轨迹精度,评估激光雷达SLAM与视觉SLAM的轨迹精度,量化SLAM的误差_怎么看evo是否安葬成功-CSDN博客

 

evo_res指令使用及各参数使用效果_evo res-CSDN博客

标签:plot,name,evo,--,bag,rosbag
From: https://www.cnblogs.com/Gaowaly/p/18514045

相关文章

  • GuassDB数据库的GRANT & REVOKE
    ​目录一、GaussDB的权限概述二、GaussDB权限设计建议三、GaussDB的GRANT命令1.功能说明2.注意事项3.常用语法四、GaussDB的REVOKE命令用法1.功能说明2.注意事项3.常用语法五、GaussDB示例1.GRANT语句示例2.REVOKE语句示例一、GaussDB的权限概述在数据库中,对象......
  • DevOps工具链组合推荐
    ###DevOps工具链组合推荐在当今的软件开发领域,DevOps已成为提高软件交付速度、提升产品质量、加强团队合作的关键策略。对于寻求实现快速开发和高效运营的团队而言,选择合适的DevOps工具链是至关重要的。一个理想的DevOps工具链应包括代码仓库、持续集成(CI)/持续部署(CD)工具、配置......
  • LevOJ P2081 矮人都城
    目录1.题目 1.1题目描述1.2输入输出格式1.3数据范围1.4样例2.算法标签(tag)3.题解3.1思路3.2AC代码1.题目 1.1题目描述1.2输入输出格式1.3数据范围1.4样例2.算法标签(tag)贪心,构造,数学3.题解3.1思路写这种题最关键的是什么?脑子要足够清晰!我们需要......
  • 【slam】kitti数据集转化为rosbag文件的过程
    主要参考https://blog.csdn.net/m0_45388819/article/details/108582312rosbagtopic映射:https://blog.csdn.net/u014374826/article/details/139784531kitti官网:https://www.cvlibs.net/datasets/kitti/raw_data.php过程命令:kitti2bag-t2011_09_26-r0009raw_synced(......
  • FunAudioLLM/SenseVoice
    Skiptocontent NavigationMenu Product Solutions Resources OpenSource Enterprise Pricing  SigninSignup  FunAudioLLM/SenseVoicePublicNotificationsFork 292 Star 3.2k CodeIssues64Pullr......
  • LevOJ P2084奇迹树脂
    题目概述:给定了函数f的表达式与函数g的表达式,给了T(T<=100)次询问,每次询问一个数n(n<=1e12),求g(n)的值,最终答案对1e9+7取模。tag:记忆化,递归,数学题解:首先我们需要知道取模的常识:1.(a+b)%mod=(a%mod+b%mod)%mod2.a*b%mod=a%mod*b%mod3.(a+b)%mod=(a+b+mod)%mod......
  • FEE-Frontiers in Ecology and Evolution
    @目录一、征稿简介二、重要信息三、服务简述四、投稿须知一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述FrontiersinEcologyandEvolution是一本经同行评议的基础科学和应用科学研究期刊,为自然和人类世界提供生态学和进化的见解。四、投稿须......
  • FEE-Frontiers in Ecology and Evolution
    @目录一、征稿简介二、重要信息三、服务简述四、投稿须知一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述FrontiersinEcologyandEvolution是一本经同行评议的基础科学和应用科学研究期刊,为自然和人类世界提供生态学和进化的见解。四、投稿须......
  • Kubesphere4.1创建DevOps项目流程
    目的:Kubesphere4.1创建DevOps项目自动化完成前置:1.已经完成完成DevOps插件2.完成Docker私人仓库的搭建(DockerHub国内访问有问题,最好自己搭建,可以选用DockerHarbor)一、创建DevOps项目1.安装完成DevOps插件后,刷新页面,点击创建。完成创建并保存。二、创建凭证 需要......
  • LevOJ.sln - Beyond course 1
    LevOJ.sln-problemsB1682[Usaco2005Mar]OutofHay干草危机问题描述解决方法P1033简单排序问题描述解决方法法一冒泡排序#include<stdio.h>voidbubble_sort(intn,intarr[]){for(inti=0;i<n;i++){for(intj=0;j<n-i......