rosbag&evo
本文主要介绍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命令
学习evo_res指令的使用
参数含义
查看帮助
evo_res --help
usage: evo_res [-h] [--merge] [--use_rel_time] [--use_filenames]
[--ignore_title] [-p] [--plot_markers] [--save_plot SAVE_PLOT]
[--serialize_plot SERIALIZE_PLOT] [--save_table SAVE_TABLE]
[--logfile LOGFILE] [--no_warnings] [-v] [--silent] [--debug]
[-c CONFIG]
result_files [result_files ...]tool for processing one or multiple result files (c) evo authors
positional arguments:
result_files one or multiple result filesoptional arguments:
-h, --help show this help message and exit
--merge merge the results into a single one
--use_rel_time use relative timestamps if available
--use_filenames use the filenames to label the data
--ignore_title don't try to find a common metric titleoutput options:
-p, --plot show plot window
--plot_markers plot with circle markers
--save_plot SAVE_PLOT
path to save plot
--serialize_plot SERIALIZE_PLOT
path to serialize plot (experimental)
--save_table SAVE_TABLE
path to a file to save the results in a table
--logfile LOGFILE Local logfile path.usability options:
--no_warnings no warnings requiring user confirmation
-v, --verbose verbose output
--silent don't print any output
--debug verbose output with additional debug info
-c CONFIG, --config CONFIG
.json file with parameters (priority over command line
翻译之后
evo_res --help
usage: evo_res [-h] [--merge] [--use_rel_time] [--use_filenames]
[--ignore_title] [-p] [--plot_markers] [--save_plot SAVE_PLOT]
[--serialize_plot SERIALIZE_PLOT] [--save_table SAVE_TABLE]
[--logfile LOGFILE] [--no_warnings] [-v] [--silent] [--debug]
[-c CONFIG]
result_files [result_files ...]
tool for processing one or multiple result files (c) evo authors
用于处理一个或多个结果文件的工具(c)evo作者
positional arguments:位置参数:
result_files one or multiple result filesresult_file一个或多个结果文件
optional arguments:可选参数:
-h, --help show this help message and exit 显示此帮助消息并退出
--merge merge the results into a single one将结果合并为一个结果
--use_rel_time use relative timestamps if available可以的话请使用相对时间戳
--use_filenames use the filenames to label the data使用文件名标记数据
--ignore_title don't try to find a common metric title不尝试查找通用度量标题
output options:输出选项:
-p, --plot show plot window绘图显示绘图窗口
--plot_markers plot with circle markers使用圆形标记打印
--save_plot SAVE_PLOT
path to save plot保存绘图的路径
--serialize_plot SERIALIZE_PLOT
path to serialize plot (experimental)序列化绘图的路径(实验)
--save_table SAVE_TABLE
path to a file to save the results in a table将结果保存在表中的文件的路径
--logfile LOGFILE Local logfile path.本地日志文件路径。
usability options:可用性选项:
--no_warnings no warnings requiring user confirmation无需用户确认的警告
-v, --verbose verbose output详细输出
--silent don't print any output不打印任何输出
--debug verbose output with additional debug info使用附加调试信息调试详细输出
-c CONFIG, --config CONFIG
.json file with parameters (priority over command line带有参数的.json文件(优先级高于命令行效果演示
按需使用
以VINS的输出轨迹为例,演示各参数实际效果
evo_res no_l.zip l.zip
$ evo_res no_l.zip l.zip
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
evo_res no_l.zip l.zip -v
-v, --verbose verbose output详细输出
$ evo_res no_l.zip l.zip -v
Loading result from no_l.zip ...
Loading result from l.zip ...
--------------------------------------------------------------------------------
Aggregated dataframe:
vins_result_no_loop.txt vins_result_loop.txt
info est_name vins_result_no_l... vins_result_loop...
label APE (m) APE (m)
ref_name gt.txt gt.txt
title APE w.r.t. trans... APE w.r.t. trans...
np_arrays error_array [0.2435494878540... [0.2465613955623...
seconds_from_start [0.0, 0.13390660... [0.0, 0.53564167...
timestamps [1627729515.8364... [1627729518.7817...
stats max 0.438398 0.384438
mean 0.148959 0.156007
median 0.131542 0.141948
min 0.0218703 0.0109087
rmse 0.170383 0.185972
sse 3.33851 0.795467
std 0.0827144 0.10123
--------------------------------------------------------------------------------APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
输出相关指令
evo_res no_l.zip l.zip -p
-p, --plot show plot window绘图显示绘图窗口
$ evo_res no_l.zip l.zip -p
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
绘图共有5个标签。
evo_res no_l.zip l.zip -p --plot_markers
--plot_markers plot with circle markers使用圆形标记打印
$ evo_reso_l.zip l.zip -p --plot_markers
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
加了--plot_markers之后主要是在raw绘图使用大圆点这一差别。
evo_res no_l.zip l.zip --save_plot ./plot.pdf
--save_plot SAVE_PLOT path to save plot保存绘图的路径
$ evo_res no_l.zip l.zip --save_plot ./plot.pdf
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123Plots saved to ./plot.pdf
save_plot保存图片为pdf文件,SAVE_PLOT不要用文件夹路径或者其他文件后缀名的路径,最好是pdf文件后缀的路径或者无后缀的文件的路径。
evo_res no_l.zip l.zip --serialize_plot ./serial
--serialize_plot SERIALIZE_PLOT
path to serialize plot (experimental)序列化绘图的路径(实验)
$ evo_res no_l.zip l.zip --serialize_plot ./serial
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
当前文件夹下生成一个serial文件,内容无法直观理解。
evo_res no_l.zip l.zip --save_table ./table.txt
--save_table SAVE_TABLE
path to a file to save the results in a table将结果保存在表中的文件的路径
$ evo_res no_l.zip l.zip --save_table ./table.txt
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
保存结果到table.txt文件中,文件内容:
,max,mean,median,min,rmse,sse,std
vins_result_no_loop.txt,0.4383977275594648,0.1489591297376942,0.13154172411967663,0.021870345732747924,0.1703833880551451,3.338507376392269,0.08271442796114209
vins_result_loop.txt,0.38443759977911424,0.15600665868307592,0.14194846352691584,0.01090871540602807,0.1859718638015804,0.7954672848941721,0.10122972178355431
evo_res no_l.zip l.zip --logfile ./log
--logfile LOGFILE Local logfile path本地日志文件路径
$ evo_res no_l.zip l.zip --logfile ./log
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
保存结果到本地文件中,文件内容包含-v参数的输出结果和简单的[DEBUG]信息。
其他参数
evo_res no_l.zip l.zip --use_filenames
--use_rel_time use relative timestamps if available可以的话请使用相对时间戳
$ evo_res no_l.zip l.zip --use_filenames
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse sse \
no_l.zip 0.438398 0.148959 0.131542 0.0218703 0.170383 3.33851
l.zip 0.384438 0.156007 0.141948 0.0109087 0.185972 0.795467std
no_l.zip 0.0827144
l.zip 0.10123
evo_res no_l.zip l.zip --ignore_title
--ignore_title don't try to find a common metric title不尝试查找通用度量标题
$ evo_res no_l.zip l.zip --ignore_title
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
evo_res no_l.zip l.zip --silent
--silent don't print any output不打印任何输出
$ evo_res no_l.zip l.zip --silent
evo_res no_l.zip l.zip --debug
--debug verbose output with additional debug info使用附加调试信息调试详细输出
$ evo_res no_l.zip l.zip --debug
[DEBUG][2023-12-12 20:39:55,923][log.configure_logging():114]
System info:
Python 2.7.17
Linux-5.4.0-113-generic-x86_64-with-Ubuntu-18.04-bionic
[DEBUG][2023-12-12 20:39:55,923][main_res.run():132]
main_parser config:
{'config': None,
'debug': True,
'ignore_title': False,
'logfile': None,
'merge': False,
'no_warnings': False,
'plot': False,
'plot_markers': False,
'result_files': ['no_l.zip', 'l.zip'],
'save_plot': None,
'save_table': None,
'serialize_plot': None,
'silent': False,
'use_filenames': False,
'use_rel_time': False,
'verbose': False}[DEBUG][2023-12-12 20:39:55,924][file_interface.load_res_file():358]
Loading result from no_l.zip ...
[DEBUG][2023-12-12 20:39:55,928][file_interface.load_res_file():358]
Loading result from l.zip ...
[DEBUG][2023-12-12 20:39:55,933][main_res.run():202]
--------------------------------------------------------------------------------
[DEBUG][2023-12-12 20:39:55,936][main_res.run():204]
Aggregated dataframe:
vins_result_no_loop.txt vins_result_loop.txt
info est_name vins_result_no_l... vins_result_loop...
label APE (m) APE (m)
ref_name gt.txt gt.txt
title APE w.r.t. trans... APE w.r.t. trans...
np_arrays error_array [0.2435494878540... [0.2465613955623...
seconds_from_start [0.0, 0.13390660... [0.0, 0.53564167...
timestamps [1627729515.8364... [1627729518.7817...
stats max 0.438398 0.384438
mean 0.148959 0.156007
median 0.131542 0.141948
min 0.0218703 0.0109087
rmse 0.170383 0.185972
sse 3.33851 0.795467
std 0.0827144 0.10123
[DEBUG][2023-12-12 20:39:55,936][main_res.run():207]
--------------------------------------------------------------------------------
[INFO][2023-12-12 20:39:55,936][main_res.run():209]APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
[INFO][2023-12-12 20:39:55,938][main_res.run():210]
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
效果不明显的参数
受限于笔者所使用的zip,有些指令的效果并不明显。
evo_res no_l.zip l.zip --use_rel_time
可以的话请使用相对时间戳
$ evo_res no_l.zip l.zip --use_rel_time
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
evo_res no_l.zip l.zip --no_warnings
--no_warnings no warnings requiring user confirmation无需用户确认的警告
$ evo_res no_l.zip l.zip --no_warnings
APE w.r.t. translation part (m)
(with Sim(3) Umeyama alignment)
max mean median min rmse \
vins_result_no_lo... 0.438398 0.148959 0.131542 0.0218703 0.170383
vins_result_loop.txt 0.384438 0.156007 0.141948 0.0109087 0.185972sse std
vins_result_no_lo... 3.33851 0.0827144
vins_result_loop.txt 0.795467 0.10123
无警告,因此no_warnings的效果不明显。
总结
1.evo_res可以处理多条轨迹
evo_res no_l.zip l.zip result3.zip -p
2.详细数据使用-v参数,但是也没有多么详细。
3.绘图
evo_res no_l.zip l.zip -p
保存图片使用 --save_plot SAVE_PLOT参数。
5. evo_fig命令
`evo_fig` 是 EVO 工具集中的一个实验性工具,其主要作用是用于重新打开之前使用 `--serialize_plot` 选项保存的序列化图。这个功能允许用户在不重新运行原始分析的情况下,重新加载和查看序列化后的图形。以下是 `evo_fig` 的主要用法:
1. 重新打开序列化图:
使用 `evo_fig` 命令,后跟序列化图的文件路径,可以重新打开该图。例如,如果之前使用 `evo_ape` 或 `evo_rpe` 命令生成并保存了一个序列化图,可以使用以下命令重新打开它:
evo_fig path_to_serialized_plot
这里 `path_to_serialized_plot` 是序列化图文件的路径。
2. 查看和分析图形:
重新打开的图形可以用于进一步的查看和分析,这在需要对图形进行详细检查或展示时非常有用。
`evo_fig` 命令不常用于日常的 EVO 操作,因为它主要针对的是已经生成并序列化的图形。这个工具在需要回顾或共享序列化图形时特别有用,因为它允许用户在没有原始数据或分析环境的情况下查看图形。
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 详细使用教程! - 知乎