rosbag命令 | EVO工具 的使用

目录

 一 rosbag录制及查看

1 rosbag话题录制

2 rosbag信息查看

3 rosbag转换格式(bag2txt)

4 rosbag截取录制时间

二 EVO工具使用命令

1 evo_traj 命令

2 evo_ape命令

3 evo_rpe命令

3 evo_config命令

4 evo_res命令

5 evo_fig命令


 一 rosbag录制及查看

1 rosbag话题录制

rosbag record -a #录制所有的话题
rosbag record -a test.bag #录制所有的话题,到指定包名下

rosbag record /topic1 /topic2 -o  #录制指定话题
rosbag record /topic1 /topic2 -o text.bag #录制指定话题,到指定包名下

2 rosbag信息查看

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

3 rosbag转换格式(bag2txt)

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

4 rosbag截取录制时间

rosbag filter input.bag output.bag "t.secs <= 1284703931.86"
#截取1284703931.86(机器时间)之前时刻
rosbag filter input.bag output.bag "t.secs >= 1531425960 and t.secs <= 1531426140"
#截取所设置的时间范围内rosbag

二 EVO工具使用命令

1 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 )

2 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:标准差。

3 evo_rpe命令

evo_rpe是相对位姿评估工具,evo_ape是绝对位姿评估工具。
两者使用方式基本一样,笔者在此不做赘述。

3 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 将参数还原到默认值

4 evo_res命令

结果评估工具(待更新)

5 evo_fig命令

绘图查看工具(待更新)

ps:通过-h 可以查看对应工具的可选参数,包括:轨迹对齐、可视化坐标、尺度对齐等等。
 

15-bag的录制,回放与解析_划过星空20216的博客-CSDN博客_解析bag文件

rosbag相关操作_ros 查看topic信息_猪猪侠的猪猪女孩的博客-CSDN博客

SLAM和里程计评估工具——evo_yuntian_li的博客-CSDN博客_evo 只看z轴

SLAM轨迹精度评估工具evo使用方法_wongHome的博客-CSDN博客_evo评估slam

SLAM精度评定工具EVO使用方法详解_wongHome的博客-CSDN博客_evo slam

猜你喜欢

转载自blog.csdn.net/weixin_68647501/article/details/128859331