Meet Ellie, a six week old robot weighing 100 lbs who can launch a two foot diameter exercise ball over 10 feet in the air! Ellie even has eyes: a webcam fitted to the front of her chassis that uses code written in Python running on a Raspberry Pi to process images. Ellie’s main code is written in Java and allows her mecanum wheels to drive, her claw to catch exercise balls, and her kicker to launch balls into the air. In just a few weeks Ellie will be competing along with more than 50 other robots in her first competition.
Ellie was built by our team, The Fighting Unicorns, an all-girls high school team located in Shaker Heights, Ohio. Our team has been competing in the robotics competitions since our founding in 2008; specifically the FIRST (For Inspiration and Recognition of Science and Technology) Robotics Competition, an annual competition for high school students in which they are tasked to design and build a robot in six weeks geared towards a new challenge each year.
Ellie went from concept...
Photo by Emma Picht
To finished robot in 6 weeks!
Photo by Jordan Harris Purpura
Throughout competition, FIRST encourages students and mentors to play by their main motto: Coopertition. It's a combination of the words cooperation and competition, and it conveys the strong community and encouraging environment of FIRST as well as the core values of the open source way. While the program is a competition, it hinges upon the idea that all teams collaborate. Teams work together and help each other to share ideas from pre-season, to build-season, to the competition, all in a spirit of gracious professionalism—and a love for robots!
At a programming level, the open source aspect of FIRST is huge. Programmers help each other debug and open source their code on GitHub. Mechanical and electrical members of teams share CAD designs and strategies on Chief Delphi, the online forums for FIRST.
The programmers of FIRST swarm the sub-forums of Chief Delphi with questions about their own code, helpful answers including example code, and sheer enthusiasm for the code and competition. Along with example code and programming jokes, FIRST programmers provide fixes and documentation to the often-buggy and sparsely-documented FIRST provided library of code, the WPI Robotics library (WPILibJ). These in-depth explanations and fixes help veteran teams fix long-lasting problems and help rookie teams using the WPILibJ library for the first time.
The programming captain for The Fighting Unicorns, Lauren Dierker, recently encountered a rookie programmer on Chief Delphi. She was able to use Chief Delphi to explain Java to the new programmer, plus the structure of command-based programming, and show him how to write code for motor controllers and buttons. This experience is far from unusual in both the programming aspect of creating the robot and in the FIRST community as a whole.
When the season ends, almost every team posts their code online to allow other teams access. Many FRC teams, including our team, use version control websites, such as GitHub, to share their code with their teammates in FRC and to host their code during build season. Version control sites like GitHub allow us to retrieve previous versions of code in case of coding errors, in the event that we want to use old code we deleted, or to provide base code for a new idea. With version control we can have different branches of code, allowing our programmers to work on the same code at the same time, giving our team more independence, productivity, and success. When it comes time to run code from multiple branches at the end of the season, we can easily merge all files into a singular master branch. With resources such as GitHub, and help provided by other teams, no team is left without the ability to understand the programming process or without the ability to properly finish the code by the end of build season.
Our team has utilized these resources time after time, including this year when our team decided to switch the way we set up and process our vision code. Instead of using the FIRST provided IP AXIS camera to capture images and using our cRIO for image processing, we decided to capture images with a web camera and process images using a Raspberry Pi. This was a completely new experience for us from Java, our normal programming language, to the networking aspect of Python. The documentation and advice provided by other FIRST teams was instrumental in our success.
Standing in the Wolstein Center in Cleveland Ohio, waiting for the robotics competition to start is electrifying: we know that every single robotics team wants to win just as badly as we do, and that every person will have worked long and hard for six weeks trying to build, wire, and program to the best of their ability. To see our competition and track our progress, go to our Fighting Unicorns team page.
In the spirit of gracious professionalism, we’d like to thank our sponsors: Red Hat, HB Parents and Grandparents, NASA, Balance Product Development, UH Ahuja Medical Center, the Egts Family, the Keyerleber Family, Gearing Solutions, HBPA and FirstFuelCells.com.
Co-authored by Lauren Dierker.
Julia Javorsky also contributed to this article.