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