Robot System Description - first95/FRC2020 GitHub Wiki

  • Drivebase -- drive robot including closed-loop control (probably position and speed)
    • Actuators: 2 Spark Max/Neos on each side; 1 pneumatic (for shifter)
    • Sensors: external encoders (1 per side, connected to lead Spark Max/Neo)
    • Commands: manual control using our typical two joysticks (one turn, one forward/reverse); closed-loop position control to fixed position
  • Collector -- get power cells into the robot
    • Ground pick-up -- grab power cells from the ground
      • Actuators: 1 Talon SRX/SIM (to spin); 1 pneumatic (to deploy and retract)
      • Sensors: none (no closed-loop control needed, so no encoders even)
      • Commands: manual control for each component (Talon and pneumatic) (pneumatic will be deploy and retract where button press changes state and doesn't need to be held; for motor, likely press and hold to turn on and let go to turn off)
    • Singulator -- store collected power cells and send them to the shooter one at a time (indexer part)
      • Actuators: 2 Talon SRX/SIM (to spin, working together for additional power)
      • Sensors: One optical sensor indicating the presence of one or more balls
      • Commands: manual control at first for debugging, followed by fully automatic control based on sensors in singulator an indexer
  • Shooter -- shoot power cells
    • Indexer -- feed power cells one-by-one from collector
      • Actuators: 1 Spark Max/Neo
      • Sensors:
        • built-in encoder or possibly mag encoder instead
        • 1 optical sensor at the entrance from the singulator, indicating that activating the indexer will draw a ball into the indexer
        • 1 optical sensor a few inches in from the entrance from the singular, indicating that a ball has been successfully pulled in from the singulator
        • 1 optical sensor at the entrance to the shooter, indicating that activating the indexer will push it into the shooter
      • Commands: manual control from driver perspective but likely closed-loop speed control under the hood. Ideally this would be fully automated.
    • Shooter -- shoot power cells from indexer out of robot
      • Actuators: 1-2 Spark Max/Neos (to spin, working together for additional power)
      • Sensors: built-in encoder to do closed-loop speed control (probably only one for "lead" and if second, have follow)
      • Commands: closed-loop speed control that is accessed by driver through what feels like manual control
  • Climber -- hoist robot up on switch
    • Actuators: 1 pneumatic
    • Sensors: none
    • Commands: manual control
  • Sucker system -- enable better pushing or staying in place while shooting
    • Actuators: 2 Talon SRX/SIMs (working together for sufficient power, not operating independently)
    • Sensors: none
    • Commands: manual control likely using percent voltage under the hood (off/on where have to hold it to keep it active)
  • Vision -- provide automated detection of info and possibly improve driver view
    • Actuators: Talon SRX hooked up to two light sources (one green, one white) such that "forward" illuminates one and "reverse" illuminates the other
    • Sensors: camera for vision target detection for outer port; camera for control panel; maybe camera for driver vision
    • Commands: find offset angle (and distance relative to desired?) for outer port vision target shooting; boolean whether well-enough aligned with outer port vision target to make shot with high probability; find offset angle to desired color; find offset angle to finish number of required rotations; boolean whether at desired color
  • Spinner -- move control panel (lower priority, may not be implemented for first event)
    • Actuators: Talon SRX/SIM
    • Sensors: encoder
    • Commands: closed-loop position control (can be used for multiple turns plus getting to color); manual control as feedback