Lights
This commit is contained in:
parent
35c4873f43
commit
49399c7172
|
|
@ -0,0 +1,32 @@
|
|||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package org.fairportrobotics.frc.robolib.vision.limelight;
|
||||
|
||||
import com.ctre.phoenix6.hardware.Pigeon2;
|
||||
|
||||
import edu.wpi.first.math.VecBuilder;
|
||||
import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator;
|
||||
import edu.wpi.first.math.estimator.SwerveDrivePoseEstimator3d;
|
||||
import edu.wpi.first.math.kinematics.SwerveModulePosition;
|
||||
|
||||
public class Limelight {
|
||||
private String name;
|
||||
private Pigeon2 gyro;
|
||||
private SwerveDrivePoseEstimator3d poseEstimator;
|
||||
|
||||
public Limelight(String name, Pigeon2 gyro, SwerveDrivePoseEstimator3d poseEstimator) {
|
||||
this.name = name;
|
||||
this.gyro = gyro;
|
||||
this.poseEstimator = poseEstimator;
|
||||
}
|
||||
|
||||
public LimelightHelpers.PoseEstimate updateOdometry() {
|
||||
boolean useMegaTag2 = true; //set to false to use MegaTag1
|
||||
boolean doRejectUpdate = false;
|
||||
|
||||
LimelightHelpers.SetRobotOrientation(name, Math.toDegrees(poseEstimator.getEstimatedPosition().getRotation().getZ()), 0, 0, 0, 0, 0);
|
||||
return LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package org.fairportrobotics.frc.robolib.vision.limelight;
|
||||
|
||||
import edu.wpi.first.wpilibj2.command.Command;
|
||||
import edu.wpi.first.wpilibj2.command.SubsystemBase;
|
||||
|
||||
public class LimelightSubsystem extends SubsystemBase {
|
||||
/** Creates a new ExampleSubsystem. */
|
||||
public LimelightSubsystem() {}
|
||||
|
||||
/**
|
||||
* Example command factory method.
|
||||
*
|
||||
* @return a command
|
||||
*/
|
||||
public Command exampleMethodCommand() {
|
||||
// Inline construction of command goes here.
|
||||
// Subsystem::RunOnce implicitly requires `this` subsystem.
|
||||
return runOnce(
|
||||
() -> {
|
||||
/* one-time action goes here */
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* An example method querying a boolean state of the subsystem (for example, a digital sensor).
|
||||
*
|
||||
* @return value of some boolean subsystem state, such as a digital sensor.
|
||||
*/
|
||||
public boolean exampleCondition() {
|
||||
// Query some boolean state, such as a digital sensor.
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void periodic() {
|
||||
// This method will be called once per scheduler run
|
||||
}
|
||||
|
||||
@Override
|
||||
public void simulationPeriodic() {
|
||||
// This method will be called once per scheduler run during simulation
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue