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
fomreferences withconfidence - Update error handling to handle
InsufficientMapCoverageresult - (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.