rr2039 / RR-2020-InfiniteRecharge

Codebase for Infinite Recharge
2 stars 1 forks source link

Ball Control System Requirements #2

Open graykevinb opened 4 years ago

graykevinb commented 4 years ago

Overview of Requirements Basic requirements for the entire power cell system. Meaning requirements that define the controls from prepping intake to what happens after the ball is ejected. Systems affected are the intake, hopper, and ejector wheels.

Requirements

  1. When the intake button is pressed the intake and hopper motors shall turn on.

  2. Immediately after the ball is taken in or shortly after a ball is shot, the hopper motors shall be on until the ball closest to the shooter reaches the end, and all other balls are touching. Then the hopper shall turn off.

  3. After the hopper is full, the intake and hopper motors shall turn off.

  4. The operator shall have manual forward and backward controls for the hopper and intake motors.

  5. When the shoot button is pressed, the system shall wait until the shooter wheels are at the required speed, and that ball is far enough into the hopper before shooting. Then the shooter feeders shall turn on until the ball is ejected. After ejecting the balls, the feeder and shooter motors shall turn off. The driver shall have a rapid fire option to eject all balls in succession.

  6. When the intake extension button is pressed the intake slide shall extend BRAD TO FIX

Computer Vision Requirements

  1. When the auto-target button is pressed, the turret will automatically turn and adjust height to align with the target.

DriverStation Dashboard Requirements

  1. The driver station shall provide indication of:
    • number of balls in the system
    • whether or not there is a ball ready to shoot
    • Whether or not the shooter is aligned with the target
    • Whether or not the robot is too close or far to align to target
    • Auto-targeting can't find target.

Hopper Requirements

  1. There are two photo eyes. One is at the intake side of the hopper, and the second is at the other end of the hopper.

  2. The first sensor senses balls taken in, and the second will sense balls ejected. There should be an error detection system. For example, if the first sensor indicates one ball is taken in, but the second sensor says two balls are ejected, when only one ball is in the hopper, a sensor error has occurred. Then the operator should be notified and have controls to reset the number of balls in the hopper and override any limits the sensors may be applying to the robot.

Git requirements This code should be done in a branch called ballSub. A pull request should be done to ballSub-testing.

ericwrockfordrobotics commented 4 years ago

Power Cell Handling System Requirements

graykevinb commented 4 years ago

All of these requirements shall be a function in a package called ballSubsystem.java This package shall contain methods called, intakeOn, intakeOff, intakeExtend, intakeRetract, hopperOn, autoAim. Each function does exactly and only what it says. Then these functions will be implemented in Robot.java with controls compatible with the button requirements At this point honestly, make the controls however you want. Just get the basic code in there. Also at this point scaffolding code, meaning just a class with empty functions, and basic implementation of the class in Robot.java is a good first commit.