-
Notifications
You must be signed in to change notification settings - Fork 1
Code Release
##Pre-ramble So last year, we didn't do a code release. This was for a couple reasons, but mostly revolved around the fact that my code was relatively sloppy and buggy, and generally didn't work. Motion profiling was still a work in progress at that point, and actually never worked within the competition season. I quietly moved our repo to public and continued working on it.
I'm proud to say that things have changed this year. Team 236 has made massive strides forward in every area, with improved scouting data analysis, design, wiring, and manufacturing than 2016, which has made this season a huge success. However, I'm going to try to stay on topic. Our code this year is far more organized and streamlined, which has allowed us to implement successful and accurate motion profiling along with some other steps forward. A key element in this process has been a more sophisticated git workflow, including feature branches and higher standards for commit organization. All this has been preserved in the final repo, so you can see the evolution of the code throughout the season.
##TICKTANK The crowning achievement of this year, however, has been the implementation and successful application of the TickTank module. TickTank is designed to be an extensible and modular tank drive, with a host of features included. I came to the realization last year that the drive subsystem had become essentially boilerplate code, and I had the idea that it could be logically unified into a module which would would handle all the drive code without needing to be modified for each robot. This idea became the TickTank module, which now contains a variety of useful commands.
Instead of needing to write a new implementation of the same old drive subsystem again, you simply create a Settings object, load it up with information about your tank drive configuration, and pass it into a TickTank object. Because TickTank extends Subsystem, you can treat it just like a standard drive subsystem and run the available commands on it (or write your own). Because the motion profiling code is included in TickTank, you can run motion profiles on your tank drive with minimal hassle. If you're interested, I recommend looking through the Robot class to see how the tank drive and motion profiling are handled there.
I'm really proud of the work we've done on TickTank and I would be honored to see it on your robot, especially with the progress that is coming up. You can see the TickTank code here.
##AUTO HANDLING
