Fixed a couple issues - identified reason for robot spazzing out upon running a third path
got all paths working by avoiding the use of isReversed altogether. Propably a temporary solution but it's worth a shot. Added SnowRemoval multiple path mode (named Good Snow Removal) and some other useless garbage used for testing that will be gutted tomorrow after a good night's sleep
getting snow removal to use the collector (no correct heading yet) and snow thrower to collect and shoot (though not in the right place/angle yet)
Actually limit deceleration and make centripetal acceleration configurable in yaml
Tune velocity, accel, decel, centripetal accel and fine-tune paths
WIP heading controller
Debug swerve headings
Flip kModulePositions to match swerve drive vectors
Tentative rotate heading while swerving
Tentative PID for heading controller
Take out debug prints
Experimental teleop kinematics fix [late night math]
Shooter tuning [PLEASE DEPLOY]
Add field centric toggle to yaml
Update CSVs from auto-challenge
Rename Good Snow Removal to Snow Removal, eliminate bad Snow Removal
Make yaml field centric toggle work
Add heading PID to yaml
Path tuning and updates
Update cheesy-path from auto-challenge
Add CSVs for Snow Removal Paths
Slalom tuning and toggleable field relative through Shuffleboard
Add snow removal paths pt 1 and 2 as CSV
Path Tuning GS
Slalom Path Optimization . . . . . . . big P energy
Reduce P
Power Port Mode
Power Port Tuning
Hypothetical powerport fix
Introduced some simulated robot rotation error
changes after running profiler
removed motor calls that have settings in config - moved all "motor" calls after config is set
Asynchronous configuration of motors (currently only done in drive)
New Subsystem initAsync api
Move setOpenLoopRampRate to initAsync
Initialize all subsystems asynchronously
reduce thread keep alive
Asynchronously calculate trajectories
Snap to previous azimuth demand and not current on no drive vector