Class DCMotor

java.lang.Object
edu.wpi.first.math.system.plant.DCMotor
All Implemented Interfaces:
ProtobufSerializable, StructSerializable, WPISerializable

public class DCMotor extends Object implements ProtobufSerializable, StructSerializable
Holds the constants for a DC motor.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final double
    Current draw under no load.
    final double
    Angular velocity under no load.
    final double
    Motor torque constant.
    final double
    Motor velocity constant.
    final double
    Voltage at which the motor constants were measured.
    static final DCMotorProto
    DCMotor protobuf for serialization.
    final double
    Motor internal resistance.
    final double
    Current draw when stalled.
    final double
    Torque when stalled.
    static final DCMotorStruct
    DCMotor struct for serialization.
  • Constructor Summary

    Constructors
    Constructor
    Description
    DCMotor(double nominalVoltageVolts, double stallTorqueNewtonMeters, double stallCurrentAmps, double freeCurrentAmps, double freeSpeedRadPerSec, int numMotors)
    Constructs a DC motor.
  • Method Summary

    Modifier and Type
    Method
    Description
    static DCMotor
    getAndymark9015(int numMotors)
    Return a gearbox of Andymark 9015 motors.
    static DCMotor
    getAndymarkRs775_125(int numMotors)
    Return a gearbox of Andymark RS775-125 motors.
    static DCMotor
    getBag(int numMotors)
    Return a gearbox of Bag motors.
    static DCMotor
    getBanebotsRs550(int numMotors)
    Return a gearbox of Banebots RS 550 motors.
    static DCMotor
    getBanebotsRs775(int numMotors)
    Return a gearbox of Banebots RS775 motors.
    static DCMotor
    getCIM(int numMotors)
    Return a gearbox of CIM motors.
    double
    getCurrent(double speedRadiansPerSec, double voltageInputVolts)
    Calculate current drawn by motor with given speed and input voltage.
    static DCMotor
    getFalcon500(int numMotors)
    Return a gearbox of Falcon 500 motors.
    static DCMotor
    getFalcon500Foc(int numMotors)
    Return a gearbox of Falcon 500 motors with FOC (Field-Oriented Control) enabled.
    static DCMotor
    getKrakenX60(int numMotors)
    Return a gearbox of Kraken X60 brushless motors.
    static DCMotor
    getKrakenX60Foc(int numMotors)
    Return a gearbox of Kraken X60 brushless motors with FOC (Field-Oriented Control) enabled.
    static DCMotor
    getMiniCIM(int numMotors)
    Return a gearbox of MiniCIM motors.
    static DCMotor
    getNEO(int numMotors)
    Return a gearbox of NEO motors.
    static DCMotor
    getNeo550(int numMotors)
    Return a gearbox of NEO 550 motors.
    static DCMotor
    getNeoVortex(int numMotors)
    Return a gearbox of Neo Vortex brushless motors.
    static DCMotor
    getRomiBuiltIn(int numMotors)
    Return a gearbox of Romi/TI_RSLK MAX motors.
    double
    getSpeed(double torqueNm, double voltageInputVolts)
    Calculates the angular speed produced by the motor at a given torque and input voltage.
    double
    getTorque(double currentAmpere)
    Calculate torque produced by the motor with a given current.
    static DCMotor
    getVex775Pro(int numMotors)
    Return a gearbox of 775Pro motors.
    double
    getVoltage(double torqueNm, double speedRadiansPerSec)
    Calculate the voltage provided to the motor for a given torque and angular velocity.
    withReduction(double gearboxReduction)
    Returns a copy of this motor with the given gearbox reduction applied.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • nominalVoltageVolts

      public final double nominalVoltageVolts
      Voltage at which the motor constants were measured.
    • stallTorqueNewtonMeters

      public final double stallTorqueNewtonMeters
      Torque when stalled.
    • stallCurrentAmps

      public final double stallCurrentAmps
      Current draw when stalled.
    • freeCurrentAmps

      public final double freeCurrentAmps
      Current draw under no load.
    • freeSpeedRadPerSec

      public final double freeSpeedRadPerSec
      Angular velocity under no load.
    • rOhms

      public final double rOhms
      Motor internal resistance.
    • KvRadPerSecPerVolt

      public final double KvRadPerSecPerVolt
      Motor velocity constant.
    • KtNMPerAmp

      public final double KtNMPerAmp
      Motor torque constant.
    • proto

      public static final DCMotorProto proto
      DCMotor protobuf for serialization.
    • struct

      public static final DCMotorStruct struct
      DCMotor struct for serialization.
  • Constructor Details

    • DCMotor

      public DCMotor(double nominalVoltageVolts, double stallTorqueNewtonMeters, double stallCurrentAmps, double freeCurrentAmps, double freeSpeedRadPerSec, int numMotors)
      Constructs a DC motor.
      Parameters:
      nominalVoltageVolts - Voltage at which the motor constants were measured.
      stallTorqueNewtonMeters - Torque when stalled.
      stallCurrentAmps - Current draw when stalled.
      freeCurrentAmps - Current draw under no load.
      freeSpeedRadPerSec - Angular velocity under no load.
      numMotors - Number of motors in a gearbox.
  • Method Details

    • getCurrent

      public double getCurrent(double speedRadiansPerSec, double voltageInputVolts)
      Calculate current drawn by motor with given speed and input voltage.
      Parameters:
      speedRadiansPerSec - The current angular velocity of the motor.
      voltageInputVolts - The voltage being applied to the motor.
      Returns:
      The estimated current.
    • getTorque

      public double getTorque(double currentAmpere)
      Calculate torque produced by the motor with a given current.
      Parameters:
      currentAmpere - The current drawn by the motor.
      Returns:
      The torque output.
    • getVoltage

      public double getVoltage(double torqueNm, double speedRadiansPerSec)
      Calculate the voltage provided to the motor for a given torque and angular velocity.
      Parameters:
      torqueNm - The torque produced by the motor.
      speedRadiansPerSec - The current angular velocity of the motor.
      Returns:
      The voltage of the motor.
    • getSpeed

      public double getSpeed(double torqueNm, double voltageInputVolts)
      Calculates the angular speed produced by the motor at a given torque and input voltage.
      Parameters:
      torqueNm - The torque produced by the motor.
      voltageInputVolts - The voltage applied to the motor.
      Returns:
      The angular speed of the motor.
    • withReduction

      public DCMotor withReduction(double gearboxReduction)
      Returns a copy of this motor with the given gearbox reduction applied.
      Parameters:
      gearboxReduction - The gearbox reduction.
      Returns:
      A motor with the gearbox reduction applied.
    • getCIM

      public static DCMotor getCIM(int numMotors)
      Return a gearbox of CIM motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of CIM motors.
    • getVex775Pro

      public static DCMotor getVex775Pro(int numMotors)
      Return a gearbox of 775Pro motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of 775Pro motors.
    • getNEO

      public static DCMotor getNEO(int numMotors)
      Return a gearbox of NEO motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of NEO motors.
    • getMiniCIM

      public static DCMotor getMiniCIM(int numMotors)
      Return a gearbox of MiniCIM motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of MiniCIM motors.
    • getBag

      public static DCMotor getBag(int numMotors)
      Return a gearbox of Bag motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Bag motors.
    • getAndymarkRs775_125

      public static DCMotor getAndymarkRs775_125(int numMotors)
      Return a gearbox of Andymark RS775-125 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Andymark RS775-125 motors.
    • getBanebotsRs775

      public static DCMotor getBanebotsRs775(int numMotors)
      Return a gearbox of Banebots RS775 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Banebots RS775 motors.
    • getAndymark9015

      public static DCMotor getAndymark9015(int numMotors)
      Return a gearbox of Andymark 9015 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Andymark 9015 motors.
    • getBanebotsRs550

      public static DCMotor getBanebotsRs550(int numMotors)
      Return a gearbox of Banebots RS 550 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Banebots RS 550 motors.
    • getNeo550

      public static DCMotor getNeo550(int numMotors)
      Return a gearbox of NEO 550 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of NEO 550 motors.
    • getFalcon500

      public static DCMotor getFalcon500(int numMotors)
      Return a gearbox of Falcon 500 motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Falcon 500 motors.
    • getFalcon500Foc

      public static DCMotor getFalcon500Foc(int numMotors)
      Return a gearbox of Falcon 500 motors with FOC (Field-Oriented Control) enabled.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Falcon 500 FOC enabled motors.
    • getRomiBuiltIn

      public static DCMotor getRomiBuiltIn(int numMotors)
      Return a gearbox of Romi/TI_RSLK MAX motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Romi/TI_RSLK MAX motors.
    • getKrakenX60

      public static DCMotor getKrakenX60(int numMotors)
      Return a gearbox of Kraken X60 brushless motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      a gearbox of Kraken X60 motors.
    • getKrakenX60Foc

      public static DCMotor getKrakenX60Foc(int numMotors)
      Return a gearbox of Kraken X60 brushless motors with FOC (Field-Oriented Control) enabled.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      A gearbox of Kraken X60 FOC enabled motors.
    • getNeoVortex

      public static DCMotor getNeoVortex(int numMotors)
      Return a gearbox of Neo Vortex brushless motors.
      Parameters:
      numMotors - Number of motors in the gearbox.
      Returns:
      a gearbox of Neo Vortex motors.