start about me portfolio resume gallery links contact    

Mini-Sumo Robot Contest

Historical background

This project was to help the Student Scientific Association of Robotics with organizing the Mini-Sumo robot contest. During the contest the spectators should be able to get all the information about scores, fights and overall result in legible and visually attractive form. Also, the venue hall is few magnitudes larger than mini-sumo robot, so it may be very difficult to observe the arena from the back seats. This project was to solve both these problems.

Project info
ForStudent Scientific Association of Robotics
Time-frame2006-2007
Co-authorsNA
Size5259
KeywordsC++, Visual Studio, DirectShow, Irrlicht, OpenGL, TCP/IP, C#, SQLite
StatusFinished

Idea

The Mini-Sumo robot contest is not only about microcontrollers, sensors, motors and sophisticated motion control algorithms. For most visitors this is a show, they bring their friends and families to spend an evening with a lot of amusement. That's why visual side of this event is so important. Audience must know the current game status and be able to enjoy the contest, i.e., arena must be clearly visible to everyone.

Description

The system has two major sub-systems, a server module, called “ShowMan”, connected to the projector and a client module, called “Controller”, which does precisely what its name suggests that lets the operator to manipulate with the score board remotely.

Server

This sub-system is responsible for the visual presentation side, as it is directly connected to the projector and the camera. Video stream is captured by DirectShow API, preprocessed and used as a background in OpenGL based graphics engine. Graphics engine applies appropriate overlays on the video, depending on the command currently issued. Possible screens are:

  • Fight
  • Black
  • Image
  • Only video
  • Group
  • Text

This part of the system is a TCP/IP server, waiting for the “Controller” to connect. After that happens, the “Controller” can issue various commands to change charts and display current data on the screen.

Client

The client part is a TCP/IP client designed to work together with the server part. The client is responsible for keeping current game state, sending certain commands to “ShowMan” and all of this should be easily controlled by GUI. This part of the system is important also because it’s in charge of the fault-tolerance. The system cannot face major breakdown during the show, in the front of over six hundred people watching in tension. Fault tolerant mechanism is necessary precaution to avoid many unforeseen problems that may occur during the show. That’s why SQLite DB is used to keep all data and state regarding players, groups, fights and so on. On all times the database is kept up to date, so if any of the two applications will crash it can be restarted in seconds with all data restored to last state, also this database is a complete record of championships that can be useful later.

Results

This project has been used successfully for a number of years.