mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-22 22:36:37 +00:00
abc26d5c20
docs -> _docs
42 lines
992 B
Python
42 lines
992 B
Python
from abc import ABC, abstractmethod
|
|
from typing import Optional
|
|
import numpy as np
|
|
|
|
from models.processing import RotationResult
|
|
from models.flight import HeadingRecord
|
|
|
|
|
|
class ImageRotationManagerBase(ABC):
|
|
@abstractmethod
|
|
async def estimate_rotation(
|
|
self, uav_image: np.ndarray, satellite_image: np.ndarray
|
|
) -> RotationResult:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def get_rotation_for_frame(
|
|
self, flight_id: str, frame_id: int
|
|
) -> Optional[float]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def update_heading_history(
|
|
self, flight_id: str, record: HeadingRecord
|
|
) -> None:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def predict_heading(self, flight_id: str) -> Optional[float]:
|
|
pass
|
|
|
|
@abstractmethod
|
|
async def is_sharp_turn(
|
|
self, flight_id: str, current_heading: float
|
|
) -> bool:
|
|
pass
|
|
|
|
@abstractmethod
|
|
def rotate_image(self, image: np.ndarray, angle: float) -> np.ndarray:
|
|
pass
|
|
|