---
title: "Activity: Sumo"
date: "2021-06-03"
categories: ["Activities", "All", "Simulator Activities"]
tags: ["Colour Sensors", "Branching", "Iteration", "Algorithm Design", "Ultrasonic", "IR", "Motors", "Advanced"]
excerpt: "Learn branching, iteration, algorithm design, and how to use the Rover’s motors, colour, ultrasonic, and IR sensors."
featuredImage: "/images/resources/sumo.png"
---

A classic robotics competition challenge. Have your rovers battle in the sumo ring. If a rover is disabled or leaves the ring for any reason it loses the match. There are many possible approaches to staying in the ring while pushing the opponent out. This challenge is a great opportunity to design attachments for your rovers.

####
  Relevant Coding Skills

    Branching

    Iteration

    Functions

    Variables

	--&gt;

    Algorithm Design

    Maths

####
   Relevant Rover Concepts

    Ultrasonic

    IR

    Colour

    Gyroscope

    Accelerometer

    Motors

    LEDs

	--&gt;

    Buzzer

 	--&gt;

Activity Demonstration

### Setup

The sumo exercise works best with a circular arena but any shape can work. The edges of the arena should be a clear contrast to the body of the arena so rovers can use colour sensors to detect when they are at the edge. We recommend the arena be 60-100cm in diameter with a 3-5cm edge. There are many variations of rules available online.

**The Quick & Easy Setup**

Use a desk as the arena floor and make the arena circle with coloured tape.

### Here’s Our Approach

Note that this is a simple approach that should be improved upon. Try different tactics and include sensors like IR and Accelerometer to better find and push your opponent.

#### Stage 1: Stay Away From The Edge

First we will add a repeat while true loop as we want our code to run continuously. We can then use an IF statement to move backward and turn around if the colour sensor detects the edge of the ring.

#### **Stage 2: Move Around The Ring**

If the robot doesn’t detect the edge it should move in search of the opponent. We can use the ELSE part of the IF statement to move forward.

#### **Stage 3: Push The Opponent**

Staying in the ring is most important. After checking for the edge, we can use an ELSE IF (ELIF) in the IF statement to detect if an opponent is in front with the ultrasonic sensor. If it is close use a motor block to set our motors to full speed to charge the opponent.

![](/images/content/1fb1c4-screenshot-2023-05-24-123918.png)

Example Code
