English | Українська
Current Client version: 1.0.0.
Dataset Server v1 is the source of truth for published metadata and binaries. See the generated public catalog.
python -m pip install -e .
dsm-client sync
dsm-client sync --check
dsm-client fetch iv.dev.4.ff.1 --format rosbag
dsm-client fetch iv.dev.4.ff.1 --format rosbag2
dsm-client validateSet DSM_SERVER_URL to the server base URL. Without it, the importer
uses the versioned local test fixture for reproducible offline work.
Generated catalog.json, CATALOG.md, and generated/ are replaced by the
importer. --check is read-only and exits nonzero when they are stale.
Fetched payloads live below
datasets/<family>/artifacts/<stable-id>/<format>/ and are narrowly ignored by
Git. This replaces the former raw-data sibling-checkout default;
--raw-root remains an expert/test migration override.
Publication requires DSM_SERVER_TOKEN:
python scripts/raw_catalog.py publish ID --format rosbag --version 1 \
--path PATH --metadata METADATA.jsonThe client calculates size/SHA-256 and uses the authenticated v1 lifecycle
without persisting the token. Run import-catalog after publication.
The former scripts and IVINS_* environment variables remain compatibility
interfaces through Client 1.x. DSM_* always takes precedence.
This repository is a client catalog for evaluating multiple visual-inertial navigation systems (VINS) against public and iVINS MAV recordings. Dataset recordings are not stored in this repository. Manifests point to authoritative download locations, ground truth, and implementation-specific YAML configurations. Recordings are obtained from the linked external catalogs. External catalog metadata is based on the official OpenVINS Supported Datasets page.
Useful links: raw-data catalog guide, manifest schema, iVINS configuration profiles, and iVINS calibration reports.
| ID | Dataset Name | Length (m) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
e.1.1.e |
V1_01_easy | 58 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.1.2.m |
V1_02_medium | 76 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.1.3.d |
V1_03_difficult | 79 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.2.1.e |
V2_01_easy | 37 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.2.2.m |
V2_02_medium | 83 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.2.3.d |
V2_03_difficult | 86 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.mh.1.e |
MH_01_easy | 80 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.mh.2.e |
MH_02_easy | 73 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.mh.3.m |
MH_03_medium | 131 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.mh.4.d |
MH_04_difficult | 92 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
e.mh.5.d |
MH_05_difficult | 98 | ROS Bag | ROS Bag2 | Trajectory | euroc_mav |
Catalog metadata: datasets/euroc/manifest.yaml.
| ID | Dataset Name | Length (m) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
t.r.1 |
room1 | 147 | ROS Bag | Not published | Trajectory | tum_vi |
t.r.2 |
room2 | 142 | ROS Bag | Not published | Trajectory | tum_vi |
t.r.3 |
room3 | 136 | ROS Bag | Not published | Trajectory | tum_vi |
t.r.4 |
room4 | 69 | ROS Bag | Not published | Trajectory | tum_vi |
t.r.5 |
room5 | 132 | ROS Bag | Not published | Trajectory | tum_vi |
t.r.6 |
room6 | 67 | ROS Bag | Not published | Trajectory | tum_vi |
Catalog metadata: datasets/tum-vi/manifest.yaml.
| ID | Dataset Name | Size (GB) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
ra.t.1–ra.t.8 |
table1–table8 | 4.77–16.01 | Catalog links | Not published | Trajectories | rpng_plane |
Sequence metadata and individual sizes: datasets/rpng-ar-table/manifest.yaml.
| ID | Dataset Name | Length (m) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
ro.ar.1/ro.ar.2; ro.ah.1/ro.ah.2 |
ArUco Room 01/02; Hallway 01/02 | 27–190 | Catalog links | Not published | Not available | rpng_aruco |
ro.n.1/ro.n.2 |
Neighborhood 01/02 | 2300–7400 | Catalog links | Not published | Not available; GPS messages may be present | rpng_ironsides |
Sequence metadata: datasets/rpng-openvins/manifest.yaml.
| ID | Dataset Name | Length (m) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
u.i.5, u.i.6, u.i.7, u.i.9, u.i.10 |
Indoor 5/6/7/9/10 | 129–314 | Catalog links | Not published | Catalog links | uzhfpv_indoor |
u.i45.2, u.i45.4, u.i45.12, u.i45.13, u.i45.14 |
Indoor 45deg 2/4/12/13/14 | 112–211 | Catalog links | Not published | Catalog links | uzhfpv_indoor_45 |
Sequence metadata: datasets/uzh-fpv/manifest.yaml.
| ID | Dataset Name | Length (km) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
ku.u.28, ku.u.32, ku.u.38, ku.u.39 |
Urban 28/32/38/39 | 7.30–11.47 | Not available; source format | Not available | Baseline trajectories | kaist |
Sequence metadata: datasets/kaist-urban/manifest.yaml.
The official OpenVINS catalog publishes numeric measurements but labels their
column as kilometers, which is inconsistent with the documented small indoor
capture environment. The values are retained below without asserting a unit.
The official KAIST project publishes 11 sequences; pure rotation has no
rotation_head variant.
| ID | Dataset Name | Catalog Measurement (unit unspecified) | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config / Launch |
|---|---|---|---|---|---|---|
kv.c |
circle | 29.99 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.c.f |
circle_fast | 64.15 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.c.h |
circle_head | 35.05 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.i |
infinite | 29.35 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.i.f |
infinite_fast | 54.24 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.i.h |
infinite_head | 37.45 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.r |
rotation | 7.82 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.r.f |
rotation_fast | 14.55 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.s |
square | 41.94 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.s.f |
square_fast | 44.07 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
kv.s.h |
square_head | 50.00 | ROS Bag | Not published | Trajectory | Config / ROS1 launch |
Sequence metadata: datasets/kaist-vio/manifest.yaml.
The following table is a local catalog of repository profile artifacts, not proof of validated runtime compatibility.
| Profile | Configuration Set | Calibration Reports | Equipment Configuration | VINS Configurations |
|---|---|---|---|---|
dev_01 |
Configuration catalog | Calibration catalog | Equipment template | Implementation index |
dev_02 |
Configuration catalog | Calibration catalog | Equipment template | Implementation index |
dev_03 |
Configuration catalog | Calibration catalog | Equipment template | Implementation index |
dev_04 |
Configuration catalog | Calibration catalog | Equipment template | Implementation index |
| ID | Dataset Name | Size | ROS Bag | ROS Bag2 | Ground Truth | Configurations |
|---|---|---|---|---|---|---|
| Not assigned | dev_01 |
Not yet registered | Not yet registered | Not yet registered | Declared in manifest.yaml when available |
OpenVINS, VINS-Mono, VINS-Fusion, VINS-NEO |
| Not assigned | dev_02, dev_03, prod, future-products |
Not yet registered | Not yet registered | Not yet registered | Declared per profile manifest | OpenVINS, VINS-Mono, VINS-Fusion, VINS-NEO |
iv.dev.4.ff.1 |
dev_4_flight_field_01 |
Unknown | Catalog: local import, not a public download. An authenticated LAN server has the artifact under this standard ID. The OneDrive share is provenance only; see the raw catalog guide | Catalog: not published. The authenticated LAN server has a locally derived artifact | Not provided | dev_04 profile catalog (canonical profile; legacy aliases are declared in config/profile-aliases.yaml) |
| ID | Dataset Name | Size | ROS Bag | ROS Bag2 | Ground Truth | OpenVINS Config |
|---|---|---|---|---|---|---|
| Not assigned | Placeholder — no manifest registered | Not yet registered | Not yet registered | Not yet registered | Not yet registered | Not yet registered |
Each registered sequence keeps its original technical id and also receives a
compact lowercase standard_id. Segments are dot-separated and encode family
lineage without changing source names or paths:
e: EuRoC (e.<room>.<sequence>.<e|m|d>ore.mh.<sequence>.<e|m|d>);t: TUM-VI (t.r.<sequence>);ra: RPNG AR Table (ra.t.<sequence>);ro: RPNG OpenVINS (ro.ar,ro.ah, andro.n);u: UZH-FPV (u.iandu.i45);ku: KAIST Urban (ku.u.<sequence>);kv: KAIST VIO motion and optional variant (c,i,r,s;f,h).
Standard IDs are immutable and globally unique. Once published, an ID must not be renamed or reused for another recording. Placeholder profiles receive no ID until a recording is registered.
- Every dataset manifest follows
docs/manifest-schema.md. - Every VINS implementation/profile has its own directory of YAML configuration files. Do not assume calibration or estimator settings are interchangeable.
- Placeholder directories contain
.gitkeepuntil reviewed configuration files are contributed. - The OpenVINS
dev_01YAML files are templates only. Replace every required placeholder with measured calibration and reviewed estimator settings before use. - Generated Kalibr artifacts for the iVINS
dev_04profile belong inconfigurations/ivins/kalibr/dev_04; only commit outputs from an actual, traceable Kalibr run. The Kalibr path keeps the explicitly reserved namedev_04; implementation configurations usedev_04to follow the establisheddev_01,dev_02, anddev_03convention. locks/records reproducible dataset/configuration revisions;test-suites/groups repeatable evaluation scenarios.
Keep dataset recordings, ROS bags, and other raw sensor captures outside this
repository and retrieve them through manifest links. Small, reviewable generated
calibration reports may be committed with their run metadata. Before adding any
large binary artifact, define and review a Git LFS tracking rule in
.gitattributes; do not commit large binaries first and migrate them later.
Run python scripts/validate_catalog.py or dsm-client validate to check
manifest YAML and expected catalog structure. The validator requires PyYAML
(python -m pip install pyyaml). The former validate_registry.py entrypoint
is a deprecated compatibility wrapper through Client 1.x.
Use scripts/raw_catalog.py to fetch, publish,
resolve, and inspect server artifacts in the ignored repository hierarchy. See the
local raw-data catalog guide for commands and test
runner integration. When verified mirrors exist, the tool automatically probes
a bounded set and downloads from the fastest viable source; manual source
selection is intentionally unsupported for legacy manifest sources.
Supported OneDrive folder records use an explicit file selector and Microsoft
Graph resolution at runtime; folder links themselves are never treated as bag
downloads. Google Drive folder records follow the same explicit-selector rule
and resolve through the official Drive API with locally supplied credentials.
- Add a manifest containing authoritative recording and ground-truth links.
- Add one configuration directory per supported VINS implementation.
- Replace placeholders only with traceable, reviewed settings.
- Add or update a test suite and validate the catalog.