Overview
Stereo imagery, sun vectors, and inclinometer data were
collected over a ten-kilometer traverse starting and ending at
the Haughton-Mars Research Station on Devon Island. The data
collection platform was a pushcart outfitted with typical
rover engineering sensors---a Point Grey Research Bumblebee
XB3 stereo camera, a Honeywell HMR-3000 inclinometer, and a
Sinclair Interplanetary SS-411 digital sun sensor. For
ground-truth position, a pair of Magellan ProMark3 GPS units
were used to produce post-processed differential GPS data for
the whole traverse. The data is partitioned into 23
sections. At the start of each section, a batch of sun vectors
and inclinometer readings, together with global position from
GPS, were used to estimate the rotation between the sun sensor
frame and the topocentric frame. This estimate provides
platform orientation at the start of each subsequence,
allowing motion estimates to be easily compared to
ground-truth data provided by the GPS.
|
Route
The
rover platform travels ten kilometers over this traverse,
starting at 10:00am near the Haughton-Mars Project Research
Station and returning in a large loop to the start by
6:00pm. The traverse passes through many areas exhibiting the
unique, vegetation-free, planetary-analogue terrain that Devon
Island is known for---rocky canyons, boulder fields, sandy
flats, and significant topographic relief. When collecting the
data, every effort was made to ensure that a minimum of
man-made objects were in view of the camera. The resulting
images, coupled with data from the other sensors and excellent
ground-truth position information, make a truly unique dataset
relevant both to the mobile robotics and planetary exploration
researchers.
[View Devon Island Rover
Navigation in Google Maps or download the kmz file to
view in Google Earth]
|
In this section we will describe basic calibration data, files available for download, and logging formats.
The platform shown on the above was used to collect the rover traverse data. Frames associated with the platform are shown on the bottom figure.
There are six frames of interest in this dataset:
Frame
|
x-axis
|
y-axis
|
z-axis
|
(t) Topocentric
|
East
|
North
|
up
|
(c) Left camera
|
aligned with horizontal pixels
|
aligned with vertical pixels
|
optical axis
|
(r) Right camera
|
aligned with horizontal pixels
|
aligned with vertical pixels
|
optical axis
|
(s) Sun sensor
|
toward connector
|
|
optical axis
|
(z) Inclinometer
|
away from connector
|
|
up
|
(g) RTK GPS
|
-
|
-
|
-
|
To represent rotations, we will use an axis-angle representation
Given a unit vector axis, a, and an angle, r, the rotation matrix, C, may be built using
where ( )x is the skew-symmetric matrix operator that can be used to
implement the cross product:
To express translations, we use the notation to mean the vector from the origin of coordinate frame 'a' to the origin of coordinate frame 'b' (denoted by the superscript), expressed in coordinate frame 'a' (denoted by the subscript). Using this notation, we may build a 4x4 transformation matrix, Tab, that takes points from coordinate frame 'b' to coordinate frame 'a' as
The inter-sensor transformations are provided in the following table. A transformation, Tab, may be constructed from a row of this table by building
where 0 is the zero matrix.
Transformation
|
x [m]
|
y [m]
|
z [m]
|
a1
|
a2
|
a3
|
r [rad]
|
Tsz
|
0.18
|
-0.09
|
0.00
|
-0.013
|
-0.005
|
-0.999
|
1.56
|
Tsc
|
0.21
|
-0.17
|
-0.09
|
-0.015
|
-0.790
|
0.612
|
-3.11
|
Tcr
|
0.24
|
0.00
|
0.00
|
1.000
|
0.000
|
0.000
|
0.00
|
|
0.20
|
-0.12
|
-0.03
|
-
|
-
|
-
|
-
|
Timestamps in the log files are stored in ISO 8601 format. The first image of the stereo sequence has the following timestamp:
2008-07-12T09:59:41.812500-05:00
---- -- -- -- -- --------- -----
| | | | | | |
Year -- | | | | | |
Month ------- | | | | |
Day ---------- | | | |
Hour ------------- | | |
Minute ---------------- | |
Seconds------------------- |
Time-zone offset--------------------
The time-zone offset, -05:00, is the offset for Central Daylight Time (CDT) on the date that the dataset was recorded. To recover Coordinated Universal Time (UTC), 5 hours must be added to the timestamp. Matlab scripts for parsing ISO time strings are available here.
The full sequence contains 49410 images. The full-color, full-resolution sequence is over 338.1 gigabytes of data. To ease the use of the dataset, we have taken two steps to make this more manageable. First, we have split the full sequence into 23 subsequences. An estimate of the platform's orientation in the topocentric frame is available for the first image of each of these subsequences, allowing easy comparison of motion estimate results to ground truth. Second, we have included three versions of the dataset so that only the specific version needed must be downloaded. The versions are:
- Unrectified, color images at 1280x960 resolution
- Rectified, color images at 1280x960 resolution
- Rectified, greyscale images at 512x384 resolution.
The stereo camera intrinsic parameters and rectification maps
were provided by Point Grey Research. The processing provided
by the Point Grey Research libraries dewarps and rectifies the raw images so
that they appear to come from two pinhole cameras with
parallel optical axes, square pixels, and equal focal
lengths. Under this model the calibration parameters are
provided in the following tables.
Camera calibration, Rectified, 1280x960
|
Baseline:
|
0.239977002
|
Focal Length:
|
968.999694824
|
ImageCenter (row, col):
|
463.537109375 635.139038086
|
Resolution (rows, cols):
|
960 1280
|
Camera calibration, Rectified, 512x384
|
Baseline:
|
0.239977002
|
Focal Length:
|
387.599884033
|
ImageCenter (row, col):
|
185.114852905 253.755615234
|
Resolution (rows, cols):
|
384 512
|
We have provided the rectification lookup tables in the file RectificationLUTs.zip. Each camera has two files lut-{left,right}-x.txt and lut-{left,right}-y.txt. These are space-seperated ASCII files containing the two-dimensional x and y lookup tables for rectification (Lx and Ly) such that:
This is the format needed by
the OpenCV
remap function. In Matlab, the rectification look up
tables may be loaded using the
script readRectificationLuts.m and an image may be
rectified using the script rectifyImage.m. See
the Tools section for more details.
This section lists the log files and describes their formats. For convenience,
matlab scripts are provided to parse all log files. See the Tools section
for more details.
The log files have been bundled into a single zip file:
rover-traverse-logs.zip [2.9 MB]
image-times.txt
A text file mapping the image sequence number to the time the
image was taken. The columns of this file are as follows:
known-orientations.txt
At 23 points along the traverse, the platform was stopped to gather a bundle of sun sensor and inclinometer measurements. These were used to estimate the orientation of the platform with respect to the topocentric frame (t) (x: east, y: north, z: up). The file 'known-orientations.txt' contains the results for these 23 locations. The file contains the image index, along with the parameters of the rotation Ctc using the axis-angle convention described above. The columns of this file are:
image index |
atc1 |
atc2 |
atc3 |
rtc [rad] |
The entry atcn is the nth component of the unit-length axis atc, and rtc is the rotation around this axis in radians.
inclinometer.txt
A text file containing inclinometer readings. The inclinometer was logging at 1Hz but the logging was paused at many points throughout the day. The columns in this file are as follows:
timestamp |
pitch [deg] |
roll [deg] |
To transform the pitch/roll readings into a unit gravity vector (pointing down), g, in the inclinometer frame, let p = pitch and r = roll:
g = [sin(p), -sin(r) cos(p), -cos(r) cos(p)]T
inclinometer-sampled.txt
A text file containing inclinometer readings that have been associated with images. The columns in this file are as follows:
image index |
pitch [deg] |
roll [deg] |
time offset [s] |
The time offset is the amount of time between the inclinometer reading and the image capture time.
sun-sensor.txt
A text file containing sun sensor readings. The columns of this file are as follows:
timestamp |
azimuth angle [deg] |
zenith angle [deg] |
To transform the sun sensor readings into a unit vector, s, pointing to the sun in the sun sensor frame, let a = azimuth angle and b = zenith angle:
s = [sin(b)cos(a), sin(b)sin(a), cos(b)]T
sun-sensor-sampled.txt
A text file containing sun sensor readings that have been associated with images. The columns in this file are as follows:
image index |
azimuth angle [deg] |
zenith angle [deg] |
time offset [s] |
The time offset is the amount of time between the sun sensor reading and the image capture time.
gps-latlngele.txt
A text file containing the latitude, longitude, and elevation of the platform, all expressed with respect to the WGS84 ellipsoid. The columns of this file are:
timestamp |
latitude [deg] |
longitude [deg] |
elevation [m] |
gps-latlngele-sampled.txt
A text file containing the latitude, longitude, and elevation of the platform, all expressed with respect to the WGS84 ellipsoid, and sampled at the image times. The columns of this file are:
image index |
latitude [deg] |
longitude [deg] |
elevation [m] |
gps-utm.txt
A text file containing the UTM Easting, Northing, and elevation of the platform. The UTM zone is 16X and the elevation is expressed with respect to the WGS84 ellipsoid. The columns of this file are:
timestamp |
latitude [deg] |
longitude [deg] |
elevation [m] |
gps-topocentric.txt
A text file containing the metric displacement of the camera in the topocentric frame (x points East, y points North, and z points up) relative to the initial position (i.e., the position of the first image is [0,0,0]) and sampled at the image times. The columns of this file are as follows:
image index |
easting [m] |
northing [m] |
elevation [m] |
Access Tools
The following tools are provided for the convenience of
dataset users.
Matlab Scripts
- axisAngle2Dcm.m - Convert an axis and rotation angle into a rotation matrix.
- dcm2AxisAngle.m - Convert a rotation matrix into an axis and rotation angle.
- crossMx.m - The skew-symmetric matrix that may be used to implement the cross product.
- deg2rad.m - Converts degrees to radians.
- rad2deg.m - Converts radians to degrees.
- datenumToIsoTimeString.m - Converts a matlab datenum into an ISO time string.
- getIsoTimeStringRegexp.m - Provides a regular expression that may be used to match an ISO time string
- isoTimeStringToDatenum.m - Converts an ISO time string into a matlab datenum
- readGpsLatLngEle.m - Reads the GPS latitude/longitude/elevation file.
- readGpsLatLngEleSampled.m - Reads the sampled GPS latitude/longitude/elevation file.
- readGpsUTM.m - Reads the GPS latitude/longitude/elevation file.
- readGpsTopocentric.m - Reads the GPS topocentric file.
- readImageTimes.m - Reads the image times file.
- readInclinometer.m - Reads the raw inclinometer data file.
- readInclinometerSampled.m - Reads the sampled inclinometer data file.
- readKnownOrientations.m - Reads the file of known orientations.
- readSunSensor.m - Reads the sun sensor raw data file.
- readSunSensorSampled.m - Reads the sampled sun sensor data file
- plotMotionEstimateVsGps.m - Plots a motion estimate against GPS.
- readRectificationLuts.m - Read the rectification look up tables.
- rectifyImage.m - Rectify an image using the rectification look up tables.
- getInterSensorTransformation.m - Build the 4x4 inter-sensor transformation between any pair of sensors.
[Download
Matlab Scripts (zip file)]
Downloads
Links to download all files are provided below. Alternately, log in to the ftp site and use and ftp client to download files in batch.
ftp://asrl3.utias.utoronto.ca/Devon-Island-Rover-Navigation/rover-traverse/
Important note: The dataset provides ftp download links. Some browsers no longer enable ftp links by default and you need to change the settings if you want to download using the browser. Using the wget command is an alternative to avoid the browser.
The log files have been bundled into a single zip file:
rover-traverse-logs.zip [2.9 MB]
Download links for each of the three versions of the images
are provided below. We have also prepared videos of each
subsequence for easy preview of the images.
[Back]
[Top]
[Overview]
[Route]
[Details]
[Tools]
[Downloads]
|