Skip to content

feat(ds): Add Boreas and BoreasRT dataset support#67

Merged
contagon merged 17 commits intomainfrom
feat/boreas
Mar 19, 2026
Merged

feat(ds): Add Boreas and BoreasRT dataset support#67
contagon merged 17 commits intomainfrom
feat/boreas

Conversation

@contagon
Copy link
Owner

Summary

Adds support for two datasets from the Boreas autonomous driving dataset suite (University of Toronto):

  • Boreas — outdoor driving sequences with a Velodyne VLS-128 lidar and Applanix IMU
  • BoreasRt — newer sequences with the same lidar but a Silicon Sensing DMU41 IMU

Both datasets are downloaded from the public S3 bucket s3://boreas (no credentials required) using boto3.

What's included

  • python/evalio/datasets/boreas.pyBoreas dataset class plus shared helpers:
    • _seq_name_to_folder — converts evalio snake_case seq names to S3 folder names
    • _yaw_pitch_roll_to_rot — ZYX Euler → rotation matrix
    • _load_boreas_gt — parses applanix/lidar_poses.csv (timestamps in µs, RPY angles) into Trajectory
    • _load_boreas_bin — loads VLS-128 .bin point clouds (float32 [x,y,z,intensity,ring,t])
  • python/evalio/datasets/boreas_rt.pyBoreasRt dataset class, re-uses the shared helpers above
  • python/evalio/datasets/__init__.py — registers both new dataset classes
  • pyproject.toml / uv.lock — adds boto3>=1.26.0 dependency

Calibration sources

All hardcoded extrinsics and noise parameters include source-link comments pointing to the actual calibration files on S3 or the dataset's sensor spec sheet.

Source
T_applanix_lidar (Boreas) s3://boreas/boreas-2020-11-26-13-58/calib/T_applanix_lidar.txt
T_applanix_lidar (BoreasRT) s3://boreas/boreas-2024-12-03-12-54/calib/T_applanix_lidar.txt
T_applanix_dmu (BoreasRT) s3://boreas/boreas-2024-12-03-12-54/calib/T_applanix_dmu.txt
DMU41 noise params Silicon Sensing DMU41 datasheet

Testing

uv run evalio ls datasets        # Boreas and BoreasRt appear in the list
uv run pytest tests/test_dataset_impl.py -v   # all 11 tests pass

Add support for the Boreas (outdoor autonomous driving) and BoreasRT
datasets from the University of Toronto, downloadable from the public
S3 bucket s3://boreas via boto3. Implements lidar (.bin float32),
IMU (Applanix CSV for Boreas, Silicon Sensing DMU41 for BoreasRT),
and ground truth (Euler-angle poses converted to SE3) loaders.
Copilot AI review requested due to automatic review settings March 16, 2026 16:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for two datasets from the Boreas autonomous driving suite (University of Toronto): Boreas (44 sequences with Applanix IMU) and BoreasRt (15 sequences with Silicon Sensing DMU41 IMU). Both use a Velodyne VLS-128 lidar and download data from a public S3 bucket via boto3.

Changes:

  • New Boreas dataset class with shared helpers for folder name conversion, Euler-to-rotation conversion, ground truth loading, and .bin point cloud loading
  • New BoreasRt dataset class that reuses the shared helpers but has different IMU parameters and calibration
  • Adds boto3>=1.26.0 as a project dependency

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
python/evalio/datasets/boreas.py New Boreas dataset class with 44 sequences and shared helper functions
python/evalio/datasets/boreas_rt.py New BoreasRt dataset class with 15 sequences and DMU41 IMU config
python/evalio/datasets/__init__.py Registers both new dataset classes
pyproject.toml Adds boto3>=1.26.0 dependency
uv.lock Lock file updated with boto3 and transitive dependencies

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +7 to +11
from evalio._cpp.types import Duration, LidarMeasurement, Point, Stamp # type: ignore
from evalio.datasets.loaders import RawDataIter
from evalio.types import (
SE3,
SO3,
Comment on lines +53 to +54
File format: t, x, y, z, vx, vy, vz, r, p, y, wz, wy, wx
where t is in microseconds and r, p, y are roll, pitch, yaw in radians.
@contagon
Copy link
Owner Author

Welp, gave Claude a shot at solving this and it failed spectacularly lol. After much cleaning up, this is finally all working!

@contagon contagon merged commit 1a598f6 into main Mar 19, 2026
14 checks passed
@contagon contagon deleted the feat/boreas branch March 19, 2026 00:02
This was referenced Nov 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants