Skip to content
This repository has been archived by the owner on Jan 6, 2024. It is now read-only.

Implement Climber Rev 2 #82

Open
stulewin opened this issue Mar 16, 2022 · 1 comment
Open

Implement Climber Rev 2 #82

stulewin opened this issue Mar 16, 2022 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@stulewin
Copy link
Contributor

Implement the climber for second competition. Design and notes will follow for the record.

@stulewin stulewin added the enhancement New feature or request label Mar 16, 2022
@stulewin
Copy link
Contributor Author

(1) Button on Operator Gamepad

  • Play button
  • whenHeld() so that it only executes when pressed
  • boolean on dashboard)

(2) Starting

  • Use rough match time before enabling hanging sequencing (prevent hitting button by mistake during match)?
  • Tunable parameter but 40 seconds to start (boolean on dashboard)
  • Driver gamepad pad uses same button as one-shot "enable" (boolean on dashboard)

(2) Pose?

  • Needs to keep state between
    • Use a static which gets initialized at start of end game)
  • Maybe multiple poses - one for each bar? Although they are the same action?
    • Have multiple unique poses but for now can be derived classes

(3) New Sensor

  • Ultrasonic (WallDistanceSensor)
  • Enable only at start
  • Calibrate for distance
  • Add to telemetry and dashboard

(4) Climber Subsystem

  • Add motors x 2 (assume left and right?)
    • One for 'elbow' ("lift")
    • One for 'shoulder' ("extend")
    • Reverse one of them so that sense of direction is the same
    • Need to be 'brake' mode so hold
  • No pneumatics for latching (purely passive)

(5) Drive Commands

  • Need to get DriveToDistanceBySensor or DriveToDistanceBy???? so that more exact
  • Use gyro to recognize if caught on bar (and lifted ... roll? pitch? yaw?)
  • Time (so delayed start or speed) needs to allow ClimberExtendLevel2 to be at right height before reaching level 2 bar
  • Use gyro to recognize if hanging before distance stop and interrupt drive command

(7) Turret

  • Do we need to have a home (or known position) shooter so we ensure that it's right configuration?
  • Add to original Parallel command sequence

(8) Command Sequence
Parallel( Sequential( IntakePullIn, IntakeDoNothing ), IncrementerDoNothing, ElevatorDoNothing, ShooterDoNothing )
Sequential( Parallel( DriveXxxxxDistance, ClimberExtendLevel2 ), DriveJoystickControl )
Sequential( ClimberLift, ClimberLatch )
Sequential( ClimberExtendNext, ClimberLift, ClimberLatch )
Sequential( ClimberExtendNext, ClimberLift, ClimberLatch )
ClimberHang

(9) Add tab to dashboard for Hanging?

  • Active Commands
  • Key items from climber, pneumatics, wall distance sensor,

(9) New multi-line textbox for command sequencing?

  • Used to be able to do it for old dashboard?
  • May need to manually sequence (use circular buffer approach - pop in top and age out bottom)
  • Can disable this when really connected to the field

(10) Have sequencing watch match time and stop if not enough time to finish next objective?

  • Will know how long it takes to advance to next bar
  • Prevent robot from falling or hurting something

(11) Mini-State Machine

  • Need to keep track of where robot is in command sequence, so that when button released and re-pressed, it starts from where it left off.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants