Deep Learning Sumo Robot

Hajimete! Let DL pushing madness begin!

Original article by Dmitry Maslov published on Hackster.io

Robot-sumo, or pepe-sumo, is a sport in which two robots attempt to push each other out of a circle (in a similar fashion to the sport of sumo). The robots used in this competition are called sumobots.

From Wikipedia, the free encyclopedia

BLOG UPDATE JULY 2020: You can now find MARK on our online shop

UPDATE MAY 2020: MARK Kickstarter Campaign is now live! Claim your own MARK duel level reward to make this project. Duel level reward includes two MARKs and Machine Learning Expansion pack.

Robot sumo is one of the classic and most popular robot competitions. There is a huge variety of builds used to accomplish the task of pushing the opponent out of the ring.

Example of a sumo robot pushing an opponent out of the arena Retrieved from http://www.ourgemcodes.com/japanese-pepe-sumo-robotics-sport-incredible-speeds/

Many simpler robots rely on ultrasonic or infrared sensors to find the opponent before taking offensive action. In this article we will use M.A.R.K. mobile platform to make a variation of sumo bot.M.A.R.K. (I’ll call it MARK in text) stands for Make a Robot Kit and it is an educational robot platform in development by TinkerGen education. I take part in the development of MARK and we’re currently preparing to launch a Kickstarter campaign. In accompanying courses the students will learn how to complete a variety of tasks with MARK, i.e. self-driving, patrol, delivery service, etc. When I was writing course materials for High School M.A.R.K. course I wanted to include a challenge in the course that was both familiar to STEM teachers and students and at the same time had a unique twist. So I decided to design a robot sumo competition, where two MARK robots had to use DL models for detecting an opponent. This way two factors decide whose robot is more likely to win:

  • the accuracy of trained model
  • the algorithm of offensive action after detection is confirmed

We will use aXeleRate, Keras-based framework for AI on the Edge and the model training pipeline is very similar to what we had before with person detector. The only problem we have in this case is lack of suitable dataset – doesn’t matter if you want to do sumo competition with your own custom robot or MARK, there are no readily available datasets to download on the internet. Creating object detection dataset from scratch is a tedious task, usually at least 1000 pictures needed for one class to achieve acceptable results.Fortunately with MARK we can use a shortcut. MARK chassis is mostly black 🙂 So we can write a simple OpenCV script that would detect biggest black blob in the image and draw a bounding box around it.

The results are not perfect, but easier than annotating from scratch

Then we would process all the images we taken with smartphone camera of the robot in at least 4-5 different environments. The annotation files we get from OpenCV script have some errors (especially if the environment is dark with a lot of shadows) and we will need to verify and correct them in labelImg annotation tool before using in training.

https://github.com/tzutalin/labelImg

After the dataset is ready, let’s use this Colab notebook to train the model. I also share baseline trained model, which is included with the course for students to get the idea of what the normal performance of the model should be. The full Micropython code for MARK is in code section of this article. Have a look at final result videos – one in the head of the article and one below. Since it is a student competition, both model and robot code can (should 🙂 ) be improved to get the edge over opponents.

Stay tuned for more articles from me and updates on MARK Kickstarter campaign.

For more information on Grove Zero series, Codecraft and other hardware for makers and STEM educators, visit our website, https://tinkergen.com/.

2 thoughts on “Deep Learning Sumo Robot

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s