The goal was to create a small, wirelessly controlled robot capable of completing a number of different tasks to compete in a “online battle league style" competition. The class was broken up into twenty-seven teams of three or four people and each team created a robot. Then, seven “meta-teams” were formed, each composed of four robots. Meta-teams competed against each other in the final tournament.
As a team, we did all programming, circuit design and fabrication, and mechanical design and fabrication as well as game strategy analysis. This page will explain all aspects of this.
Course: MEAM 510 - Fall 2019
Team: Kelly Babitz and Lucy Stinn
Each team was composed of four robots and one home base, called a “nexus”. Each of these components had a health level, which was kept track of by the overall game system and broadcast to each robot via wifi UDP. The goal of the game was to deplete the enemy nexus health to zero. When a robot’s health dropped to zero, it was temporarily removed from the game for a certain amount of time, which increased as the game progressed. The first 60 seconds of the match was autonomous. After autonomous mode ended players remotely controlled their robots through WiFi.
In order to cause damage, each robot was able to have actuated “sword" arms. When a robot hit an opponent's "whisker" the robot will lose one hit point. Health points were shown in a light up LED ring on top of the robot - this ring additionally showed which team (red or blue) and which robot you are (1-4). Damage done was determined by the weight of the robot, where heavier robots lost more health per "hit." An additional obstacle to be weary of were the "swinging arms of death" (SAD). The arms were placed at a height where the whisker was unable to be shielded, and during normal game mode they rotated at 0.1 revolutions per second. When a robot received the signal that it was dead (the health level it received via broadcast dropped to zero), it must indicate this by flashing red, and it was briefly removed from the game then replaced at the starting position.
The nexus as well as two towers could be damaged by directly attacking it. The towers were controlled by pressing the large buttons near them for eight consecutive seconds. Once captured the tower will automatically start to damage the opponent’s nexus. It will continue until it is re-captured by other team. The damage from the tower is 0.5 DPS. This was generally the best way to attack the enemy nexus and ultimately win the game.
Key Design Features:
Mechanical - optimizing for lightest possible weight, differential steering, shielding the whisker (as much as allowed), making it easy to take apart and re-assemble, and protecting enclosed circuitry.
Electrical - minimum number of necessary microcontrollers (to avoid interference), DC motors, Lipo Batteries, Vive sensor with two amplified photodiode circuits (to sense position and direction during autonomous mode), and WiFi communication between the robot and controller.
Software - simple WiFi communication between the controller and the robot, I2C communication between motor ESP32 and the top hat ESP32, interrupts, and autonomous mode software that constantly read the location of the bot and updated the "path" (path with least obstacles) to the opponents tower.