Hi, Geektimes!

# Introduction

We have long known that robots are our future. There are so many areas of robotics. Military development, social, entertainment and just working robots.
But this time I want to tell on behalf of the College team at MIREA about the competitive component, and exactly about the Sumoist robots.

## A little bit about our team

We exist since 2014. The winners and prize-winners of most of the competitions Robotist, Robofest, Spartakiad MIPT and smaller tournaments, as well as being the absolute champions of Russia for 2016-2017 in the nomination of mini-sumo.

## Who are these robots sumoists?

Initially, when we only found out about such competitions, sumo players were made mostly of lego. But this is a pretty bad idea, about this further.

At the moment, the correct Sumoist is described very simply: a completely autonomous piece of iron on wheels, with brains and a pair of sensors, which knocks out a similar piece of iron outside the ring.

There are 4 types of them:

1. Mega-Sumoist
2. Mini Sumo
3. Micro Sumo
4. Nano-Sumoist

All differ not only externally, but also internally.

Mega - the largest and most dangerous robots. Maximum weight up to 3 kg, the ability to put different "suckers", which is not allowed to do with other robots.

Mini - nice, small robots up to 500 grams 10 by 10 cm. Not difficult in soldering, easy to set up and build. They are the most popular nomination in sumo.

Micro and nano - mini mini copies. Micro 5 by 5 by 5, nano 2.5 by 2.5 by 2.5. Hard to solder and pick up the details. More popular than mega-sumo.

On this page you can read the competition regulations. (added)

## What is robo sumo?

The main goal: to push the enemy out of the round range. Loses the one who first touches any object outside. It would seem that difficult to just push the enemy? And the difficulty is that robots are completely autonomous and more and more often new strategies emerge which are increasingly difficult to fight.

Video with the participation of our robots (added):
Robofest 2016 (a robot with a zipper, a robot with a pirate flag, a solid black low robot, a black tall robot without a picture)
Robopicnik 2017 (only our robots with the exception of a rectangular robot with sound sensors)
Without participation:
Robotex 2016
Latvian Robotics Championship 2017
RoboChallenge 2016 Robot Competition
A small overview of the tactics of finding the enemy.

## What are they made of?

Let's go back to lego. Most likely, many of you have tried to do something with the programmable Lego constructor, or at least see how it is done. There is even a separate nomination for such robots 15 to 15, but terribly boring and suitable only for very beginners or small robotics. In comparison with home-made samples, this one loses in everything except the complexity of assembly.

Firstly, it is low speed. Secondly huge sizes. Third, the low response speed of the sensors. And also the controller leaves much to be desired.

## More information about the assembly and configuration

Sumoists, who compete on arduino. Textolite boards are used, soldering sensors, a controller, a driver, etc., to it. There is also a wide choice of sensors for detecting the enemy, but it is worth using infrared or laser ones. Sonars are very slow and bulky. Of course, engines and wheels are necessary for the robot to move. You can put them an unlimited number, but practice shows that the best robot drives on two wheels placed behind. And, of course, the robot can not live without a bucket and a trailer. A bucket is simply a body, a wrapper, and protection of the board and elements. Most often steel or iron. Trailers are made from blades for stationery knives, but there are instances with a non-standard approach, for example, a sharpened wooden ruler or cotton wool, but there is little sense from this approach.

The most difficult (in addition to programming) to design a robot.

But especially for those who want to take part, but do not yet know where to start, we are ready to share the trace of the robot, which is the prize-winner of the MIPT 2016 Olympics.

PS Done in SprintLayout

First stage

This is called the very first stage - the placement of engines and sensors. You can also see here two small sensors just before the subcapture, so these are the line sensors.

They are used to detect a white band on the ground to avoid accidental falling outside the ring, but they are not an essential component and are not used very often. High speeds often do not allow time to stop.

Second phase

And here the controller, driver, switches and battery connector are already applied.
All that remains is to print the trace and transfer it to the textolite board, and then run the tracks.

Here is how it looks on the finished board:

Ready board

Ready to launch robot:

As you can see, there is nothing particularly difficult here. About the problems further.

## Let's move on to programming

The easiest way is to use arduino or arduino compatible controllers. Also, Arduino IDE to help us. According to the standard scheme, the robot has 5 sensors. So states can be



${2}^{5}$

We rule out a situation where side sensors simultaneously see an adversary (since this cannot happen, and if it does, there is a malfunction in one of the sensors), as well as a situation in which the side sensor and two front sensors give 0 (i.e. see) because this also can not be, or the chance is too small.

To make him go to the enemy, it is enough for us to install pins, apply voltage to the motors and read the sensor readings:

Robot code
//     int pin_left=10; int pin_center_left=11; int pin_center_right=4; int pin_center=12; int pin_right=7; //    int pin_motor_left_forward=9; int pin_motor_left_back=6; int pin_motor_right_forward=3; int pin_motor_right_back=5; //       int cl,cc,cr,l,r; //     void GLAZ() { cl = digitalRead(pin_center_left); cc = digitalRead(pin_center); cr = digitalRead(pin_center_right); l = digitalRead(pin_left); r = digitalRead(pin_right); } //  ,    0  255      void MOVE( int a, int b ) { if(a<0) { digitalWrite(pin_motor_left_forward,LOW); analogWrite(pin_motor_left_back,0-a); } else { analogWrite(pin_motor_left_forward,a); digitalWrite(pin_motor_left_back,LOW); } if(b<0) { digitalWrite(pin_motor_right_forward,LOW); analogWrite(pin_motor_right_back,0-b); } else { digitalWrite(pin_motor_right_back,LOW); analogWrite(pin_motor_right_forward,b); } } void setup() { pinMode (pin_center,INPUT);// pinMode (pin_right, INPUT);//  pinMode (pin_left,INPUT);//  pinMode (pin_center_right, INPUT);//   pinMode (pin_center_left,INPUT);//   pinMode (pin_line_left, INPUT); pinMode (pin_line_right, INPUT); pinMode (pin_start,INPUT);// pinMode (13,OUTPUT);// digitalWrite(13,HIGH); pinMode (pin_motor_left_back, OUTPUT);//   pinMode (pin_motor_right_forward, OUTPUT);//   pinMode (pin_motor_right_back, OUTPUT);//   pinMode (pin_motor_left_forward,OUTPUT);//   //      while(!digitalRead(pin_start))continue; MOVE(200,200); } void loop() { GLAZ(); if(l && r) { if( (cl + cc + cr) < 2 || !cc ){ MOVE(255,255); } if( cc ) { if(!cl && cr) MOVE(0-180,180); if(cl && !cr) MOVE(180,0-180); } } else if( cc + cr + cl == 3 ) { if(!l && r) MOVE(0-200,200); if(!r && l) MOVE(200,0-200); } else if(cc) { if(!l && !cl && cr && r) MOVE(0-150,150); if(l && cl && !cr && !r) MOVE(150,0-150); } if(!digitalRead(pin_start))while(1){MOVE(0,0);} }

You just have to improve the code.

Important!
Sensors return 1 if they see nothing, and 0 if there is an obstacle.

After downloading the usb code, the robot is ready to compete.

## Worth considering

First, these are the elements. The sensors we use (sharp 340) are quite rare or not at all. Therefore, if there is an opportunity, then you need to take a lot at once or find an analogue suitable for the parameters.

Secondly, it is impossible to cause any critical damage to the enemy's robot or use, for example, magnets, for a trailer. This slightly limits our choice of means to fight.

Also do not forget about the wheels. Curves, thin and sliding will not work, you just can not maneuver and the moment of force is not enough. Be sure to test the tires.

When working with engines, keep in mind that they will have to work under maximum load and they will burn quite often.

It also makes sense to make removable batteries, because The robot discharges rather quickly, and it takes a long time to charge.

#### List of required purchases:

1. Soldering iron, solder, flux (optional)
2. Textolite boards (to etch, you need to close all the tracks, then put this all in a solution of hydrogen peroxide + citric acid + salt for several hours, and then tear off, paper, for example, under which the tracks were hidden)
3. sharp 340 sensors
4. Engines, choose to taste, the more revolutions per minute, the better.
Choose something from this: polulu. (added)
5. Batteries (I advise you to take lithium-polymer) + charging station
6. Key (switch button, soldered to the board) and electrical components (there is a trace in the picture)
7. Driver
8. Controller, for starters, you can try Polulu A-Star 32u4 micro and pour arduino loader there
9. Sheet metal for the body
10. Burmashinka for holes in the board
11. Launch Console and Startup Module
PS If I missed something - write, correct.

## Competition

The upcoming competitions will be held in St. Petersburg, the Roboinist, so now we are hard at work preparing for them and, if you want to participate, you need to do everything clearly and quickly.

But these competitions are not the only ones, there are quite a lot of them in Russia, the largest ones are held in Moscow. About once a month or two, you can experience happiness and compete.

Such competitions abroad are not uncommon and we also want to go there. Here is a rough map of world competitions:

We very much hope that in our country robo-sumo will only develop and invite everyone to participate in the creation of their robot. It looks very epic when pieces fly off from some robot.

To us this we finish the introductory article and wish you all success in robotics, we will be glad to see you at the competition!

All Articles