Closed nbgray closed 4 years ago
254's statemachine for climbing to hab3 last year: https://github.com/Team254/FRC-2019-Public/blob/master/src/main/java/com/team254/frc2019/statemachines/StingerClimbingStateMachine.java
I suggest set the drive speed to 20% (low) when we are in our initial "looking for bar" state
Different 254 state machines: https://github.com/Team254/FRC-2019-Public/tree/master/src/main/java/com/team254/frc2019/statemachines
elevator is in down (home) position for entire match
drive to position in front of and facing the switch (roughly)
driver hits button
climber goes to intermediate height and holds position (using rev through bore encoder of first stage of elevator). At this position, flexible features (ears) will be at the height of the rung, but no hard features will be at this height (including the hook)
at this intermediate position, the robot drives forward (either automatically or under driver control)
if automatic, something on the robot like flex sensor will sense when the ears touch the rung. if manual, driver will visually see when the ears touch the rung.
if automatic, elevator driven to max position and immediately pulled back to home. if manual, this action is triggered by a button press. Mechanical design is assumed robust enough that the hook is now fully latched on the rung and cannot come off.
winch is automatically engaged and lifts the robot off the ground. I don't know if this should be a fixed height or adjustable by the driver.
for elevator: neo 550 on a versaplanetary gearbox with 7:1 gearing for winch: neo on a versaplanetary gearbox with unknown gearing
I recommend we use commands groups to do this instead of a state machine. Convert each of the steps into a command. Make the isFinished method detect when the step is successful. Then if it is a sequential command group, the commands will activate in sequence.
The robot will climb the generator switch at the end of the match. Document how we will climb mechanically, then figure out how our motors need to move and what sensors will be needed. Maybe we manually drive to the switch, or perhaps it is handled programmatically from anywhere on the field. After that write a method to climb when a specific button is pushed.