robocup-msl / refbox Goto Github PK
View Code? Open in Web Editor NEWRepository for the Referee-Box and related tools
Repository for the Referee-Box and related tools
Apparently the default heap memory allocated for Java is not enough to merge the logs, resulting in an application hang while trying to merge the log files.
The 2019 rules introduced the possibility of doing fully autonomous substitutions of robots. For this action, the number of the robot on the field that is supposed to be replaced must be send by the RefBox together with a "substitute" command. First of all, the protocol to be used must be defined since it does not exist yet.
The UI needs some sort of feedback for received worldstate data for each team. Some ideas:
The JSON test version gives exact the same version number (1.5.0) in the window title. This makes it hard when testing to see with version is used. Version number should be increased.
I made a temporary fix to increase it to 1.6.0 and mention RoboCup 2020 in the window title.
Is the feature to receive the worldstate of a team supported in the current version of the RefBox and to which port should the state be send? Currently, I'm getting the following error on the RefBox console:
ERROR from teamA : { "type": "worldstate","teamName":"CNC","intention": "Win the game","robots": [], "balls": [], "obstacles": [], "agesMs": 50}
Regards,
Stefan
All other config files use JSON. Adapt the teams config file to also use the JSON format.
https://github.com/RoboCup-MSL/RefBox2015/blob/master/mslrb2015/data/msl_teams.csv
The new JSON format for the refbox messages is based on sending plain JSON strings over a socket which makes a robust client implementation cumbersome. Adding a simple header would make the message parsing much easier and robust. The minimum information that the header contains should be the size of the payload of the message.
Every team should have two colors which can be registered in the config file in hexadecimal format.
Replace cyan and magenta with team A and B in the refbox log.
Change popup screen at connection to select team A or team B.
Send opposite team commands to each team, depending on who takes action.
We assume that every team plays cyan, meaning that the capital commands are for your own team, and lower case letters for the opponent team.
Build in functionality to switch between master/secondary color in the UI (e.g. by double clicking the team name)
Hallo,
I have tested the refbox and found a bug. If a goal is given a goal message is send instantly. If the goal is denied by pressing the button again (before pressing start) no message is send. The next send command message contains some strange characters.
There is a similar behaviour for cards and repair. A message is send if the button is pressed. If the button is pressed again, no denying message is send. In this situation, the refbox does not show that a card was given/a robot was send out for repair, but a message was send to the client already.
Regards,
Stefan (Carpe Noctem Cassel)
Currently, the logging by the Refbox is done in csv. Because all other data is exchanged in JSON, it seems sensible to also export this in the JSON format.
Whenever the repair button is clicked, the button is highlighted and will not change the amount of robots currently in repair. Whenever the start button is clicked, the one robot is added to the overview of robots in repair, and the timers are (re)set accordingly.
Instead, whenever the repair button is clicked, one robot should be added to the overview of robots in repair. When the start button is clicked, all timers should be (re)set accordingly. To allow the user to undo an unintentional click on the repair button, the user has to be able to remove any added robots in the repair overview by clicking on that robot.
At RoboCup we encountered the situation where it was not possible to perform an automatic substitution procedure in the stop time after scoring a goal.
In the MSL rules of 2020 rule RC-3.1.1 is updated. It states that a team must proof that a player is capable to play. According to this rules, the RefBox assistant will sent a specific command.
Currently i looks like that this feature is not implemented (not in GUI and not in protocol)
Currently RefBox2015 implements a character-based TCP/IP communication protocol with the basestations.
Implementation of the previous XML protocol is needed for backwards compatibility.
Add a button to restore the previous refbox state when either
The last refbox state logged should be used in this case.
Right now, it is possible for a team to connect to the ref-box as a score client, which can be used to exploit the system to receive information from the opponent team.
Some sort of authentication method is needed for this/these client/clients to prevent this from happening.
The Refbox 2.1 Linux version does not run out of the box.
The java command in script mslrb2015 in folder RefBox2.1-linux-amd64/linux-amd64 is incorrect.
In the zip the java command is: "$APPDIR/java/bin/java", but this should be "$APPDIR/java/java/bin/java".
After modify the script the refbox starts up correctly
Rules for 2019 establish that when a "repair" is called by a team, the repair time of other already repairing robots should not be reset to the maximum time. Also, the maximum time should now e 20sec instead of 30sec.
I have just test refbox2015 version 2.0. When I used the https://github.com/RoboCup-MSL/RefBox2015/releases/download/v2.0.beta/RefBox2_0.linux64.tar, it did not work and informed me that
My platform is Ubuntu 16.04 and java9.
Besides, I use master branch of RefBox2.0 and create a new application. It works well. I am confusing about the problem. What is the difference between them? From github, the last update happened at about 24 days ago and the release version is uploaded at Feb. 3.
The refbox client seems to crash whenever it is closed after a game. Will not reproduce when no clients have been connected.
No information on how to reproduce yet.
When a robot is given a red or yellow card, the color is not showing immediately but only after restarting the game. Maybe it could be better to show it as soon as the card is given.
During the workshop 2020 (and I believe in previous years as well) we have talked about redesigning/overhauling the RefBox.
I would like to start a list with proposed requirements/ideas:
No signal is given when either the second overtime ends, or when end-of-game penalties start.
It seems impossible to distinguish between end-of-game penalties and penalties during second overtime. This difference is relevant due to different limitations in both penalties (RC-14.1).
It may be nice to also announce the end of a part (rather than only the beginning) in the new protocol, as referee also announces this in human matches.
The solution should indicate whether the minimal threshold (10Hz) is reached. Optionally, it can also show the current or even past measurements on number of frames.
I.e.:
Traffic light
Network traffic graph
Indicator frames per second
When a team connects with the new refbox (JSON). The Refbox operator gets an dialog. In this dialog the operator has to select a side (left or right). The question in the refbox is "select color or press ESC to cancel".. The word "color" should be replaced by "side"
The rules state:
After 20s the RefBox will send automatically a signal over the network socket that a robot can enter the field again during the next game stoppage.
This feature seems to be missing in the RefBox.
There is currently no documentation for the teams available.
Most important is "How to start the Refbox 2015"
This is essential for a smooth introduction.
Currently, there is no game flow command available for end-of-game penalties.
The only way to distinguish between in-game penalties and end-of-game penalties is waiting for penalties after COMM_END_GAME
after COMM_SECOND_HALF_OVERTIME
.
Since the RefBox already knows when it is in end-of-game penalties, this can be communicated easily.
My proposal is to add COMM_END_OF_GAME_PENALTY
to the game flows. This makes it easier and more robust to determine the type of penalties. This is useful since the rules differ between the two types.
Hi
I just recognized that the Readme.md of the ASML-Falcon JSON World State Reporter, which is linking to some utilised Vector2d and Vector3d class, has a dead link there. Maybe someone from ASML can fix it?
Greetings,
Stephan
The score clients label in the refbox displays 1
even if no RefereeClient is connected.
Some teams use this to start/reset their own timing. Old refbox used to send char '1' at start of first half and char '2' at start of second half.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.