-
Notifications
You must be signed in to change notification settings - Fork 400
/
run_tests.sh
executable file
·76 lines (69 loc) · 3.65 KB
/
run_tests.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/bash
BASE_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd $BASE_DIRECTORY > /dev/null
PACKAGEDIR=`rospack find rgbdslam`/
if [[ "$1" == "" ]]; then
echo "This script will run rgbdslam on all bagfiles in this directory."
echo "Usage: $0 <Directory for results>"
TESTNAME=`date +%Y-%m-%d_%H:%M`
echo "No directory given, using $TESTNAME."
sleep 2
else
TESTNAME=$1
fi
export ROS_MASTER_URI=http://localhost:11386
#roscore -p 11386&
#ROSCOREPID=$!
#echo Waiting for roscore
#sleep 3
for CANDIDATES in 8 16 4; do
for OBS_EVAL in 0.70 0.00 0.90; do
for RANSAC_ITER in 500; do
for DISTANCEMSR in false; do
for OPT_SKIP in 1 1000000; do #online/offline
for FEAT_TYPE in SIFTGPU; do
echo Evaluating $FEAT_TYPE
echo "Will evaluate RGBD-SLAM on the following bagfiles:"
SELECTION=`ls *.bag`
echo $SELECTION
for MAXFEATURES in 300 600; do
#PARAM_DIRECTORY="$BASE_DIRECTORY/$1/emm__$OBS_EVAL/CANDIDATES_$CANDIDATES/RANSAC_$RANSAC_ITER/SOLVER_$DISTANCEMSR/NN_$NN_RATIO/OPT_SKIP_$OPT_SKIP/${FEAT_TYPE}/${MAXFEATURES}_Features/"
PARAM_DIRECTORY="$BASE_DIRECTORY/$TESTNAME/emm__$OBS_EVAL/CANDIDATES_$CANDIDATES/RANSAC_$RANSAC_ITER/HellingerDistance_$DISTANCEMSR/NN_0.9/OPT_SKIP_$OPT_SKIP/${FEAT_TYPE}/${MAXFEATURES}_Features/"
for bagfile in $SELECTION; do
BASE_NAME=`basename $bagfile .bag`
DIRECTORY="$PARAM_DIRECTORY/$BASE_NAME"
LAUNCHFILE=`rospack find rgbdslam`/test/test_settings.launch
mkdir -p $DIRECTORY
if zgrep -q Coordinate $DIRECTORY/*estimate.txt.gz 2> /dev/null; then
echo There are already results for $BASE_NAME in $DIRECTORY. Will skip this bagfile >&2
continue #don't overwrite existing results
fi
if grep -q Coordinate $DIRECTORY/*estimate.txt* 2> /dev/null; then
echo There are already results for $BASE_NAME in $DIRECTORY. Will skip this bagfile >&2
continue #don't overwrite existing results
fi
#Remove old summary results if a new individual one is computed (will be recomputed further below)
rm $PARAM_DIRECTORY/ate_evaluation_*.csv
echo `date +%H:%M:%S` Results for $BASE_NAME are stored in `readlink -f $DIRECTORY`
roslaunch rgbdslam `basename $LAUNCHFILE` bagfile_name:=`readlink -f $bagfile` match_candidates:=$CANDIDATES sampled_candidates:=$CANDIDATES feature_type:=$FEAT_TYPE max_keypoints:=$MAXFEATURES ransac_iterations:=$RANSAC_ITER optimizer_skip_step:=$OPT_SKIP observability_threshold:=$OBS_EVAL use_root_sift:=$DISTANCEMSR gui:=false > $DIRECTORY/logfile 2>&1
#rosparam get /rgbdslam/config >> $DIRECTORY/logfile 2>&1
echo `date +%H:%M:%S` Finished processing $BASE_NAME
#Move Result files, run evaluation routine
mv ${bagfile}?* $DIRECTORY/
cp ${BASE_NAME}-groundtruth.txt $DIRECTORY/
cp $LAUNCHFILE $DIRECTORY/settings.xml #renamed to avoid name conflict with original file in roslaunch command
#cp `readlink -f $0` $DIRECTORY/`basename $0`
pushd $DIRECTORY > /dev/null
test -e logfile.gz && mv logfile.gz logfile-failed.gz # retain one previous run
gzip logfile
popd > /dev/null
done
$PACKAGEDIR/rgbd_benchmark/summarize_evaluation.sh $PARAM_DIRECTORY
done
done
done
done
done
done
done
popd > /dev/null