diff --git a/photon-lib/src/main/java/org/photonvision/simulation/PhotonCameraSim.java b/photon-lib/src/main/java/org/photonvision/simulation/PhotonCameraSim.java index 8b6db0231..60a1ae2d0 100644 --- a/photon-lib/src/main/java/org/photonvision/simulation/PhotonCameraSim.java +++ b/photon-lib/src/main/java/org/photonvision/simulation/PhotonCameraSim.java @@ -431,7 +431,7 @@ public class PhotonCameraSim implements AutoCloseable { detectableTgts.add( new PhotonTrackedTarget( - Math.toDegrees(centerRot.getZ()), + -Math.toDegrees(centerRot.getZ()), -Math.toDegrees(centerRot.getY()), areaPercent, Math.toDegrees(centerRot.getX()), diff --git a/photon-lib/src/main/native/include/photon/simulation/PhotonCameraSim.h b/photon-lib/src/main/native/include/photon/simulation/PhotonCameraSim.h index 9b7397634..adcd9558c 100644 --- a/photon-lib/src/main/native/include/photon/simulation/PhotonCameraSim.h +++ b/photon-lib/src/main/native/include/photon/simulation/PhotonCameraSim.h @@ -260,7 +260,7 @@ class PhotonCameraSim { std::vector> cornersDouble{cornersFloat.begin(), cornersFloat.end()}; detectableTgts.emplace_back(PhotonTrackedTarget{ - centerRot.Z().convert().to(), + -centerRot.Z().convert().to(), -centerRot.Y().convert().to(), areaPercent, centerRot.X().convert().to(), tgt.fiducialId, pnpSim.best, pnpSim.alt, pnpSim.ambiguity, smallVec, cornersDouble}); diff --git a/photon-lib/src/test/java/org/photonvision/VisionSystemSimTest.java b/photon-lib/src/test/java/org/photonvision/VisionSystemSimTest.java index e0ffce7ab..71cd58654 100644 --- a/photon-lib/src/test/java/org/photonvision/VisionSystemSimTest.java +++ b/photon-lib/src/test/java/org/photonvision/VisionSystemSimTest.java @@ -256,7 +256,8 @@ class VisionSystemSimTest { cameraSim.setMinTargetAreaPixels(0.0); visionSysSim.addVisionTargets(new VisionTargetSim(targetPose, new TargetModel(0.5, 0.5), 3)); - var robotPose = new Pose2d(new Translation2d(10, 0), Rotation2d.fromDegrees(-1.0 * testYaw)); + // If the robot is rotated x deg (CCW+), the target yaw should be x deg (CW+) + var robotPose = new Pose2d(new Translation2d(10, 0), Rotation2d.fromDegrees(testYaw)); visionSysSim.update(robotPose); var res = camera.getLatestResult(); assertTrue(res.hasTargets()); diff --git a/photon-lib/src/test/native/cpp/VisionSystemSimTest.cpp b/photon-lib/src/test/native/cpp/VisionSystemSimTest.cpp index 1c3f9eac5..667b6f53a 100644 --- a/photon-lib/src/test/native/cpp/VisionSystemSimTest.cpp +++ b/photon-lib/src/test/native/cpp/VisionSystemSimTest.cpp @@ -220,8 +220,9 @@ TEST_P(VisionSystemSimTestWithParamsTest, YawAngles) { visionSysSim.AddVisionTargets({photon::VisionTargetSim{ targetPose, photon::TargetModel{0.5_m, 0.5_m}, 3}}); - robotPose = frc::Pose2d{frc::Translation2d{10_m, 0_m}, - frc::Rotation2d{-1 * GetParam()}}; + // If the robot is rotated x deg (CCW+), the target yaw should be x deg (CW+) + robotPose = + frc::Pose2d{frc::Translation2d{10_m, 0_m}, frc::Rotation2d{GetParam()}}; visionSysSim.Update(robotPose); ASSERT_TRUE(camera.GetLatestResult().HasTargets()); ASSERT_NEAR(GetParam().to(),