181 lines
4.1 KiB
Bash
Executable File
181 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Source our workspace directory to load ENV variables
|
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
source ${SCRIPT_DIR}/../../../../devel/setup.bash
|
|
|
|
|
|
#=============================================================
|
|
#=============================================================
|
|
#=============================================================
|
|
|
|
|
|
# estimator configurations
|
|
modes=(
|
|
"mono"
|
|
"binocular"
|
|
"stereo"
|
|
)
|
|
|
|
# dataset locations
|
|
bagnames=(
|
|
# "indoor_forward_3_snapdragon_with_gt" # bag needs to end early as there is a hard landing
|
|
"indoor_forward_5_snapdragon_with_gt"
|
|
"indoor_forward_6_snapdragon_with_gt"
|
|
"indoor_forward_7_snapdragon_with_gt"
|
|
"indoor_forward_9_snapdragon_with_gt"
|
|
"indoor_forward_10_snapdragon_with_gt"
|
|
"indoor_45_2_snapdragon_with_gt"
|
|
"indoor_45_4_snapdragon_with_gt"
|
|
# "indoor_45_9_snapdragon_with_gt" # problem one, seems to fail part way in due to freefalling
|
|
"indoor_45_12_snapdragon_with_gt"
|
|
"indoor_45_13_snapdragon_with_gt"
|
|
"indoor_45_14_snapdragon_with_gt"
|
|
# "outdoor_forward_1_snapdragon_with_gt"
|
|
# "outdoor_forward_3_snapdragon_with_gt"
|
|
# "outdoor_forward_5_snapdragon_with_gt"
|
|
# "outdoor_45_1_snapdragon_with_gt"
|
|
)
|
|
|
|
# what sensor configuration each dataset has
|
|
# 0: indoor forward facing
|
|
# 1: indoor 45 degree downward facing
|
|
# 2: outdoor forward facing
|
|
# 3: outdoor 45 degree downward facing
|
|
sensorconfig=(
|
|
# indoor forward
|
|
# "0" # bag needs to end early as there is a hard landing
|
|
"0"
|
|
"0"
|
|
"0"
|
|
"0"
|
|
"0"
|
|
# indoor 45 degree
|
|
"1"
|
|
"1"
|
|
# "1" # problem one, seems to fail part way in due to freefalling
|
|
"1"
|
|
"1"
|
|
"1"
|
|
# outdoor forward and 45
|
|
# "2"
|
|
# "2"
|
|
# "2"
|
|
# "3"
|
|
)
|
|
|
|
# how far we should start into the dataset
|
|
# this can be used to skip the initial sections
|
|
bagstarttimes=(
|
|
# indoor forward
|
|
# "25"
|
|
"0"
|
|
"0"
|
|
"0"
|
|
"0"
|
|
"0"
|
|
# indoor 45 degree
|
|
"0"
|
|
"0"
|
|
# "17" # problem one, seems to fail part way in due to freefalling
|
|
"0"
|
|
"0"
|
|
"0"
|
|
# outdoor forward and 45
|
|
# "0"
|
|
# "0"
|
|
# "41"
|
|
# "21"
|
|
)
|
|
|
|
# threshold for variance to detect if the unit has moved yet
|
|
imuthreshold=(
|
|
# indoor forward
|
|
# "5.0"
|
|
"0.5"
|
|
"0.5"
|
|
"0.5"
|
|
"0.5"
|
|
"0.5"
|
|
# indoor 45 degree
|
|
"0.5"
|
|
"0.5"
|
|
# "4.0" # problem one, seems to fail part way in due to freefalling
|
|
"0.5"
|
|
"0.5"
|
|
"0.5"
|
|
# outdoor forward and 45
|
|
# "0.5"
|
|
# "0.5"
|
|
# "4.0"
|
|
# "4.0"
|
|
)
|
|
|
|
# location to save log files into
|
|
save_path1="/home/patrick/github/pubs_data/pgeneva/2020_openvins_2.4/exp_uzhfpv/algorithms"
|
|
save_path2="/home/patrick/github/pubs_data/pgeneva/2020_openvins_2.4/exp_uzhfpv/timings"
|
|
bag_path="/media/patrick/RPNG\ FLASH\ 2/uzhfpv_newer"
|
|
|
|
#=============================================================
|
|
#=============================================================
|
|
#=============================================================
|
|
|
|
|
|
# Loop through all modes
|
|
for h in "${!modes[@]}"; do
|
|
# Loop through all datasets
|
|
for i in "${!bagnames[@]}"; do
|
|
|
|
# Monte Carlo runs for this dataset
|
|
# If you want more runs, change the below loop
|
|
for j in {00..04}; do
|
|
|
|
# start timing
|
|
start_time="$(date -u +%s)"
|
|
filename_est="$save_path1/ov_2.4_${modes[h]}/${bagnames[i]}/${j}_estimate.txt"
|
|
filename_time="$save_path2/ov_2.4_${modes[h]}/${bagnames[i]}/${j}_timing.txt"
|
|
|
|
# number of cameras
|
|
if [ "${modes[h]}" == "mono" ]
|
|
then
|
|
temp1="1"
|
|
temp2="true"
|
|
fi
|
|
if [ "${modes[h]}" == "binocular" ]
|
|
then
|
|
temp1="2"
|
|
temp2="false"
|
|
fi
|
|
if [ "${modes[h]}" == "stereo" ]
|
|
then
|
|
temp1="2"
|
|
temp2="true"
|
|
fi
|
|
|
|
# run our ROS launch file (note we send console output to terminator)
|
|
roslaunch ov_msckf pgeneva_ros_uzhfpv.launch \
|
|
max_cameras:="$temp1" \
|
|
use_stereo:="$temp2" \
|
|
bag:="$bag_path/${bagnames[i]}.bag" \
|
|
bag_start:="${bagstarttimes[i]}" \
|
|
sensor_config:="${sensorconfig[i]}" \
|
|
init_imu_thresh:="${imuthreshold[i]}" \
|
|
dosave:="true" \
|
|
path_est:="$filename_est" \
|
|
dotime:="true" \
|
|
path_time:="$filename_time" &> /dev/null
|
|
|
|
|
|
# print out the time elapsed
|
|
end_time="$(date -u +%s)"
|
|
elapsed="$(($end_time-$start_time))"
|
|
echo "BASH: ${modes[h]} - ${bagnames[i]} - run $j took $elapsed seconds";
|
|
|
|
done
|
|
|
|
|
|
done
|
|
done
|
|
|
|
|