Initial AprilTag support (#458)

(Very) beta AprilTag support in PhotonVision. Disables Picam GPU acceleration until we can debug auto exposure in the MMAL driver.

Co-authored-by: Banks Troutman <btrout.dhrs@gmail.com>
Co-authored-by: Matt <matthew.morley.ca@gmail.com>
Co-authored-by: Chris Gerth <gerth2@users.noreply.github.com>
Co-authored-by: Chris <chrisgerth010592@gmail.com>
Co-authored-by: mdurrani808 <mdurrani808@gmail.com>
This commit is contained in:
shueja-personal
2022-09-28 18:21:41 -07:00
committed by GitHub
parent a3bcd3ac4f
commit a764ace7f2
114 changed files with 21488 additions and 10851 deletions

View File

@@ -24,9 +24,7 @@
package org.photonvision;
import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.math.geometry.Transform2d;
import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.math.geometry.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.Assertions;
@@ -45,7 +43,8 @@ class PacketTest {
4.0,
9.0,
-5.0,
new Transform2d(new Translation2d(1, 2), new Rotation2d(1.5)),
-1,
new Transform3d(new Translation3d(), new Rotation3d()),
List.of(
new TargetCorner(1, 2),
new TargetCorner(3, 4),
@@ -80,7 +79,8 @@ class PacketTest {
-4.0,
9.0,
4.0,
new Transform2d(new Translation2d(1, 2), new Rotation2d(1.5)),
2,
new Transform3d(new Translation3d(1, 2, 3), new Rotation3d(1, 2, 3)),
List.of(
new TargetCorner(1, 2),
new TargetCorner(3, 4),
@@ -91,7 +91,8 @@ class PacketTest {
-4.0,
9.1,
6.7,
new Transform2d(new Translation2d(1, 5), new Rotation2d(1.5)),
3,
new Transform3d(new Translation3d(4, 2, 3), new Rotation3d(1, 5, 3)),
List.of(
new TargetCorner(1, 2),
new TargetCorner(3, 4),

View File

@@ -57,22 +57,22 @@ class SimVisionSystemTest {
});
}
@ParameterizedTest
@ValueSource(doubles = {5, 10, 15, 20, 25, 30})
public void testDistanceAligned(double dist) {
final var targetPose = new Pose2d(new Translation2d(35, 0), new Rotation2d());
var sysUnderTest =
new SimVisionSystem("Test", 80.0, 0.0, new Transform2d(), 1, 99999, 320, 240, 0);
sysUnderTest.addSimVisionTarget(new SimVisionTarget(targetPose, 0.0, 1.0, 1.0));
// @ParameterizedTest
// @ValueSource(doubles = {5, 10, 15, 20, 25, 30})
// public void testDistanceAligned(double dist) {
// final var targetPose = new Pose2d(new Translation2d(35, 0), new Rotation2d());
// var sysUnderTest =
// new SimVisionSystem("Test", 80.0, 0.0, new Transform2d(), 1, 99999, 320, 240, 0);
// sysUnderTest.addSimVisionTarget(new SimVisionTarget(targetPose, 0.0, 1.0, 1.0));
final var robotPose = new Pose2d(new Translation2d(35 - dist, 0), new Rotation2d());
sysUnderTest.processFrame(robotPose);
// final var robotPose = new Pose2d(new Translation2d(35 - dist, 0), new Rotation2d());
// sysUnderTest.processFrame(robotPose);
var result = sysUnderTest.cam.getLatestResult();
// var result = sysUnderTest.cam.getLatestResult();
assertTrue(result.hasTargets());
assertEquals(result.getBestTarget().getCameraToTarget().getTranslation().getNorm(), dist);
}
// assertTrue(result.hasTargets());
// assertEquals(result.getBestTarget().getCameraToTarget().getTranslation().getNorm(), dist);
// }
@Test
public void testVisibilityCupidShuffle() {