
Competition Surface
First place in team design competition to build autonomous robot from scratch that could pick up and move as many empty cans into a recycling box as it could in a minute. Robot was constructed using simple materials and hobbyist electronics.
Our competition was run similar to the World Cup. There was a round-robin stage consisting of 16 teams of 4, split into 4 pools. Each team played two matches in the round-robin and the top 2 teams from each pool advanced into quarter-finals and then semifinals and finals. The difference this year was that each team member built their own version of their team’s design. In each match two teams battled head to head with the robots attempting to collect 6 randomly placed cans and place them in a recycling bin within a minute. The score for the match was determined by the average points scored by each team.
Competition Surface
Scoring for one robot is as follows: 1 point will be awarded for every soda can returned to the bin within 1 minute. 2 extra points are awarded if at least two cans are starting in different orientations (one upright, one lying down) are returned to the bin within the minute. One extra point overall is awarded if the bin walls are 8” or higher and at least one can is collected. Cans only score points if they are fully in the bin as determined by the judges, and would stay so even if the robot was moved away from the bin. There was a separate competition where each team had to do an entertainment portion with their robot that was scored from 1-10 by our class.
The finals were extremely close. We won 7.75 to 7.5. Our team had actually collected fewer cans than the second-place team but we had an 8” recycling box which gave us an additional point.
Our team started by coming up with broad strategy decisions that would influence our design. Mainly, going for full points, using a tape path for navigation, and picking cans up while moving. From this we generated a few sketches:
We then collaborated on our sketches and came up with a final design that we modeled in OnShape.
The competition had to be completed at home with simple materials so my robot was constructed out of corrugated plastic, wire, tape, a few dowels, and whatever else I could get my hands on. The robot stayed mostly true to the CAD model except the tape sensors were moved to front of robot and I added a few extra attachments for more controlled movement of the empty cans.
One thing I regret doing is spray painting the robot. I neglected to calculate the weight of the paint. This addition resulted in my motors being too weak to move the robot so I had to cutout plastic that nicely covered various wires and had to increase the voltage on my motors. Now my robot was less than pretty, but it got the job done.
Various photos of design:
The robot was controlled by a Bluepill which is a STM32-based micro-controller. We used an Arduino framework to code the robot and Git for version control. Software was simple and had 3 main parts.
Tape following: We first started with a PID tape following algorithm, but our electronic kit only had 2 tape sensors. We found values read from the tape sensors didn't give a wide enough spread of data for the PID algorithm to be effective. Instead, we went with simple on-tape off-tape logic with a tuning knob that decided what was on the tape or off the tape, adjusting this knob would make the robot see the tape as thicker or thinner depending on the setting. Two sensors allowed the robot to know if it turned left or right off of the tape, then correct accordingly. This method worked very well and allowed the robot to traverse the course twice within a minute which proved to be essential to pick up extra missed cans.
Noise reduction: We used the LCD to display various info as our robot ran. This aided in showing sensor noise when motors were changing direction due to the motors creating magnetic fields which induces currents in the sensor wires. To compensate, I added some sensor averaging algorithms to reduce noise that showed up at the sensor inputs. Different light conditions would also change the tape sensors values. I created a calibration algorithm that I would run whenever the light conditions changed to standardize the light distribution. This allowed the robot's performance to be the same in any light condition.
Entertainment:
I wrote some software to launch dog treats for my dog using the rotor. I also added a little row-bot to the LCD screen. I had to later remove the row-bot because the LCD software caused a lot of strange software bugs.
I also logged the success rate of my robot using Excel and created a map. This helped me optimize my robot and the tape path.
We were tasked with designing electrical schematics then constructing the circuit with a bag of hobbyist electronics, solder, and salvaged wires. The design included, noise filtering, H-bridge motor control, analog to digital conversion, and PID tuning knobs. In class we created and tested many circuits on a breadboard to understand how they work before implementing them on the robot.
Schematics: We used voltage regulator, H-bridge motor controller,and tape sensor schematics in our design.
Next, we created the final schematic draft by combining the BluePill schematics with the various schematics we learned in class.
We ended up making a few changes to the circuit. We added the LCD screen, a few tuning potentiometers, a start button, opto-isolators, low-pass filters for noise reduction, used 3 AA batteries for a servo, and added a 12V battery to control the motors instead of 9V for more power. I used Excel to create the circuit virtually on the blank PCBs given. Excel is really not intended for this use.
Finally, the circuit was soldered together, luckily with no cold solder joints.
Overall, I found this project to be a great learning experience. For next time, I would like to implement sonar can detection, build a stronger chassis, and avoid all spray paint. I am proud of my team and our collaboration to come up with the winning design. Yet, it still was a largely individual project as we had to know how every detail worked to create smart designs or fix any problem that came up whether that was mechanical, electrical, or software specific.