Write code to rotate the arm to a specific angle. The arm subsystem should operate in two modes, PID driven to an angle (should be used all the time), and raw input driven by motor speed (if PID/the encoder breaks for whatever reason).
Raw input mode
arm keeps sets the motor speed to the given speed
PID mode
encoder readings need to be accurate and consistent access power cycles, moving the arm while the robot is off, etc
arm keeps track of target angle
arm uses PID + maybe gravity feed forward to rotate to the correct angle
make sure the arm motor has a current limit so it doesn't burn out
In the room today we tested most of this branch: we desketchified soft stops + encoder readings. We still have to test PID code to tune the appropriate constants.
Write code to rotate the arm to a specific angle. The arm subsystem should operate in two modes, PID driven to an angle (should be used all the time), and raw input driven by motor speed (if PID/the encoder breaks for whatever reason).
Raw input mode
PID mode