About

Description of Function

This year’s 218b autonomous robot competition required building a Vehicle for Obtaining the Trust of the Electorate (VOTE) and communicating via SPI with a Presidential Administrative Communicator (PAC) in order to capture states along the campaign trail in the run for presidency. States were captured by reading a magnetic field frequency and communicating with the SuperPAC (field infrastructure) using the PAC to wirelessly report correct frequencies. VOTEs were also required to shoot Attack Ads (foam balls) into five gallon buckets to prevent the opposing team from scoring.


The 3idiots team decided to focus on simplicity and repeatability in order to have a very reliable VOTE. This decision materialized in the form of using only the minimum amount of sensing and actuation required to obtain a high score in the competition. Power was distributed to the motors, Tiva, PAC, and sensing circuits. For the drivetrain, active-brake mode was used to drive the H-bridges that controlled the motors. The robot maintains a low profile about ½” from the ground, using 4.75” wheels with about a 10” wheelbase. The main sensing the robot was equipped with was for line following and station capturing. Line following was done using a magnetic field sensing circuit and position-derivative (PD) control to keep the robot on the line between the two inductors while trying to capture stations. A 4th order high pass filter kept the magnetic field sensing circuit noise free while the VOTE drove along the campaign trail. The Hall effect sensing circuit uses a Hall effect sensor, amplification stage and high pass filter, and a comparator with hysteresis to produce a stable square wave for measuring polling station frequencies. Two servo motors were used for the actuation required to load balls and shoot them. The ball loader consisted of 3D printed housing and gate which, with a small angle, loaded the next ball and passed the current one to the shooter. The shooter flung the balls toward the 12” diameter buckets using a cantilevered stainless steel beam (ruler). The strategy for shooting balls consisted of stopping at the closest station (Seattle for Blue Team or Miami for Red Team) and using knowledge of previously captured stations from the PAC to code in set paths that would get the robot as close as possible to the bucket, then lob the ball into the bucket. This strategy allowed for the most error in shooting and the VOTE was able to consistently make five successive shots. No encoders were used on the robot; instead, the duty cycle to each motor was purposefully offset so that the robot never drove straight. Driving at an angle after hitting the wall, for example, increased our chances of getting back on the line on the first try.


The strategy for the competition was to have a fast line follower, and if the team had a big lead with about 30 seconds remaining, to attempt to lock-out the opponent with Attack Ads. Early on, the team determined that there would be a high probability of collisions on the playing field, especially on the line. Every robot was required to have a wall-sensing capability that allowed it to detect when it was not on the line if it needed to get back to line following. The 3idiots bot did not use limit switches to detect when it hit a wall because that would mean that bumping into another bot on the line would make it turn around. Instead, the average and variance in one of the magnetic field sensing circuits was checked every 10 seconds (to prevent false alarms) to determine whether or not the bot was still on the line and needed to turn around. During the competition, this strategy worked well, and along with our freshly installed turbo (increasing the speed from 65% duty to our target 75% duty the day of the competition), the VOTE was able to pin other bots against the wall, take head-on collisions with larger robots, and quickly find its way back onto the line if it went astray. The 3idiots robot won the tournament – the videos and bracket can be seen in the "Competition” tab of the website.



Gems of Wisdom for future generations of 218ers

  • Do not connect directly to the Tiva - use the pins on the Tiva carrier.
  • Make the normal operating voltage of your motors below the max on your voltage regulator so the bot will behave consistently even after not charging for a while.
  • Have a test procedure for all your boards. It makes debugging software vs. hardware issues easier.
  • Keep everything super simple to improve reliability.
  • If you use a ruler shooter, make sure the tip of the ruler is hitting the ball for best results.
  • You can use the Analog Devices filter design wizard to help design noise free circuits.
  • Keep track of your variable and timer sizes and make sure they don’t roll over.
  • Check your battery voltage frequently because your circuits will not operate well if your voltage starts to sag.
  • Operate your RC servos at 50Hz to ensure they don’t overheat and drain your batteries. You can use a uint16_t to increase their range without using floats.
  • Beware of ESD! Keep your hands away from your boards when working on your bot.
  • The logic analyzer makes debugging the SPI communication a breeze.
  • Keep spare batteries and design the bot to make swapping them easy.
  • Keep good track of where all your timers are being initialized.
  • Get to protoboards early. Taking great care in the craftsmanship of your electronics early on will save many hours of debugging later.
  • Status LEDs are your best friend.

Our Team


Our team name was inspired by the fantastic film of the same name.


Contact Us

Leave a message for the ME218b team.