photonlibpy 2024.3.1__py3-none-any.whl → 2025.0.0b1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.1
2
+ Name: photonlibpy
3
+ Version: 2025.0.0b1
4
+ Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors. Implemented with PhotonVision version v2025.0.0-beta-1 .
5
+ Home-page: https://photonvision.org
6
+ Author: Photonvision Development Team
7
+ Description-Content-Type: text/markdown
8
+ Requires-Dist: wpilib<2025,>=2024.0.0b2
9
+ Requires-Dist: robotpy-wpimath<2025,>=2024.0.0b2
10
+ Requires-Dist: robotpy-apriltag<2025,>=2024.0.0b2
11
+ Requires-Dist: pyntcore<2025,>=2024.0.0b2
12
+
13
+ A Pure-python implementation of PhotonLib
@@ -0,0 +1,22 @@
1
+ photonlibpy/__init__.py,sha256=JnwWj53fEM263hUjEFGmJ--M3XCX0LYovdrl4wcNRnU,1136
2
+ photonlibpy/estimatedRobotPose.py,sha256=X7wF9xdPXGKSVy0MY0qrWZJOEbuZPd721lYp0KXKlP0,1603
3
+ photonlibpy/packet.py,sha256=ppNJGN9bgWA4smefFvaxqF56Qwcjj0dnqwSIjP92JlE,9528
4
+ photonlibpy/photonCamera.py,sha256=c3Q9AFuccR41AkajkqCRt3mqUtv7a-TNSKOmXBi9p7M,10181
5
+ photonlibpy/photonPoseEstimator.py,sha256=vSpPbKR2WB-bNgWnskSP0Os2CcCzqcPGsE1lUVrcSw0,12584
6
+ photonlibpy/version.py,sha256=Cac9aJKhHkgx4HcwV63_46tpcc8q-mu8IN_P1THZx2Q,77
7
+ photonlibpy/generated/MultiTargetPNPResultSerde.py,sha256=t0hQgz0BvzQTsx-l0EJjr5eRfkY6piQRhu_2N2s2nlw,2342
8
+ photonlibpy/generated/PhotonPipelineMetadataSerde.py,sha256=RiSWwu6ftwc19U_5uexu8VjET7NksjrXanzV8GYEHkE,2767
9
+ photonlibpy/generated/PhotonPipelineResultSerde.py,sha256=DUrkUj2E6nS-Ru-drY-sX8odAl693VKJx_8lp0U-V9M,2847
10
+ photonlibpy/generated/PhotonTrackedTargetSerde.py,sha256=AFuvhmOTBdDtkAOfdS99MRnTk7P-94P0wXi3GHyvJco,4271
11
+ photonlibpy/generated/PnpResultSerde.py,sha256=tdHNHs9A7KBkYgqXQ5mUBc2TF3R_w3I_t922-DS6sQw,2586
12
+ photonlibpy/generated/TargetCornerSerde.py,sha256=K2GJ_t_Gl91lJX823TeR10dzch1IQEX28tfob3eIftg,2080
13
+ photonlibpy/generated/__init__.py,sha256=WdCA9k7QNY1i8B9u5kBilnibajDBg7zfU8GbV7F2H8g,505
14
+ photonlibpy/targeting/TargetCorner.py,sha256=iFWTWu5HcpkBQyvhz_klpAB0TEmy-7_SsD1FHeNfnkE,147
15
+ photonlibpy/targeting/__init__.py,sha256=1GUy4MC8NbZ-TEcFgsnvSm_X0LYeZ0HZagMMRmGpx8A,295
16
+ photonlibpy/targeting/multiTargetPNPResult.py,sha256=G_5Rll-a0wnV2iJhwVpODY1Ag52uOUkzZfsGu5ns04Q,1006
17
+ photonlibpy/targeting/photonPipelineResult.py,sha256=jXaZoyJvNYXg8N3senagkk2iduV5m_qsNnqWS3OsHx8,2508
18
+ photonlibpy/targeting/photonTrackedTarget.py,sha256=qNPqh8eKTP9IIkBMVvkS_dq7SoVOpIm7d5b1ZUtN8bE,1811
19
+ photonlibpy-2025.0.0b1.dist-info/METADATA,sha256=nS1JEF7rUJQSFhyUbfaQsGdook8yknRW74EkZqR0mi0,555
20
+ photonlibpy-2025.0.0b1.dist-info/WHEEL,sha256=bFJAMchF8aTQGUgMZzHJyDDMPTO3ToJ7x23SLJa1SVo,92
21
+ photonlibpy-2025.0.0b1.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
22
+ photonlibpy-2025.0.0b1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: bdist_wheel (0.45.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,49 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from wpimath.geometry import Transform3d
3
- from photonlibpy.packet import Packet
4
-
5
-
6
- @dataclass
7
- class PNPResult:
8
- _NUM_BYTES_IN_FLOAT = 8
9
- PACK_SIZE_BYTES = 1 + (_NUM_BYTES_IN_FLOAT * 7 * 2) + (_NUM_BYTES_IN_FLOAT * 3)
10
-
11
- isPresent: bool = False
12
- best: Transform3d = field(default_factory=Transform3d)
13
- alt: Transform3d = field(default_factory=Transform3d)
14
- ambiguity: float = 0.0
15
- bestReprojError: float = 0.0
16
- altReprojError: float = 0.0
17
-
18
- def createFromPacket(self, packet: Packet) -> Packet:
19
- self.isPresent = packet.decodeBoolean()
20
-
21
- if not self.isPresent:
22
- return packet
23
-
24
- self.best = packet.decodeTransform()
25
- self.alt = packet.decodeTransform()
26
- self.bestReprojError = packet.decodeDouble()
27
- self.altReprojError = packet.decodeDouble()
28
- self.ambiguity = packet.decodeDouble()
29
- return packet
30
-
31
-
32
- @dataclass
33
- class MultiTargetPNPResult:
34
- _MAX_IDS = 32
35
- # pnpresult + MAX_IDS possible targets (arbitrary upper limit that should never be hit, ideally)
36
- _PACK_SIZE_BYTES = PNPResult.PACK_SIZE_BYTES + (1 * _MAX_IDS)
37
-
38
- estimatedPose: PNPResult = field(default_factory=PNPResult)
39
- fiducialIDsUsed: list[int] = field(default_factory=list)
40
-
41
- def createFromPacket(self, packet: Packet) -> Packet:
42
- self.estimatedPose = PNPResult()
43
- self.estimatedPose.createFromPacket(packet)
44
- self.fiducialIDsUsed = []
45
- for _ in range(MultiTargetPNPResult._MAX_IDS):
46
- fidId = packet.decode16()
47
- if fidId >= 0:
48
- self.fiducialIDsUsed.append(fidId)
49
- return packet
@@ -1,43 +0,0 @@
1
- from dataclasses import dataclass, field
2
-
3
- from photonlibpy.multiTargetPNPResult import MultiTargetPNPResult
4
- from photonlibpy.packet import Packet
5
- from photonlibpy.photonTrackedTarget import PhotonTrackedTarget
6
-
7
-
8
- @dataclass
9
- class PhotonPipelineResult:
10
- latencyMillis: float = -1.0
11
- timestampSec: float = -1.0
12
- targets: list[PhotonTrackedTarget] = field(default_factory=list)
13
- multiTagResult: MultiTargetPNPResult = field(default_factory=MultiTargetPNPResult)
14
-
15
- def populateFromPacket(self, packet: Packet) -> Packet:
16
- self.targets = []
17
- self.latencyMillis = packet.decodeDouble()
18
- targetCount = packet.decode8()
19
-
20
- for _ in range(targetCount):
21
- target = PhotonTrackedTarget()
22
- target.createFromPacket(packet)
23
- self.targets.append(target)
24
-
25
- self.multiTagResult = MultiTargetPNPResult()
26
- self.multiTagResult.createFromPacket(packet)
27
-
28
- return packet
29
-
30
- def setTimestampSeconds(self, timestampSec: float) -> None:
31
- self.timestampSec = timestampSec
32
-
33
- def getLatencyMillis(self) -> float:
34
- return self.latencyMillis
35
-
36
- def getTimestamp(self) -> float:
37
- return self.timestampSec
38
-
39
- def getTargets(self) -> list[PhotonTrackedTarget]:
40
- return self.targets
41
-
42
- def hasTargets(self) -> bool:
43
- return len(self.targets) > 0
@@ -1,13 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: photonlibpy
3
- Version: 2024.3.1
4
- Summary: Pure-python implementation of PhotonLib for interfacing with PhotonVision on coprocessors.
5
- Home-page: https://photonvision.org
6
- Author: Photonvision Development Team
7
- Description-Content-Type: text/markdown
8
- Requires-Dist: wpilib <2025,>=2024.0.0b2
9
- Requires-Dist: robotpy-wpimath <2025,>=2024.0.0b2
10
- Requires-Dist: robotpy-apriltag <2025,>=2024.0.0b2
11
- Requires-Dist: pyntcore <2025,>=2024.0.0b2
12
-
13
- A Pure-python implementation of PhotonLib
@@ -1,13 +0,0 @@
1
- photonlibpy/__init__.py,sha256=Poafj5ngdQ2T0yW3zhnQ2NHw70XrTwXvT8aDCAImYbg,30
2
- photonlibpy/estimatedRobotPose.py,sha256=_lgVu157fBpG85WpeS4uXWCF4aQDUbMI2SWXG5lee9I,673
3
- photonlibpy/multiTargetPNPResult.py,sha256=AgrRjSna1s8yJWUdBgWxqKxm0cqgXwYrKEzgfP7pzGE,1660
4
- photonlibpy/packet.py,sha256=Sg_Sln_DNYvdT0DpekIb6v67e3c4oX08zLQe9oDd2OU,3969
5
- photonlibpy/photonCamera.py,sha256=5bbyMIVnz9oCfeQR0CrycjrM7TuoDF_ybe6OZbAdVpk,6946
6
- photonlibpy/photonPipelineResult.py,sha256=IpHxXKuyfOKcslgm_Ce2PqV8HgXTN_IMUuNb5BBTzSo,1351
7
- photonlibpy/photonPoseEstimator.py,sha256=s99TjCi3SFpCo5fPckw2ZfJK7E3lvFO3zpr0GnDDyKM,11580
8
- photonlibpy/photonTrackedTarget.py,sha256=Br2L4fNNwQP4eUj9eV9I653FOER00JbeHB5SMNTSaHc,2482
9
- photonlibpy/version.py,sha256=cLtN559uk-KlzHhdhRQ2MoAO-iHP1C1nyS5PJ2F8TZo,62
10
- photonlibpy-2024.3.1.dist-info/METADATA,sha256=hd_3Q0yZnYzxZ4wHBequLJQOJokRlO-sq8zoOcQsvl8,500
11
- photonlibpy-2024.3.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
12
- photonlibpy-2024.3.1.dist-info/top_level.txt,sha256=T8Xc6U6he2VjKUAca6zawSkHdUZuLanxYIc4nxw2ctc,12
13
- photonlibpy-2024.3.1.dist-info/RECORD,,