Autonomy Lab / SFU Mountain Dataset sfu logo

Trans-Canada Trail Powerline Trail Jim's Jungle Trail
A dataset of woodland trail navigation on a ground-based robot in changing environmental conditions.

The SFU Mountain Dataset consists of several hundred GB of sensor data recorded from Burnaby Mountain, British Columbia, Canada. Seven traversals are provided, covering an entire year of changing environmental conditions including sun, rain, snow, and midnight. Each traversal covers 4km of woodland trails with a 300m altitude change. Recordings include full video from 6 cameras, range data from 2 LIDAR sensors, GPS, IMU and wheel encoders, plus calibration parameters for each sensor, and we provide the data in the form of ROS bag files, JPEG image files, and CSV text files.

Robot - Side view
Side view of Clearpath Husky robot used to gather this dataset.
Map of trails included in this dataset
Map of the trails included in this dataset, with start locations of parts A and B indicated.
Robot - Top view
Top view of robot, with origin and orientation of coordinate axes shown.

Dataset visualization - Summer
Snapshot of camera and laser data from sept session.
Dataset visualization - Winter
Snapshot of camera and laser data from jan session.

In addition to the raw data, we provide ground-truth timestamped place matches: frames from each camera at locations separated by approximately 10 meters, hand-matched between dry, wet, dusk, night, sept, nov, and jan traversals. Here are some example place matches for each camera across all seven sessions:

Place 119 a Place 050 b Place 119 b


Our trail navigation robot is equipped with the following payload configuration:

Place Matches

For each trail section a and b, we provide hand-aligned place matches in bundles of timestamped frames from 1) all cameras, and 2) just each individual camera:

All: all-a all-b  
Stereo Left: stereo-left-a stereo-left-b stereo_left-calibration-wide.yaml
Stereo Right: stereo-right-a stereo-right-b stereo_right-calibration-wide.yaml
Port: port-a port-b port-calibration.yaml
Starboard: starboard-a starboard-b starboard-calibration.yaml
Rear: rear-a rear-b rear-calibration.yaml
Upward: upward-a upward-b upward-calibration.yaml

Raw Sensor Data

You can download the dataset via HTTP by clicking the individual links below.

The dataset in its purest form is available as ROS bag files recorded directly from the robot. These are the original recordings from which all other formats were exported; we modified them only to synchronize sensor timestamps.

ROS Bag Files

In addition to the ROS bag files, we provide non-camera sensor data in CSV text files archived in .tar format. Calibration parameters for each sensor are included in calibration.yaml if applicable.

JPEG images from the cameras are provided at full 30 Hz, and also at subsampled rates of 3 Hz and 0.3 Hz for convenience.


All Sensors: sfumd-dry-a-all sfumd-dry-b-all
Individual Sensors:  
Stereo Left: sfumd-dry-a-stereo_left 30 Hz sfumd-dry-b-stereo_left 30 Hz
sfumd-dry-a-stereo_left 3 Hz sfumd-dry-b-stereo_left 3 Hz
sfumd-dry-a-stereo_left 0.3 Hz sfumd-dry-b-stereo_left 0.3 Hz
Stereo Right: sfumd-dry-a-stereo_right 30 Hz sfumd-dry-b-stereo_right 30 Hz
sfumd-dry-a-stereo_right 3 Hz sfumd-dry-b-stereo_right 3 Hz
sfumd-dry-a-stereo_right 0.3 Hz sfumd-dry-b-stereo_right 0.3 Hz
Port: sfumd-dry-a-port 30 Hz sfumd-dry-b-port 30 Hz
sfumd-dry-a-port 3 Hz sfumd-dry-b-port 3 Hz
sfumd-dry-a-port 0.3 Hz sfumd-dry-b-port 0.3 Hz
Starboard: sfumd-dry-a-starboard 30 Hz sfumd-dry-b-starboard 30 Hz
sfumd-dry-a-starboard 3 Hz sfumd-dry-b-starboard 3 Hz
sfumd-dry-a-starboard 0.3 Hz sfumd-dry-b-starboard 0.3 Hz
Upward: sfumd-dry-a-upward 30 Hz sfumd-dry-b-upward 30 Hz
sfumd-dry-a-upward 3 Hz sfumd-dry-b-upward 3 Hz
sfumd-dry-a-upward 0.3 Hz sfumd-dry-b-upward 0.3 Hz
Rear: sfumd-dry-a-rear 30 Hz sfumd-dry-b-rear 30 Hz
sfumd-dry-a-rear 3 Hz sfumd-dry-b-rear 3 Hz
sfumd-dry-a-rear 0.3 Hz sfumd-dry-b-rear 0.3 Hz
Front Laser: sfumd-dry-a-front_laser sfumd-dry-b-front_laser
Top Laser: sfumd-dry-a-top_laser sfumd-dry-b-top_laser
Wheel Odometry: sfumd-dry-a-wheel_odometry sfumd-dry-b-wheel_odometry
IMU: sfumd-dry-a-imu sfumd-dry-b-imu
GPS: sfumd-dry-a-navsat_lat_long_alt sfumd-dry-b-navsat_lat_long_alt
sfumd-dry-a-navsat_enu_meters sfumd-dry-a-navsat_enu_meters
Barometric Pressure: sfumd-dry-a-barometric_pressure sfumd-dry-b-barometric_pressure


All Sensors: sfumd-wet-a-all sfumd-wet-b-all
Individual Sensors:  
Stereo Left: sfumd-wet-a-stereo_left 30 Hz sfumd-wet-b-stereo_left 30 Hz
sfumd-wet-a-stereo_left 3 Hz sfumd-wet-b-stereo_left 3 Hz
sfumd-wet-a-stereo_left 0.3 Hz sfumd-wet-b-stereo_left 0.3 Hz
Stereo Right: sfumd-wet-a-stereo_right 30 Hz sfumd-wet-b-stereo_right 30 Hz
sfumd-wet-a-stereo_right 3 Hz sfumd-wet-b-stereo_right 3 Hz
sfumd-wet-a-stereo_right 0.3 Hz sfumd-wet-b-stereo_right 0.3 Hz
Port: sfumd-wet-a-port 30 Hz sfumd-wet-b-port 30 Hz
sfumd-wet-a-port 3 Hz sfumd-wet-b-port 3 Hz
sfumd-wet-a-port 0.3 Hz sfumd-wet-b-port 0.3 Hz
Starboard: sfumd-wet-a-starboard 30 Hz sfumd-wet-b-starboard 30 Hz
sfumd-wet-a-starboard 3 Hz sfumd-wet-b-starboard 3 Hz
sfumd-wet-a-starboard 0.3 Hz sfumd-wet-b-starboard 0.3 Hz
Upward: sfumd-wet-a-upward 30 Hz sfumd-wet-b-upward 30 Hz
sfumd-wet-a-upward 3 Hz sfumd-wet-b-upward 3 Hz
sfumd-wet-a-upward 0.3 Hz sfumd-wet-b-upward 0.3 Hz
Rear: sfumd-wet-a-rear 30 Hz sfumd-wet-b-rear 30 Hz
sfumd-wet-a-rear 3 Hz sfumd-wet-b-rear 3 Hz
sfumd-wet-a-rear 0.3 Hz sfumd-wet-b-rear 0.3 Hz
Front Laser: sfumd-wet-a-front_laser sfumd-wet-b-front_laser
Top Laser: sfumd-wet-a-top_laser sfumd-wet-b-top_laser
Wheel Odometry: sfumd-wet-a-wheel_odometry sfumd-wet-b-wheel_odometry
IMU: sfumd-wet-a-imu sfumd-wet-b-imu
GPS: sfumd-wet-a-navsat_lat_long_alt sfumd-wet-b-navsat_lat_long_alt
sfumd-wet-a-navsat_enu_meters sfumd-wet-a-navsat_enu_meters
Barometric Pressure: sfumd-wet-a-barometric_pressure sfumd-wet-b-barometric_pressure


All Sensors: sfumd-dusk-a-all sfumd-dusk-b-all
Individual Sensors:  
Stereo Left: sfumd-dusk-a-stereo_left 30 Hz sfumd-dusk-b-stereo_left 30 Hz
sfumd-dusk-a-stereo_left 3 Hz sfumd-dusk-b-stereo_left 3 Hz
sfumd-dusk-a-stereo_left 0.3 Hz sfumd-dusk-b-stereo_left 0.3 Hz
Stereo Right: sfumd-dusk-a-stereo_right 30 Hz sfumd-dusk-b-stereo_right 30 Hz
sfumd-dusk-a-stereo_right 3 Hz sfumd-dusk-b-stereo_right 3 Hz
sfumd-dusk-a-stereo_right 0.3 Hz sfumd-dusk-b-stereo_right 0.3 Hz
Port: sfumd-dusk-a-port 30 Hz sfumd-dusk-b-port 30 Hz
sfumd-dusk-a-port 3 Hz sfumd-dusk-b-port 3 Hz
sfumd-dusk-a-port 0.3 Hz sfumd-dusk-b-port 0.3 Hz
Starboard: sfumd-dusk-a-starboard 30 Hz sfumd-dusk-b-starboard 30 Hz
sfumd-dusk-a-starboard 3 Hz sfumd-dusk-b-starboard 3 Hz
sfumd-dusk-a-starboard 0.3 Hz sfumd-dusk-b-starboard 0.3 Hz
Upward: sfumd-dusk-a-upward 30 Hz sfumd-dusk-b-upward 30 Hz
sfumd-dusk-a-upward 3 Hz sfumd-dusk-b-upward 3 Hz
sfumd-dusk-a-upward 0.3 Hz sfumd-dusk-b-upward 0.3 Hz
Rear: sfumd-dusk-a-rear 30 Hz sfumd-dusk-b-rear 30 Hz
sfumd-dusk-a-rear 3 Hz sfumd-dusk-b-rear 3 Hz
sfumd-dusk-a-rear 0.3 Hz sfumd-dusk-b-rear 0.3 Hz
Front Laser: sfumd-dusk-a-front_laser sfumd-dusk-b-front_laser
Top Laser: sfumd-dusk-a-top_laser sfumd-dusk-b-top_laser
Wheel Odometry: sfumd-dusk-a-wheel_odometry sfumd-dusk-b-wheel_odometry
IMU: sfumd-dusk-a-imu sfumd-dusk-b-imu
GPS: sfumd-dusk-a-navsat_lat_long_alt sfumd-dusk-b-navsat_lat_long_alt
sfumd-dusk-a-navsat_enu_meters sfumd-dusk-a-navsat_enu_meters
Barometric Pressure: sfumd-dusk-a-barometric_pressure sfumd-dusk-b-barometric_pressure


All Sensors: sfumd-night-a-all sfumd-night-b-all
Individual Sensors:  
Stereo Left: sfumd-night-a-stereo_left 30 Hz sfumd-night-b-stereo_left 30 Hz
sfumd-night-a-stereo_left 3 Hz sfumd-night-b-stereo_left 3 Hz
sfumd-night-a-stereo_left 0.3 Hz sfumd-night-b-stereo_left 0.3 Hz
Stereo Right: sfumd-night-a-stereo_right 30 Hz sfumd-night-b-stereo_right 30 Hz
sfumd-night-a-stereo_right 3 Hz sfumd-night-b-stereo_right 3 Hz
sfumd-night-a-stereo_right 0.3 Hz sfumd-night-b-stereo_right 0.3 Hz
Port: sfumd-night-a-port 30 Hz sfumd-night-b-port 30 Hz
sfumd-night-a-port 3 Hz sfumd-night-b-port 3 Hz
sfumd-night-a-port 0.3 Hz sfumd-night-b-port 0.3 Hz
Starboard: sfumd-night-a-starboard 30 Hz sfumd-night-b-starboard 30 Hz
sfumd-night-a-starboard 3 Hz sfumd-night-b-starboard 3 Hz
sfumd-night-a-starboard 0.3 Hz sfumd-night-b-starboard 0.3 Hz
Upward: sfumd-night-a-upward 30 Hz sfumd-night-b-upward 30 Hz
sfumd-night-a-upward 3 Hz sfumd-night-b-upward 3 Hz
sfumd-night-a-upward 0.3 Hz sfumd-night-b-upward 0.3 Hz
Rear: sfumd-night-a-rear 30 Hz sfumd-night-b-rear 30 Hz
sfumd-night-a-rear 3 Hz sfumd-night-b-rear 3 Hz
sfumd-night-a-rear 0.3 Hz sfumd-night-b-rear 0.3 Hz
Front Laser: sfumd-night-a-front_laser sfumd-night-b-front_laser
Top Laser: sfumd-night-a-top_laser sfumd-night-b-top_laser
Wheel Odometry: sfumd-night-a-wheel_odometry sfumd-night-b-wheel_odometry
IMU: sfumd-night-a-imu sfumd-night-b-imu
GPS: sfumd-night-a-navsat_lat_long_alt sfumd-night-b-navsat_lat_long_alt
sfumd-night-a-navsat_enu_meters sfumd-night-a-navsat_enu_meters
Barometric Pressure: sfumd-night-a-barometric_pressure sfumd-night-b-barometric_pressure


All Sensors: sfumd-sept-a-all sfumd-sept-b-all
Individual Sensors:  
Stereo Left: sfumd-sept-a-stereo_left 30 Hz sfumd-sept-b-stereo_left 30 Hz
sfumd-sept-a-stereo_left 3 Hz sfumd-sept-b-stereo_left 3 Hz
sfumd-sept-a-stereo_left 0.3 Hz sfumd-sept-b-stereo_left 0.3 Hz
Stereo Right: sfumd-sept-a-stereo_right 30 Hz sfumd-sept-b-stereo_right 30 Hz
sfumd-sept-a-stereo_right 3 Hz sfumd-sept-b-stereo_right 3 Hz
sfumd-sept-a-stereo_right 0.3 Hz sfumd-sept-b-stereo_right 0.3 Hz
Port: sfumd-sept-a-port 30 Hz sfumd-sept-b-port 30 Hz
sfumd-sept-a-port 3 Hz sfumd-sept-b-port 3 Hz
sfumd-sept-a-port 0.3 Hz sfumd-sept-b-port 0.3 Hz
Starboard: sfumd-sept-a-starboard 30 Hz sfumd-sept-b-starboard 30 Hz
sfumd-sept-a-starboard 3 Hz sfumd-sept-b-starboard 3 Hz
sfumd-sept-a-starboard 0.3 Hz sfumd-sept-b-starboard 0.3 Hz
Upward: sfumd-sept-a-upward 30 Hz sfumd-sept-b-upward 30 Hz
sfumd-sept-a-upward 3 Hz sfumd-sept-b-upward 3 Hz
sfumd-sept-a-upward 0.3 Hz sfumd-sept-b-upward 0.3 Hz
Rear: sfumd-sept-a-rear 30 Hz sfumd-sept-b-rear 30 Hz
sfumd-sept-a-rear 3 Hz sfumd-sept-b-rear 3 Hz
sfumd-sept-a-rear 0.3 Hz sfumd-sept-b-rear 0.3 Hz
Front Laser: sfumd-sept-a-front_laser sfumd-sept-b-front_laser
Top Laser: sfumd-sept-a-top_laser sfumd-sept-b-top_laser
Wheel Odometry: sfumd-sept-a-wheel_odometry sfumd-sept-b-wheel_odometry
IMU: sfumd-sept-a-imu sfumd-sept-b-imu
GPS: sfumd-sept-a-navsat_lat_long_alt sfumd-sept-b-navsat_lat_long_alt
sfumd-sept-a-navsat_enu_meters sfumd-sept-a-navsat_enu_meters
Barometric Pressure: sfumd-sept-a-barometric_pressure sfumd-sept-b-barometric_pressure


All Sensors: sfumd-nov-a-all sfumd-nov-b-all
Individual Sensors:  
Stereo Left: sfumd-nov-a-stereo_left 30 Hz sfumd-nov-b-stereo_left 30 Hz
sfumd-nov-a-stereo_left 3 Hz sfumd-nov-b-stereo_left 3 Hz
sfumd-nov-a-stereo_left 0.3 Hz sfumd-nov-b-stereo_left 0.3 Hz
Stereo Right: sfumd-nov-a-stereo_right 30 Hz sfumd-nov-b-stereo_right 30 Hz
sfumd-nov-a-stereo_right 3 Hz sfumd-nov-b-stereo_right 3 Hz
sfumd-nov-a-stereo_right 0.3 Hz sfumd-nov-b-stereo_right 0.3 Hz
Port: sfumd-nov-a-port 30 Hz sfumd-nov-b-port 30 Hz
sfumd-nov-a-port 3 Hz sfumd-nov-b-port 3 Hz
sfumd-nov-a-port 0.3 Hz sfumd-nov-b-port 0.3 Hz
Starboard: sfumd-nov-a-starboard 30 Hz sfumd-nov-b-starboard 30 Hz
sfumd-nov-a-starboard 3 Hz sfumd-nov-b-starboard 3 Hz
sfumd-nov-a-starboard 0.3 Hz sfumd-nov-b-starboard 0.3 Hz
Upward: sfumd-nov-a-upward 30 Hz sfumd-nov-b-upward 30 Hz
sfumd-nov-a-upward 3 Hz sfumd-nov-b-upward 3 Hz
sfumd-nov-a-upward 0.3 Hz sfumd-nov-b-upward 0.3 Hz
Rear: sfumd-nov-a-rear 30 Hz sfumd-nov-b-rear 30 Hz
sfumd-nov-a-rear 3 Hz sfumd-nov-b-rear 3 Hz
sfumd-nov-a-rear 0.3 Hz sfumd-nov-b-rear 0.3 Hz
Front Laser: sfumd-nov-a-front_laser sfumd-nov-b-front_laser
Top Laser: sfumd-nov-a-top_laser sfumd-nov-b-top_laser
Wheel Odometry: sfumd-nov-a-wheel_odometry sfumd-nov-b-wheel_odometry
IMU: sfumd-nov-a-imu sfumd-nov-b-imu
GPS: sfumd-nov-a-navsat_lat_long_alt sfumd-nov-b-navsat_lat_long_alt
sfumd-nov-a-navsat_enu_meters sfumd-nov-a-navsat_enu_meters
Barometric Pressure: sfumd-nov-a-barometric_pressure sfumd-nov-b-barometric_pressure


All Sensors: sfumd-jan-a-all sfumd-jan-b-all
Individual Sensors:  
Stereo Left: sfumd-jan-a-stereo_left 30 Hz sfumd-jan-b-stereo_left 30 Hz
sfumd-jan-a-stereo_left 3 Hz sfumd-jan-b-stereo_left 3 Hz
sfumd-jan-a-stereo_left 0.3 Hz sfumd-jan-b-stereo_left 0.3 Hz
Stereo Right: sfumd-jan-a-stereo_right 30 Hz sfumd-jan-b-stereo_right 30 Hz
sfumd-jan-a-stereo_right 3 Hz sfumd-jan-b-stereo_right 3 Hz
sfumd-jan-a-stereo_right 0.3 Hz sfumd-jan-b-stereo_right 0.3 Hz
Port: sfumd-jan-a-port 30 Hz sfumd-jan-b-port 30 Hz
sfumd-jan-a-port 3 Hz sfumd-jan-b-port 3 Hz
sfumd-jan-a-port 0.3 Hz sfumd-jan-b-port 0.3 Hz
Starboard: sfumd-jan-a-starboard 30 Hz sfumd-jan-b-starboard 30 Hz
sfumd-jan-a-starboard 3 Hz sfumd-jan-b-starboard 3 Hz
sfumd-jan-a-starboard 0.3 Hz sfumd-jan-b-starboard 0.3 Hz
Upward: sfumd-jan-a-upward 30 Hz sfumd-jan-b-upward 30 Hz
sfumd-jan-a-upward 3 Hz sfumd-jan-b-upward 3 Hz
sfumd-jan-a-upward 0.3 Hz sfumd-jan-b-upward 0.3 Hz
Rear: sfumd-jan-a-rear 30 Hz sfumd-jan-b-rear 30 Hz
sfumd-jan-a-rear 3 Hz sfumd-jan-b-rear 3 Hz
sfumd-jan-a-rear 0.3 Hz sfumd-jan-b-rear 0.3 Hz
Front Laser: sfumd-jan-a-front_laser sfumd-jan-b-front_laser
Top Laser: sfumd-jan-a-top_laser sfumd-jan-b-top_laser
Wheel Odometry: sfumd-jan-a-wheel_odometry sfumd-jan-b-wheel_odometry
IMU: sfumd-jan-a-imu sfumd-jan-b-imu
GPS: sfumd-jan-a-navsat_lat_long_alt sfumd-jan-b-navsat_lat_long_alt
sfumd-jan-a-navsat_enu_meters sfumd-jan-a-navsat_enu_meters
Barometric Pressure: sfumd-jan-a-barometric_pressure sfumd-jan-b-barometric_pressure

The timestamps in the preceding bag files, CSV files and JPEG images have all been shifted by subtracting an offset calculated to account for the relative latencies of the different sensors. The offsets are provided here in case they are needed:

Timestamp Offsets

SensorOffset (ms)
Stereo Left Camera: 48.4
Stereo Right Camera: 48.4
Port Camera: 46.85
Starboard Camera: 45.5
Upward Camera: 65.3
Rear Camera: 58.5
Front Laser: 67.9
Top Laser: 379.6
IMU: 29.2
Wheel Odometry: 0 (reference sensor)


In addition to the trail runs described in the paper, we provide five extra recorded sessions using the same robot configuration, but with the front laser scanner oriented in horizontal position instead. One session records a section of the first trail described in the paper, while four other sessions were recorded inside buildings on the SFU campus. This data is provided only in the form of ROS bag files, and we cannot guarantee the same level of calibration quality as in the main dataset.

Outdoor: Trans-Canada Trail trail_horizontal_laser.bag
Indoor: Applied Science Building sfu_asb_2015-09-16-16-57-12.bag
Indoor: TASC1 Floor 7 sfu_tasc1_2015-09-16-16-35-55.bag
Indoor: TASC1 Floor 8 sfu_tasc1_2015-09-16-16-43-33.bag
Indoor: TASC1 Floor 9 sfu_tasc1_2015-09-16-16-51-06.bag


If you use this dataset in your research, please cite this paper:

Please note: the current data is an updated version of the dataset, with three new sessions that were not included in the original paper. The new recording sessions are labeled Sept, Nov, and Jan.


This work is licensed under the Creative Commons Attribution-4.0 International License. This means that you are free to distribute transformations of this work as long as you give appropriate credit and indicate if changes were made.

Creative Commons License


Questions? Feel free to email us at

Valid CSS!