Part of the challenge of Stronghold is very quickly adapting to the field. Given that the field has over 10,000 possible field configurations, it would be impossible to write code for every autonomous situation. I spent the first week of build season writing a program that I call “SHARP Quick Configuration”. It allows our team to tell the robot how the field is currently configured and the robot will then implicitly determine what actions to perform and in what order. I wrote mine to be as user friendly as possible. The user has pictorial representations of every obstacle on the field and they simply have to move around the pictures until their digital field representation looks similar to what they see on the field in front of them. After configuring the virtual field, the user tells the robot where on the field it is starting and then it is up to the robot to decide from there!
As a side project, I also added a dynamic constants loader to the program to remove the tediousness when changing program constants. When tuning things like PID control loops, vision algorithms, and gyroscope set points, it can be repetitive and time consuming to always reboot the robot code when we need to change a hard-coded constant. Ideally my constants loader will save us time and energy as we tune subsystems throughout the build seasons.
By Lucas Switzer