I like to build a component connector view / UML diagram for the given problem but I realized it’s way too slow if you try to do it exactly as it’s given in the following text. My question is what could be optimized? Knowing this I would create the entire diagram myself.
We have 2 teams playing against each other and the aim is that one team scores more goals than the other. Both teams have the same private ressources: 3 robots, a CPU which is able to communicate with each robot bidirectionally but is also able to send broadcasting messages to all robots of its own team. Every robot has its unique circular pattern made up by CMYK colors (4 colors: cyan, magenta, yellow, black) such that it’s impossible they can be confused by the soccer field (green) or with other colors (the ball which is orange).
Both teams share the following shared ressources:
soccer field: all actions are executed here which allows fluent robot movements. the field is green except for some white colored marks. a 200cm x 100cm rectangle limits the playing surface where the white marked areas (the midpoint, the gateway signs etc.) aren’t of importance here
gateways: on both short sides of the rectangle the middle 40cm-line is covered by invisible sensors. Whenever these sensors detect the ball which crossed the line, the corresponding team gets 1 goal score
ball: has orange color, robots run to the ball to shoot it into the opponent goal
host computer: detects the game-events such as ball leaves the field or a goal is achieved. All these events are sent to both CPU’s (of the teams) at the same time
camera: is recording the entire soccer field und sends them to both CPUs of the team. The camera makes 4 pictures every second (so 1 pic each 250ms)
The task of the team CPUs is to determine all positions of robots and ball and also to develop a strategy for the game to inform the robots about it. In order to determine the positions of robots and ball, the CPU needs to process each picture made by the camera, using 4 filters because there are 4 colors (CMYK). Another filter is needed for the orange colored ball. These filters are available for the CPU. But these filters are smaller than the picture taken by the camer: they can only filter 1/3 of it simultaneously. Additionally, each filter needs 500ms to complete all calculations.
The main problem I see here is that the filter needs 500*4*3=6000ms=6s so much time just to determine the positions of the robots, only for 1 picture…! This makes everything else inefficient and the game seems completely unplayable : / How could this be made much faster? I think if I know that I could create the complete component connector view / UML diagram for the problem.