From 0fc98c99dda977200191041af899098d4f2822ef Mon Sep 17 00:00:00 2001 From: Mason-Lam <97353903+Mason-Lam@users.noreply.github.com> Date: Thu, 8 Feb 2024 20:32:08 -0800 Subject: [PATCH] Changes after testing in workshop 2/6 --- doc/allclasses-index.html | 20 ++- doc/common/core/commands/NAR_PIDCommand.html | 30 ++++- doc/common/core/commands/package-summary.html | 4 +- .../core/controllers/TrapController.html | 25 +++- .../core/subsystems/ElevatorTemplate.html | 8 +- doc/common/core/subsystems/PivotTemplate.html | 22 ++-- .../shuffleboard/NAR_Shuffleboard.html | 121 ++++++++++++++++-- .../utility/sysid/FFCharacterization.html | 30 +++-- doc/common/utility/tester/Tester.Test.html | 27 +++- doc/common/utility/tester/Tester.html | 57 ++++----- .../utility/tester/package-summary.html | 12 +- doc/index-all.html | 76 ++++++++--- doc/member-search-index.js | 2 +- .../common/core/commands/NAR_PIDCommand.java | 14 +- .../core/controllers/TrapController.java | 18 ++- .../core/subsystems/ElevatorTemplate.java | 2 +- .../core/subsystems/ManipulatorTemplate.java | 6 +- .../core/subsystems/NAR_PIDSubsystem.java | 8 +- .../common/core/subsystems/PivotTemplate.java | 6 +- .../java/common/core/swerve/SwerveBase.java | 17 +-- .../shuffleboard/NAR_Shuffleboard.java | 82 ++++++++++-- .../java/common/utility/sysid/CmdSysId.java | 1 + .../utility/sysid/FFCharacterization.java | 11 ++ .../java/common/utility/tester/Tester.java | 55 ++++++-- 24 files changed, 503 insertions(+), 151 deletions(-) diff --git a/doc/allclasses-index.html b/doc/allclasses-index.html index 021e829..f6ecf86 100644 --- a/doc/allclasses-index.html +++ b/doc/allclasses-index.html @@ -158,7 +158,9 @@

All Classes and Interfaces<
Motor states when no voltage is applied
NAR_PIDCommand
-
 
+
+
Team 3128's PIDCommand that uses a ControllerBase to control an output.
+
NAR_PIDSubsystem
A subsystem based off of PIDSubsystem
@@ -238,16 +240,20 @@

All Classes and Interfaces<
Team 3128's Tester utility class used to run system checks at competitions.
- -
+ +
+
Collection of tests to be run for a system
+
+ +
Enum representing test states
- -
+ +
System test
- -
+ +
Team 3128's streamlined ProfiledPIDController class.
diff --git a/doc/common/core/commands/NAR_PIDCommand.html b/doc/common/core/commands/NAR_PIDCommand.html index 6bd8e6b..851a3e0 100644 --- a/doc/common/core/commands/NAR_PIDCommand.html +++ b/doc/common/core/commands/NAR_PIDCommand.html @@ -83,6 +83,11 @@

Class NAR_PIDCommand


public class NAR_PIDCommand extends edu.wpi.first.wpilibj2.command.Command
+
Team 3128's PIDCommand that uses a ControllerBase to control an output.
+
+
Since:
+
2024 Crescendo
+
    @@ -149,7 +154,7 @@

    Method Summary

    Method
    Description
    void
    -
    end()
    +
    end(boolean interrupted)
     
    void
    @@ -157,12 +162,15 @@

    Method Summary

    void
     
    +
    boolean
    + +
     

Methods inherited from class edu.wpi.first.wpilibj2.command.Command

-addRequirements, alongWith, andThen, andThen, asProxy, beforeStarting, beforeStarting, cancel, deadlineWith, end, finallyDo, finallyDo, getInterruptionBehavior, getName, getRequirements, getSubsystem, handleInterrupt, hasRequirement, ignoringDisable, initSendable, isFinished, isScheduled, onlyIf, onlyWhile, raceWith, repeatedly, runsWhenDisabled, schedule, setName, setSubsystem, unless, until, withInterruptBehavior, withName, withTimeout
+addRequirements, alongWith, andThen, andThen, asProxy, beforeStarting, beforeStarting, cancel, deadlineWith, finallyDo, finallyDo, getInterruptionBehavior, getName, getRequirements, getSubsystem, handleInterrupt, hasRequirement, ignoringDisable, initSendable, isScheduled, onlyIf, onlyWhile, raceWith, repeatedly, runsWhenDisabled, schedule, setName, setSubsystem, unless, until, withInterruptBehavior, withName, withTimeout

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
@@ -238,9 +246,23 @@

execute

  • -
    +

    end

    -
    public void end()
    +
    public void end(boolean interrupted)
    +
    +
    Overrides:
    +
    end in class edu.wpi.first.wpilibj2.command.Command
    +
    +
    +
  • +
  • +
    +

    isFinished

    +
    public boolean isFinished()
    +
    +
    Overrides:
    +
    isFinished in class edu.wpi.first.wpilibj2.command.Command
    +
  • diff --git a/doc/common/core/commands/package-summary.html b/doc/common/core/commands/package-summary.html index c1db6a4..c287c61 100644 --- a/doc/common/core/commands/package-summary.html +++ b/doc/common/core/commands/package-summary.html @@ -68,7 +68,9 @@

    Package common.core.comma
    Class
    Description
    NAR_PIDCommand
    -
     
    +
    +
    Team 3128's PIDCommand that uses a ControllerBase to control an output.
    +
    diff --git a/doc/common/core/controllers/TrapController.html b/doc/common/core/controllers/TrapController.html index 784ec34..eaca3c2 100644 --- a/doc/common/core/controllers/TrapController.html +++ b/doc/common/core/controllers/TrapController.html @@ -50,7 +50,7 @@ @@ -95,6 +95,15 @@

    Class TrapController

  • Field Summary

    +
    Fields
    +
    +
    Modifier and Type
    +
    Field
    +
    Description
    +
    static boolean
    + +
     
    +

    Fields inherited from class common.core.controllers.ControllerBase

    controller, kA, kG, kG_Function, kS, kV, measurement
    @@ -208,6 +217,20 @@

    Methods inherited from cl

  • diff --git a/doc/common/utility/tester/Tester.Test.html b/doc/common/utility/tester/Tester.Test.html index 7230309..377a13f 100644 --- a/doc/common/utility/tester/Tester.Test.html +++ b/doc/common/utility/tester/Tester.Test.html @@ -85,7 +85,7 @@

    Class Tester.Test

    Tester

    -
    public class Tester.Test +
    public static class Tester.Test extends edu.wpi.first.wpilibj2.command.Command
    Collection of tests to be run for a system
    @@ -133,13 +133,20 @@

    Method Summary

     
    -
     
    +
    +
    Returns whether or not the test has passed, failed, or is running.
    +
    void
     
    boolean
     
    +
    void
    +
    setTimeBetweenTests(double time)
    +
    +
    Sets the time between each test.
    +
    @@ -215,6 +222,22 @@

    isFinished

    getTestState

    public Tester.TestState getTestState()
    +
    Returns whether or not the test has passed, failed, or is running.
    +
    +
    Returns:
    +
    The current state of the test.
    +
    +
    + +
  • +
    +

    setTimeBetweenTests

    +
    public void setTimeBetweenTests(double time)
    +
    Sets the time between each test.
    +
    +
    Parameters:
    +
    time - Time between tests.
    +
  • diff --git a/doc/common/utility/tester/Tester.html b/doc/common/utility/tester/Tester.html index f9d5ffa..135c929 100644 --- a/doc/common/utility/tester/Tester.html +++ b/doc/common/utility/tester/Tester.html @@ -44,13 +44,13 @@ @@ -90,7 +90,7 @@

    Nested Class Summary

    Modifier and Type
    Class
    Description
    -
    class 
    +
    static class 
    Collection of tests to be run for a system
    @@ -108,21 +108,6 @@

    Nested Class Summary

    - -
  • -
    -

    Field Summary

    -
    Fields
    -
    -
    Modifier and Type
    -
    Field
    -
    Description
    - - -
     
    -
    -
    -
  • @@ -143,9 +128,14 @@

    Method Summary

    static Tester
     
    -
    void
    - + +
    +
    Returns a Test for the robot.
    +
    +
    void
    + +
    Runs the unit tests for a system.
    @@ -160,20 +150,6 @@

    Methods inherited from cl

      - -
    • -
      -

      Field Details

      - -
      -
    • @@ -199,6 +175,19 @@

      addTest

    • +
      +

      getTest

      +
      public Tester.Test getTest(String name)
      +
      Returns a Test for the robot.
      +
      +
      Parameters:
      +
      name - Name of the test or system.
      +
      Returns:
      +
      A Test.
      +
      +
      +
    • +
    • runTest

      public void runTest(String name)
      diff --git a/doc/common/utility/tester/package-summary.html b/doc/common/utility/tester/package-summary.html index 514880f..afb4d42 100644 --- a/doc/common/utility/tester/package-summary.html +++ b/doc/common/utility/tester/package-summary.html @@ -97,12 +97,16 @@

      Package common.utility.t
      Team 3128's Tester utility class used to run system checks at competitions.
      - -
      + +
      +
      Collection of tests to be run for a system
      +
      + +
      Enum representing test states
      - -
      + +
      System test
      diff --git a/doc/index-all.html b/doc/index-all.html index d9f2387..059bb76 100644 --- a/doc/index-all.html +++ b/doc/index-all.html @@ -282,6 +282,10 @@

      C

       
      chassisVelocityCorrection - Variable in class common.core.swerve.SwerveBase
       
      +
      clear() - Method in class common.utility.sysid.FFCharacterization
      +
      +
      Clears the data stored in the FFCharacterization object.
      +
      close() - Method in class common.core.controllers.ControllerBase
      Closes the Controller.
      @@ -517,7 +521,7 @@

      E

      enableVoltageCompensation(double) - Method in class common.hardware.motorcontroller.NAR_TalonSRX
       
      -
      end() - Method in class common.core.commands.NAR_PIDCommand
      +
      end(boolean) - Method in class common.core.commands.NAR_PIDCommand
       
      end(boolean) - Method in class common.core.subsystems.NAR_PIDSubsystem.SetpointTest
       
      @@ -622,6 +626,10 @@

      G

      getAppliedOutput() - Method in class common.hardware.motorcontroller.NAR_TalonSRX
       
      +
      getBoolean(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      +
      +
      Get the value reference of a widget storing booleans.
      +
      getButton(int) - Method in class common.hardware.input.NAR_ButtonBoard
      Returns a button on the board
      @@ -658,6 +666,10 @@

      G

      Returns the distance from the best target to the camera.
      +
      getDouble(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      +
      +
      Get the value reference of a widget storing doubles.
      +
      getDownPOVButton() - Method in class common.hardware.input.NAR_Joystick
      Returns the 180 degree or down POV button
      @@ -738,6 +750,10 @@

      G

      Returns the y-axis value of the left joystick.
      +
      getLong(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      +
      +
      Get the value reference of a widget storing longs.
      +
      getMeasurement() - Method in class common.core.subsystems.ElevatorTemplate
       
      getMeasurement() - Method in class common.core.subsystems.NAR_PIDSubsystem
      @@ -764,6 +780,10 @@

      G

       
      getName() - Method in class common.hardware.camera.NAR_Camera
       
      +
      getObject(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      +
      +
      Get the value reference of a widget storing objects.
      +
      getP() - Method in class common.core.controllers.ControllerBase
      Get the Proportional coefficient.
      @@ -880,12 +900,22 @@

      G

       
      getStream() - Method in enum class common.hardware.limelight.StreamMode
       
      +
      getString(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      +
      +
      Get the value reference of a widget storing Strings.
      +
      getTarget3d() - Method in class common.hardware.camera.NAR_Camera
      Returns the best target to camera vector as a Transform3d.
      +
      getTest(String) - Method in class common.utility.tester.Tester
      +
      +
      Returns a Test for the robot.
      +
      getTestState() - Method in class common.utility.tester.Tester.Test
      -
       
      +
      +
      Returns whether or not the test has passed, failed, or is running.
      +
      getThrottle() - Method in class common.hardware.input.NAR_Joystick
      Returns the Joystick's throttle slider value
      @@ -909,7 +939,7 @@

      G

      getValue(String, String) - Static method in class common.utility.shuffleboard.NAR_Shuffleboard
      -
      Get the value from an widget
      +
      Get the network table reference of a widget.
      getValueAverage(LimelightKey, int) - Method in class common.hardware.limelight.Limelight
       
      @@ -1010,6 +1040,8 @@

      I

      Returns whether the controller is enabled.
      +
      isFinished() - Method in class common.core.commands.NAR_PIDCommand
      +
       
      isFinished() - Method in class common.core.subsystems.NAR_PIDSubsystem.SetpointTest
       
      isFinished() - Method in class common.utility.tester.CurrentTest
      @@ -1255,7 +1287,9 @@

      N

      NAR_MotorIO() - Constructor for class common.hardware.motorcontroller.NAR_Motor.NAR_MotorIO
       
      NAR_PIDCommand - Class in common.core.commands
      -
       
      +
      +
      Team 3128's PIDCommand that uses a ControllerBase to control an output.
      +
      NAR_PIDCommand(ControllerBase, DoubleSupplier, DoubleSupplier, DoubleConsumer, Subsystem...) - Constructor for class common.core.commands.NAR_PIDCommand
       
      NAR_PIDSubsystem - Class in common.core.subsystems
      @@ -1387,18 +1421,18 @@

      P

       
      PIPELINE - Enum constant in enum class common.hardware.limelight.LimelightKey
       
      -
      pivot(double) - Method in class common.core.subsystems.PivotTemplate
      -
      -
      Moves pivot to a setpoint.
      -
      PivotTemplate - Class in common.core.subsystems
      Team 3128's Pivot Template class.
      -
      PivotTemplate(ControllerBase, double, NAR_Motor...) - Constructor for class common.core.subsystems.PivotTemplate
      +
      PivotTemplate(ControllerBase, NAR_Motor...) - Constructor for class common.core.subsystems.PivotTemplate
      Creates an Pivot object.
      +
      pivotTo(double) - Method in class common.core.subsystems.PivotTemplate
      +
      +
      Moves pivot to a setpoint.
      +
      PolynomialDerivative - Class in common.utility.sysid
      Team 3128's class to take the derivative of a Polynomial Regression function.
      @@ -1502,12 +1536,20 @@

      R

       
      RPMToMPS(double, double, double) - Static method in class common.core.swerve.SwerveConversions
       
      +
      runElevator(double) - Method in class common.core.subsystems.ElevatorTemplate
      +
      +
      Sets elevator power.
      +
      runManipulator(double) - Method in class common.core.subsystems.ManipulatorTemplate
      Sets manipulator power.
      RUNNING - Enum constant in enum class common.utility.tester.Tester.TestState
       
      +
      runPivot(double) - Method in class common.core.subsystems.PivotTemplate
      +
      +
      Sets pivot power.
      +
      runShooter(double) - Method in class common.core.subsystems.ShooterTemplate
      Runs the shooter at a specific power.
      @@ -1595,10 +1637,6 @@

      S

      Changes the modules velocity and angular position to the desired state
      -
      setElevator(double) - Method in class common.core.subsystems.ElevatorTemplate
      -
      -
      Sets elevator power.
      -
      setI(double) - Method in class common.core.controllers.ControllerBase
      Sets the Integral coefficient of the PID controller gain.
      @@ -1693,10 +1731,6 @@

      S

      setPipeline(Pipeline) - Method in class common.hardware.limelight.Limelight
       
      -
      setPivot(double) - Method in class common.core.subsystems.PivotTemplate
      -
      -
      Sets pivot power.
      -
      setpointSource - Variable in class common.core.commands.NAR_PIDCommand
      Setpoint getter.
      @@ -1775,6 +1809,10 @@

      S

      Sets the throttle bounds for the joystick.
      +
      setTimeBetweenTests(double) - Method in class common.utility.tester.Tester.Test
      +
      +
      Sets the time between each test.
      +
      setTimeConversionFactor(double) - Method in class common.hardware.motorcontroller.NAR_Motor
      Changes the units the motor measures time/velocity in, ie.
      @@ -1841,6 +1879,8 @@

      S

      Creates an Shooter object.
      +
      shouldLog - Static variable in class common.core.controllers.TrapController
      +
       
      SKEW - Enum constant in enum class common.hardware.limelight.LimelightKey
       
      SPARKMAX_ENCODER_RESOLUTION - Static variable in class common.hardware.motorcontroller.MotorControllerConstants
      @@ -1923,8 +1963,6 @@

      S

      SwerveMotorConfig(int, NAR_Motor.MotorConfig, PIDFFConfig) - Constructor for class common.core.swerve.SwerveModuleConfig.SwerveMotorConfig
       
      -
      systemTests - Variable in class common.utility.tester.Tester
      -
       

      T

      diff --git a/doc/member-search-index.js b/doc/member-search-index.js index dbaa9b0..e9819ac 100644 --- a/doc/member-search-index.js +++ b/doc/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"Absolute"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"ABSOLUTE"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"add()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"add(double, double, double)","u":"add(double,double,double)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addAction(String, Consumer)","u":"addAction(java.lang.String,java.util.function.Consumer)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addAutos(String...)","u":"addAutos(java.lang.String...)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addAutos(String[])","u":"addAutos(java.lang.String[])"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addButton(String, BooleanConsumer)","u":"addButton(java.lang.String,edu.wpi.first.util.function.BooleanConsumer)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object)","u":"addData(java.lang.String,java.lang.String,java.lang.Object)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object, int, int)","u":"addData(java.lang.String,java.lang.String,java.lang.Object,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object, int, int, int, int)","u":"addData(java.lang.String,java.lang.String,java.lang.Object,int,int,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier, int, int)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier, int, int, int, int)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier,int,int,int,int)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addInit(String, List)","u":"addInit(java.lang.String,java.util.List)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addInit(String, Object)","u":"addInit(java.lang.String,java.lang.Object)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addMotor(MotorController)","u":"addMotor(edu.wpi.first.wpilibj.motorcontrol.MotorController)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addMotor(NAR_Motor)","u":"addMotor(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addOutput(DoubleConsumer)","u":"addOutput(java.util.function.DoubleConsumer)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addPeriodic(Runnable, double)","u":"addPeriodic(java.lang.Runnable,double)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addPeriodic(Runnable, double, double)","u":"addPeriodic(java.lang.Runnable,double,double)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addReceiver(boolean, NAR_Robot.LoggingState)","u":"addReceiver(boolean,common.core.misc.NAR_Robot.LoggingState)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addSendable(String, String, Sendable, int, int)","u":"addSendable(java.lang.String,java.lang.String,edu.wpi.first.util.sendable.Sendable,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addSendable(String, String, Sendable, int, int, int, int)","u":"addSendable(java.lang.String,java.lang.String,edu.wpi.first.util.sendable.Sendable,int,int,int,int)"},{"p":"common.utility.tester","c":"Tester","l":"addTest(String, Tester.UnitTest)","u":"addTest(java.lang.String,common.utility.tester.Tester.UnitTest)"},{"p":"common.utility.tester","c":"Tester.Test","l":"addTest(Tester.UnitTest)","u":"addTest(common.utility.tester.Tester.UnitTest)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addUpdate(String, Supplier)","u":"addUpdate(java.lang.String,java.util.function.Supplier)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addVideoStream(String, String, String, String, int, int, int, int)","u":"addVideoStream(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,int,int)"},{"p":"common.core.swerve","c":"SwerveBase","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"angleConfig"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"angleMotorID"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"angleOffset"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"angleOffset"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"appliedOutput"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"AREA"},{"p":"common.core.controllers","c":"ControllerBase","l":"atSetpoint()"},{"p":"common.core.controllers","c":"TrapController","l":"atSetpoint()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"atSetpoint()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"beta(int)"},{"p":"common.hardware.limelight","c":"LEDMode","l":"BLINK"},{"p":"common.hardware.limelight","c":"Pipeline","l":"BLUE"},{"p":"common.hardware.limelight","c":"StreamMode","l":"BOTH"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"BRAKE"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"burnFlash()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"burnFlashAll()"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculate(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculate(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculate(double, double)","u":"calculate(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculate(TrapezoidProfile.State, double)","u":"calculate(edu.wpi.first.math.trajectory.TrapezoidProfile.State,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"calculateDistToGroundTarget(double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"calculateDistToTopTarget(double)"},{"p":"common.core.controllers","c":"Controller","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"Controller","l":"calculatePID(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculatePID(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculatePID(double)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"camera"},{"p":"common.hardware.camera","c":"Camera","l":"Camera(String, boolean, Transform2d, double)","u":"%3Cinit%3E(java.lang.String,boolean,edu.wpi.first.math.geometry.Transform2d,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"cameraAngle"},{"p":"common.hardware.limelight","c":"Limelight","l":"cameraHeight"},{"p":"common.hardware.camera","c":"Camera","l":"cameraPitch"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"cancoderID"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"cancoderID"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"CANCoderinvert"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"canSparkMaxTimeout"},{"p":"common.core.swerve","c":"SwerveBase","l":"chassisVelocityCorrection"},{"p":"common.core.controllers","c":"ControllerBase","l":"close()"},{"p":"common.core.misc","c":"NAR_Robot","l":"close()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"close()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"close()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"close()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"CmdSysId(String, Consumer, Supplier, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,java.util.function.Consumer,java.util.function.Supplier,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.sysid","c":"CmdSysId","l":"CmdSysId(String, Consumer, Supplier, Subsystem...)","u":"%3Cinit%3E(java.lang.String,java.util.function.Consumer,java.util.function.Supplier,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"COAST"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"command"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"compareTo(PolynomialRegression)","u":"compareTo(common.utility.sysid.PolynomialRegression)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"configAllSettings(TalonSRXConfiguration)","u":"configAllSettings(com.ctre.phoenix.motorcontrol.can.TalonSRXConfiguration)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"configMotor(NAR_Motor.MotorConfig)","u":"configMotor(common.hardware.motorcontroller.NAR_Motor.MotorConfig)"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"configMotors()"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"controller"},{"p":"common.core.controllers","c":"ControllerBase","l":"controller"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"controller"},{"p":"common.core.controllers","c":"Controller","l":"Controller(PIDFFConfig, Controller.Type)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,common.core.controllers.Controller.Type)"},{"p":"common.core.controllers","c":"Controller","l":"Controller(PIDFFConfig, Controller.Type, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,common.core.controllers.Controller.Type,double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"ControllerBase(PIDFFConfig, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,double)"},{"p":"common.core.swerve","c":"CTREModuleState","l":"CTREModuleState()","u":"%3Cinit%3E()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"currentLimit"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, BooleanSupplier, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,java.util.function.BooleanSupplier,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility","c":"Log","l":"debug(String, String)","u":"debug(java.lang.String,java.lang.String)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"debug(String, String, double, int, int)","u":"debug(java.lang.String,java.lang.String,double,int,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"DEFAULT"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"degree()"},{"p":"common.core.swerve","c":"SwerveConversions","l":"degreesToRotations(double, double)","u":"degreesToRotations(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"disable()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"disable()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"distanceFactor"},{"p":"common.core.swerve","c":"SwerveBase","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"common.core.swerve","c":"SwerveBase","l":"drive(Translation2d, double, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"driveConfig"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"driveMotorID"},{"p":"common.hardware.limelight","c":"StreamMode","l":"DRIVER_CAMERA"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"ElevatorTemplate(ControllerBase, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enable()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"enable()"},{"p":"common.core.controllers","c":"ControllerBase","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enabled"},{"p":"common.hardware.camera","c":"Camera","l":"enabled"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"enableVoltageCompensation(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"enableVoltageCompensation(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"enableVoltageCompensation(double)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"end()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"end(boolean)"},{"p":"common.utility.sysid","c":"CmdSysId","l":"end(boolean)"},{"p":"common.utility.tester","c":"Tester.Test","l":"end(boolean)"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"end(boolean)"},{"p":"common.core.misc","c":"NAR_Robot","l":"endCompetition()"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"evaluate(double)"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"evaluate(List)","u":"evaluate(java.util.List)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"execute()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"execute()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"execute()"},{"p":"common.utility.tester","c":"CurrentTest","l":"execute()"},{"p":"common.utility.tester","c":"Tester.Test","l":"execute()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"execute()"},{"p":"common.utility.tester","c":"Tester.TestState","l":"FAILED"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"FALCON_ENCODER_RESOLUTION"},{"p":"common.utility","c":"Log","l":"fatal(String, String)","u":"fatal(java.lang.String,java.lang.String)"},{"p":"common.utility","c":"Log","l":"fatalException(String, String, Exception)","u":"fatalException(java.lang.String,java.lang.String,java.lang.Exception)"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"FFCharacterization(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"fieldRelative"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"FITTED_LONG"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"FITTED_SHORT"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"follow(IMotorController)","u":"follow(com.ctre.phoenix.motorcontrol.IMotorController)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"follow(NAR_CANSparkMax, boolean)","u":"follow(common.hardware.motorcontroller.NAR_CANSparkMax,boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"FOLLOWER"},{"p":"common.hardware.limelight","c":"Limelight","l":"frontDistance"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"FULLMATCH"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getAccTarget()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getAngleMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getAppliedOutput()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getAppliedOutput()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getAppliedOutput()"},{"p":"common.hardware.input","c":"NAR_ButtonBoard","l":"getButton(int)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getButton(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getButton(NAR_XboxController.XboxButton)","u":"getButton(common.hardware.input.NAR_XboxController.XboxButton)"},{"p":"common.core.swerve","c":"SwerveModule","l":"getCanCoder()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getController()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getController()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"getCurrent()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getD()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getDistance()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getDownPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getDownPOVButton()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getDriveMotor()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getEntry(String, String)","u":"getEntry(java.lang.String,java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"getFieldVelocity()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getGyroRotation2d()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getHeading()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getI()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"getInstance()"},{"p":"common.utility.tester","c":"Tester","l":"getInstance()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkA()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkA()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"getKey()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkG()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkS()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkS()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkV()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkV()"},{"p":"common.hardware.limelight","c":"LEDMode","l":"getLEDMode()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getLeftPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftX()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftY()"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"getMeasurement()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getModulePosition()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getModules()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getMotor()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getName()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getP()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getPeriod()"},{"p":"common.hardware.limelight","c":"Pipeline","l":"getPipeline()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPitch()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getPos()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPose()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getPosition()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPositions()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getPOVButton(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getPOVButton(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getRawVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getRawVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getRawVelocity()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getRelTarget()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getRightPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightX()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightY()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRobotVelocity()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRoll()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRotation2d()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"getSelectedAuto()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getSelectedAutoName()"},{"p":"common.hardware.limelight","c":"Limelight","l":"getSelectedPipeline()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getSetpoint()"},{"p":"common.core.controllers","c":"TrapController","l":"getSetpoint()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getSetpoint()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getStallCurrent()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getStallCurrent()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getStallCurrent()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getState()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getStates()"},{"p":"common.hardware.limelight","c":"StreamMode","l":"getStream()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getTarget3d()"},{"p":"common.utility.tester","c":"Tester.Test","l":"getTestState()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getThrottle()"},{"p":"common.core.controllers","c":"Controller","l":"getType()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getUpPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getUpPOVButton()"},{"p":"common.hardware.limelight","c":"Limelight","l":"getValue(LimelightKey)","u":"getValue(common.hardware.limelight.LimelightKey)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getValue(String, String)","u":"getValue(java.lang.String,java.lang.String)"},{"p":"common.hardware.limelight","c":"Limelight","l":"getValueAverage(LimelightKey, int)","u":"getValueAverage(common.hardware.limelight.LimelightKey,int)"},{"p":"common.core.swerve","c":"SwerveBase","l":"getVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getVelocity()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getX()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getY()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getYaw()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getZ()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"hasObjectPresent()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"hasTarget()"},{"p":"common.hardware.limelight","c":"Limelight","l":"hasValidTarget()"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"HIGH_PRIORITY"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"HORIZONTAL_FOV"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"HORIZONTAL_OFFSET"},{"p":"common.hardware.limelight","c":"Limelight","l":"hostname"},{"p":"common.utility","c":"Log","l":"info(String, String)","u":"info(java.lang.String,java.lang.String)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"initialize()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"initialize()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"initialize()"},{"p":"common.utility.tester","c":"CurrentTest","l":"initialize()"},{"p":"common.utility.tester","c":"Tester.Test","l":"initialize()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"initialize()"},{"p":"common.core.controllers","c":"ControllerBase","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"p":"common.core.controllers","c":"TrapController","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"initShuffleboard()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"initShuffleboard()"},{"p":"common.core.swerve","c":"SwerveBase","l":"initShuffleboard()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"initShuffleboard(String, String, int)","u":"initShuffleboard(java.lang.String,java.lang.String,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"inputPower"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"intake()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"inverted"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"isDebug()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"isEnabled()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"isFinished()"},{"p":"common.utility.tester","c":"CurrentTest","l":"isFinished()"},{"p":"common.utility.tester","c":"Tester.Test","l":"isFinished()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"isFinished()"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kA"},{"p":"common.core.controllers","c":"ControllerBase","l":"kA"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kA"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kB"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kBack"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kD"},{"p":"common.core.misc","c":"NAR_Robot","l":"kDefaultPeriod"},{"p":"common.core.controllers","c":"ControllerBase","l":"kG"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kG"},{"p":"common.core.controllers","c":"ControllerBase","l":"kG_Function"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kI"},{"p":"common.core.swerve","c":"SwerveBase","l":"kinematics"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftBumper"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftStick"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftTrigger"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kP"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightBumper"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightStick"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightTrigger"},{"p":"common.core.controllers","c":"ControllerBase","l":"kS"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kS"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kStart"},{"p":"common.core.controllers","c":"ControllerBase","l":"kV"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kV"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kX"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kY"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LATENCY"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LENGTH_HORIZONTAL"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LENGTH_VERTICAL"},{"p":"common.hardware.limelight","c":"StreamMode","l":"LIMELIGHT_CAMERA"},{"p":"common.hardware.limelight","c":"Limelight","l":"Limelight(String, double, double, double)","u":"%3Cinit%3E(java.lang.String,double,double,double)"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"LimelightConstants()","u":"%3Cinit%3E()"},{"p":"common.hardware.limelight","c":"LimelightData","l":"LimelightData()","u":"%3Cinit%3E()"},{"p":"common.hardware.limelight","c":"Limelight","l":"limelightTable"},{"p":"common.utility","c":"Log","l":"Log()","u":"%3Cinit%3E()"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"LOW_PRIORITY"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MAG_ENCODER_RESOLUTION"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"ManipulatorTemplate(double, double, double, double, double, NAR_Motor...)","u":"%3Cinit%3E(double,double,double,double,double,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MAX_PRIORITY"},{"p":"common.core.swerve","c":"SwerveBase","l":"maxSpeed"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"maxSpeed"},{"p":"common.core.controllers","c":"ControllerBase","l":"measurement"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MEDIUM_PRIORITY"},{"p":"common.core.swerve","c":"SwerveConversions","l":"metersToRotations(double, double, double)","u":"metersToRotations(double,double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"mode"},{"p":"common.core.swerve","c":"SwerveModule","l":"moduleNumber"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"moduleNumber"},{"p":"common.core.swerve","c":"SwerveBase","l":"modules"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"motor"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"motor"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"motorConfig"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"MotorConfig(double, double, int, boolean, NAR_Motor.Neutral)","u":"%3Cinit%3E(double,double,int,boolean,common.hardware.motorcontroller.NAR_Motor.Neutral)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MotorControllerConstants()","u":"%3Cinit%3E()"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"motorID"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"motors"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"moveElevator(double)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"MPSToRPM(double, double, double)","u":"MPSToRPM(double,double,double)"},{"p":"common.hardware.camera","c":"Camera","l":"name"},{"p":"common.hardware.input","c":"NAR_ButtonBoard","l":"NAR_ButtonBoard(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"NAR_Camera(Camera)","u":"%3Cinit%3E(common.hardware.camera.Camera)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType, NAR_CANSparkMax.EncoderType)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType,common.hardware.motorcontroller.NAR_CANSparkMax.EncoderType)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType, NAR_CANSparkMax.EncoderType, double, double, double)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType,common.hardware.motorcontroller.NAR_CANSparkMax.EncoderType,double,double,double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"NAR_Joystick(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"NAR_Motor(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"NAR_MotorIO()","u":"%3Cinit%3E()"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"NAR_PIDCommand(ControllerBase, DoubleSupplier, DoubleSupplier, DoubleConsumer, Subsystem...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleConsumer,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"NAR_PIDSubsystem(ControllerBase)","u":"%3Cinit%3E(common.core.controllers.ControllerBase)"},{"p":"common.core.misc","c":"NAR_Robot","l":"NAR_Robot()","u":"%3Cinit%3E()"},{"p":"common.core.misc","c":"NAR_Robot","l":"NAR_Robot(double)","u":"%3Cinit%3E(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"NAR_TalonSRX(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"NAR_XboxController(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NEO_550CurrentLimit"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NEO_CurrentLimit"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NO_PRIORITY"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"NONE"},{"p":"common.core.swerve","c":"SwerveBase","l":"odometry"},{"p":"common.hardware.limelight","c":"LEDMode","l":"OFF"},{"p":"common.hardware.camera","c":"Camera","l":"offset"},{"p":"common.hardware.limelight","c":"LEDMode","l":"ON"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onClose(WebSocket, int, String, boolean)","u":"onClose(org.java_websocket.WebSocket,int,java.lang.String,boolean)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onError(WebSocket, Exception)","u":"onError(org.java_websocket.WebSocket,java.lang.Exception)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onMessage(WebSocket, String)","u":"onMessage(org.java_websocket.WebSocket,java.lang.String)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onOpen(WebSocket, ClientHandshake)","u":"onOpen(org.java_websocket.WebSocket,org.java_websocket.handshake.ClientHandshake)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onStart()"},{"p":"common.core.swerve","c":"CTREModuleState","l":"optimize(SwerveModuleState, Rotation2d)","u":"optimize(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.geometry.Rotation2d)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"outtake()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"passCondition"},{"p":"common.utility.tester","c":"Tester.TestState","l":"PASSED"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"PercentOutput"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"periodic()"},{"p":"common.core.swerve","c":"SwerveBase","l":"periodic()"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"pidffConfig"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double,double)"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double,double,double)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"PIPELINE"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"pivot(double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"PivotTemplate(ControllerBase, double, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,double,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"PolynomialDerivative(PolynomialRegression)","u":"%3Cinit%3E(common.utility.sysid.PolynomialRegression)"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"PolynomialRegression(double[], double[], int)","u":"%3Cinit%3E(double[],double[],int)"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"PolynomialRegression(double[], double[], int, String)","u":"%3Cinit%3E(double[],double[],int,java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"Position"},{"p":"common.core.controllers","c":"Controller.Type","l":"POSITION"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"POSITION"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"predict(double)"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"print()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"R2()"},{"p":"common.utility","c":"Log","l":"recoverable(String, String)","u":"recoverable(java.lang.String,java.lang.String)"},{"p":"common.hardware.limelight","c":"Pipeline","l":"RED"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"Relative"},{"p":"common.core.controllers","c":"ControllerBase","l":"reset()"},{"p":"common.core.controllers","c":"TrapController","l":"reset()"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"reset(double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"reset(double)"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetAll()"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetEncoders()"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"resetPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"resetRawPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"resetRawPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"resetRawPosition(double)"},{"p":"common.core.swerve","c":"SwerveModule","l":"resetToAbsolute()"},{"p":"common.core.swerve","c":"SwerveConversions","l":"rotationsToDegrees(double, double)","u":"rotationsToDegrees(double,double)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"rotationsToMeters(double, double, double)","u":"rotationsToMeters(double,double,double)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"RPM_TO_FALCON"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"RPM_TO_TALONSRX"},{"p":"common.core.swerve","c":"SwerveConversions","l":"RPMToMPS(double, double, double)","u":"RPMToMPS(double,double,double)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"runManipulator(double)"},{"p":"common.utility.tester","c":"Tester.TestState","l":"RUNNING"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"runShooter(double)"},{"p":"common.utility.tester","c":"Tester","l":"runTest(String)","u":"runTest(java.lang.String)"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"SCREEN_HEIGHT"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"SCREEN_WIDTH"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"sendMessage(String)","u":"sendMessage(java.lang.String)"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"SESSION"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double, NAR_Motor.Control)","u":"set(double,common.hardware.motorcontroller.NAR_Motor.Control)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double, NAR_Motor.Control, double)","u":"set(double,common.hardware.motorcontroller.NAR_Motor.Control,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setBrakeMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setBrakeMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setBrakeMode()"},{"p":"common.core.swerve","c":"SwerveBase","l":"setBrakeMode(boolean)"},{"p":"common.core.swerve","c":"SwerveModule","l":"setBrakeMode(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setCoastMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setCoastMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setCoastMode()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setConstraints(double, double)","u":"setConstraints(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setCurrentLimit(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setCurrentLimit(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setCurrentLimit(int)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setD(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setDefaultStatusFrames()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setDefaultStatusFrames()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setDefaultStatusFrames()"},{"p":"common.core.swerve","c":"SwerveModule","l":"setDesiredState(SwerveModuleState)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"setElevator(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setI(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setInverted(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setInverted(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setInverted(boolean)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkA(DoubleSupplier)","u":"setkA(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG_Function(DoubleSupplier)","u":"setkG_Function(java.util.function.DoubleSupplier)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setkG_Function(DoubleSupplier)","u":"setkG_Function(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG(DoubleSupplier)","u":"setkG(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkS(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkS(DoubleSupplier)","u":"setkS(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkV(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkV(DoubleSupplier)","u":"setkV(java.util.function.DoubleSupplier)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setLEDMode(LEDMode)","u":"setLEDMode(common.hardware.limelight.LEDMode)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setLeftXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setLeftYDeadband(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setMeasurementSource(DoubleSupplier)","u":"setMeasurementSource(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"Controller","l":"setMeasurementSource(NAR_Motor)","u":"setMeasurementSource(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.core.swerve","c":"SwerveBase","l":"setModuleStates(SwerveModuleState[])","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[])"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setNeutralMode(NAR_Motor.Neutral)","u":"setNeutralMode(common.hardware.motorcontroller.NAR_Motor.Neutral)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setP(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPeriodicFramePeriod(CANSparkLowLevel.PeriodicFrame, int)","u":"setPeriodicFramePeriod(com.revrobotics.CANSparkLowLevel.PeriodicFrame,int)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setPID(double, double, double)","u":"setPID(double,double,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setPipeline(Pipeline)","u":"setPipeline(common.hardware.limelight.Pipeline)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"setPivot(double)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"setpointSource"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"SetpointTest(String, double, double, double)","u":"%3Cinit%3E(java.lang.String,double,double,double)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"setPort(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"setPower(double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"setPower(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"setPower(double)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"setResources(DoubleSupplier, BiConsumer, HashMap, Supplier)","u":"setResources(java.util.function.DoubleSupplier,java.util.function.BiConsumer,java.util.HashMap,java.util.function.Supplier)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setRightXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setRightYDeadband(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setSafetyThresh(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setSetpoint(double)"},{"p":"common.core.controllers","c":"TrapController","l":"setSetpoint(double)"},{"p":"common.core.controllers","c":"TrapController","l":"setSetpoint(TrapezoidProfile.State)","u":"setSetpoint(edu.wpi.first.math.trajectory.TrapezoidProfile.State)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setStatusFramePeriod(StatusFrameEnhanced, int)","u":"setStatusFramePeriod(com.ctre.phoenix.motorcontrol.StatusFrameEnhanced,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setStatusFrames(NAR_CANSparkMax.SparkMaxConfig)","u":"setStatusFrames(common.hardware.motorcontroller.NAR_CANSparkMax.SparkMaxConfig)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setStreamMode(StreamMode)","u":"setStreamMode(common.hardware.limelight.StreamMode)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"setThresholds(double, double, double, boolean)","u":"setThresholds(double,double,double,boolean)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setThrottleBounds(double, double)","u":"setThrottleBounds(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setTimeConversionFactor(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setTolerance(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setTolerance(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setTolerance(double, double)","u":"setTolerance(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setUnitConversionFactor(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setUpdateTime(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"setVelocitySource(DoubleSupplier)","u":"setVelocitySource(java.util.function.DoubleSupplier)"},{"p":"common.core.swerve","c":"SwerveBase","l":"setVoltage(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setVolts(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setYDeadband(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setZDeadband(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"shoot(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"ShooterTemplate(ControllerBase, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"SKEW"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"SPARKMAX_ENCODER_RESOLUTION"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"SPARKMAX_RPM_TO_NUpS"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"stallCurrent"},{"p":"common.core.misc","c":"NAR_Robot","l":"startCompetition()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"startPID(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"startVibrate()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status0"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status1"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status2"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status3"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status4"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status5"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status6"},{"p":"common.core.swerve","c":"SwerveBase","l":"stop()"},{"p":"common.core.swerve","c":"SwerveModule","l":"stop()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"stopVibrate()"},{"p":"common.core.swerve","c":"SwerveBase","l":"SwerveBase(SwerveDriveKinematics, Matrix, Matrix, SwerveModuleConfig...)","u":"%3Cinit%3E(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.Matrix,edu.wpi.first.math.Matrix,common.core.swerve.SwerveModuleConfig...)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"SwerveConversions()","u":"%3Cinit%3E()"},{"p":"common.core.swerve","c":"SwerveModule","l":"SwerveModule(SwerveModuleConfig)","u":"%3Cinit%3E(common.core.swerve.SwerveModuleConfig)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"SwerveModuleConfig(int, SwerveModuleConfig.SwerveMotorConfig, SwerveModuleConfig.SwerveMotorConfig, int, double, boolean, double)","u":"%3Cinit%3E(int,common.core.swerve.SwerveModuleConfig.SwerveMotorConfig,common.core.swerve.SwerveModuleConfig.SwerveMotorConfig,int,double,boolean,double)"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"SwerveModuleConstants(int, int, int, double)","u":"%3Cinit%3E(int,int,int,double)"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"SwerveMotorConfig(int, NAR_Motor.MotorConfig, PIDFFConfig)","u":"%3Cinit%3E(int,common.hardware.motorcontroller.NAR_Motor.MotorConfig,common.core.controllers.PIDFFConfig)"},{"p":"common.utility.tester","c":"Tester","l":"systemTests"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"TALONSRX_ENCODER_RESOLUTION"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"targetAmbiguity()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"targetId()"},{"p":"common.hardware.limelight","c":"Limelight","l":"targetWidth"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"testName"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"testState"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"timeConversionFactor"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"timeFactor"},{"p":"common.core.swerve","c":"SwerveBase","l":"toggle()"},{"p":"common.hardware.limelight","c":"LimelightData","l":"toString()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"toString()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"toString()"},{"p":"common.core.controllers","c":"TrapController","l":"TrapController(PIDFFConfig, TrapezoidProfile.Constraints)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,edu.wpi.first.math.trajectory.TrapezoidProfile.Constraints)"},{"p":"common.core.controllers","c":"TrapController","l":"TrapController(PIDFFConfig, TrapezoidProfile.Constraints, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,edu.wpi.first.math.trajectory.TrapezoidProfile.Constraints,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"unitConversionFactor"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"UnitTest(String, Command)","u":"%3Cinit%3E(java.lang.String,edu.wpi.first.wpilibj2.command.Command)"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"UnitTest(String, Command, BooleanSupplier)","u":"%3Cinit%3E(java.lang.String,edu.wpi.first.wpilibj2.command.Command,java.util.function.BooleanSupplier)"},{"p":"common.utility","c":"Log","l":"unusual(String, String)","u":"unusual(java.lang.String,java.lang.String)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"update()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"update()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"updateIO(NAR_MotorIOAutoLogged)","u":"updateIO(common.hardware.motorcontroller.NAR_MotorIOAutoLogged)"},{"p":"common.core.controllers","c":"ControllerBase","l":"useOutput()"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"VALID_TARGET"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VALUE_KEYS"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VALUE_KEYS_PNP"},{"p":"common.core.controllers","c":"Controller.Type","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"LEDMode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"Pipeline","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"StreamMode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.utility.tester","c":"Tester.TestState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.core.controllers","c":"Controller.Type","l":"values()"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"values()"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"values()"},{"p":"common.hardware.limelight","c":"LEDMode","l":"values()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"values()"},{"p":"common.hardware.limelight","c":"Pipeline","l":"values()"},{"p":"common.hardware.limelight","c":"StreamMode","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"values()"},{"p":"common.utility.tester","c":"Tester.TestState","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"velocity"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"Velocity"},{"p":"common.core.controllers","c":"Controller.Type","l":"VELOCITY"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"VELOCITY"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VERTICAL_FOV"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"VERTICAL_OFFSET"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"WINDOW_HEIGHT"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"WINDOW_WIDTH"},{"p":"common.core.swerve","c":"SwerveBase","l":"xlock()"},{"p":"common.core.swerve","c":"SwerveModule","l":"xLock(Rotation2d)","u":"xLock(edu.wpi.first.math.geometry.Rotation2d)"},{"p":"common.core.swerve","c":"SwerveBase","l":"zeroGyro(double)"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"Absolute"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"ABSOLUTE"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"add()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"add(double, double, double)","u":"add(double,double,double)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addAction(String, Consumer)","u":"addAction(java.lang.String,java.util.function.Consumer)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addAutos(String...)","u":"addAutos(java.lang.String...)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addAutos(String[])","u":"addAutos(java.lang.String[])"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addButton(String, BooleanConsumer)","u":"addButton(java.lang.String,edu.wpi.first.util.function.BooleanConsumer)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object)","u":"addData(java.lang.String,java.lang.String,java.lang.Object)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object, int, int)","u":"addData(java.lang.String,java.lang.String,java.lang.Object,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Object, int, int, int, int)","u":"addData(java.lang.String,java.lang.String,java.lang.Object,int,int,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier, int, int)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addData(String, String, Supplier, int, int, int, int)","u":"addData(java.lang.String,java.lang.String,java.util.function.Supplier,int,int,int,int)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addInit(String, List)","u":"addInit(java.lang.String,java.util.List)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addInit(String, Object)","u":"addInit(java.lang.String,java.lang.Object)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addMotor(MotorController)","u":"addMotor(edu.wpi.first.wpilibj.motorcontrol.MotorController)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addMotor(NAR_Motor)","u":"addMotor(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.core.controllers","c":"ControllerBase","l":"addOutput(DoubleConsumer)","u":"addOutput(java.util.function.DoubleConsumer)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addPeriodic(Runnable, double)","u":"addPeriodic(java.lang.Runnable,double)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addPeriodic(Runnable, double, double)","u":"addPeriodic(java.lang.Runnable,double,double)"},{"p":"common.core.misc","c":"NAR_Robot","l":"addReceiver(boolean, NAR_Robot.LoggingState)","u":"addReceiver(boolean,common.core.misc.NAR_Robot.LoggingState)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addSendable(String, String, Sendable, int, int)","u":"addSendable(java.lang.String,java.lang.String,edu.wpi.first.util.sendable.Sendable,int,int)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addSendable(String, String, Sendable, int, int, int, int)","u":"addSendable(java.lang.String,java.lang.String,edu.wpi.first.util.sendable.Sendable,int,int,int,int)"},{"p":"common.utility.tester","c":"Tester","l":"addTest(String, Tester.UnitTest)","u":"addTest(java.lang.String,common.utility.tester.Tester.UnitTest)"},{"p":"common.utility.tester","c":"Tester.Test","l":"addTest(Tester.UnitTest)","u":"addTest(common.utility.tester.Tester.UnitTest)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"addUpdate(String, Supplier)","u":"addUpdate(java.lang.String,java.util.function.Supplier)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"addVideoStream(String, String, String, String, int, int, int, int)","u":"addVideoStream(java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,int,int)"},{"p":"common.core.swerve","c":"SwerveBase","l":"addVisionMeasurement(Pose2d, double)","u":"addVisionMeasurement(edu.wpi.first.math.geometry.Pose2d,double)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"angleConfig"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"angleMotorID"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"angleOffset"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"angleOffset"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"appliedOutput"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"AREA"},{"p":"common.core.controllers","c":"ControllerBase","l":"atSetpoint()"},{"p":"common.core.controllers","c":"TrapController","l":"atSetpoint()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"atSetpoint()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"beta(int)"},{"p":"common.hardware.limelight","c":"LEDMode","l":"BLINK"},{"p":"common.hardware.limelight","c":"Pipeline","l":"BLUE"},{"p":"common.hardware.limelight","c":"StreamMode","l":"BOTH"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"BRAKE"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"burnFlash()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"burnFlashAll()"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculate(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculate(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculate(double, double)","u":"calculate(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculate(TrapezoidProfile.State, double)","u":"calculate(edu.wpi.first.math.trajectory.TrapezoidProfile.State,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"calculateDistToGroundTarget(double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"calculateDistToTopTarget(double)"},{"p":"common.core.controllers","c":"Controller","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculateFF(double)"},{"p":"common.core.controllers","c":"Controller","l":"calculatePID(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"calculatePID(double)"},{"p":"common.core.controllers","c":"TrapController","l":"calculatePID(double)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"camera"},{"p":"common.hardware.camera","c":"Camera","l":"Camera(String, boolean, Transform2d, double)","u":"%3Cinit%3E(java.lang.String,boolean,edu.wpi.first.math.geometry.Transform2d,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"cameraAngle"},{"p":"common.hardware.limelight","c":"Limelight","l":"cameraHeight"},{"p":"common.hardware.camera","c":"Camera","l":"cameraPitch"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"cancoderID"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"cancoderID"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"CANCoderinvert"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"canSparkMaxTimeout"},{"p":"common.core.swerve","c":"SwerveBase","l":"chassisVelocityCorrection"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"clear()"},{"p":"common.core.controllers","c":"ControllerBase","l":"close()"},{"p":"common.core.misc","c":"NAR_Robot","l":"close()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"close()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"close()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"close()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"CmdSysId(String, Consumer, Supplier, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,java.util.function.Consumer,java.util.function.Supplier,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.sysid","c":"CmdSysId","l":"CmdSysId(String, Consumer, Supplier, Subsystem...)","u":"%3Cinit%3E(java.lang.String,java.util.function.Consumer,java.util.function.Supplier,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"COAST"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"command"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"compareTo(PolynomialRegression)","u":"compareTo(common.utility.sysid.PolynomialRegression)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"configAllSettings(TalonSRXConfiguration)","u":"configAllSettings(com.ctre.phoenix.motorcontrol.can.TalonSRXConfiguration)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"configMotor(NAR_Motor.MotorConfig)","u":"configMotor(common.hardware.motorcontroller.NAR_Motor.MotorConfig)"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"configMotors()"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"configMotors()"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"controller"},{"p":"common.core.controllers","c":"ControllerBase","l":"controller"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"controller"},{"p":"common.core.controllers","c":"Controller","l":"Controller(PIDFFConfig, Controller.Type)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,common.core.controllers.Controller.Type)"},{"p":"common.core.controllers","c":"Controller","l":"Controller(PIDFFConfig, Controller.Type, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,common.core.controllers.Controller.Type,double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"ControllerBase(PIDFFConfig, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,double)"},{"p":"common.core.swerve","c":"CTREModuleState","l":"CTREModuleState()","u":"%3Cinit%3E()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"currentLimit"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, BooleanSupplier, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,java.util.function.BooleanSupplier,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility.tester","c":"CurrentTest","l":"CurrentTest(String, NAR_Motor, double, double, double, double, Subsystem...)","u":"%3Cinit%3E(java.lang.String,common.hardware.motorcontroller.NAR_Motor,double,double,double,double,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.utility","c":"Log","l":"debug(String, String)","u":"debug(java.lang.String,java.lang.String)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"debug(String, String, double, int, int)","u":"debug(java.lang.String,java.lang.String,double,int,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"DEFAULT"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"degree()"},{"p":"common.core.swerve","c":"SwerveConversions","l":"degreesToRotations(double, double)","u":"degreesToRotations(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"disable()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"disable()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"distanceFactor"},{"p":"common.core.swerve","c":"SwerveBase","l":"drive(ChassisSpeeds)","u":"drive(edu.wpi.first.math.kinematics.ChassisSpeeds)"},{"p":"common.core.swerve","c":"SwerveBase","l":"drive(Translation2d, double, boolean)","u":"drive(edu.wpi.first.math.geometry.Translation2d,double,boolean)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"driveConfig"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"driveMotorID"},{"p":"common.hardware.limelight","c":"StreamMode","l":"DRIVER_CAMERA"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"ElevatorTemplate(ControllerBase, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enable()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"enable()"},{"p":"common.core.controllers","c":"ControllerBase","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"enableContinuousInput(double, double)","u":"enableContinuousInput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"enabled"},{"p":"common.hardware.camera","c":"Camera","l":"enabled"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"enableVoltageCompensation(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"enableVoltageCompensation(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"enableVoltageCompensation(double)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"end(boolean)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"end(boolean)"},{"p":"common.utility.sysid","c":"CmdSysId","l":"end(boolean)"},{"p":"common.utility.tester","c":"Tester.Test","l":"end(boolean)"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"end(boolean)"},{"p":"common.core.misc","c":"NAR_Robot","l":"endCompetition()"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"evaluate(double)"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"evaluate(List)","u":"evaluate(java.util.List)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"execute()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"execute()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"execute()"},{"p":"common.utility.tester","c":"CurrentTest","l":"execute()"},{"p":"common.utility.tester","c":"Tester.Test","l":"execute()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"execute()"},{"p":"common.utility.tester","c":"Tester.TestState","l":"FAILED"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"FALCON_ENCODER_RESOLUTION"},{"p":"common.utility","c":"Log","l":"fatal(String, String)","u":"fatal(java.lang.String,java.lang.String)"},{"p":"common.utility","c":"Log","l":"fatalException(String, String, Exception)","u":"fatalException(java.lang.String,java.lang.String,java.lang.Exception)"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"FFCharacterization(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"fieldRelative"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"FITTED_LONG"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"FITTED_SHORT"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"follow(IMotorController)","u":"follow(com.ctre.phoenix.motorcontrol.IMotorController)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"follow(NAR_CANSparkMax, boolean)","u":"follow(common.hardware.motorcontroller.NAR_CANSparkMax,boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"follow(NAR_Motor)","u":"follow(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"FOLLOWER"},{"p":"common.hardware.limelight","c":"Limelight","l":"frontDistance"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"FULLMATCH"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getAccTarget()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getAngleMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getAppliedOutput()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getAppliedOutput()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getAppliedOutput()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getBoolean(String, String)","u":"getBoolean(java.lang.String,java.lang.String)"},{"p":"common.hardware.input","c":"NAR_ButtonBoard","l":"getButton(int)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getButton(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getButton(NAR_XboxController.XboxButton)","u":"getButton(common.hardware.input.NAR_XboxController.XboxButton)"},{"p":"common.core.swerve","c":"SwerveModule","l":"getCanCoder()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getController()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getController()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"getCurrent()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getD()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getDistance()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getDouble(String, String)","u":"getDouble(java.lang.String,java.lang.String)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getDownPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getDownPOVButton()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getDriveMotor()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getEntry(String, String)","u":"getEntry(java.lang.String,java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"getFieldVelocity()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getGyroRotation2d()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getHeading()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getI()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"getInstance()"},{"p":"common.utility.tester","c":"Tester","l":"getInstance()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkA()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkA()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"getKey()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkG()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkS()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkS()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getkV()"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"getkV()"},{"p":"common.hardware.limelight","c":"LEDMode","l":"getLEDMode()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getLeftPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftX()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getLeftY()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getLong(String, String)","u":"getLong(java.lang.String,java.lang.String)"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"getMeasurement()"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"getMeasurement()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getModulePosition()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getModules()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getMotor()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getMotor()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getName()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getObject(String, String)","u":"getObject(java.lang.String,java.lang.String)"},{"p":"common.core.controllers","c":"ControllerBase","l":"getP()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getPeriod()"},{"p":"common.hardware.limelight","c":"Pipeline","l":"getPipeline()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPitch()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getPos()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPose()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getPosition()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getPositions()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getPOVButton(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getPOVButton(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getRawPosition()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getRawVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getRawVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getRawVelocity()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getRelTarget()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getRightPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightX()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getRightY()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRobotVelocity()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRoll()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getRotation2d()"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"getSelectedAuto()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getSelectedAutoName()"},{"p":"common.hardware.limelight","c":"Limelight","l":"getSelectedPipeline()"},{"p":"common.core.controllers","c":"ControllerBase","l":"getSetpoint()"},{"p":"common.core.controllers","c":"TrapController","l":"getSetpoint()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"getSetpoint()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"getStallCurrent()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getStallCurrent()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"getStallCurrent()"},{"p":"common.core.swerve","c":"SwerveModule","l":"getState()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getStates()"},{"p":"common.hardware.limelight","c":"StreamMode","l":"getStream()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getString(String, String)","u":"getString(java.lang.String,java.lang.String)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"getTarget3d()"},{"p":"common.utility.tester","c":"Tester","l":"getTest(String)","u":"getTest(java.lang.String)"},{"p":"common.utility.tester","c":"Tester.Test","l":"getTestState()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getThrottle()"},{"p":"common.core.controllers","c":"Controller","l":"getType()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getUpPOVButton()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"getUpPOVButton()"},{"p":"common.hardware.limelight","c":"Limelight","l":"getValue(LimelightKey)","u":"getValue(common.hardware.limelight.LimelightKey)"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"getValue(String, String)","u":"getValue(java.lang.String,java.lang.String)"},{"p":"common.hardware.limelight","c":"Limelight","l":"getValueAverage(LimelightKey, int)","u":"getValueAverage(common.hardware.limelight.LimelightKey,int)"},{"p":"common.core.swerve","c":"SwerveBase","l":"getVelocity()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"getVelocity()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getX()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getY()"},{"p":"common.core.swerve","c":"SwerveBase","l":"getYaw()"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"getZ()"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"hasObjectPresent()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"hasTarget()"},{"p":"common.hardware.limelight","c":"Limelight","l":"hasValidTarget()"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"HIGH_PRIORITY"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"HORIZONTAL_FOV"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"HORIZONTAL_OFFSET"},{"p":"common.hardware.limelight","c":"Limelight","l":"hostname"},{"p":"common.utility","c":"Log","l":"info(String, String)","u":"info(java.lang.String,java.lang.String)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"initialize()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"initialize()"},{"p":"common.utility.sysid","c":"CmdSysId","l":"initialize()"},{"p":"common.utility.tester","c":"CurrentTest","l":"initialize()"},{"p":"common.utility.tester","c":"Tester.Test","l":"initialize()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"initialize()"},{"p":"common.core.controllers","c":"ControllerBase","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"p":"common.core.controllers","c":"TrapController","l":"initSendable(SendableBuilder)","u":"initSendable(edu.wpi.first.util.sendable.SendableBuilder)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"initShuffleboard()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"initShuffleboard()"},{"p":"common.core.swerve","c":"SwerveBase","l":"initShuffleboard()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"initShuffleboard(String, String, int)","u":"initShuffleboard(java.lang.String,java.lang.String,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"inputPower"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"intake()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"inverted"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"isDebug()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"isEnabled()"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"isFinished()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"isFinished()"},{"p":"common.utility.tester","c":"CurrentTest","l":"isFinished()"},{"p":"common.utility.tester","c":"Tester.Test","l":"isFinished()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"isFinished()"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kA"},{"p":"common.core.controllers","c":"ControllerBase","l":"kA"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kA"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kB"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kBack"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kD"},{"p":"common.core.misc","c":"NAR_Robot","l":"kDefaultPeriod"},{"p":"common.core.controllers","c":"ControllerBase","l":"kG"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kG"},{"p":"common.core.controllers","c":"ControllerBase","l":"kG_Function"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kI"},{"p":"common.core.swerve","c":"SwerveBase","l":"kinematics"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftBumper"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftStick"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kLeftTrigger"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kP"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightBumper"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightStick"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kRightTrigger"},{"p":"common.core.controllers","c":"ControllerBase","l":"kS"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kS"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kStart"},{"p":"common.core.controllers","c":"ControllerBase","l":"kV"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"kV"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kX"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"kY"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LATENCY"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LENGTH_HORIZONTAL"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"LENGTH_VERTICAL"},{"p":"common.hardware.limelight","c":"StreamMode","l":"LIMELIGHT_CAMERA"},{"p":"common.hardware.limelight","c":"Limelight","l":"Limelight(String, double, double, double)","u":"%3Cinit%3E(java.lang.String,double,double,double)"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"LimelightConstants()","u":"%3Cinit%3E()"},{"p":"common.hardware.limelight","c":"LimelightData","l":"LimelightData()","u":"%3Cinit%3E()"},{"p":"common.hardware.limelight","c":"Limelight","l":"limelightTable"},{"p":"common.utility","c":"Log","l":"Log()","u":"%3Cinit%3E()"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"LOW_PRIORITY"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MAG_ENCODER_RESOLUTION"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"ManipulatorTemplate(double, double, double, double, double, NAR_Motor...)","u":"%3Cinit%3E(double,double,double,double,double,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MAX_PRIORITY"},{"p":"common.core.swerve","c":"SwerveBase","l":"maxSpeed"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"maxSpeed"},{"p":"common.core.controllers","c":"ControllerBase","l":"measurement"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MEDIUM_PRIORITY"},{"p":"common.core.swerve","c":"SwerveConversions","l":"metersToRotations(double, double, double)","u":"metersToRotations(double,double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"mode"},{"p":"common.core.swerve","c":"SwerveModule","l":"moduleNumber"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"moduleNumber"},{"p":"common.core.swerve","c":"SwerveBase","l":"modules"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"motor"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"motor"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"motorConfig"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"MotorConfig(double, double, int, boolean, NAR_Motor.Neutral)","u":"%3Cinit%3E(double,double,int,boolean,common.hardware.motorcontroller.NAR_Motor.Neutral)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"MotorControllerConstants()","u":"%3Cinit%3E()"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"motorID"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"motors"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"motors"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"moveElevator(double)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"MPSToRPM(double, double, double)","u":"MPSToRPM(double,double,double)"},{"p":"common.hardware.camera","c":"Camera","l":"name"},{"p":"common.hardware.input","c":"NAR_ButtonBoard","l":"NAR_ButtonBoard(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"NAR_Camera(Camera)","u":"%3Cinit%3E(common.hardware.camera.Camera)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType, NAR_CANSparkMax.EncoderType)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType,common.hardware.motorcontroller.NAR_CANSparkMax.EncoderType)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"NAR_CANSparkMax(int, CANSparkLowLevel.MotorType, NAR_CANSparkMax.EncoderType, double, double, double)","u":"%3Cinit%3E(int,com.revrobotics.CANSparkLowLevel.MotorType,common.hardware.motorcontroller.NAR_CANSparkMax.EncoderType,double,double,double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"NAR_Joystick(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"NAR_Motor(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"NAR_MotorIO()","u":"%3Cinit%3E()"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"NAR_PIDCommand(ControllerBase, DoubleSupplier, DoubleSupplier, DoubleConsumer, Subsystem...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleConsumer,edu.wpi.first.wpilibj2.command.Subsystem...)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"NAR_PIDSubsystem(ControllerBase)","u":"%3Cinit%3E(common.core.controllers.ControllerBase)"},{"p":"common.core.misc","c":"NAR_Robot","l":"NAR_Robot()","u":"%3Cinit%3E()"},{"p":"common.core.misc","c":"NAR_Robot","l":"NAR_Robot(double)","u":"%3Cinit%3E(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"NAR_TalonSRX(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"NAR_XboxController(int)","u":"%3Cinit%3E(int)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NEO_550CurrentLimit"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NEO_CurrentLimit"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"NO_PRIORITY"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"NONE"},{"p":"common.core.swerve","c":"SwerveBase","l":"odometry"},{"p":"common.hardware.limelight","c":"LEDMode","l":"OFF"},{"p":"common.hardware.camera","c":"Camera","l":"offset"},{"p":"common.hardware.limelight","c":"LEDMode","l":"ON"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onClose(WebSocket, int, String, boolean)","u":"onClose(org.java_websocket.WebSocket,int,java.lang.String,boolean)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onError(WebSocket, Exception)","u":"onError(org.java_websocket.WebSocket,java.lang.Exception)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onMessage(WebSocket, String)","u":"onMessage(org.java_websocket.WebSocket,java.lang.String)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onOpen(WebSocket, ClientHandshake)","u":"onOpen(org.java_websocket.WebSocket,org.java_websocket.handshake.ClientHandshake)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"onStart()"},{"p":"common.core.swerve","c":"CTREModuleState","l":"optimize(SwerveModuleState, Rotation2d)","u":"optimize(edu.wpi.first.math.kinematics.SwerveModuleState,edu.wpi.first.math.geometry.Rotation2d)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"outtake()"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"passCondition"},{"p":"common.utility.tester","c":"Tester.TestState","l":"PASSED"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"PercentOutput"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"periodic()"},{"p":"common.core.swerve","c":"SwerveBase","l":"periodic()"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"pidffConfig"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double,double)"},{"p":"common.core.controllers","c":"PIDFFConfig","l":"PIDFFConfig(double, double, double, double, double, double, double)","u":"%3Cinit%3E(double,double,double,double,double,double,double)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"PIPELINE"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"PivotTemplate(ControllerBase, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"pivotTo(double)"},{"p":"common.utility.sysid","c":"PolynomialDerivative","l":"PolynomialDerivative(PolynomialRegression)","u":"%3Cinit%3E(common.utility.sysid.PolynomialRegression)"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"PolynomialRegression(double[], double[], int)","u":"%3Cinit%3E(double[],double[],int)"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"PolynomialRegression(double[], double[], int, String)","u":"%3Cinit%3E(double[],double[],int,java.lang.String)"},{"p":"common.core.swerve","c":"SwerveBase","l":"PoseLog(Pose2d)","u":"PoseLog(edu.wpi.first.math.geometry.Pose2d)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"Position"},{"p":"common.core.controllers","c":"Controller.Type","l":"POSITION"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"POSITION"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"predict(double)"},{"p":"common.utility.sysid","c":"FFCharacterization","l":"print()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"R2()"},{"p":"common.utility","c":"Log","l":"recoverable(String, String)","u":"recoverable(java.lang.String,java.lang.String)"},{"p":"common.hardware.limelight","c":"Pipeline","l":"RED"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"Relative"},{"p":"common.core.controllers","c":"ControllerBase","l":"reset()"},{"p":"common.core.controllers","c":"TrapController","l":"reset()"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"reset(double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"reset(double)"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetAll()"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetEncoders()"},{"p":"common.core.swerve","c":"SwerveBase","l":"resetOdometry(Pose2d)","u":"resetOdometry(edu.wpi.first.math.geometry.Pose2d)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"resetPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"resetRawPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"resetRawPosition(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"resetRawPosition(double)"},{"p":"common.core.swerve","c":"SwerveModule","l":"resetToAbsolute()"},{"p":"common.core.swerve","c":"SwerveConversions","l":"rotationsToDegrees(double, double)","u":"rotationsToDegrees(double,double)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"rotationsToMeters(double, double, double)","u":"rotationsToMeters(double,double,double)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"RPM_TO_FALCON"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"RPM_TO_TALONSRX"},{"p":"common.core.swerve","c":"SwerveConversions","l":"RPMToMPS(double, double, double)","u":"RPMToMPS(double,double,double)"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"runElevator(double)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"runManipulator(double)"},{"p":"common.utility.tester","c":"Tester.TestState","l":"RUNNING"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"runPivot(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"runShooter(double)"},{"p":"common.utility.tester","c":"Tester","l":"runTest(String)","u":"runTest(java.lang.String)"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"SCREEN_HEIGHT"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"SCREEN_WIDTH"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"sendMessage(String)","u":"sendMessage(java.lang.String)"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"SESSION"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double, NAR_Motor.Control)","u":"set(double,common.hardware.motorcontroller.NAR_Motor.Control)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"set(double, NAR_Motor.Control, double)","u":"set(double,common.hardware.motorcontroller.NAR_Motor.Control,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setBrakeMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setBrakeMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setBrakeMode()"},{"p":"common.core.swerve","c":"SwerveBase","l":"setBrakeMode(boolean)"},{"p":"common.core.swerve","c":"SwerveModule","l":"setBrakeMode(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setCoastMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setCoastMode()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setCoastMode()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setConstraints(double, double)","u":"setConstraints(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setCurrentLimit(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setCurrentLimit(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setCurrentLimit(int)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setD(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setDefaultStatusFrames()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setDefaultStatusFrames()"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setDefaultStatusFrames()"},{"p":"common.core.swerve","c":"SwerveModule","l":"setDesiredState(SwerveModuleState)","u":"setDesiredState(edu.wpi.first.math.kinematics.SwerveModuleState)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setI(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setInverted(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setInverted(boolean)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setInverted(boolean)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkA(DoubleSupplier)","u":"setkA(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG_Function(DoubleSupplier)","u":"setkG_Function(java.util.function.DoubleSupplier)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setkG_Function(DoubleSupplier)","u":"setkG_Function(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkG(DoubleSupplier)","u":"setkG(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkS(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkS(DoubleSupplier)","u":"setkS(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkV(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setkV(DoubleSupplier)","u":"setkV(java.util.function.DoubleSupplier)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setLEDMode(LEDMode)","u":"setLEDMode(common.hardware.limelight.LEDMode)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setLeftXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setLeftYDeadband(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setMeasurementSource(DoubleSupplier)","u":"setMeasurementSource(java.util.function.DoubleSupplier)"},{"p":"common.core.controllers","c":"Controller","l":"setMeasurementSource(NAR_Motor)","u":"setMeasurementSource(common.hardware.motorcontroller.NAR_Motor)"},{"p":"common.core.swerve","c":"SwerveBase","l":"setModuleStates(SwerveModuleState[])","u":"setModuleStates(edu.wpi.first.math.kinematics.SwerveModuleState[])"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setNeutralMode(NAR_Motor.Neutral)","u":"setNeutralMode(common.hardware.motorcontroller.NAR_Motor.Neutral)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setP(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setPercentOutput(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPeriodicFramePeriod(CANSparkLowLevel.PeriodicFrame, int)","u":"setPeriodicFramePeriod(com.revrobotics.CANSparkLowLevel.PeriodicFrame,int)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setPID(double, double, double)","u":"setPID(double,double,double)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setPipeline(Pipeline)","u":"setPipeline(common.hardware.limelight.Pipeline)"},{"p":"common.core.commands","c":"NAR_PIDCommand","l":"setpointSource"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem.SetpointTest","l":"SetpointTest(String, double, double, double)","u":"%3Cinit%3E(java.lang.String,double,double,double)"},{"p":"common.utility.narwhaldashboard","c":"NarwhalDashboard","l":"setPort(int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"common.core.subsystems","c":"ManipulatorTemplate","l":"setPower(double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"setPower(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"setPower(double)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"setResources(DoubleSupplier, BiConsumer, HashMap, Supplier)","u":"setResources(java.util.function.DoubleSupplier,java.util.function.BiConsumer,java.util.HashMap,java.util.function.Supplier)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setRightXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"setRightYDeadband(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setSafetyThresh(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setSetpoint(double)"},{"p":"common.core.controllers","c":"TrapController","l":"setSetpoint(double)"},{"p":"common.core.controllers","c":"TrapController","l":"setSetpoint(TrapezoidProfile.State)","u":"setSetpoint(edu.wpi.first.math.trajectory.TrapezoidProfile.State)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setStatusFramePeriod(StatusFrameEnhanced, int)","u":"setStatusFramePeriod(com.ctre.phoenix.motorcontrol.StatusFrameEnhanced,int)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setStatusFrames(NAR_CANSparkMax.SparkMaxConfig)","u":"setStatusFrames(common.hardware.motorcontroller.NAR_CANSparkMax.SparkMaxConfig)"},{"p":"common.hardware.limelight","c":"Limelight","l":"setStreamMode(StreamMode)","u":"setStreamMode(common.hardware.limelight.StreamMode)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"setThresholds(double, double, double, boolean)","u":"setThresholds(double,double,double,boolean)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setThrottleBounds(double, double)","u":"setThrottleBounds(double,double)"},{"p":"common.utility.tester","c":"Tester.Test","l":"setTimeBetweenTests(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setTimeConversionFactor(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setTolerance(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setTolerance(double)"},{"p":"common.core.controllers","c":"ControllerBase","l":"setTolerance(double, double)","u":"setTolerance(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setUnitConversionFactor(double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"setUpdateTime(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_TalonSRX","l":"setVelocity(double, double)","u":"setVelocity(double,double)"},{"p":"common.core.controllers","c":"TrapController","l":"setVelocitySource(DoubleSupplier)","u":"setVelocitySource(java.util.function.DoubleSupplier)"},{"p":"common.core.swerve","c":"SwerveBase","l":"setVoltage(double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"setVolts(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setXDeadband(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setYDeadband(double)"},{"p":"common.hardware.input","c":"NAR_Joystick","l":"setZDeadband(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"shoot(double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"ShooterTemplate(ControllerBase, NAR_Motor...)","u":"%3Cinit%3E(common.core.controllers.ControllerBase,common.hardware.motorcontroller.NAR_Motor...)"},{"p":"common.core.controllers","c":"TrapController","l":"shouldLog"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"SKEW"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"SPARKMAX_ENCODER_RESOLUTION"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"SPARKMAX_RPM_TO_NUpS"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"stallCurrent"},{"p":"common.core.misc","c":"NAR_Robot","l":"startCompetition()"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"startPID(double)"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"startVibrate()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status0"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status1"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status2"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status3"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status4"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status5"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"status6"},{"p":"common.core.swerve","c":"SwerveBase","l":"stop()"},{"p":"common.core.swerve","c":"SwerveModule","l":"stop()"},{"p":"common.hardware.input","c":"NAR_XboxController","l":"stopVibrate()"},{"p":"common.core.swerve","c":"SwerveBase","l":"SwerveBase(SwerveDriveKinematics, Matrix, Matrix, SwerveModuleConfig...)","u":"%3Cinit%3E(edu.wpi.first.math.kinematics.SwerveDriveKinematics,edu.wpi.first.math.Matrix,edu.wpi.first.math.Matrix,common.core.swerve.SwerveModuleConfig...)"},{"p":"common.core.swerve","c":"SwerveConversions","l":"SwerveConversions()","u":"%3Cinit%3E()"},{"p":"common.core.swerve","c":"SwerveModule","l":"SwerveModule(SwerveModuleConfig)","u":"%3Cinit%3E(common.core.swerve.SwerveModuleConfig)"},{"p":"common.core.swerve","c":"SwerveModuleConfig","l":"SwerveModuleConfig(int, SwerveModuleConfig.SwerveMotorConfig, SwerveModuleConfig.SwerveMotorConfig, int, double, boolean, double)","u":"%3Cinit%3E(int,common.core.swerve.SwerveModuleConfig.SwerveMotorConfig,common.core.swerve.SwerveModuleConfig.SwerveMotorConfig,int,double,boolean,double)"},{"p":"common.core.swerve","c":"SwerveModuleConstants","l":"SwerveModuleConstants(int, int, int, double)","u":"%3Cinit%3E(int,int,int,double)"},{"p":"common.core.swerve","c":"SwerveModuleConfig.SwerveMotorConfig","l":"SwerveMotorConfig(int, NAR_Motor.MotorConfig, PIDFFConfig)","u":"%3Cinit%3E(int,common.hardware.motorcontroller.NAR_Motor.MotorConfig,common.core.controllers.PIDFFConfig)"},{"p":"common.hardware.motorcontroller","c":"MotorControllerConstants","l":"TALONSRX_ENCODER_RESOLUTION"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"targetAmbiguity()"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"targetId()"},{"p":"common.hardware.limelight","c":"Limelight","l":"targetWidth"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"testName"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"testState"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"timeConversionFactor"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.MotorConfig","l":"timeFactor"},{"p":"common.core.swerve","c":"SwerveBase","l":"toggle()"},{"p":"common.hardware.limelight","c":"LimelightData","l":"toString()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"toString()"},{"p":"common.utility.sysid","c":"PolynomialRegression","l":"toString()"},{"p":"common.core.controllers","c":"TrapController","l":"TrapController(PIDFFConfig, TrapezoidProfile.Constraints)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,edu.wpi.first.math.trajectory.TrapezoidProfile.Constraints)"},{"p":"common.core.controllers","c":"TrapController","l":"TrapController(PIDFFConfig, TrapezoidProfile.Constraints, double)","u":"%3Cinit%3E(common.core.controllers.PIDFFConfig,edu.wpi.first.math.trajectory.TrapezoidProfile.Constraints,double)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"unitConversionFactor"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"UnitTest(String, Command)","u":"%3Cinit%3E(java.lang.String,edu.wpi.first.wpilibj2.command.Command)"},{"p":"common.utility.tester","c":"Tester.UnitTest","l":"UnitTest(String, Command, BooleanSupplier)","u":"%3Cinit%3E(java.lang.String,edu.wpi.first.wpilibj2.command.Command,java.util.function.BooleanSupplier)"},{"p":"common.utility","c":"Log","l":"unusual(String, String)","u":"unusual(java.lang.String,java.lang.String)"},{"p":"common.hardware.camera","c":"NAR_Camera","l":"update()"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"update()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor","l":"updateIO(NAR_MotorIOAutoLogged)","u":"updateIO(common.hardware.motorcontroller.NAR_MotorIOAutoLogged)"},{"p":"common.core.controllers","c":"ControllerBase","l":"useOutput()"},{"p":"common.core.subsystems","c":"ElevatorTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"NAR_PIDSubsystem","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"PivotTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.core.subsystems","c":"ShooterTemplate","l":"useOutput(double, double)","u":"useOutput(double,double)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"VALID_TARGET"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VALUE_KEYS"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VALUE_KEYS_PNP"},{"p":"common.core.controllers","c":"Controller.Type","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"LEDMode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"Pipeline","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.limelight","c":"StreamMode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.utility.tester","c":"Tester.TestState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"common.core.controllers","c":"Controller.Type","l":"values()"},{"p":"common.core.misc","c":"NAR_Robot.LoggingState","l":"values()"},{"p":"common.hardware.input","c":"NAR_XboxController.XboxButton","l":"values()"},{"p":"common.hardware.limelight","c":"LEDMode","l":"values()"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"values()"},{"p":"common.hardware.limelight","c":"Pipeline","l":"values()"},{"p":"common.hardware.limelight","c":"StreamMode","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.EncoderType","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Neutral","l":"values()"},{"p":"common.utility.tester","c":"Tester.TestState","l":"values()"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.NAR_MotorIO","l":"velocity"},{"p":"common.hardware.motorcontroller","c":"NAR_Motor.Control","l":"Velocity"},{"p":"common.core.controllers","c":"Controller.Type","l":"VELOCITY"},{"p":"common.hardware.motorcontroller","c":"NAR_CANSparkMax.SparkMaxConfig","l":"VELOCITY"},{"p":"common.hardware.limelight","c":"LimelightConstants","l":"VERTICAL_FOV"},{"p":"common.hardware.limelight","c":"LimelightKey","l":"VERTICAL_OFFSET"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"WINDOW_HEIGHT"},{"p":"common.utility.shuffleboard","c":"NAR_Shuffleboard","l":"WINDOW_WIDTH"},{"p":"common.core.swerve","c":"SwerveBase","l":"xlock()"},{"p":"common.core.swerve","c":"SwerveModule","l":"xLock(Rotation2d)","u":"xLock(edu.wpi.first.math.geometry.Rotation2d)"},{"p":"common.core.swerve","c":"SwerveBase","l":"zeroGyro(double)"}];updateSearchResults(); \ No newline at end of file diff --git a/src/main/java/common/core/commands/NAR_PIDCommand.java b/src/main/java/common/core/commands/NAR_PIDCommand.java index 25155d4..ae02b16 100644 --- a/src/main/java/common/core/commands/NAR_PIDCommand.java +++ b/src/main/java/common/core/commands/NAR_PIDCommand.java @@ -9,6 +9,12 @@ import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Subsystem; +/** + * Team 3128's PIDCommand that uses a ControllerBase to control an output. + * + * @since 2024 Crescendo + * @author Mason Lam + */ public class NAR_PIDCommand extends Command { /** Controller. */ protected final ControllerBase controller; @@ -44,7 +50,13 @@ public void execute() { controller.useOutput(); } - public void end() { + @Override + public void end(boolean interrupted) { controller.reset(); } + + @Override + public boolean isFinished() { + return controller.atSetpoint(); + } } diff --git a/src/main/java/common/core/controllers/TrapController.java b/src/main/java/common/core/controllers/TrapController.java index b93aac4..f4627e2 100644 --- a/src/main/java/common/core/controllers/TrapController.java +++ b/src/main/java/common/core/controllers/TrapController.java @@ -1,8 +1,11 @@ package common.core.controllers; import java.util.function.DoubleSupplier; + +import common.utility.narwhaldashboard.NarwhalDashboard; import edu.wpi.first.math.MathUtil; import edu.wpi.first.math.controller.ProfiledPIDController; +import edu.wpi.first.math.controller.SimpleMotorFeedforward; import edu.wpi.first.math.trajectory.TrapezoidProfile; import edu.wpi.first.util.sendable.SendableBuilder; @@ -13,15 +16,17 @@ * @author Mason Lam */ public class TrapController extends ControllerBase { + public static boolean shouldLog = false; + private DoubleSupplier systemVelocity; private TrapezoidProfile.State setpoint = new TrapezoidProfile.State(); private TrapezoidProfile.State tempSetpoint = new TrapezoidProfile.State(); private TrapezoidProfile.State prevSetpoint = new TrapezoidProfile.State(); + private SimpleMotorFeedforward feedforward; private TrapezoidProfile profile; private double minimumInput; private double maximumInput; - /** * Create a new object to control PID + FF logic using a trapezoid profile for a subsystem. *

      Sets kP, kI, kD, kS, kV, kA, kG, constraints, period values. @@ -33,6 +38,7 @@ public class TrapController extends ControllerBase { public TrapController(PIDFFConfig config, TrapezoidProfile.Constraints constraints, double period) { super(config, period); profile = new TrapezoidProfile(constraints); + feedforward = new SimpleMotorFeedforward(getkS(), getkV(), getkA()); systemVelocity = ()-> 0; } @@ -90,6 +96,7 @@ public double calculate(double measurement) { setpoint.position = goalMinDistance + measurement; tempSetpoint.position = setpointMinDistance + measurement; } + if (shouldLog) NarwhalDashboard.getInstance().sendMessage("Position: " + tempSetpoint.position + "Velocity: " + tempSetpoint.velocity); tempSetpoint = profile.calculate(getPeriod(), tempSetpoint, setpoint); controller.setSetpoint(tempSetpoint.position); final double output = super.calculate(measurement); @@ -115,11 +122,10 @@ public double calculatePID(double measurement) { */ @Override public double calculateFF(double pidOutput) { - final double staticGain = !atSetpoint() ? Math.copySign(getkS(), pidOutput) : 0; - final double velocityGain = getkV() * prevSetpoint.velocity; - final double accelGain = getkA() * (tempSetpoint.velocity - prevSetpoint.velocity) / getPeriod(); + final double simpleGain = feedforward.calculate(prevSetpoint.velocity, tempSetpoint.velocity, getPeriod()); final double gravityGain = getkG() * kG_Function.getAsDouble(); - return staticGain + velocityGain + accelGain + gravityGain; + if (shouldLog) NarwhalDashboard.getInstance().sendMessage("Simple Gain: " + simpleGain + "Gravity Gain: " + gravityGain); + return simpleGain + gravityGain; } /** @@ -156,6 +162,8 @@ public boolean atSetpoint() { */ public void setSetpoint(TrapezoidProfile.State setpoint) { this.setpoint = setpoint; + feedforward = new SimpleMotorFeedforward(getkS(), getkV(), getkA()); + reset(); } /** diff --git a/src/main/java/common/core/subsystems/ElevatorTemplate.java b/src/main/java/common/core/subsystems/ElevatorTemplate.java index 7104194..7f1ed8b 100644 --- a/src/main/java/common/core/subsystems/ElevatorTemplate.java +++ b/src/main/java/common/core/subsystems/ElevatorTemplate.java @@ -68,7 +68,7 @@ public Command moveElevator(double setpoint){ * @param power Power the motor is run at. * @return Command setting elevator power. */ - public Command setElevator(double power){ + public Command runElevator(double power){ return runOnce(() -> setPower(power)); } diff --git a/src/main/java/common/core/subsystems/ManipulatorTemplate.java b/src/main/java/common/core/subsystems/ManipulatorTemplate.java index 146c2c9..cf27422 100644 --- a/src/main/java/common/core/subsystems/ManipulatorTemplate.java +++ b/src/main/java/common/core/subsystems/ManipulatorTemplate.java @@ -71,7 +71,7 @@ public boolean hasObjectPresent(){ * @param power The power of the motor on [-1, 1] */ protected void setPower(double power){ - final double output = debug.getAsBoolean() ? powerSetpoint.getAsDouble() : power; + final double output = (debug != null && debug.getAsBoolean()) ? powerSetpoint.getAsDouble() : power; for (final NAR_Motor motor : motors) { motor.set(output); } @@ -113,8 +113,8 @@ public Command outtake() { public void initShuffleboard() { NAR_Shuffleboard.addData("Manipulator", "Object Present", ()-> hasObjectPresent(), 0, 0); NAR_Shuffleboard.addData("Manipulator", "Manip current", () -> getCurrent(), 0, 1); - var debugEntry = NAR_Shuffleboard.addData(getName(), "TOGGLE", false, 1, 0).withWidget("Toggle Button"); - debug = ()-> debugEntry.getEntry().getBoolean(false); + NAR_Shuffleboard.addData(getName(), "TOGGLE", false, 1, 0).withWidget("Toggle Button").getEntry(); + debug = NAR_Shuffleboard.getBoolean(getName(), "TOGGLE"); NAR_Shuffleboard.addData(getName(), "DEBUG", ()-> debug.getAsBoolean(), 1, 1); powerSetpoint = NAR_Shuffleboard.debug(getName(), "Debug_Setpoint", 0, 1,2); } diff --git a/src/main/java/common/core/subsystems/NAR_PIDSubsystem.java b/src/main/java/common/core/subsystems/NAR_PIDSubsystem.java index 305b641..e98b135 100644 --- a/src/main/java/common/core/subsystems/NAR_PIDSubsystem.java +++ b/src/main/java/common/core/subsystems/NAR_PIDSubsystem.java @@ -128,7 +128,6 @@ public void periodic() { final double measurement = getMeasurement(); final double velocity = (measurement - prevMeasurement) / updateTimer.get(); final double acceleration = (velocity - prevVelocity) / updateTimer.get(); - NAR_Shuffleboard.addData(getName(), "Measurement", measurement, 1, 1); NAR_Shuffleboard.addData(getName(), "1stDerivative", velocity, 1, 2); NAR_Shuffleboard.addData(getName(), "2ndDerivative", acceleration, 1, 3); prevMeasurement = measurement; @@ -147,9 +146,10 @@ public void initShuffleboard() { NAR_Shuffleboard.addData(getName(), "AtSetpoint", ()-> atSetpoint(), 0, 3); NAR_Shuffleboard.addData(getName(), "Enabled", ()-> isEnabled(), 1, 0); + NAR_Shuffleboard.addData(getName(), "Measurement", ()-> getMeasurement(), 1, 1); - var debugEntry = NAR_Shuffleboard.addData(getName(), "TOGGLE", false, 2, 0).withWidget("Toggle Button").getEntry(); - debug = ()-> debugEntry.getBoolean(false); + NAR_Shuffleboard.addData(getName(), "TOGGLE", false, 2, 0).withWidget("Toggle Button"); + debug = NAR_Shuffleboard.getBoolean(getName(), "TOGGLE"); NAR_Shuffleboard.addData(getName(), "DEBUG", ()-> debug.getAsBoolean(), 2, 1); setpoint = NAR_Shuffleboard.debug(getName(), "Debug_Setpoint", 0, 2,2); @@ -218,7 +218,7 @@ public void setkG_Function(DoubleSupplier kG_Function) { */ public void startPID(double setpoint) { enable(); - controller.setSetpoint(MathUtil.clamp(debug.getAsBoolean() ? this.setpoint.getAsDouble() : setpoint, min, max)); + controller.setSetpoint(MathUtil.clamp((debug != null && debug.getAsBoolean()) ? this.setpoint.getAsDouble() : setpoint, min, max)); } /** diff --git a/src/main/java/common/core/subsystems/PivotTemplate.java b/src/main/java/common/core/subsystems/PivotTemplate.java index c849724..6b93812 100644 --- a/src/main/java/common/core/subsystems/PivotTemplate.java +++ b/src/main/java/common/core/subsystems/PivotTemplate.java @@ -18,7 +18,7 @@ public abstract class PivotTemplate extends NAR_PIDSubsystem{ * @param controller Controller to control motor output. * @param motors Pivot motors. */ - public PivotTemplate(ControllerBase controller, double angleOffset, NAR_Motor...motors){ + public PivotTemplate(ControllerBase controller, NAR_Motor...motors){ super(controller); this.motors = motors; configMotors(); @@ -58,7 +58,7 @@ public double getMeasurement() { * @param setpoint Setpoint the pivot goes to. * @return Command setting pivot setpoint. */ - public Command pivot(double setpoint){ + public Command pivotTo(double setpoint){ return runOnce(() -> startPID(setpoint)); } @@ -67,7 +67,7 @@ public Command pivot(double setpoint){ * @param power Power the motor is run at. * @return Command setting pivot power. */ - public Command setPivot(double power){ + public Command runPivot(double power){ return runOnce(() -> setPower(power)); } diff --git a/src/main/java/common/core/swerve/SwerveBase.java b/src/main/java/common/core/swerve/SwerveBase.java index 07a92f8..09afa93 100644 --- a/src/main/java/common/core/swerve/SwerveBase.java +++ b/src/main/java/common/core/swerve/SwerveBase.java @@ -30,7 +30,6 @@ public abstract class SwerveBase extends SubsystemBase { protected SwerveDrivePoseEstimator odometry; protected final SwerveModule[] modules; private Pose2d estimatedPose; - private boolean useShuffleboard = false; public boolean fieldRelative; public double maxSpeed; @@ -56,13 +55,14 @@ public SwerveBase(SwerveDriveKinematics kinematics, Matrix stateStdDevs, } public void initShuffleboard() { - useShuffleboard = true; - for (SwerveModule module : modules) { - NAR_Shuffleboard.addData("Swerve", "module " + module.moduleNumber, ()-> module.getCanCoder().getDegrees(), 0, module.moduleNumber); - NAR_Shuffleboard.addData("Swerve", "Angle " + module.moduleNumber, ()-> module.getAngleMotor().getPosition(), 1, module.moduleNumber); - NAR_Shuffleboard.addData("Swerve", "Drive " + module.moduleNumber, ()-> module.getDriveMotor().getVelocity(), 2, module.moduleNumber); + for (final SwerveModule module : modules) { + NAR_Shuffleboard.addData("Swerve", "CANcoder " + module.moduleNumber, ()-> module.getCanCoder().getDegrees(), 0, module.moduleNumber); + NAR_Shuffleboard.addData("Swerve", "Angle Motor " + module.moduleNumber, ()-> module.getState().angle.getDegrees(), 1, module.moduleNumber); + NAR_Shuffleboard.addData("Swerve", "Drive Motor" + module.moduleNumber, ()-> module.getState().speedMetersPerSecond, 2, module.moduleNumber); } NAR_Shuffleboard.addData("Swerve", "Pose", ()-> estimatedPose.toString(), 3, 0, 4, 1); + NAR_Shuffleboard.addData("Swerve", "Robot Velocity", getRobotVelocity().toString(), 3, 1, 4, 1); + NAR_Shuffleboard.addData("Swerve", "Velocity", getVelocity(), 3, 3, 1, 1); NAR_Shuffleboard.addData("Swerve", "Field Velocity", ()-> getFieldVelocity().toString(), 3, 2, 4, 1); NAR_Shuffleboard.addData("Swerve", "Gyro", ()-> getYaw(), 7, 0, 2, 2).withWidget("Gyro"); } @@ -185,11 +185,6 @@ public void periodic() { estimatedPose = odometry.getEstimatedPosition(); Logger.recordOutput("Swerve/ActualModuleStates", getStates()); Logger.recordOutput("Swerve/RobotRotation", getGyroRotation2d()); - if (useShuffleboard) { - final ChassisSpeeds robotVelocity = getRobotVelocity(); - NAR_Shuffleboard.addData("Swerve", "Robot Velocity", robotVelocity.toString(), 3, 1, 4, 1); - NAR_Shuffleboard.addData("Swerve", "Velocity", Math.hypot(robotVelocity.vxMetersPerSecond, robotVelocity.vyMetersPerSecond), 3, 3, 1, 1); - } } public void resetAll() { diff --git a/src/main/java/common/utility/shuffleboard/NAR_Shuffleboard.java b/src/main/java/common/utility/shuffleboard/NAR_Shuffleboard.java index 5a98207..595dee5 100644 --- a/src/main/java/common/utility/shuffleboard/NAR_Shuffleboard.java +++ b/src/main/java/common/utility/shuffleboard/NAR_Shuffleboard.java @@ -2,7 +2,9 @@ import java.util.HashMap; import java.util.Map; +import java.util.function.BooleanSupplier; import java.util.function.DoubleSupplier; +import java.util.function.LongSupplier; import java.util.function.Supplier; import com.ctre.phoenix.sensors.WPI_PigeonIMU; @@ -10,6 +12,7 @@ import common.core.misc.NAR_Robot; import edu.wpi.first.math.controller.PIDController; import edu.wpi.first.networktables.GenericEntry; +import edu.wpi.first.networktables.NetworkTableValue; import edu.wpi.first.util.sendable.Sendable; import edu.wpi.first.wpilibj.shuffleboard.BuiltInWidgets; import edu.wpi.first.wpilibj.shuffleboard.BuiltInLayouts; @@ -24,6 +27,7 @@ * @since 2022 Rapid React * @author Mason Lam, Arav Chadha, Peter Ma */ +@SuppressWarnings("unused") public class NAR_Shuffleboard { static { @@ -232,6 +236,7 @@ public static ComplexWidget addSendable(String tabName, String name, Sendable da return Shuffleboard.getTab(tabName).add(name, data).withPosition(x,y).withSize(width, height); } catch(Exception e) { + e.printStackTrace(); return null; } } @@ -264,6 +269,7 @@ public static ComplexWidget addVideoStream(String tabName, String name, String c return videoStream; } catch(Exception e) { + e.printStackTrace(); return null; } } @@ -331,22 +337,80 @@ public static String getSelectedAutoName() { * @return DoubleSupplier containing the value in the widget */ public static DoubleSupplier debug(String tabName, String name, double Default, int x, int y) { - if(!tabs.containsKey(tabName)){ - create_tab(tabName); - } - SimpleWidget tab = addData(tabName, name, Default, x, y); - return ()-> tab.getEntry().getDouble(Default); + final GenericEntry tab = addData(tabName, name, Default, x, y).getEntry(); + return ()-> tab.getDouble(Default); + } + + /** + * Get the network table reference of a widget. + * + * @param tabName the title of the tab to select + * @param name the name of the widget. + * @return NetworkTableValue of the widget + */ + public static NetworkTableValue getValue(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return entry; + } + + /** + * Get the value reference of a widget storing objects. + * + * @param tabName the title of the tab to select + * @param name the name of the widget + * @return ObjectSupplier referencing the widget + */ + public static Supplier getObject(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return ()-> entry.getValue(); + } + + /** + * Get the value reference of a widget storing longs. + * + * @param tabName the title of the tab to select + * @param name the name of the widget + * @return LongSupplier referencing the widget + */ + public static LongSupplier getLong(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return ()-> entry.getInteger(); + } + + /** + * Get the value reference of a widget storing doubles. + * + * @param tabName the title of the tab to select + * @param name the name of the widget + * @return DoubleSupplier referencing the widget + */ + public static DoubleSupplier getDouble(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return ()-> entry.getDouble(); + } + + /** + * Get the value reference of a widget storing booleans. + * + * @param tabName the title of the tab to select + * @param name the name of the widget + * @return BooleanSupplier referencing the widget + */ + public static BooleanSupplier getBoolean(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return ()-> entry.getBoolean(); } /** - * Get the value from an widget + * Get the value reference of a widget storing Strings. * * @param tabName the title of the tab to select * @param name the name of the widget - * @return Object stored in the widget + * @return StringSupplier referencing the widget */ - public static Object getValue(String tabName, String name){ - return tabs.get(tabName).get(name).m_entry.get().getValue(); + public static Supplier getString(String tabName, String name){ + final NetworkTableValue entry = tabs.get(tabName).get(name).m_entry.get(); + return ()-> entry.getString(); } /** diff --git a/src/main/java/common/utility/sysid/CmdSysId.java b/src/main/java/common/utility/sysid/CmdSysId.java index c1f8034..881ae1f 100644 --- a/src/main/java/common/utility/sysid/CmdSysId.java +++ b/src/main/java/common/utility/sysid/CmdSysId.java @@ -66,6 +66,7 @@ public CmdSysId( @Override public void initialize() { + data.clear(); setVoltage(0.0); timer.restart(); } diff --git a/src/main/java/common/utility/sysid/FFCharacterization.java b/src/main/java/common/utility/sysid/FFCharacterization.java index a94f0ce..807b1bb 100644 --- a/src/main/java/common/utility/sysid/FFCharacterization.java +++ b/src/main/java/common/utility/sysid/FFCharacterization.java @@ -123,4 +123,15 @@ public double getkV() { public double getkA() { return kA; } + + /** + * Clears the data stored in the FFCharacterization object. + */ + public void clear() { + velocityData.clear(); + voltageData.clear(); + timeData.clear(); + accelerationData.clear(); + adjustedVoltageData.clear(); + } } \ No newline at end of file diff --git a/src/main/java/common/utility/tester/Tester.java b/src/main/java/common/utility/tester/Tester.java index e70d3bc..7c3a561 100644 --- a/src/main/java/common/utility/tester/Tester.java +++ b/src/main/java/common/utility/tester/Tester.java @@ -6,6 +6,7 @@ import common.utility.Log; import common.utility.narwhaldashboard.NarwhalDashboard; +import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Subsystem; @@ -74,9 +75,12 @@ public boolean isFinished() { } /**Collection of tests to be run for a system */ - public class Test extends Command { + public static class Test extends Command { private final ArrayList unitTests; private final String name; + private final Timer passTimer; + private double timeBetweenTests; + private UnitTest testToSchedule; private TestState state; private int curIndex; @@ -87,8 +91,10 @@ public class Test extends Command { private Test(String name) { unitTests = new ArrayList(); this.name = name; + this.timeBetweenTests = 0; state = TestState.FAILED; curIndex = 0; + passTimer = new Timer(); NarwhalDashboard.getInstance().addUpdate(name, ()-> state); NarwhalDashboard.getInstance().addButton(name, (boolean pressed) -> { if (pressed) this.schedule(); @@ -107,6 +113,9 @@ public void addTest(UnitTest test) { public void initialize() { curIndex = 0; state = TestState.RUNNING; + testToSchedule = null; + passTimer.stop(); + passTimer.reset(); Log.info(name, "TEST RUNNING"); if (unitTests.size() == 0) state = TestState.FAILED; else unitTests.get(0).schedule(); @@ -115,6 +124,13 @@ public void initialize() { @Override public void execute() { if (unitTests.size() == 0) return; + if (passTimer.hasElapsed(timeBetweenTests) && testToSchedule != null) { + passTimer.stop(); + passTimer.reset(); + state = TestState.RUNNING; + testToSchedule.schedule(); + testToSchedule = null; + } final UnitTest test = unitTests.get(curIndex); switch(test.testState) { @@ -123,11 +139,10 @@ public void execute() { return; case PASSED: curIndex ++; - if (curIndex == unitTests.size()) { - state = TestState.PASSED; - return; + state = TestState.PASSED; + if (curIndex < unitTests.size()) { + unitTests.get(curIndex).schedule(); } - unitTests.get(curIndex).schedule(); break; default: } @@ -140,12 +155,24 @@ public void end(boolean interrupted) { @Override public boolean isFinished() { - return state != TestState.RUNNING; + return state == TestState.FAILED || curIndex == unitTests.size(); } + /** + * Returns whether or not the test has passed, failed, or is running. + * @return The current state of the test. + */ public TestState getTestState() { return state; } + + /** + * Sets the time between each test. + * @param time Time between tests. + */ + public void setTimeBetweenTests(double time) { + timeBetweenTests = time; + } } /**Enum representing test states */ @@ -164,9 +191,11 @@ public static synchronized Tester getInstance() { return instance; } - private Tester() {} + private final HashMap systemTests; - public HashMap systemTests = new HashMap(); + private Tester() { + systemTests = new HashMap(); + } /** * Adds a unit test to be run for a system. @@ -180,6 +209,16 @@ public void addTest(String name, UnitTest test) { systemTests.get(name).addTest(test); } + /** + * Returns a Test for the robot. + * @param name Name of the test or system. + * @return A Test. + */ + public Test getTest(String name) { + return systemTests.get(name); + + } + /** * Runs the unit tests for a system. * @param name Name of the test or system.