GentrifiedAppsUtil Help

PIDMotor

PIDMotor is a class that automatically implements a PIDF controller into a DcMotor. This is beneficial to condense code and make it easier to use. The PIDMotor class is a subclass of the DcMotor class, which means it inherits all the properties and methods of the DcMotor class.

How to use PIDMotor

To initialize a PIDMotor, you need to provide the following parameters:

  • hardwareMap: The hardware map of the robot.

  • motorName: The name of the motor in the hardware map.

  • p: The proportional gain of the PID controller.

  • i: The integral gain of the PID controller.

  • d: The derivative gain of the PID controller.

  • f: The feedforward gain of the PID controller.

Then, you can use the following methods to control the motor:

  • setTarget(int target): Sets the target position for the motor.

  • setPIDPower(): Updates the PID controller and sets the motor power.

  • reset(): Resets the PID controller.

  • getCurrentPosition(): Returns the current position of the motor.

  • getTarget(): Returns the target position of the motor.

  • setPIDF(double p, double i, double d, double f): Sets the PIDF values for the motor.

Example

@TeleOp public class GentrifiedAppsTestOpMode extends LinearOpMode { @Override public void runOpMode() throws InterruptedException { // Initialize the motor and PID controller PIDMotor pidMotor = new PIDMotor(hardwareMap, "motor", 0.0001, 0.0, 0.0, 0.0); pidMotor.reset(); waitForStart(); // Set the target position for the PID controller pidMotor.setTarget(1000); while (opModeIsActive()) { // Update the PID controller and set the motor power pidMotor.setPIDPower(); // Display the current position on telemetry telemetry.addData("PIDMotor Position", pidMotor.getCurrentPosition()); telemetry.update(); } } }
Last modified: 09 April 2025