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 | |
|---|---|
| For | Student Scientific Association of Robotics |
| Time-frame | 2006-2007 |
| Co-authors | NA |
| Size | 5259 |
| Keywords | C++, Visual Studio, DirectShow, Irrlicht, OpenGL, TCP/IP, C#, SQLite |
| Status | Finished |
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.
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.
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:
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.
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.
This project has been used successfully for a number of years.