% Created 2013-02-04 Mon 19:17
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fixltx2e}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{float}
\usepackage{wrapfig}
\usepackage{soul}
\usepackage{textcomp}
\usepackage{marvosym}
\usepackage{wasysym}
\usepackage{latexsym}
\usepackage{amssymb}
\usepackage{hyperref}
\tolerance=1000
\providecommand{\alert}[1]{\textbf{#1}}

\title{Basalt Hills 2012 Data Set}
\author{Lorenzo Fl\"uckiger}
\date{February 1, 2013}
\hypersetup{
  pdfkeywords={},
  pdfsubject={},
  pdfcreator={Emacs Org-mode version 7.8.11}}

\begin{document}

\maketitle

\setcounter{tocdepth}{2}
\tableofcontents
\vspace*{1cm}

\emph{Note: this file contains multiple hyperlinks:}
\begin{itemize}
\item if the full data set was downloaded, then the links will work directly
\item for IRG use, the data set information files need to be checkout on a computer
   mounting \verb~/irg~:
\end{itemize}

\begin{verbatim}
svn co https://babelfish.arc.nasa.gov/svn/roversw/data/KrexDataBasaltHills2012
\end{verbatim}

\section{Introduction}
\label{sec-1}


The Intelligent Robotics Group (IRG) conducted an engieering field test
with the K-Rex rover during the first week of October 2012. The field test
took place at the Basalt Hills quarry, California. A large amount of data
useful for research in mapping, localization, and navigation has been
collected during this experiment.
\subsection{K-Rex Rover}
\label{sec-1-1}


K-Rex is a four wheel drive, four wheel steer vehicle with a wheelbase of
\~{}1.8m and track of \~{}1.4m, with ATV wheels 26in in diameter. Its overall
size is approximately 2.0m x 1.6m and it weighs about 300kg with all its
instrumentation. Its mast top is at 1.7 from the ground.

For this field experiment, the rover was equiped with a pair of stereo
cameras, a 32 beam laser scanner, two different IMUs, a differential GPS
and a compass. The specification of the instruments are listed in \hyperref[sec-3]{Sensor References}. Photos
in
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/BH2012_FrontView.jpg}{ Figure \ref{ImgFrontView} }
and
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/BH2012_BackView.jpg}{ Figure \ref{ImgBackView} }
show K-Rex as it was outfitted
for the field test. The short video \href{file://../media/BasaltHills2012_ExtremeDriving.mov}{BasaltHills2012\_ExtremeDriving.mov}
illustrates the K-Rex terrain capabilities.

\begin{figure}[htb]
\centering
\includegraphics[width=0.8\textwidth]{./pictures/BH2012_FrontView.jpg}
\caption{\label{ImgFrontView}View of K-Rex from the front}
\end{figure}

\begin{figure}[htb]
\centering
\includegraphics[width=0.8\textwidth]{./pictures/BH2012_BackView.jpg}
\caption{\label{ImgBackView}View of K-Rex from the back}
\end{figure}
\subsection{Field Site}
\label{sec-1-2}


The
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/SiteOverview.png}{ Basalt Hills site (Figure \ref{ImgSiteLoc}) }
is an inactive quarry located next to the San Luis
Reservoir, California. It is \href{https://maps.google.com/maps?saddr%3DParsons%2BAve&daddr%3DUnknown%2Broad&hl%3Den&ll%3D37.034694,-121.089592&spn%3D0.074614,0.088749&sll%3D37.416996,-122.06376&sspn%3D0.00928,0.011094&geocode%3DFUf4OgIdKnO5-A%253BFYXvNAIdFijI-A&mra%3Dme&mrsp%3D0&sz%3D17&t%3Dh&z%3D14}{conviniently located at a 1h40min drive} from
the Ames Research Center. The
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/BasaltHillsSite.jpg}{ Figure \ref{ImgSiteView} }
shows an overview of the quarry.

The bottom of the quarry extends on more than 250m and spreads on multiple
layers. Very little vegetation grows in the quarry and the site contains
several interesting terrain features (flat, obstacles, cliffs, slopes,
corridors, etc.). The rover terrain capability allows to reach different
layers of the quarry and descent \~{}15deg slopes. Typically, the last
experiment contains multiple loops on 3 different layers.

\begin{figure}[htb]
\centering
\includegraphics[width=0.8\textwidth]{./pictures/SiteOverview.png}
\caption{\label{ImgSiteLoc}Basalt Hills Site Location}
\end{figure}

\begin{figure}[htb]
\centering
\includegraphics[width=0.8\textwidth]{./pictures/BasaltHillsSite.jpg}
\caption{\label{ImgSiteView}Basalt Hills Site Overview}
\end{figure}
\subsection{Experiment}
\label{sec-1-3}


The primary goal of the field experiment was to collect a large data set
of stereo images and laser scanner, together with accurate Inertial
Measurement System (INS) information to support mapping and navigation
work.

For this field test the rover was not driving autonomously, but was
controlled using a joystick by a driver with direct view of the
rover. This allowed to maximize both the amount of data collected and its
quality (by following interesting paths), without being affected by any
effect of the autonomous navigation normally used.

The \href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/BH2012_Walk.jpg}{Basalt Hill Walk} photo shows the typical operation mode with one
driver and one safety person behind the rover on a path overlooking the
bottom of the quary. The video \href{file://../media/BasaltHills2012_VerveData.mov}{BasaltHills2012\_VerveData.mov} shows
graphically the data collected using the 3D viewwer VERVE.

The result of the experiment is data collected mostly from five rover
traverses ranging from 1km to 3km, totalling 11.4km. The
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/pictures/BasaltHills2012_KrexTracks.png}{ screen shot on Figure \ref{ImgKmlTracks} }
gives an overview of the tracks followed, while the
\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/BasaltHills2012.kml}{Basal Hills 2012 KML file} allows to load the tracks in Google Earth for
closer examination. Each KML track is referenced with an icon that
contains basic information about the track.

\begin{figure}[pb]
\centering
\includegraphics[width=\textwidth]{./pictures/BasaltHills2012_KrexTracks.png}
\caption{\label{ImgKmlTracks}Overview of K-Rex main tracks for the field test}
\end{figure}


Experiments are referenced by their date plus a number with the following
format: \verb~YYYY-MM-DD_N~.
\subsubsection{\href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-05_1.kml}{Log 2012-10-05\_1}}
\label{sec-1-3-1}

Short loop, staying at the bottom of the quarry (single level), with 2
small loops around mounts.
\subsubsection{\href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-06_1.kml}{Log 2012-10-06\_1}}
\label{sec-1-3-2}

Simple short traverse, without loop, following a quarry cliff and going
through a small ``valley'' at the end. The path choosen exposes a lot of
high 3D features.
\subsubsection{\href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-06_3.kml}{Log 2012-10-06\_3} and \href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-06_4.kml}{log 2012-10-06\_4}}
\label{sec-1-3-3}

Single long loop with local loops and running on 3 levels of the
quarry. This is the only traverse that contains data of the Xsens IMU and
HMR3000 compass in addition to the Honeywell IMU. Unfortunately the data
set is split into 2 files. The 2 data logs \verb~2012-10-06_3~ and
\verb~2012-10-06_4~ need to be combined to form a full large loop. However each
log can also be considered in isolation. For example on \verb~2012-10-06_4~
the rover goes down a slope that can simulate a crater descent.
\subsubsection{\href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-04_5.kml}{Log 2012-10-04\_5} and \href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-04_5.kml}{log 2012-10-04\_5}}
\label{sec-1-3-4}

Medium size loops running on 2 and 3 levels. This data sets do not include
the Xsens IMU and HMR3000 compass and the system may be less tuned than
for the \verb~2012-10-06_[3,4]~ runs. However because the data set are smaller
and without interruption, they can still be useful.
\subsubsection{\href{file://../textRoverPositions/kmls_ins+relative_32mZoffset/krex_poses_2012-10-05_2.kml}{Log 2012-10-05\_2}}
\label{sec-1-3-5}

Traverse of very rough terrain and climbing steep slopes. This run was
performed to test the mobility of the rover and is probably not suitable
for mapping or navigation. There may be operators appearing in the field
of view of the sensors.
\section{Data Set Organization}
\label{sec-2}


K-Rex robot controller is build with IRG RoverSW that uses the OMG \href{http://www.omg.org/technology/documents/dds_spec_catalog.htm}{Data Distribution Service} (DDS) standard and \href{http://robotapi.sourceforge.net/}{RAPID} for all telemetry within the
rover and to the external world. RAPID is an Open-Source set of NASA
standardized messages and utilities for the robotic domain, which uses the
DDS transport mechanism. All RAPID messages are captured during the
experiment using DDS utilities.

The data is organized as followed under the current directory:
\begin{itemize}
\item \texttt{rtiDdsLogs}: raw log file from the experiment (17GB)
\item \texttt{pgmCameraImages}: stereo images (38GB)
\item \texttt{textRoverPositions}: CSV and KML rover positions (440MB)
\item \texttt{configuration}: configuration files
\end{itemize}
\subsection{Experiment data}
\label{sec-2-1}


The data captured during the experiment is stored under the \verb~rtiDdsLogs~
directory, with one sub-directory per day (which can contain multiple
logs). These log files contains all messages as a binary SQL database dump
and can be ``replayed'' using the
\href{http://www.rti.com/products/tools/recording-service.html}{RTI rtireplay} excecutable. Each
sub-directory also contains a \verb~types~ directory containing the XML DDS
(RAPID API) data type information.

\verb~rtireplay~ is a powerful tool that will generate all the messages in the
exact same way that during the experiment. However it requires a RTI
license. IRG plans to release an Open-Source version of a similar tool to
facilitate the use of the raw data files.

For simple usage, position information of the robot has been extracted and
is contained in easily parsable \hyperref[sec-2-3]{CSV files}. It should be noted that the raw
data files contain all the robot telemetry and a low resolution JPEG
version of the images. The \hyperref[sec-2-2]{raw stereo images} are available as a separate
set (under \verb~pgmCameraImages~).

The following data is available in the raw files:
\subsubsection{Sensors}
\label{sec-2-1-1}



\begin{center}
\footnotesize
\begin{tabular}{lll}
\hline
 Sensor            &  DDS Topic Name                                            &  Description                              \\
\hline
 wheel encoders    &  \texttt{rapid\_joint\_sample}                             &  wheel positions                          \\
 differential GPS  &  \texttt{rapid\_gps\_sample}                               &  GPS information from the OEM-3           \\
 compass           &  \texttt{rapid\_float32\_sample-hmr}                       &  HMR 3000 compass                         \\
 left camera       &  \texttt{rapid\_imagesensor\_sample-hazcam\_front\_left}   &  subsampled jpeg left stereo image        \\
 right camera      &  \texttt{rapid\_imagesensor\_sample-hazcam\_front\_right}  &  subsampled jped right stereo image       \\
 INS               &  \texttt{rapid\_position\_sample-ins}                      &  Novatel INS (Honeywell IMU + OEM-3 GPS)  \\
 laser scanner     &  \texttt{rapid\_rangescan\_sample}                         &  32 beam Veolodyne LIDAR                  \\
\hline
\end{tabular}
\end{center}


    
\subsubsection{Derived data}
\label{sec-2-1-2}



\begin{center}
\footnotesize
\begin{tabular}{lll}
\hline
 Producer            &  DDS Topic Name                                  &  Description                                \\
\hline
 dead reckoning      &  \texttt{rapid\_float32\_sample-deadReckoning}   &  dead reckoning position                    \\
 RASM mapper         &  \texttt{rapid\_geometrymesh\_sample}            &  3D mesh from RASM mapper                   \\
 ARC C2 Mapper       &  \texttt{rapid\_navmap\_sample}                  &  2.5D navigation map                        \\
                     &  \texttt{rapid\_navmap\_sample-cspace\_tiled}    &  mapping specific pose                      \\
                     &  \texttt{rapid\_navmap\_sample-localmap\_tiled}  &  mapping specific pose                      \\
 stereo              &  \texttt{rapid\_pointcloud\_sample}              &  Output of stereo                           \\
 position estimator  &  \texttt{rapid\_position\_sample}                &  Pose estimation from INS + dead reckoning  \\
 position estimator  &  \texttt{rapid\_position\_sample-relative}       &  Pose estimation from IMU + dead reckoning  \\
\hline
\end{tabular}
\end{center}
\subsection{Stereo images sets}
\label{sec-2-2}


Images captured during the experiment are stored at full resolution in PGM
format under \verb~pgmCameraImages~. There is a sub-directory for each file
log. Image filenames have the following pattern:
\texttt{hazam\_front[0,1]-DECIMAL.NUMBER.pgm}
\begin{itemize}
\item 0 = left image
\item 1 = right image
\item DECIMAL.NUMBER = time stamp
\end{itemize}
\subsection{Extracted position information}
\label{sec-2-3}


Key position information of K-Rex for each experiment has been extracted
under \verb~textRoverPositions~. These files expose basic information to use
the data set without setting up a DDS-RAPID environement for log replay.
\subsubsection{Files organization}
\label{sec-2-3-1}


\begin{description}
\item[\texttt{./textRoverPositions/}] Directory with extracted rover positions
\item[\texttt{krex\_poses\_2012-10-0?\_?.stat}] Information about the corresponding
      RAPID log file \verb~./rtiDdsLog/2012-1-0#1/RapidLogDatabase-KRex_#2_0~
\item[\texttt{kml\_ins/krex\_poses\_2012-10-0?\_?.kml}] KML file with the ``ground
      truth'' position of the rover
\item[\texttt{kmls\_ins+relative\_32mZoffset/krex\_poses\_2012-10-0?\_?.kml}] KML file
      with the INS position and the ``relative'' position (from the pose
      estimator without GPS), including a 32m positive Z offset for
      correct visualization in Google Earth (discrepency between terrain
      and GPS)
\item[\texttt{2012-10-0?\_?/}] sub-directory with individual files for each type of
      position for a particular RAPID log file
\item[\texttt{2012-10-0?\_?/rapid\_TOPIC\_NAME-[TOPIC\_SUFFIX]\_sample.csv}] CSV file
      containg the messages \verb~TOPIC_NAME-[TOPIC_SUFFIX]~ from the RAPID log.
\item[\texttt{krex\_poses\_2012-10-0?\_?.csv}] aggregated CSV file with all the
      topics above in a single file, time ordered.
\end{description}
\subsubsection{Field data details}
\label{sec-2-3-2}


    Depending on the position data, it is expressed in one of the
    following frames:
\begin{description}
\item[\textbf{UTM}] Position expressed in meters in UTM coordinate system. The Basalt
            Hills site is in the UTM Zone 10 S.
\item[\textbf{Site} Frame] Reference frame aligned with the UTM grid, with 0,0 set
                   close the site. Site frame for this data set is:
\end{description}

\begin{center}
\begin{tabular}{ll}
 UTM            &  Zone: 10 S / Northing: 4098907.0 / Easting: 669238.0  \\
 Lat/Lon (N/W)  &  37.0211162212 / -121.0975087332 (Altitude=374m)       \\
\end{tabular}
\end{center}


\begin{description}
\item[\textbf{Local} Frame] Reference frame aligned with the UTM grid, with 0,0
                    set when the robot controller starts. Local frame thus
                    changes between experiments and can even be reset is
                    the controller is re-started during an experiment.
\end{description}

The table below summarizes the data fields available in the CSV files:


\begin{center}
\footnotesize
\begin{tabular}{lll}
\hline
 File                                           &  Ref. Frame  &  Fields                                           \\
\hline
 \verb~rapid_float32_sample-deadReckoning.csv~  &  Local       &  time, X position, Y position, Heading (radians)  \\
 \verb~rapid_float32_sample-hmr.csv~            &  Local       &  time, roll, pitch, yaw (radians)                 \\
 \verb~rapid_gps_sample.csv~                    &  UTM         &  time, x, y, z                                    \\
 \verb~rapid_joint_sample.csv~                  &  Wheel       &  wheel odometry in meters (see file header)       \\
 \verb~rapid_position_sample.csv~               &  Site        &  time, x, y, z, r, p, y                           \\
 \verb~rapid_position_sample-ins.csv~           &  UTM         &  time, x, y, z, r, p, y                           \\
 \verb~rapid_position_sample-relative.csv~      &  Local       &  time, x, y, z, r, p, y                           \\
 \verb~rapid_position_sample-xsens.csv~         &  UTM         &  time, x, y, z, r, p, y                           \\
\end{tabular}
\end{center}
\subsection{Configuration}
\label{sec-2-4}


   The robot configuration in term of locomotion geometry, sensor
   locations and camera calibration is captured in the following files:
\subsubsection{\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/configuration/KRexFrames.xml}{=./configuration/KRexFrames.xml=}}
\label{sec-2-4-1}
\subsubsection{\href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/configuration/krexStereo.txt}{=./configuration/krexStereo.txt=}}
\label{sec-2-4-2}
\section{Sensor References}
\label{sec-3}


  The names and references to the specicications of the sensors used
  during the field test are listed below.
\subsection{LIDAR: Velodyne HDL-32E}
\label{sec-3-1}

\begin{itemize}
\item \href{http://www.velodynelidar.com/lidar/hdlproducts/hdl32e.aspx}{http://www.velodynelidar.com/lidar/hdlproducts/hdl32e.aspx}
\end{itemize}
\subsection{Cameras: Manta G-146C (3 units) - Baseline = 30cm}
\label{sec-3-2}

\begin{itemize}
\item \href{http://www.alliedvisiontec.com/emea/products/cameras/gigabit-ethernet/manta/g-146bc.html}{http://www.alliedvisiontec.com/emea/products/cameras/gigabit-ethernet/manta/g-146bc.html}
\item \href{http://www.kowa-usa.com/kowanewweb/lenses/fa6.html}{Lenses: Kowa LM3NCM - 1/2'' 3.5mm F2.4 Manual Iris C-Mount Lens, Megapixel}
\item \href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/refdoc/LM3NCM.pdf}{Spec. sheet}
\end{itemize}
\subsection{Honeywell IMU (combines with OEM-3 to form turnkey INS): HG1700 from Novatel}
\label{sec-3-3}

\begin{itemize}
\item \href{http://www.novatel.com/products/span-gnss-inertial-systems/inertial-measurement-units-imus/}{http://www.novatel.com/products/span-gnss-inertial-systems/inertial-measurement-units-imus/}
\item Uses the IMU-H58 IMU from Honeywell
\item \href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/refdoc/HG1700_SPAN.pdf}{HG-1700 Spec. Sheet}
\end{itemize}
\subsection{RTK Differential GPS: Novatel OEM-3}
\label{sec-3-4}

\begin{itemize}
\item \href{http://www.novatel.com/products/gnss-receivers/oem-receiver-boards/oemv-receivers/}{http://www.novatel.com/products/gnss-receivers/oem-receiver-boards/oemv-receivers/}
\item \href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/refdoc/NovatelGPS_OEMV2.pdf}{OEMV-2 Brochure}
\end{itemize}
\subsection{Xsens IMU: MTi-G}
\label{sec-3-5}

\begin{itemize}
\item \href{http://www.xsens.com/en/general/mti-g}{http://www.xsens.com/en/general/mti-g}
\item \href{file:///Users/lfluckig/devel/KrexDataBasaltHills2012/refdoc/mti-g_leaflet.pdf}{Spec. sheet}
\end{itemize}
\subsection{Compass/Inclinometer: HMR3000 (Honeywell)}
\label{sec-3-6}

\begin{itemize}
\item \href{http://www51.honeywell.com/aero/common/documents/myaerospacecatalog-documents/Missiles-Munitions/HMR3000.pdf}{HMR3000 url}
\end{itemize}

\end{document}
