Blog : Updates

My Mistakes Starting Our FIRST Robotics Team

My Mistakes Starting Our FIRST Robotics Team

Gilmour Academy founded its team for the FIRST Robotics Competition when Daniel Zhang’16 fiercely (and politely) lobbied our administration for support. Zhang is a force of nature and pushed the idea past a lot of resistance. Things might have gone another way but he secured grants from FIRST, NASA, and our good friends at Rockwell Automation. Alumni support followed soon after (thanks again!) and we had ourselves the means to get to work.

I knew I had gotten in over my head, but it would take a while to realize just how far I had strayed from my comfort zone. Fortunately, the students’ made up for my lack of technical expertise with zeal and Google-Fu. Our partner school, North Royalton HS (an arrangement also spearheaded by Zhang), deployed the ever-talented Mr. Nestoff (seen here helping one of his students earn a quarter-million dollars in prizes). It’s safe to say we all learned a lot on the fly.

A good learning experience is one with a lot of mistakes. All sorts of mistakes. So many that, in an effort to help other FRC teams, avoid the same (and to write down some reminders for next year), I’ve had to organize our blunders into categories:

FRC Timeline and Milestones

  • Commitment: Becoming dependent on any one student is especially risky if that student’s commitment is anything less than rock-solid. We were unclear with students’ time commitment as we were unsure of what to expect from the season. As a result we had students attend work sessions irregularly and it had a big impact. We need to publish a meeting schedule (light but regular Fall meetings and an all-hands-on-deck fury of work from January to March) then have both parents and students commit to that program.
  • Drive train before winter break: We spent the first four weeks of the six week build period stuck on basic movement. We should have used something like the Andymark KoP to build a simple base before the year’s challenge was even announced. Then we adapt the flexible platform to meet the competition.
  • Purchasing rounds: This is something I still don’t entirely understand but I will need to get into it next year. There are two rounds of purchasing where teams can specify the most urgently needed part for their design. We missed both rounds purely out of ignorance of the process. And so we didn’t get the Rhino treds we wanted because they were all sold out once the market was opened up to us plebs.
  • PM expectations: Things got a little chaotic and communication broke down at times. Our use of Slack was a huge help. Our discipline on Trello faltered. Next year’s team will be bigger and the need for project management software greater. We’ll make the expectation that all tasks get posted and commented on Trello really clear, really early.
  • Drive time with a dedicated console laptop: Our pilots were still learning the basic nuances of controlling our robot, Luna, the day of the competition. We need to set a stop date a week or two before our robot’s quarantine so we can drive and iterate.   
  • Remember to use Day 1: The first day of the competition is all about practice and inspection. We have that time to get the robot up to expectations… which explains why so many teams brought tons of gear.
  • Submitting form for food: Our competition, the Buckeye Regional, serves boxed lunches to students. All we needed to do was submit a form. Got to remember to submit the form.

Robot Design Fundamentals

  • Kick-Off Planning: The kick-off event is when the details of this year’s challenge are announced. We used that time to inventory our issued parts (they all looked alien at the time) and to quickly brainstorm and discuss the challenge. We should have dug in and worked out a preliminary design so our Finance Team could get ready to make purchases.
  • Log parts used: We didn’t build a second robot (we were already overworked and behind schedule). But it would have been so much easier if we kept a clipboard by the work area and quickly noted every bolt that went onto the bot.
  • Shock absorption around electronics: This is a big one. Our team would have shot up in the rankings if we were just able to move. But big impacts would reset our network connection. It took us a while of crawling over cables and error logs to figure out where problem was. Having our electronics panel on a plastic sheet was our biggest mistake of the season. Once we put foam under the RIO and router then hot glued it all down, our issue was resolved.
  • Numbers: A lot of teams seemed to struggle with this. Numbers need to be 4″ high, white, and outlined in black.
  • Talon controllers: Our motor controllers we picked out were the cheap ones that didn’t have easy calibration. That turned out to be a bit of a pain. Next year we’ll use the Talon SRX and enjoy easier calibration so the left wheels are in sync with the right.

Roles and Responsibilities

There is just so much to the FIRST Robotics Competition. Awards are given for outreach, mascots, and all sorts of activities we never even considered. Scrambling for parts and resources, we left our supporters in the dark instead of keeping everyone engaged with our team. So much was missed. Next year, we’ll have deadlines and responsibilities clearly outlined for each committee. Joining that team obligates you to meet those marks.

  • Award Team: Tracks our progress on all award submissions and makes sure we get our paperwork in
  • Design Team: Agrees upon a sketched design, helps build the list of parts, and constructs a model in CAD
  • Build Team: Group responsible for delegating and executing our design
  • Scouting Team: Uses social media to gain ideas on what teams around the country are doing. During the event, categorizes other teams’ robots to find complementary allies
  • Marketing Team: Updates website, manages Twitter (website materials for sponsors) (button exchange) (mascot)
  • Outreach Team: Recruitment and supporting upstart robotics programs in the area
  • Finance Team: Fundraising blitz in coordination with our development office, processing purchase orders, tracking budget
  • Media Team: Collecting and storing audio, video, and images. The value of this team must not be underestimated
  • Safety Team: Studying safety policies and enforcing them. Assuring that necessary safety equipment is always at hand in the lab and on the road
  • Rules Team: Study the regulations and deadlines and brief other teams on compliance issues

Preparing for the Pit

The floor space of the competition was unlike anything I imagined. It was a spectacle of fantastic proportions. There’s no way our setup can compete with teams that have built up their program for over a decade. We saw work stations with elaborate, custom build decorations. But we can sure get ourselves on track so that we’re at least able to compete with those teams in the playing field.

  • Checklist: We scrambled for things we forgot back at school. Build a checklist. Check it twice
  • Dolly: Ours was the only team silly enough to try carrying our robot to and from the playing field. Most teams have customized carts for their bot. That’s the first thing we should have built
  • Traveling tool chests: We saw some great DeWalt traveling toolkits. Logistically, our monster toolbox was a pain to haul around. As we’ll need to buy more tools in the future, we’ll plan for mobility
  • Drive Station software: Having to adjust the version of the Drive Station software is a time consuming process (not the easiest installation process). We must verify we’re using the same version used during competition. We’ve also got to practice deploying code over Ethernet cable instead of over WiFi. The wireless connection is disabled during the day of the competition and it took a while for us to get the bugs worked out on deploying software modifications
  • Driving consoles: It turns out that the physical layout of the laptop and controller is a point of pride for most teams. They’ve got LED lighting and team numbers cut out of steel panels. We need to remember to put something snappy together (with a cool looking Madcat 3 joystick)
  • Banners and flags: Our 10×10′ square was so bare
  • Better safety gear: A fire extinguisher and battery spill kit are required. We had to borrow the latter. Also our safety glasses didn’t fit over peoples’ spectacles and that was a real pain
  • Batteries: They all needed to have “pig-tails” on them so we could swap them out faster. And charging was a real pain, other teams have sophisticated racks to safely charge and store the batters

Underestimating Gracious Professionalism

The organizers of FIRST make a big deal over their concept of sportsmanship they call gracious professionalism. I nodded when I heard about it and said, “sure, that sounds great.” I had no idea the lengths people would go to help us. Here’s where I give a huge shout-out to Mr. Hauch of Team 4931. His published software, Strongback, was the basis of our robot’s brain. Moreover, the patient man spent hours on Skype with me and my students. Not only was he explaining how to program for FIRST, he advised our team on strategy and preparations. We’re now eager to pay the good will forward.

Next Year

We can’t wait. Both our schools are excited and now I’m looking to hire a Robotics Instructor here at Gilmour to develop a program in grades 3-8. It’s an amazing way to get students excited about engineering in a rigorous, hands-on challenge.

 

Week 6: The End is Nigh

Week 6: The End is Nigh

The First Robotics Competition season is wrapping up. Our robot is due February 23, at which point we will have to seal it in a bag and likely won’t see it until the day of the competition. We will not be able to work on modifications, but plan to practice between the two dates on a second robot.

 

Winding Down

As the season is drawing to a close, there is little left to order for the robot, and we are mostly running tests up until the point where we have to turn our robot in. We have received all of the necessary parts to build our second robot, and will start with that process once our robot is sealed up on Tuesday.

 

It Lives!

We now have an actual working robot! The drive train is officially completed, and connected to the main
board. We got it moving, and were able to have it move around some obstacles. We have also made some progress with the intake system, which is proving a bit tricky, but we should have it done in time. We also have tried out some ideas on our robot’s arm, and it will hopefully be functional by Tuesday.

 

Putting Software with Hardware

Our robot has finally been able to run some codes, as we have finally attached the drivetrain to the base. Our robot has successfully driven, as well as navigated some obstacles, which was very exciting. We have found a couple errors in our code, but we should be able to solve it before Tuesday. The software is not nearly as complicated as we originally thought, and it shouldn’t be hard to finish something that will allow our robot to navigate the competition.

 

Week 5: We Have a Robot

Week 5: We Have a Robot

We have finally completed something which looks like a robot, with a finished (drivetrain? frame?) and all of the available electronics attached. Progress on the programming for the robot has resumed, and we are steadily advancing towards our goals.

 

Getting the Simple Stuff

The drive controls have officially shipped out, and we should be recieving them within the next couple days. We also ordered new, simple supplies that we didn’t know we needed until last week, such as specific screws so we could fix some of the parts on our robot. Those all have come in, so we have been able to make much more progress with the robot. We also have ordered a base drivetrain for our second robot. In two weeks from this past tuesday, our robot must be bagged and sealed, and we will not be able to touch it. The robot will of course be done by that point, but our pilot will not have enough time to practice moving it around to get good at it before the competition. The extra robot will allow the pilot to learn how to move the robot. Of course, we will first need to decide on someone to be the pilot.

 

It Actually Looks Like a Robot!

The base of our robot is finally finished, with six fully functional wheels and all eleIMG_6376ctronic hardware attached apart from the battery! We were able to move all of the electronics from the original cork board to a real Plexiglas base, and the wheels are connected to a metal frame that surrounds it.  We have also received the joystick with which we plan to maneuver the robot, but this has raised a few questions as to how we plan to control the robot’s arm(s). There are two options: buying a separate joystick, or making the current one control the robot’s movements and its arm(s).If we have just one joystick, it may get confusing for the pilot, as that is a lot to control. But if we opt for two joysticks, we will have to have two pilots, which could get tricky during the competition.

We have also been able to install the intake system! It took us a while (and was much more complicated than it should have been), but we now have it built, and have even connected it to the frame of the robot!

 

Not As Complicated As We Thought

We have finally began to start compiling some general code for our robot, and have quickly found that this will not be nearly as big of a hurdle than we thought. The Libraries that First supplies us with are extremely extensive, and have commands for almost everything we will need, including joystick compatible forward/backward motions and Cartesian coordinates. Once we finally get the battery attached to the robot, we should be able to test some simple “hello world” programs, and quickly build up to more complicated maneuvers, along with working the joystick.

We have finally completed something which looks like a robot, with a finished (drivetrain? frame?) and all of the available electronics attached. Progress on the programming for the robot has resumed, and we are steadily advancing towards our goals.

 

 

Week 4: Seeing Some Results

Week 4: Seeing Some Results

This week we have continued our work from last week, such as finishing half of the drive train and attempting to solve our issue concerning the gearbox. We are moving on to completing the drivetrain and main frame of the robot, and continue to make steady progress through our hard work.

Orders, Orders, Orders

We got an intake system! It arrived just as we had expected this past Tuesday, and now all we have to do is put it together–but that is easier said than done. We have also ordered more drive controls, which are the parts that allow our energy supply to reach our motors, because right now we don’t have enough to connect to each of the motors that we need to power our robot. This will allow us to test our robot to see how well it can move around. At the same time, we began the exciting process of ordering flight suits (they may have been kidding but it sounds funny), which the team is very excited about. Once we were all able to agree that no, we do not need flame-retardant suits, the team has become very enthusiastic about picking some out.

Reaping Some Reward

We’ve finally completed half of the drivetrainSlack for iOS Upload, and work on the other half is running smoothly as we have finally been able to attach treads to the new, larger wheels. As long as we stop taking apart the parts of the train that have already been completed, we should have a completed drivetrain soon. We also ended up spending an entire day trying to solve our missing gear problem for the gearbox, while still not solving it, so the team made the decision to switch back to the old ToughBox, which was much simpler to work with.
We also have been able to begin cutting a base for our robot, as the main electronic components are now being held together by zipties on a pegboard. Once we have mounted this, we will be able to attach the drivetrain to it, and finally see something close to a finished product. This is arguably the most satisfying part of the building process, as we finally will have something to show for all the hard work that has been put in by the team over the past weeks.

Focusing On Other Things

Concerning software, we have not made much progress in the past week. However, this is due to our focus on and dedication to other areas of the robot, as we are attempting to make it the very best we can in the limited time we have. These things take precedence over more advanced and complicated programming, and because of this we will focus on the programming after the more important aspects are finished.

Week 3: The Wheels are Turning

Week 3: The Wheels are Turning

Adding TredsStarting from Behind

Work on the robot has finally become steady now that parts are available. The goal for this week is to have a working, rugged drivetrain. We have finally decided on a language for our coding and have initialized the base level of code for our robot. We have encountered some (err, many) bumps along the road, but considering this is our first year, our robot is coming along very well. Certainly, our team couldn’t be putting in any more hours or working any harder.

Gaining Traction, Losing Sleep

This week, we were able to order an intake system, and were able to finally get treads for our robot. We have also discovered that we are missing a crucial gear for our Vex gearbox. We will have to either order a new gear, or use our older, single gear ToughBox gearbox, but first we must find out which gear we are missing. The complexity of the items is daunting as every mistake means we have to go back through the ordering process and wait for new parts.

Adding the Treads

This week we have finally been able to take off the regular wheels of our base and attempt to attach treads to larger wills that will allow the robot to move over some of the more complicated obstacles in the challenge. Unfortunately, mounting the new wheel to support the tread hasn’t been easy. Lining up the wheels has made us rethink the frame of the robot.
However, as we overcome these early barriers, the design work for the robot is becoming more concrete.

Deciding on Java

We have officially decided to use Java for our robot, and were able to run a Hello World program off of our National Instruments controller! Our robot can move and stop on command (although the frame has now been taken apart to get its wheels upgraded). We have also started working on coding some of the programs that will allow our robot to perform the tasks in the competition. Our software is easily the most underdeveloped portion of our project. But we’ve got Strongback, an incredibly exciting library of resources. This will allows us to develop our robot’s brain faster and with unit tests that will make it more robust. Can’t wait!

Week 0: It Begins

Week 0: It Begins

And so it began, what we had worked towards months before kickoff.

At the Tri-C campus in downtown Cleveland, the FRC Moonshots had gathered, bright and early, at 9:00 in the morning on a Saturday, for the Kickoff of the 2016 season. The video itself was, admittedly, fairly tedious. Over an hour of interviews and talks, but the payoff was more than worth it. The competition, FIRST Stronghold, left us, quite simply, speechless.

Immediately, the gears started turning. While waiting in line to receive our Kit of Parts, ideas were thrown around, from articulated arms to a robot aircraft carrier that had autonomous drones. The excitement was tangible.

The first week was filled with a flurry of ideas, some kept, some thrown out, and then some brought back. Of course, in comparison with a more experienced team, we must have seemed incredibly inefficient, but though the first five days yielded no physical results, a list of priorities were made, the first of which was the drive train.

What makes the drive train so important is that it’s what allows our robot to move. Without it, we might as well not even attend the competition. But this year, it’s even more important. An aspect of the competition is getting past certain obstacles. Some of them involve lifting gates, pulling down drawbridges, or opening doors. But the majority of the obstacles are non-mechanical obstacles, like a trough that the robot has to drive over or two ramps facing opposite directions, etc. These type of obstacles require that the robot is able to drive over them, using this all too important drive train.

Initially, we were planning on using treads. It seemed that this would provide traction, we thought, and AndyMark (the supplier of parts) was selling prefabricated treads. It seemed to be an easy and simple solution – until we learned they would be out of stock for two to three weeks. Despite this, we thought it’d be OK to wait.

However, after talking with a brother of a team member who had participated in FIRST (and went to Caltech too), we learned of many compelling reasons for using pneumatic wheels instead. Pneumatic wheels had been bounced around for a while as well, but the treads we saw were pretty cool-looking, so we convinced ourselves to use the treads – initially. The reasons were simple – firstly, three weeks of waiting around was too inefficient; secondly, the surfaces of the obstacles we had to traverse were hard – treads were useless for more traction there; thirdly, pneumatic wheels were versatile and being used by many experienced teams.

Hence, we decided that pneumatic wheels were probably the better way to go. With that being said, the past weekend has been incredibly productive – the most productive six hours of the entire season. Over the course of two days, we constructed the default drive train using the chassis given. Even more impressive, however, is the difference in time it took the team to build the first half of the chassis (four hours) and the second half (two hours). According to my math, that means when we put together the next chassis with the larger wheels, it’ll only take us one hour.

Going forward, we’ll have a functional base to work with, from designing to coding. It might not be much, but it’s definitely a start for us, and an exciting one at that.

— Daniel