EVO自动处理SLAM数据脚本

evo_ape 和 evo_res 自动处理


在做KITTI数据集的SLAM实验时遇到大量数据需要处理,因此写了脚本自动处理。

1. evo_ape 批量处理

同一个文件夹中创建evo_zip.sh ,该文件夹有orb00.txt,orb01.txt,…;dyna00.txt,dyna01.txt,… ;… 等文件

touch evo_zip.sh
gedit evo_zip.sh
# 写入下面脚本
for name in {
    
    "orb","dyna","our"}
do
	index=0
	for index in {
    
    0..9}
	do
		gtstr="gt0"${
    
    index}".txt"
		orbstr=${
    
    name}"0"${
    
    index}".txt"
		orbzipstr="zip/"${
    
    name}"0"${
    
    index}".zip"
		evo_ape kitti ${
    
    gtstr} ${
    
    orbstr} -va --plot_mode=xz --save_results ${
    
    orbzipstr}
	done
	index=10
	gtstr="gt"${
    
    index}".txt"
	orbstr=${
    
    name}${
    
    index}".txt"
	orbzipstr="zip/"${
    
    name}${
    
    index}".zip"
	evo_ape kitti ${
    
    gtstr} ${
    
    orbstr} -va --plot_mode=xz --save_results ${
    
    orbzipstr}
done

执行

sudo chmod +x evo_zip.sh
./evo_zip.sh

2. evo_res 批量处理

同一个文件夹中创建evo_rej.sh,该文件夹有上一步生成的orb00.zip,orb01.zip,…;dyna00.zip,dyna01.zip,… ;…

touch evo_res.sh
gedit evo_res.sh
# 写入下面脚本
mkdir evo_res
index=0
for index in {
    
    0..10}
do
	# 小于等于9
	if [ $index -le 9 ];then
		cd evo_res 
		mkdir ${
    
    index}
		cd ..
		
		savestr="evo_res/${index}/0"${
    
    index}".svg"
		orbstr="orb0"${
    
    index}".zip"
		dynastr="dyna0"${
    
    index}".zip"
		ourstr="our0"${
    
    index}".zip"
		evo_res ${
    
    orbstr} ${
    
    dynastr} ${
    
    ourstr} --use_rel_time --ignore_title --save_plot ${
    
    savestr}
		
	# 等于10
	elif [ $index -eq 10 ];then	
		cd evo_res 
		mkdir ${
    
    index}
		cd ..
		
		savestr="evo_res/${index}/"${
    
    index}".svg"
		orbstr="orb"${
    
    index}".zip"
		dynastr="dyna"${
    
    index}".zip"
		ourstr="our"${
    
    index}".zip"
		evo_res ${
    
    orbstr} ${
    
    dynastr} ${
    
    ourstr} --use_rel_time --ignore_title --save_plot ${
    
    savestr}
	fi
done

执行

sudo chmod +x evo_res.sh
./evo_res.sh

Guess you like

Origin blog.csdn.net/ainitutu/article/details/122241831