Our Software

Our robot is programmed in Java using Android Studio, and then controlled by two Android cellphones. We create special “op modes” that can either give our robot pre-programmed instructions for autonomous operation, or instructions for how to read the inputs from a game controller in teleop mode. To be competitive, you need both modes. Our autonomous mode had to combine a lot of individual complicated tasks into one program, so it was by far the hardest to program, even though the concept was simple. It was broken down into three sections, with each having a few secondary steps.

  1. Identify the VuMark. The VuMarks are a series of three images that are mounted to the playing field wall. They contain a special code of shapes that our software can read. The positioning of the shapes on the image tells us where we need to place our first glyph. We use the camera on the robot controller phone to identify the image, and make decisions from there.
  2. Knock over the correct jewel. We get points if we are able to knock a small ball off of a platform based on its color. There is one red and one blue ball on the platform, and we need to use our color sensor to knock over the right one. We pulled this off by mounting the color sensor on the end of a robotic arm. The arm drops down giving the sensor a clear read of the color. If we see the correct color, we drive forwards to knock it off the platform. If we see the wrong color, we drive backwards to knock the other ball off the platform. We must be extra careful to make sure we don’t accidentally knock the wrong one.
  3. Place the glyph and park. After we have completed the first two steps, we can drive off of the balancing platform and place the glyph in its home. Once we have done that, we park the robot in a designated zone, giving us an extra ten points.

We use GitHub to keep all of our files in sync between team members and to keep track of every version of our code. You can see our code on the GitHub website HERE.