Documentation


Naming conventions

Each dataset name is [site]-[robot]-trajectory[XX]-[Y], where:

  • site is one of the three sites (kesskess, mummy, merzouga)

  • robot is one of the two robots (mana, minnie)

  • XX is a two digit number that denotes the trajectory (note trajectory numbers starting with 0, 1 and 2 respectively correspond to trajectories executed on the kesskess, mummy and merzouga sites)

  • Y is a one digit number denoting the instance of the data acquisition (some trajectories have indeed been replayed several times, with different robot speed and/or acquisition frequencies, time of day, selection of the sensors...)

In each dataset, there is one zipped tar file (.tgz) per sensor activated during the trajectory execution:

  • for datasets acquired with the robot Mana which has only one sensor, there is always only one file named [site]-mana-trajectory[XX]-[Y]-HDL64.tgz
  • for datasets acquired with the robot Minnie, there are one to four files named [site]-[robot]-trajectory[XX]-[Y]-[sensorName].tgz, where sensorName is one of (nav_cam, front_cam, rear_cam, HDL-32).

Note: the three stereoscopic benches of Minnie are all synchronised by the same hardware trigger. When more than one bench is activated, the stereo pairs are synchronised between the benches (images with the same number for two different sterescopic benches are acquired at exactly the same time).


Files structure

Each dataset is a zipped tar file (.tgz), which expands in a [datasetName]/[sensorName] directory.

For the stereoscopic sensors (sensorName = nav_cam, front_cam or rear_cam), this directory contains the following files:

  • README.txt: the general information contained in this page
  • README-[trajXX]-[X]-[sensorName].txt: some specific information regarding the dataset (trajectory length, acquisition frenquency, any noticeable fact...)
  • reference_frame.yaml: the absolute coordinates (East, North, Up) of the frame in which all the data are localised
  • start_position.yaml: the position of the first data acquisition relatively to the reference frame
  • [sensorName]-calibration.yaml: all the calibration information of the stereoscopic sensor, using the OpenCV conventions
  • dataformat.txt: the format of the metadata file associated to each sensor data (see below)
  • all_metadata.txt: the concatenation of all the metadata of the dataset sensor data (usefull to plot various information)

and the following sub-directories:

  • figures-movies/: misc figures and movies extracted from the dataset (data and/or metadata) that illustrate it
  • raw/: the full resolution raw images of the stereoscopic bench in ./left and ./right sub-directories ([%05d].pgm files). Resolution 1920x1200 for nav_cam, and 1280x960 for front_cam and rear_cam
  • rectified/: the rectified images of the stereoscopic bench, reduced by a factor of 3, in ./left and ./right sub-directories ([%05d].pgm files). These images have been produced using the OpenCV library stereoRectify function
  • metadata/: all the metadata associated to the left camera of the stereoscopic bench ([%05d].txt files, that contains the metadata as documented in the dataformat.txt file)

For Lidar sensors (sensorName = HDL64 or HDL32), the directory contains the following files:

  • README.txt: the general information contained in this page
  • README-[trajXX]-[X]-[sensorName].txt: some specific information regarding the dataset (trajectory length, acquisition frenquency, any noticeable fact...)
  • reference_frame.yaml: the absolute coordinates (East, North, Up) of the frame in which all the data are localised
  • start_position.yaml: the position of the first data acquisition relatively to the reference frame
  • dataformat.txt: the format of the metadata file associated to each sensor data  (see below)
  • all_metadata.txt: the concatenation of all the metadata of the dataset sensor data (usefull to plot various information)

And the following sub-directories:

  • figures-movies/: misc figures and movies extracted from the dataset (data and/or metadata) that illustrate it
  • data/: contains 360 degrees scans ([%05d].pcd files, to be read with the PCL library). Point clouds of the Mana HDL-64 sensor contain up to 245000 points, point clouds of the Minnie HDL-32 sensor up to 50000 points.
  • metadata/: all the metadata associated to the point clouds ([%05d].txt files, that contains the metadata as documented in the dataformat.txt file)

Metadata format

The metadata for the vision sensors are the following:
#  1 - data_time_stamp : timestamp (microseconds), origin 0 for the first data
#  2 - data_utc_time : unix time (microseconds)
#  3 - robot_to_world_pose_time : time at which the robot pose has been measured
#  4 - robot_to_world_pose_x : pose of the robot with respect to the site frame: translation measured by the GPS (meters), orientation expressed in quaternions and euler angles (radians)
#  5 - robot_to_world_pose_y
#  6 - robot_to_world_pose_z
#  7 - robot_to_world_pose_qw
#  8 - robot_to_world_pose_qx
#  9 - robot_to_world_pose_qy
# 10 - robot_to_world_pose_qz
# 11 - robot_to_world_pose_roll
# 12 - robot_to_world_pose_pitch
# 13 - robot_to_world_pose_yaw
# 14 - robot_to_world_pose_sig_x : standard deviations on the translation components of the robot pose as reported by the RTK GPS (meters)
# 15 - robot_to_world_pose_sig_y
# 16 - robot_to_world_pose_sig_z
# 17 - robot_to_world_pose_curvilinear_abs : curvilinear abscissa along the trajectory derived from the robot GPS poses (meters)
# 18 - robot_to_world_speed : instantaneous robot speed derived from the GPS robot poses (meters/seconds) -- note that because of GPS noise, this speed estimate is less precise than the odometry speed estimate
# 19 - odometry_time : time at which the odometry pose has been measured
# 20 - odometry_x : odometry pose computed relatively to the former data acquisition: translation measured by odometry (meters), orientation expressed in quaternions and euler angles (radians)
# 21 - odometry_y
# 22 - odometry_z
# 23 - odometry_qw
# 24 - odometry_qx
# 25 - odometry_qy
# 26 - odometry_qz
# 27 - odometry_roll
# 28 - odometry_pitch
# 29 - odometry_yaw
# 30 - odometry_curvilinear_abs : curvilinear abscissa along the trajectory derived from the odometry measurements (meters)
# 31 - odometry_speed : instantaneous robot speed derived from the odometry measurements (meters/seconds)
# 32 - sensor_to_robot_pose_x : relative transformation between the sensor frame and the robot frame: translation in meters, orientation expressed in quaternions and euler angles (radians)
# 33 - sensor_to_robot_pose_y
# 34 - sensor_to_robot_pose_z
# 35 - sensor_to_robot_pose_qw
# 36 - sensor_to_robot_pose_qx
# 37 - sensor_to_robot_pose_qy
# 38 - sensor_to_robot_pose_qz
# 39 - sensor_to_robot_pose_roll
# 40 - sensor_to_robot_pose_pitch
# 41 - sensor_to_robot_pose_yaw
 
For Lidar data, the first 41 lines of the metadata files contain exactly the same information as the vision sensors metadata, and the following additional information are provided:
# 42 - cloud_number_of_points: number of measures in the point cloud
# 43 - cloud_min_x: bounding box within which the point cloud is inscribed, expressed in the site frame coordinates
# 44 - cloud_max_x
# 45 - cloud_min_y
# 46 - cloud_max_y
# 47 - cloud_min_z
# 48 - cloud_max_z

 


Misc notes:

  • Sensor data have always been acquired at a fixed frequency of a few Hz. However, a few data have been removed during the packing of the datasets (e.g. corrupted images, mis-synchronized stereoscopic frames, ...), and the data have been re-indexed so that the file numbers still sequentially grow by one unit. Of course the timestamps in the metadata remains the time truth (e.g. in a dataset, two consecutive images may have timestamps that differ from 1 second, whereas the dataset was acquired at 2 Hz, in which case one corrupted data has been removed).
  • TODO: report here other misc useful information