mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-04-22 19:26:37 +00:00
initial structure implemented
docs -> _docs
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
from .relative_pose import RelativePose
|
||||
from .motion import Motion
|
||||
from .matches import Matches
|
||||
from .alignment_result import AlignmentResult, ChunkAlignmentResult
|
||||
from .rotation_result import RotationResult
|
||||
|
||||
__all__ = [
|
||||
"RelativePose",
|
||||
"Motion",
|
||||
"Matches",
|
||||
"AlignmentResult",
|
||||
"ChunkAlignmentResult",
|
||||
"RotationResult",
|
||||
]
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import numpy as np
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
from ..core.gps_point import GPSPoint
|
||||
from ..chunks.sim3_transform import Sim3Transform
|
||||
|
||||
|
||||
class AlignmentResult(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
matched: bool
|
||||
homography: np.ndarray
|
||||
gps_center: GPSPoint
|
||||
confidence: float
|
||||
inlier_count: int
|
||||
total_correspondences: int
|
||||
reprojection_error: float = 0.0
|
||||
|
||||
|
||||
class ChunkAlignmentResult(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
matched: bool
|
||||
chunk_id: str
|
||||
chunk_center_gps: GPSPoint
|
||||
rotation_angle: float
|
||||
confidence: float
|
||||
inlier_count: int
|
||||
transform: Sim3Transform
|
||||
reprojection_error: float = 0.0
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import numpy as np
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class Matches(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
matches: np.ndarray
|
||||
scores: np.ndarray
|
||||
keypoints1: np.ndarray
|
||||
keypoints2: np.ndarray
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import numpy as np
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class Motion(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
translation: np.ndarray
|
||||
rotation: np.ndarray
|
||||
inliers: np.ndarray
|
||||
inlier_count: int
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
from typing import Optional
|
||||
import numpy as np
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class RelativePose(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
translation: np.ndarray
|
||||
rotation: np.ndarray
|
||||
confidence: float
|
||||
inlier_count: int
|
||||
total_matches: int
|
||||
tracking_good: bool
|
||||
scale_ambiguous: bool = True
|
||||
chunk_id: Optional[str] = None
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
import numpy as np
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class RotationResult(BaseModel):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
matched: bool
|
||||
initial_angle: float
|
||||
precise_angle: float
|
||||
confidence: float
|
||||
homography: np.ndarray
|
||||
inlier_count: int = 0
|
||||
|
||||
Reference in New Issue
Block a user