We're trying to use the built-in Talon SRX PID loop to control our Elevator motor. We have a quadrature encoder that is correctly reading the position of the Elevator and we can verify that the ticks are increasing as the Elevator moves up. I think that I have done what is necessary in code, but the Talon isn't doing anything during closed loop control.
These are the results of a self-test after (as far as I know) enabling the PID control mode of the Talon.
Code:
The self test completed successfully.
TALON is enabled.
Mode : 1 : Position Close Loop
Applied Throttle : 0
Brake during neutral
CloseLoopError : 1300
ProfileSlotSelect : 0
Selected Device for Close Loop : 0 : Quad Encoder
Pos: -1
Velocity: 1
Quad Encoder
Pos: 0
Velocity : -1
A Pin : 0
B Pin : 1
Idx Pin : 1
Idx rise edges : 0
This is the code that I'm using to enable PID and change the setpoint:
Code:
elevatorTalon.changeControlMode(CANTalon.ControlMode.Position);
elevatorTalon.set(0.0);
elevatorTalon.setProfile(0);
elevatorTalon.setPID(0.00091054, 0, 0);
elevatorTalon.enableControl();
elevatorTalon.set(setpoint.encoderValue);
(The setpoint used was 1300 encoder ticks)