2024-08-31 13:44:19 -04:00
|
|
|
from dataclasses import dataclass, field
|
2024-11-12 16:53:43 +11:00
|
|
|
from typing import TYPE_CHECKING, ClassVar
|
2024-11-10 13:42:16 +08:00
|
|
|
|
2024-08-31 13:44:19 -04:00
|
|
|
from wpimath.geometry import Transform3d
|
2024-11-10 13:42:16 +08:00
|
|
|
|
2024-11-12 16:53:43 +11:00
|
|
|
if TYPE_CHECKING:
|
2024-11-14 02:39:02 +11:00
|
|
|
from ..generated.MultiTargetPNPResultSerde import MultiTargetPNPResultSerde
|
|
|
|
|
from ..generated.PnpResultSerde import PnpResultSerde
|
2024-11-12 16:53:43 +11:00
|
|
|
|
2024-08-31 13:44:19 -04:00
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class PnpResult:
|
|
|
|
|
best: Transform3d = field(default_factory=Transform3d)
|
|
|
|
|
alt: Transform3d = field(default_factory=Transform3d)
|
|
|
|
|
ambiguity: float = 0.0
|
2024-11-09 11:08:57 +11:00
|
|
|
bestReprojErr: float = 0.0
|
|
|
|
|
altReprojErr: float = 0.0
|
2024-08-31 13:44:19 -04:00
|
|
|
|
2024-11-14 02:39:02 +11:00
|
|
|
photonStruct: ClassVar["PnpResultSerde"]
|
2024-08-31 13:44:19 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
|
class MultiTargetPNPResult:
|
|
|
|
|
_MAX_IDS = 32
|
|
|
|
|
|
|
|
|
|
estimatedPose: PnpResult = field(default_factory=PnpResult)
|
|
|
|
|
fiducialIDsUsed: list[int] = field(default_factory=list)
|
|
|
|
|
|
2024-11-14 02:39:02 +11:00
|
|
|
photonStruct: ClassVar["MultiTargetPNPResultSerde"]
|