Skip to content

Commit

Permalink
get state
Browse files Browse the repository at this point in the history
  • Loading branch information
dirtbikerxz committed Apr 6, 2021
1 parent f2775a2 commit 338c027
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 17 deletions.
24 changes: 9 additions & 15 deletions src/main/java/frc/robot/SwerveModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ public SwerveModule(int moduleNumber, SwerveModuleConstants moduleConstants){
mDriveMotor = new TalonFX(moduleConstants.driveMotorID);
configDriveMotor();

lastAngle = getAngle().getDegrees();
lastAngle = getState().angle.getDegrees();
}

public void setDesiredState(SwerveModuleState desiredState, boolean isOpenLoop){
SwerveModuleState state = CTREModuleState.optimize(desiredState, getAngle()); //Custom optimize command, since default WPILib optimize assumes continuous controller which CTRE is not
desiredState = CTREModuleState.optimize(desiredState, getState().angle); //Custom optimize command, since default WPILib optimize assumes continuous controller which CTRE is not

if(isOpenLoop){
double percentOutput = state.speedMetersPerSecond / Constants.Swerve.maxSpeed;
double percentOutput = desiredState.speedMetersPerSecond / Constants.Swerve.maxSpeed;
mDriveMotor.set(ControlMode.PercentOutput, percentOutput);
}
else {
double velocity = Conversions.MPSToFalcon(state.speedMetersPerSecond, Constants.Swerve.wheelCircumference, Constants.Swerve.driveGearRatio);
mDriveMotor.set(ControlMode.Velocity, velocity, DemandType.ArbitraryFeedForward, feedforward.calculate(state.speedMetersPerSecond));
double velocity = Conversions.MPSToFalcon(desiredState.speedMetersPerSecond, Constants.Swerve.wheelCircumference, Constants.Swerve.driveGearRatio);
mDriveMotor.set(ControlMode.Velocity, velocity, DemandType.ArbitraryFeedForward, feedforward.calculate(desiredState.speedMetersPerSecond));
}

double angle = (Math.abs(state.speedMetersPerSecond) <= (Constants.Swerve.maxSpeed * 0.01)) ? lastAngle : state.angle.getDegrees(); //Prevent rotating module if speed is les then 1%. Prevents Jittering.
double angle = (Math.abs(desiredState.speedMetersPerSecond) <= (Constants.Swerve.maxSpeed * 0.01)) ? lastAngle : desiredState.angle.getDegrees(); //Prevent rotating module if speed is less then 1%. Prevents Jittering.
mAngleMotor.set(ControlMode.Position, Conversions.degreesToFalcon(angle, Constants.Swerve.angleGearRatio));
lastAngle = angle;
}
Expand Down Expand Up @@ -89,16 +89,10 @@ public Rotation2d getCanCoder(){
return Rotation2d.fromDegrees(angleEncoder.getAbsolutePosition());
}

public Rotation2d getAngle(){
return Rotation2d.fromDegrees(Conversions.falconToDegrees(mAngleMotor.getSelectedSensorPosition(), Constants.Swerve.angleGearRatio));
}

public double getVelocity(){
return Conversions.falconToMPS(mDriveMotor.getSelectedSensorVelocity(), Constants.Swerve.wheelCircumference, Constants.Swerve.driveGearRatio);
}

public SwerveModuleState getState(){
return new SwerveModuleState(getVelocity(), getAngle());
double velocity = Conversions.falconToMPS(mDriveMotor.getSelectedSensorVelocity(), Constants.Swerve.wheelCircumference, Constants.Swerve.driveGearRatio);
Rotation2d angle = Rotation2d.fromDegrees(Conversions.falconToDegrees(mAngleMotor.getSelectedSensorPosition(), Constants.Swerve.angleGearRatio));
return new SwerveModuleState(velocity, angle);
}

}
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/subsystems/Swerve.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ public void periodic(){

for(SwerveModule mod : mSwerveMods){
SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Cancoder", mod.getCanCoder().getDegrees());
SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Integrated", mod.getAngle().getDegrees());
SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Velocity", mod.getVelocity());
SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Integrated", mod.getState().angle.getDegrees());
SmartDashboard.putNumber("Mod " + mod.moduleNumber + " Velocity", mod.getState().speedMetersPerSecond);
}
}
}

0 comments on commit 338c027

Please sign in to comment.