Class TankDriveTrain

    • Field Detail

      • maxSpeedPercent

        protected double maxSpeedPercent
    • Constructor Detail

      • TankDriveTrain

        public TankDriveTrain()
        Create a new TankDriveTrain
    • Method Detail

      • handleVoltage

        protected abstract void handleVoltage​(double leftVolts,
                                              double rightVolts)
        TO BE OVERRIDDEN BY THE USER. Send voltage to the motors
        Parameters:
        leftVolts - Left side voltage
        rightVolts - Right side voltage
      • resetEncoders

        protected abstract void resetEncoders()
        TO BE OVERRIDDEN BY THE USER. Reset the encoders to read 0 rotations each
      • setMotorsInverted

        protected abstract void setMotorsInverted​(boolean motorsInverted)
        TO BE OVERRIDDEN BY THE USER. Set if the motor outputs should be inverted
        Parameters:
        motorsInverted - Should invert motor outputs
      • setEncodersInverted

        protected abstract void setEncodersInverted​(boolean encodersInverted)
        TO BE OVERRIDDEN BY THE USER. Set if the encoder inputs should be inverted
        Parameters:
        encodersInverted - Should invert encoder inputs
      • getFrontSide

        public Chassis.Side getFrontSide()
        Get which side is the front
        Returns:
        Front side
      • handleDriverInputs

        public void handleDriverInputs​(double throttlePercent,
                                       double steeringPercent)
        Handle inputs from a human operator
        Parameters:
        throttlePercent - Throttle percentage
        steeringPercent - Steering percentage
      • setOpenLoop

        public void setOpenLoop​(double leftVolts,
                                double rightVolts)
        Set an open-loop output
        Parameters:
        leftVolts - Left side voltage
        rightVolts - Right side voltage
      • setOpenLoop

        public void setOpenLoop​(DifferentialVoltages voltages)
        Set an open-loop output
        Parameters:
        voltages - Voltages
      • enableConstantCurvature

        public void enableConstantCurvature​(boolean enabled)
        Set if constant-curvature control should be used
        Parameters:
        enabled - Should use constant-curvature control?
      • setMaxSpeedPercent

        public void setMaxSpeedPercent​(double maxSpeedPercent)
        Description copied from class: AbstractDriveTrain
        Set the maximum speed percent
        Specified by:
        setMaxSpeedPercent in class AbstractDriveTrain
        Parameters:
        maxSpeedPercent - Maximum speed percent
      • calculateThrottleCorrectionFactor

        public static double calculateThrottleCorrectionFactor​(Rotation2d angularError)
        Calculates a corrective factor for throttle values, as per: https://bitbucket.org/kaleb_dodd/simbot2019public/src/abc56f5220b5c94bca216f86e3b6b5757d0ffeff/src/main/java/frc/subsystems/Drive.java#lines-337
        Parameters:
        angularError - Error from target heading
        Returns:
        Throttle correction