Robot Wars, a robot-sumo competition, was held at Bouvet early April for students attending technology courses at the University in Oslo. Based on official rules, but modified to fit a one-evening-hackathon, the competition went down with enthusiastic students and instructors. See our short video (some Norwegian interviews) before you read on, check out our photos and get inspired by our successful evening!
Robot-sumo is a sport where two robots attempt to push each other out of a defined area, or sumo ring. The robots used in this competition are called sumobots. Sumobots can be packed with sensors and the challenge is how to program these to work at your advantage. Locating other sumobots, avoiding driving out of the sumo ring and evasive maneuvers are all important to increase your chances of winning. The robots we used in this competition were not remote controlled, meaning that they needed to be able to think for themselves.
Robot-sumo is divided into different classes and the sumobots used this evening were mini-sumo robots. This means that they where less than 10×10 cm and weighed less than 500g. More information about the specific bot we used can be found further down in this article.
Read more about robot-sumo at Wikipedia: https://en.wikipedia.org/wiki/Robot-sumo
The attendees were split up in teams of four persons, which each team being given a robot. The robot used is a Pololu Zumo 32U4. This is an integrated robot with built-in Arduino-compatible ATmega32u4 microcontroller, LCD, encoders for motor control, proximity sensors for obstacle detection, USB interface, buzzer, accelerometer, compass, gyro and line sensor array.
Here’s a sensor overview:
This video shows what the Zumo 32U4 can do, right out of the box:
Note: In order to exhibit the behaviour shown in this video, the robot needs to be flashed with a set of code examples. We «hid» these code examples from the students, requiring them to think (and code) for themselves.
Rules, requirements and tips for getting started
We defined/borrowed a set of simple rules to follow when competing in sumo. These were:
- Each match consists of three rounds, each lasting a maximum of 90 seconds.
- Sumobot that wins most rounds wins the match.
- The match loser is out of the tournament.
- If the case of an undecided match, sudden death rules apply.
- Deliberate damage to sumobots will result in disqualification.
- It is not permitted to make any changes to the physical properties of the robots.
- The Game Masters decision is final.
- No changes to the sumobot can be made during a match (no programming and no physical changes).
In addition to the mentioned rules, we also defined a set of requirements to qualify for the tournament:
- Robots will delivered to the Game Master before each match.
- The Game Master will activate both sumobots simultaneously at the start of each round.
- Robots must be activated by pressing the ‘B’ button. At this point the Robot must make a single “beep” sound and then wait five seconds before moving:
- Failure to do both of these will result in the robot forfeiting the round.
To get the students going faster we also gave them a suggested to-do list:
- Pressing the “B” button to play a beep and activate a 5 second timer.
- Line detection using the line sensor array.
- Opponent detection using the IR proximity sensors.
- Impact detection using the accelerometer.
- Attack and defence strategies.
Exercises / Getting started
Prior to the competition we did not know how much experience the students had with programming Arduino. To avoid giving a single team an advantage we took a quick poll to find out who had previous experience. We could then distribute these people fairly amongst the teams. Perfect!
In addition to this, we put together a super simple intro presentation about Arduino and created three tasks for everyone to finish. When these three tasks were finished successfully, the student would in fact have all they needed not to be disqualified from the competition. From this point it was all up to the teams to improve and introduce code to beat the others.
The setup guide, exercises and solution are all located on GitHub: https://github.com/9khil/robotwars
Mark demonstrating how the robot works on the course. Note that we are using inverted sumobot course. Regular courses are black with white edges.
The creativity and enthusiasm was high. We provided three test-courses where they could test their sumobots whenever they wanted. One team created their own test-course inside a meeting room, secluded from the others, to test and tune their secret tactics and algorithm. Other teams moved aside to the corner of the room so they could discuss without being heard.
Testing front sensors, trying to detect the beer can.
After a couple hours of programming, food and drinks, it was finally time for the competition. Fresh batteries were installed in the robots, they were labelled (to distinguish the otherwise identical robots from one another) and finally were given to the Game Master. One robot got disqualified for not obeying the beep-and-wait-five-seconds rule. Too bad :/
Time to compete
Mark West starting the first match.
After many rounds of fun, laughter, irritation and excitement, we had a winning team! Every member of the winning team went home with a Pololu Zumo robot. Congratulations!
Just for fun. Running all robots in a destruction derby style match.
Thanks for reading!
If you are interested in hosting your own robot-sumo competition, feel free to use the resources found in the GitHub repo above. You can also contact Nikhil André Luthra if you need more information, help to get your started or if you want help arranging an event like this.
The remaining sumobots are residing in our makerspace at Bouvet, Labben. Labben is Bouvets makerspace where we hack, create, research and play with everything IoT, digital and analog stuff. 3D-printer, microcontrollers, soldering, engraving and so on. We also do a lot of presentations and courses. More about this will come in a later blog!