2017:Programming
General programming stuff relevant to all subsystems should be documented here.
Outstanding Tasks
Split up by subsystem - responsible veteran student in (), student(s) doing actual code, if different, in []. These are not in any particular order!
- IO Map
Add entry for new indexer motor
- Robot main
Autonomous selection will be overwritten in auto reset() call. Move Reset() calls BEFORE auto selection. (Austin)Controls process() call in disabled should pass DISABLED not TELEOP (Austin)
- Autonomoose
Send auto choices and descriptions. Follow pattern of last year's AutoDashboardSend() function. Call this in Disabled() in thunderbot.DOCUMENT on wiki in VERY CLEAR AND PRECISE words, the starting location for each one (can edit/add to the strategy-provided google sheet)
- Feedback
- Nothing right now
- Controls
Fix broken switch processing - call these universally (don't check "process()" - just send the state of the button). Still keep all this disabled for now until real controls are readyMove rumble setup from main joystick function into aux functionAdd back in control for preheat. This should just tell the shooter to shoot. (so, if (buttonShoot || buttonPreheat) shooter->start_shoot(); else end_shoot() -- have to then handle enqueue separately for SHOOTING ONLY, not for preheat.Fix climber control. It was always going true/on. Currently forced to false because of this. I think I fixed it, -Austin
- Intake
- Nothing right now
- Shooter
Process() -- Sensor detection needs fixing, see commented out "broken = false". Can't just set broken absolutely. Must combine this with "Set_Broken" value to determine actual broken state.Need SetControlMode when we switch from broken back to not broken (similar to working to broken setup). Again, be sure to call Set(something) immediately since units will change!Remove preheat function declarations in .h to avoid confusion.
- Gear
Remove printf's. Use Debug() and dashboard sends insteadRemove redundant and never-running code in Is_Spike_Engaged()
- Drive
Debug() -- send dashboard key "thunderdashboard_gyro". Numeric. Set to 1 until gyro is calibrated. Set to 0 after.Change to constructing Spark's not Jaguar's
- Climbing
- Nothing right now
- Bucket
Add new motor controller (talon) for "indexer".Add functions to control it - needs to take an into shooter, away from shooter, and stop argument.Document in wiki - use CAN ID 13 -- Positive values (voltage) cause spin TOWARDS/into shooter, negative out.Modify controls to call as needed - spin into shooter only when shooting (not preheat). Spin away from shooter whenever intaking balls.Use fixed speeds for both, but allow to adjust via dashboard (ask kate how to do this)
Coders:
Intake Austin
Shooter K8
Bucket new
Gear Chase
Drive base ???
Autonomoose K8 n/or Andrew n/or Austin
climbing Calvin
Feedback system Ethan/Zach
Controls Josh
Autonomoose
Starting Locations:
Cross Baseline: Start anywhere along the wall as long as it isnt gonna crash into the airship
Any of the ones tht start with high boiler: Start lined up with the inner side of the robot along the outside of the tape outlining the key with one of the back corners against the wall
Center Gear: lined up with the center gear lift
Side gear: lined up where the back wall meets the boiler but completely flat against the back wall
measurements for crossing the baseline: 95 inches
Programming Sub-pages and Links
- Documentation
- SVN
- Jaguar Firmware Notes
- 2017:Robot IO Map