When Cameron and I stepped up to enter in SparkFun Electronics’ AVC (Autonomous Vehicle Competition) Logistics Class, we knew it would be tough. When we started our design brainstorming at the end of May 2018, we were still awaiting whether SparkFun Electronics would still host the Logistics Class category AND there were hints of rule changes. We also knew that as
a family we wanted to do a consecutive 30+ day RV trip starting in mid-June. (Yes, we survived the trip as a family of four humans, two cats and one dog.) With the event scheduled for September 8th we surrendered our expectations that we would have a lot of time to prototype components and automate our bot. Planning, research, teamwork, our competition strategy and priorities would have to take precedence.
A bomb that was dropped on us and totally broke our original design efforts was received while on our RV trip. Even though the Logistics Class category was going to happen, the rules had been changed along with the field and field elements. In 2017 the field elements to be picked up by bots were rings made from pool noodles. These rings would then need to be sorted and placed on masts that sat on the ground. A LEGO mock-up for 2017 is shown in the picture on the left. In our original design for our 2018 we were assuming a claw manipulator that could pick-up the rings then drop-off on masts by dropping the rings from a tailgate.
As we read through the rule changes for 2018 we noticed that the rings had changed to boxes and the masts were now shelves that had different roles in a production process of either warehouse, production input, production output, testing or shipping. Knowing that our original design would take much rework on the physical design, we chose to enjoy the rest of our family RV vacation, research on autonomous capabilities and wait on any physical robot changes til when we got back around mid-July…Eight weeks from competition day.
After getting back home we realized that with only eight weeks from competition day, my son and I needed to prioritize and rely on teamwork. A 2018 rule that we targeted as our #1 strategic priority was to leverage Teleop to be able to do ALL capabilities in the field. Teleop is the ability to control your robot at a distance. Agreed. It is not autonomous, but we really do appreciate that this capability was available to competitors as a minimum entry. I believe that having this as a baseline for gathering points by competitors are the nuggets needed to get entries and for teams to start participating. Once a bot is able to do all the capabilities in the field via teleop, a team can work towards a consistency that can be automated. Which leads us to our #2 strategic priority that was focused on the mechanics of picking up and dropping off boxes. This second priority was to look at mechanical ways in which the boxes could be consistently picked up and dropped off. If we couldn’t find a way to consistently do this mechanically, it would be even harder to do these autonomously with software.
Cameron, as our mechanical and electrical engineer for the team, took on this challenge with success. With a little help from Mike, Cameron was able to come up with a two-conveyor belt design with VEX parts. The bottom conveyor would function as the holder for two boxes during transport and would need to make sure it was level with the 8-inch height of the shelves. The upper conveyor would provide the reach over a table to pull in boxes and could be raised / lowered as needed. With a few finishing touches along the bottom conveyor for the sides and a backstop when feeding boxes and dropping them off, Cameron had a working mechanical solution for boxes. A picture of the bot with its conveyor belts is shown to the left.
As Cameron focused on our mechanical priority, I was continuing on our #3 strategic priority around autonomous capabilities in our software with a focus on starting autonomously. As part of the competition, a bot can start moving based on a Stop sign (red) that turns to a Start sign (green). Our goal was to use a machine learning framework, Tensorflow, to recognize the sign as a Stop or Start sign. When our software recognized that the image shown had a higher probability of being a Start sign, the program would tell the bot to move forward for a specified time. A key to the capability was in training a Tensorflow model to recognize the two types of signs. With no knowledge of machine learning…it was time to dig in, research and try it out! For those wanting to learn Tensorflow, I would recommend starting with TensorFlow for Poets. To train a model for our purpose, we needed images of the sign, both a Red and Green side, to the dimensions, specifications and colors indicated in the rules. With some help from our member community and the equipment at Pikes Peak Makerspace, we were able to get a ‘fancy’ sign made. A big shout out to John Norton for taking this on! After some picture taking with various backgrounds and positions of the sign, we were able to learn how to train the model…and made many different adjustments to find an appropriate set of images that would train the model. Training the model is an art and can be a hit-and-miss, at least while you are learning. I’ve noted this knowledge gap on my personal maker journey and you will see future posts as I gain this knowledge in other projects I’ve already targeted over the next year. But for the 2018 competition with some additional images we took on Friday’s Practice Day we were able to train the model for the Autonomous Start setup we had for 2018.
But even with all this good stuff in the bot, some credit has to go with our focus on a Game Day (weekend) strategy! Once we started seeing these three strategic priorities come together, the week before the competition we started keying in on consistency fixes and simplified controls, especially for speeds and positions in the conveyor belts. On Friday’s Practice Day a focus was given on tweaking the speed and turning of the chassis within the actual field. After Friday’s Practice Day we remained focused on consistency fixes AND no component revamps. We were considering adding more autonomous capabilities that we were working on as our #4 priority, but we chose to disable all of this capability and focus the compute power on our top three priorities. On Game Day based on the scheduling of practice time for our Logistics class being only one hour right before we had the ONE competition run and the confusion in overlapping compete schedule (Cameron was also competing in the K-12 battle bots), we chose NOT to practice on the field on Game Day. Our focus was to save our battery charge for our ONE competition run and keep the bot in the pit to unit test whether components were working. I want to give credit to this Game Day Strategy, because after being in competitive robotics mentoring students for over 20 years, sh*t happens on Game Day with all the nerves. It is not a time to be making overalls, you just have to go with what you got and hope your strategy for points has put you in the ballpark to win. For us it did in 2018! With Cameron’s excellent driving, field clock awareness and mechanical consistency in box manipulation combined with our Autonomous Start capability it was just enough to put us over the competition in points to be the Winning bot!
After a week or two of enjoying our win and relaxing, Cameron and I did a project review and recap. We have already identified areas to improve and capabilities we are wanting to add to the bot for next year. We welcome others to join us for the fun and compete…but we have to warn you we do plan on having more autonomous capability and a faster bot. 😉 You may see additional posts coming on two-three smaller projects that we are working on to gain more knowledge around machine learning and robot awareness of its location. Thank you to SparkFun Electronics for hosting this competition and providing a unique opportunity to the maker community! Also a shoutout to DigiKey and Garmin for providing prizes to the winners!