This past Tuesday was the first time I was picked up from school after the next day had begun. I walked out of the school’s glass and metal doors toward the headlights of my dad’s champagne Ford Focus, piercing through the near pitch blackness of the night. As my dust covered Converse All Stars squished from puddle to puddle on the soiled cement, I raised my left arm and trained my focus onto its small illuminated digital face. 12:15 a.m. I was exhausted beyond measure. That was the longest school day I had ever been through, clearing a little over nineteen hours. But I gave myself a weak smile; I knew my job was done.
Lincoln High School’s robotics team had been preparing for that long night for the prior six weeks. In early January we met other schools’ robotics teams in the University of Michigan’s engineering buildings to live stream the official launch of the 2018 First Robotics Competition (FRC). The comical animation we viewed outlined the challenge objective we were to meet and gave us insightful tips on how to effectually design and build a competitive robot. In this year’s competition, the challenge is for the competing robots to pick up yellow fabric cubes that are roughly a square foot and place them onto a scale-like structure. This structure will act like a scale, tipping in the direction which contains the most contents. The team who can place the most cubes on the scale in a two-minute match will tip the scale in their field direction and gain the most points to win the match.
As a freshman, this was my first year apart of my school’s robotics team. But I didn’t feel out of place. I was a newbie joining a had been rookie team. Last year, an algebra one teacher decided to start up a robotics team and named it the LincBots. It consisted of no more than ten students, some of which had skill in computer aided design (CAD), or electrical or mechanical engineering, and then some who were there to gain these skills. The team also included those who are called mentors. Mentors are adult volunteers, usually the parents of student participants, who have background knowledge in different STEM-related categories. The mentors are there to aid the students in the designing, building, and testing of the robot.
In their first year, the LincBots rose to the challenge of building a functional and competitive robot in six weeks. Most of the work was done on the fly. There was little planning as the robot was being built and little testing after the fact. The team didn’t know what to expect once the district competitions went underway. What astonished them however, was that with their little knowledge and planning, they had built a magnificent robot. Through the competition, they rose in ranking. As they passed from districts to states, into the world competition, they began to trust in their unknown skill instead of brushing victories off as luck.
Now, it’s a new year. Seniors have said their goodbyes, and freshmen have been welcomed, but the team is still relatively composed of the same small number of students. We have mechanics, electricians, and CAD designers. And very importantly, this year we have me – a programmer. I’m surrounded by few people who fully understand what programming really is, and I know even fewer who can do it also. For most, when ‘programming’ is mentioned, an unrealistic spy movie may come to mind that includes a teenage nerd hunched over a laptop in an unmarked van, infiltrating a secure database within seconds. Or perhaps a recent triple-A videogame will come to mind, and of the large multi-aspectual team that spent years creating it. The latter impression is closer to explaining the concept of programming, but it acts as a descriptive scenario rather than a definition of the actual noun. What many don’t consider is the ludicrous amount time and dedication that one single person must put themselves through to sit in front of a computer display and type out hundreds to thousands of lines of a semi-English language that a computer will compile into strands of 0s and 1s that it can understand to perform a task.
I have been programming since the sixth grade. I don’t know why, but I don’t see it as work, but rather as a constructive pastime. Most of my friends spend their free time playing the latest videogames, but I spend my free time programming my own simplistic, but exhilarating arcade-style games. The hobby gets to be lonely though. As I’ve stated, I don’t know anyone who I can have a deep, intellectual conversation with regarding a recent project that I’ve been working on, or over a problem that has risen in my code. The only thing that can assist me in my software struggle is Google, and only then when the Wi-Fi is up. That’s why I have been looking forward to this robotics season, not because there would be other kids who knew how to program, but because I would be immersed into an atmosphere of like-minded, technology influenced creative construction.
Last year, the LincBots didn’t have a student who knew how to program. Thankfully, one of the mentors had some experience in programming from college, and by the end of the six weeks, had a working program to drive the robot around, switch between cameras, and push objects with air pressure. That mentor however programmed in an unconventional way. He used a graphical user interface (GUI) to drag pictures next to each other to allow for logic flow instead of typing code out in a standardized professional computer language. My language of choice is Java, and that’s what I had decided that I would program the robot in. Even though my experience lay solely in videogames and there would be a slight learning curve to program a robot, I knew that I was more than qualified for the job, and I couldn’t wait to get started.
Unfortunately, I had to wait. For the first two weeks out of the six weeks we were allotted to build the robot, the team strategically designed how the robot should look, move, and operate. Three-plus hours a day, six days a week, our small team sat in a spacious classroom, debating on how to build the best robot for the competition. Each of these days, I slumped in my blue, hard plastic chair, my eyes half open, my brain half comprehending the debates regarding ease of construction and price which were flying over my head. I was genuinely bored and took little part in the discussion. Planning out the robot to the last detail didn’t seem important to me, especially since I wasn’t the one who would be doing the building. My only focus at that time was planning how I would accomplish programming the necessary functions the robot had to do. It had to move via wheels, pick up boxes using some type of claw-like structure, and it had to lift itself up to a bar using some type of extendable arm. These three tasks were sloshing around in my brain, waiting to be put into action.
By the end of the first week, I had grown impatient with the slow progress, and I could tell my peers had too. It wasn’t our idea to spend so much time planning. I was told by the previous year’s LincBots members that last year, they barely planned at all. They just considered what the robot had to accomplish in the arena and started building. They did experience mechanical problems along the way but were able to come up with quick and effective solutions. By the time the robot was done, they had plenty of time to test and make needed changes to it. This year, it was evident that the time to test the robot would be close to non-existent. The time we had to build the robot was depleting fast too. My friends tried making this argument to our mentors, and some of them agreed, but others were adamant that the best way to make it to the World Championships again was to plan the robot out down to the physics of its motion. And so, we did; listlessly watching the days pass.
Then the day came. Tuesday, February 20, 2018. The last legal build day before the FRC competitions began. As predicted, the robot still wasn’t completed or even moderately tested. However, down in my school’s robotics lab, the team’s dreary attitude had changed. No longer were we bored, wishing to accomplish something worthwhile. Instead, our hearts were pumping overtime as we frantically jumped from task to task, racing against the clock to finish our robot. Thankfully, we had all-hands-on-deck. Throughout the past couple of weeks, attendance at afterschool build sessions had been shaky, but today the whole team was there, even graduated seniors who came to volunteer. By four o’clock in the afternoon, our head coach had gotten everyone situated on different aspects that needed to be completed as soon as possible. We had until midnight, but we all knew the hours would pass like minutes. He divided us into groups to finish mechanical assembly, electrical connections, and robot stability and protection. I, of course, was appointed to the one-man job of completing the robot’s manual and auto controls.
I wasted no time. I grabbed the Hewlett-Packard laptop that I use solely for programming from the semi-soundproof room I usually abide in. I knew that tonight, I had to be right next to the robot, to make sure the engineers didn’t accidentally mix up wire connection points and to test as many commands as possible that I had programmed. I sat the laptop down on a laminated desk, right next to our robot which was propped up on a worktable. Members of our team surrounded the table, passing tools around, lending a third hand when needed, and ultimately working faster than I had ever seen them. When the laptop finally booted up, I quickly logged in and launched Eclipse, my favorite Java Integrated Development Environment (IDE). I typed out new lines of code as fast as my fingers would allow. The autonomous program of the robot was not complete, but I knew I could finish it soon enough. When I did, I was confident my program would work, but I was experienced and realistic enough to know that anything could go wrong. I read through my endless program, line by line, my mind racing, thinking of all the possibilities that could cause the robot to malfunction. My eyes strained, and I felt a small headache forming from my anxiety of pessimistic thoughts. I needed the mechanics to finish up. The only way to officially test a program is through a real physical trial, not through imagination. Time was running out; the hours were moving by too fast. I desperately glanced at my watch, willing for time to slow down, but it only seemed to speed up. It was already ten o’clock. My parents wanted me home, but I begged them to let me stay until the end. I had a responsibility to program a robot, and I wasn’t about to let it overcome me.
Finally, the mechanics and electricians were done with their jobs. I could deploy my code. We all held our breaths as I activated the robot. I set it into autonomous mode and… the robot sat on the ground, still as a rock. Error messages were spitting out of the laptop faster than it took me to read just one of them. My head hurt. Thoughts of failure blew into my mind, but I had to remain calm. It wasn’t over. I grabbed the laptop again and searched through my most recent lines of code. I had recognized one of the errors and knew that I must have made a mistake in one of the motor declarations. Sure enough, I found my potential culprit. As I deployed my code again, I gave a small prayer that what I found was the only thing causing the errors. Thankfully, it proved to be.
But when the software errors left, the hardware complications arrived. Motors blew, thin protection plates cracked, rope tangled. Everything imaginable went wrong. All the while, the clock still ticked. It was eleven-fifty; time was running out.
At least our robot wasn’t a complete destruction. It could still move and pick up boxes; two functions which allowed us to compete, but the whole team stared as through a fog, wishing back those two weeks we had spent planning. The design of which little was still in effect.
I looked at my watch, it was a little past twelve. Time was up. I was tired, my head felt foggy and my eyes blurry. I quietly shut down the laptop and stood to gather my belongings. Stretching out a yawn, I said good night to the remaining members and headed for the door, hoping that next year would prove to be different.