libgnss++ v0.3.0¶
This release adds receiver-free position, velocity and attitude evaluation, received-event GNSS/IMU output, and compiler-free distribution paths. The library/CPack/CMake package version is 0.3.0. Existing estimator defaults are preserved; publishing the evaluation tools does not promote the frozen experimental vehicle constraints.
Highlights¶
- Online API/CSV exports fresh timestamped quaternion, FRD/NED Euler angles, heading initialization/health, fixed local frame and estimated IMU biases.
gnss pva-evaluatereplays public PPC logs and scores position, velocity and attitude with RMSE, P95, maximum, full SO(3) error, exact time matches, coverage, scene populations and censored initialization/recovery delays.- Fixed GNSS outage and IMU gap scenarios record missing output, reset, recovery and displacement-error growth without truth-based estimation or fitted time/mount/heading alignment.
gnss pva-demoincludes a project-authored, 12-snapshot synthetic scoring witness with missing initialization and an unhealthy 180-degree error.- Docker runtime, Linux TGZ/DEB and Windows ZIP include the PVA command surface. POSIX installation normalizes executable script newlines while preserving frozen/raw data. DEB builds include the ELF inspection utility.
Get started¶
docker run --rm -v "$PWD/output:/out" \
ghcr.io/rsasaki0109/gnssplusplus-library:v0.3.0 \
pva-demo --output-dir /out/new-pva-demo --plot
The witness validates scoring and packaging; it does not run sensor inference or establish field accuracy. For an external public log, mount PPC read-only:
docker run --rm -v /datasets/PPC-Dataset:/datasets/PPC-Dataset:ro \
-v "$PWD/output:/out" ghcr.io/rsasaki0109/gnssplusplus-library:v0.3.0 \
pva-evaluate --run-dir /datasets/PPC-Dataset/tokyo/run1 \
--output-dir /out/new-tokyo1 --max-epochs 600 --plot
Omit --max-epochs for a full run. Output directories must be new. No PPC raw
data are bundled. The replay simulates receipt at rover epochs and admits
navigation by toc/tof; it does not measure live network latency.
Distribution requirements¶
Release automation builds tag-matched TGZ/DEB for Ubuntu 24.04 amd64 and publishes checksums after a fresh DEB install smoke. The Windows x64 ZIP is built separately from the same tagged source and has its own checksum. The versioned GHCR image includes Python/numpy/matplotlib. TGZ targets Ubuntu 24.04 x86_64 and requires its system runtime and Python dependencies.
Windows requires Python 3.10+, the x64 MSVC runtime, and matplotlib for plots;
its optional binding is built for Python 3.12. Linux optional bindings use
PYTHONPATH=<prefix>/lib/python3.12/site-packages (/usr for DEB). C++ SDK
consumers need Eigen headers. See the PVA guide for installation details.
Accuracy and validation scope¶
The six existing PPC runs are development/regression data, not holdouts. Ground truth is used only for offline scoring and scene labels. Frozen control/candidate normal, GNSS-outage and IMU-gap runs comprise 36 replays. The vehicle-constraint candidate is No-Go: one strong improvement does not offset position, velocity and rotation regressions on other runs. Default candidate-none behavior is preserved. The measured online estimator still has large errors on several runs and is not validated for navigation use.
Position/freshness/heading health must be interpreted alongside accuracy; unhealthy outputs remain in primary error statistics. Offline batch estimates with future-input preprocessing are a separate comparison, not proof of received-event causality. Previously closed application holdouts and paused smartphone work were not reopened for this release.
The online API, PVA scoring/comparison, production prefix/parity and installed packaging checks pass. The feature PR passes Linux GCC/Clang core CI, strict docs, hygiene and static analysis. Historical Windows CTest retains nine platform/immutable-record/external-fixture failures; local ROS2 is unavailable.
See the PVA guide, frozen development results, online event API, and release runbook.