---
title: "Activity: Sumo I"
date: "2021-06-03"
categories: ["Activities", "All", "Simulator Activities"]
tags: ["Colour Sensors", "Branching", "Iteration", "Algorithm Design", "Ultrasonic", "Motors", "Beginner"]
excerpt: "Learn the basics of sumo by programming your rover to stay in the ring and push opponents out using the colour and ultrasonic sensors."
featuredImage: "/images/resources/sumo.png"
---

A classic robotics competition challenge. Program your rover to stay inside the sumo ring and push opponents out. In this first level, you’ll use the colour sensor to detect the arena edge and the ultrasonic sensor to find your opponent.

### Activity Demonstration

<iframe width="560" height="315" src="https://www.youtube.com/embed/RSoPCUywg20" title="Sumo Activity Demonstration" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen></iframe>

### 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

This is a simple approach using just the colour sensor and ultrasonic sensor to get you started.

#### 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

### Up Next

Ready to improve your sumo algorithm? In Sumo II you’ll add IR sensors to detect opponents from the sides and create smarter search patterns.

[Activity: Sumo II](/resources/sumo-ii)

[Activity: Sumo III](/resources/sumo-iii)
