mirror of
https://github.com/Team4388/2023WayOfTheRobot.git
synced 2026-06-09 00:37:59 -06:00
40 lines
1.4 KiB
Java
40 lines
1.4 KiB
Java
|
|
package frc4388.robot.subsystems;
|
||
|
|
|
||
|
|
import edu.wpi.first.apriltag.AprilTag;
|
||
|
|
import edu.wpi.first.math.geometry.Pose3d;
|
||
|
|
import edu.wpi.first.math.geometry.Rotation3d;
|
||
|
|
import edu.wpi.first.networktables.NetworkTable;
|
||
|
|
import edu.wpi.first.networktables.NetworkTableEntry;
|
||
|
|
import edu.wpi.first.networktables.NetworkTableInstance;
|
||
|
|
|
||
|
|
public class Vision {
|
||
|
|
private final NetworkTableEntry m_isTags;
|
||
|
|
private final NetworkTableEntry m_xPoses;
|
||
|
|
private final NetworkTableEntry m_yPoses;
|
||
|
|
private final NetworkTableEntry m_zPoses;
|
||
|
|
|
||
|
|
public Vision() {
|
||
|
|
final var tagTable = NetworkTableInstance.getDefault().getTable("apriltag");
|
||
|
|
|
||
|
|
m_isTags = tagTable.getEntry("IsTag");
|
||
|
|
m_xPoses = tagTable.getEntry("TagPosX");
|
||
|
|
m_yPoses = tagTable.getEntry("TagPosY");
|
||
|
|
m_zPoses = tagTable.getEntry("TagPosZ");
|
||
|
|
}
|
||
|
|
|
||
|
|
public AprilTag[] getAprilTags() {
|
||
|
|
if (!m_isTags.getBoolean(false)) return new AprilTag[0];
|
||
|
|
|
||
|
|
double xarr[] = m_xPoses.getDoubleArray(new double[] {});
|
||
|
|
double yarr[] = m_yPoses.getDoubleArray(new double[] {});
|
||
|
|
double zarr[] = m_zPoses.getDoubleArray(new double[] {});
|
||
|
|
|
||
|
|
AprilTag tags[] = new AprilTag[xarr.length];
|
||
|
|
for (int i = 0; i < tags.length; i++) {
|
||
|
|
tags[i] = new AprilTag(0, new Pose3d(xarr[i], yarr[i], zarr[i], new Rotation3d()));
|
||
|
|
}
|
||
|
|
|
||
|
|
return tags;
|
||
|
|
}
|
||
|
|
}
|