Closed Nicholas-Stokes closed 2 years ago
And that is where everything gets messy because this code has been in flux between using the String Pot or Internal Encoders for Positional Control and now we are leaning back towards positional control. Robin and I are going to work tomorrow on setting up internal encoder drive for the Climber, but until then, this is what we have for controlling/testing the climber.
I think using a joystick value -> percentage output + the positional PID to hold the climber during the joystick control will work well.
I'm not too worried about tuning your positional hold PID - some small values should be fine at first. I'd rather set the values low on that one and have it not be enough power to overcome gravity at first then to set our values too high and have the robot oscillating mid-climb.
Lemme know if y'all need help - but it sounds like you've got the right idea about the approach!
This has become outdated and this can be closed.
Removes the goToSetpoint control and only uses the joystick in order to control the climber. A button (start) has to be pressed to make sure the climber will run, and the climber also has to be in a min and max position (between the limits) for the climber to run, otherwise it stops the motors entirely. When these parameters are met but the joystick is not pressed, the climber will use the StringPot to stay at it's position. Also uses a tolerance to make sure the climber is not akwardly shifting trying to reach a position.