Skip to main content
Version: 0.6 (Latest)

Release Notes

February 26, 2026

Raptor Guide v0.6.0 Release

Overview

This release introduces a Python SDK, a new ground position query API, support for encrypted datasets with license keys, and includes important bug fixes.

Migration Difficulty: Low - FOM was deprecated in v0.5.0 and is now removed.


Breaking Changes

1. Figure of Merit (FOM) Removed

The FigureOfMerit output field, deprecated in v0.5.0, has been removed from the API. Use Confidence instead.

Migration:

// Old (removed):
double fom = output.fom;

// New:
double confidence = output.confidence;

2. New Result Enum Value

A new result value InsufficientMapCoverage has been added:

enum class Result {
Ok,
UncertainOutput,
PoseEstimationFailed,
InvalidInput,
InvalidLicense,
InsufficientMapCoverage, // New
Failed
};

This result is returned when the map does not have sufficient coverage for the given input pose.


New Features

1. Python SDK

A new Python SDK (raptor_guide) is now available. The package includes:

  • Prebuilt wheels for Linux x86_64 with python 3.9
  • Python bindings for the Guide SDK
  • Type stubs for IDE support
  • Build scripts for compiling bindings from source
  • Usage examples

Installation:

pip install raptor_guide-0.6.0-<platform>.whl

Basic Usage:

from raptor_guide import Guide, Config, Result

...

# Configure the SDK
config = Config()
config.image_width = width
config.image_height = height
config.map_paths = ["/path/to/map.r3db"]
config.license_path = "/path/to/license.license"

# Initialize
guide = Guide(config)

# Process an image
result = guide.update_pose(
image_data=grayscale_image.flatten(),
h_fov=h_fov,
v_fov=h_fov,
position=[x, y, z],
attitude=[rx, ry, rz, rw],
)

# Check result
if result.result == Result.Ok and result.confidence > 0.75:
print(f"Refined position: {result.position}")
print(f"Confidence: {result.confidence}")

2. Ground Position Query

New method to query the ground/surface position at a horizontal location on the map:

std::variant<Position, GroundPositionError> getGroundPosition(const Position& position) noexcept;

Use Case: Determining the map surface altitude at a specific location without processing an image.

Example:

Position queryPos = {latitude, longitude, 0.0};  // Altitude is ignored
auto result = guide.getGroundPosition(queryPos);
if (auto* groundPos = std::get_if<Position>(&result)) {
double altitude = (*groundPos)[2];
}

Note: This returns the position of the map surface, which may be the top of buildings or trees if present at that location.

3. Encrypted Dataset Support

Licenses can now include keys for decrypting encrypted datasets.


Critical Bug Fixes

1. MaxTime Not Working with Large Uncertainties

Fixed an issue where the maxTime parameter was not being respected when processing poses with large covariance values.

2. Lower Level of Detail for Narrow FOV

Fixed an issue where having a narrow FOV could result in lower level of detail of the map.


General Improvements

  • Improved performance for pose estimation with large uncertainties
  • Improved pose estimation for poses with a lot of horizon in the view
  • Early exit optimization when map coverage is too low
  • Improved automatic GPU selection on multi-GPU systems and new instructions on how to select a specific GPU.
  • Improved documentation for covariance interpretation in relation to chi-squared and confidence intervals

Raptor Guide Service Updates

1. License Path Configuration

The guide server now accepts a license path option for configuration.

2. InsufficientMapCoverage Result

The service protocol has been updated to include the new InsufficientMapCoverage result status.


Migration Checklist

  • Replace any remaining fom references with confidence
  • Update error handling to handle InsufficientMapCoverage result
  • (Optional) Explore the new Python SDK for prototyping
  • (Optional) Use getGroundPosition() if you need ground altitude queries

Additional Notes

  • Usage examples have been updated to demonstrate the new getGroundPosition() API

For complete usage examples, see the share/doc/raptor/examples/ directory in the SDK distribution.