#!/bin/bash

# example: prepare_logs.sh aces
dataset="$1"

set -e # exit on error
set -o pipefail

chunks_interval=15
chunks_length=30

chunk_dir="${dataset}_chunks"

echo "Creating directory ${chunk_dir}"
mkdir -p ${chunk_dir}

source script_variables.sh

echo "Unzipping ${log_original}.bz2 to ${log_original}"
bunzip2 < ${log_original}.bz2 > ${log_original}
echo "Unzipping ${log_sm}.bz2 to ${log_sm}"
bunzip2 < ${log_sm}.bz2 > ${log_sm}
echo "Unzipping ${log_slam}.bz2 to ${log_slam}"
bunzip2 < ${log_slam}.bz2 > ${log_slam}

echo "Recovering true_pose of data in ${log_sm} from ground truth in ${log_slam}"
${ld_recover} -in ${log_sm} -ref ${log_slam} > ${log_sm_rec}

echo "Splitting scan matching file ${log_sm_rec} in chunks, "
echo "every ${chunks_interval}m and of length ${chunks_length}m."
echo "Chunks are created in ${chunk_dir}"
${fts_log_split}  -file_sm ${log_sm_rec}     \
	-file_out_pattern ${chunk_dir}/%03d  \
	-length ${chunks_length}                           \
	-interval ${chunks_interval}

echo "Now creating odometry chunks from original log."
for chunk in ${chunk_dir}/???; do
	echo "Processing chunk ${chunk}"
	${fts_log_recover} -big ${log_original} -chunk ${chunk} -out ${chunk}.odo
done

echo "Now creating a copy of the files in Carmen format (for MCL)."
for chunk in ${chunk_dir}/???; do
	echo "Processing chunk ${chunk}"
	# convert to Carmen format
	${json2carmen} <  ${chunk} | sed s/nan/1.0e+16/g >  ${chunk}.clf
	${json2carmen} < ${chunk}.odo | sed s/nan/1.0e+16/g > ${chunk}.odo.clf
done








