Re-use of old robots

Dear RoboCuppers,

we have recently received several questions regarding competing using robots from past years competitions. We believe this is information many of you would be interested in, so we are sharing the questions and our answers here with everyone.

Q: According to the rules, the use of the same robot as last year in the current competition is allowed only with the presence of all previous members. Now, If a previous year’s title team uses a robot that competed last year with new members. Question: How many of the members of last year’s team should be at least members of the New Year’s team so that there is no need to change the robot? Note that the maximum number of a team is 5 members.
A: The robot is supposed to be the work of the students. If a team member that did significant part of the robot’s hardware is no longer part of the team, the robot itself is no longer the work of the current team members. I would say, the same is relevant for the software as well: If a team is using an algorithm that was programmed by a person who is no longer part of the team, the code is no longer work of the current team members. With these comments, I would say there is no definitive answer to your question about the number of team members that has to be changed, but rather the contribution that team members that left had. In conclusion, I’ll repeat myself, both robot and the code has to be work of the students that are the current team members.

Q: Suppose a team wants to change its last year’s robot, at what levels (mechanics, electronics, programming and image processing codes) and what percentage of changes should be applied so that robot can be considered as a new robot.
A: Difficult question. But the answer is the same as previous point. Any 3D sketches, hardware solutions, PCB designs and algorithms programmed by previous team members should NOT be used.

Q: Is it allowed to use ready-made programming codes available on the Internet for search the field and the image processing? Or should the codes be entirely the result of team member and based on algorithms designed by students?
A: I would refer to rule 3.2.4 “Teams are not permitted to use commercially produced robot kits or sensor components specifically designed or marketed to complete any single primary task of RoboCupJunior Rescue. Robots that do not comply will face immediate disqualification from the tournament. If there is any doubt, teams should consult the RoboCupJunior Rescue Committee before the competition.” With the evolution of machine learning algorithms, I believe it becomes relevant for the software part as well. Therefore, any e.g. neural networks created specifically for letter recognition are NOT allowed. However, existing architectures are okay to use as long as teams provide proof that they performed training of themselves. This proof should be presented in their TDP and Engineering Journal and should be
1. a dataset used to train the CNN, and the validation dataset
2. training data (graphs, tables) from each training epoch
3. validation data (same as 2. but on validation dataset images)
The team should, obviously, also provide the code for training and understand the entire NN training process. In a case of standard (no-machine learning) image processing algorithms, we allow usage of most python (or other programming language equivalents) library methods, such as opencv (blob detector method for example), as long as there is no machine learning involved. To summarize, algorithms have to be designed by students, but a use of “help” methods is allowed. If the method only makes the solution of a sub-problem easier (such as blob detector would) and doesn’t require machine learning, it is okay to use. If you have a specific software, you can always refer to the forum with the question if it would be allowed, to be sure.

Hopefully this post clears up some of the confusion, that may have existed. We wish you all the best of luck!

RCJ Rescue Committee 2024

There seems to be a lack of a definition of “primary task” on rule 3.2.4.

What exactly is defined as a primary task? If a primary task is to follow a line to complete the maze, does that disqualify any commercial line followers? If a primary task is to detect colored victims on the walls does that disqualify any commercial heat sensors and will we have to create our own?

Correct, commercial line followers are NOT allowed. Heated victims are no longer part of the Rescue Maze, but I will elaborate on that example: commercial heat sensors that return only the temperature value are okay to use. This is because it is up to student to, after receiving this value, determine whether it is warm enough, e.g. through previous calibration of ambient temperature, or a sudden change to previous measurement. Similarly, when using a say, camera, to detect colored victims, the numerical values recorded by the camera do not solve this subtask directly. Students are still required to to detect groupings of pixels with similar color and determine which color it is. However, cameras with premade software (e.g. HuskyLens, PixyCam) return objects of defined color (or sometimes even shape in case of letters) as their output, rather than raw data, which directly solves the subtask of victim detection. Use of this software is, for mentioned reasons, forbidden.

To your question what is defined as a primary task, basically anything that requires special attention when designing your program. The reason of use of the word “primary” is because we allow public libraries of non-machine learning algorithms that make solving of some of the tasks easier. Popular example of this is find_blob function from open-cv library, which finds groupings of pixels in an image based on a input threshold, since this threshold is a value students have to, same as in heated victim example, find a way to figure out on their own. Additionally, this method doesn’t solve the entire problem, just a small part of it. It is still required to distinguish which “blob” can be a victim, what is its color, and ultimately if it really is a victim and which one.

Hopefully this answer and examples are of some help. Best of luck!

Matej