2017:Programming

From 1511Wiki
Jump to: navigation, 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. 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 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

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

Programming Archives