Giter Site home page Giter Site logo

vsssleague / vssreferee Goto Github PK

View Code? Open in Web Editor NEW
9.0 9.0 12.0 4.95 MB

The VSS-Referee is the automatic referee module created to IEEE Very Small Size Soccer League, creating the possibility to teams catch the data coming from it and replace strategically their robots, decreasing the human necessity at the field.

License: GNU General Public License v3.0

QMake 2.04% C++ 97.75% C 0.21%
very-small-size-soccer vss vss-referee

vssreferee's People

Contributors

ahmp3 avatar ieeevss avatar lucashaug avatar pedrojlsilva avatar pietroluongo avatar tsb4 avatar zsmn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

vssreferee's Issues

Add checker for penalty goalkeeper

Is your feature request related to a problem? Please describe.
Sometimes the goalkeeper could be placed in a wrong position (defined by the rules). So, this checker could help to avoid problems in the match and help the human referee.

Describe the solution you'd like
A improvement at the Replacer module that checks (when a penalty occur) the position of the defender goalkeeper and check if at least one of side of the robot touch the goal line.

Additional context
None.

Send team names to create log

Is your feature request related to a problem? Please describe.
It is essential to send team names to create log

Describe the solution you'd like
Give to protobuf the names and game status

Entity and timer classes

The Entity class will be responsible for all maintenance of the threads where the Referee modules will be executed. Meanwhile, the Timer class comes to maintain the execution frequency of threads managed by the Entity class, but also aiming to assist in the decision of faults.

Record log with more information

Is your feature request related to a problem? Please describe.
Read log will be easier if we have more information

Describe the solution you'd like
Record log with game status and team names

Undefined behaviors when both teams place at the same (or close enough) positions

Describe the bug
When using the Replacer module, teams can send placements to the referee to place robots on the field. The problem occurs when teams position their robots so that one is too close to the other, generating a collision that is not yet handled via software.

To Reproduce
Steps to reproduce the behavior:

  1. Open the VSSReferee
  2. Open two teams that uses the Replacer module
  3. Modify their placement to place one robot in the exact same position as the another
  4. See what happens in the FIRASim

Expected behavior
As we do not have practical ways to repel robots (mainly due to problems with which reference to follow and having to deal with potential collisions that may exist in the sequence), ideally, when a collision is detected, the VSSReferee will warn to the human judge as a suggestion that he should perform the positioning via the default rule for both teams.

Screenshots
N/A

Desktop (please complete the following information):

  • OS: N/A

Additional context
N/A

5x5 VSSReferee

Is your feature request related to a problem? Please describe.
When using the new Divison A feature, the VSSReferee automatically closes with a seg fault

Describe the solution you'd like
A new referee is needed to this competition

5v5 Replacer

Is your feature request related to a problem? Please describe.
The VSSSReferee replacer module won't work properly with five robots, placing them incorrectly on the field or not moving them at all.

Describe the solution you'd like
The replacer should properly place the robots on situations like free kicks and other associated fouls. To achieve this, the replacer should have some logic concerning where exactly to place each robot, even with five players on the field.

Add better integration with large text accessibility mode ubuntu

Describe the bug
When using the large text accessibility mode on Ubuntu 22.04 the UI glitches and the text gets oversized to the box padding

To Reproduce
Steps to reproduce the behavior:

  1. Go to Acessibility on Ubuntu 22.04 Settings
  2. Click on 'Large Text'
  3. Execute Referee
  4. See the error

Expected behavior
It should't get oversized and should act normal as a acessibility option integration with Ubuntuy

Screenshots
How it reacts to the options:
image
How it should be:
image

Wrong foul name sent by the referee in HALT case

Bug description
The message sent by the referee has wrong foul name in the case of the HALT foul, instead of sending 'HALT', it send the int '7'.

Replicate the error
First we saved the command sent by referee in the 'status' variable:
c = vssref_command_pb2.VSSRef_Command()
data = self.referee_sock.recv(1024)
c.ParseFromString(data)
self._status = json.loads(MessageToJson(c))

Then we printed the current foul:
print(self._status.get('foul'))

When the HALT foul is triggered, the print is as follows:
7 (int)

Expected behavior
The expected behavior is the string 'HALT'.

Desktop:
OS: Ubuntu 20.04.1

Additional context
The programming language used was python3.

Integration tests

Is your feature request related to a problem? Please describe.
A tool for automatic testing is needed a little as soon as any release is published, in order to avoid possible logic errors.

Describe the solution you'd like
It would be ideal to use the concepts applied in the logging tools created for the category. Maybe create specific logs for some plays that resulted in missing (where these logs would also have the referee's feedback, which would be correct). The work would basically assert that the output seen in the log is the same in the referee.

Additional context

World class

The world class will be primarily responsible for the maintenance of all other entities in the system.
It must maintain a Hash Table whose key will be the priority of the entities, so that we can initialize and finish them in an defined sequence (avoiding crashes or bugs by dependencies and null pointers).

Constants class

The Constants class will allow us to define parameters for all the code by querying in just one place and also changing a single file (preferably a JSON).

Wrong repositioning in penalty shootout condition

Describe the bug
The angle of each robot is wrong in the repositioning.

To Reproduce
Steps to reproduce the behavior:

  1. Sending information of each robots position
  2. Referee receives the right position(x,y).
  3. The angle is the only thing wrong in this condition.

Expected behavior
Repositioning with right angle.

Screenshots
Wrong repositioning:
image
Right repositioning:
image

Desktop (please complete the following information):

  • OS: [e.g. Ubuntu 18.04]

ExitHandler class

ExitHandler help us to wait all entities in the software to close and avoid memory leaks when leaving prematurely.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.