2017:Programming
From 1511Wookiee
Jump to navigationJump to search
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 ready
- Move rumble setup from main joystick function into aux function
- Add 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.
- 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 instead
- Remove 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
Autonomous
Measurements for crossing the baseline: 95 inches
Programming Sub-pages and Links
- Documentation
- SVN
- Jaguar Firmware Notes
- 2017:Robot IO Map