SSL-VAR-modeling

(SSL VAR and SSL Game Component Diagrams)

This repository contains the AstahUML file with associated classes for the SSL VAR and SSL Game component diagrams. These diagrams depict the architecture of the SSL VAR and SSL Game systems. The diagrams follow an MVC (Model-View-Controller) architecture, with a web interface serving as the view, a controller with a facade pattern, and various services and classes representing the model.

Model

VisionService

The VisionService component is responsible for receiving vision data from an external subsystem called SSLVision. It establishes communication with SSLVision through UDP, utilizing the Protobuf format to transmit data. The primary message produced by this service is a Frame object, encapsulating information about the detected ball, teammates, and opponents.

RefereeService

The RefereeService component handles the reception of referee data from an external subsystem called GameController. It establishes a UDP-based communication link with GameController, leveraging Protobuf for data serialization. Additionally, it communicates with the VisionService to obtain the current processed Frame value. The resulting message generated by this service is a Referee object, containing relevant game status information.

StrategyService

The StrategyService component retrieves vision and referee data from the VisionService and RefereeService, respectively, using ZeroMQ for communication. It processes the received data and formulates a strategic plan for the team's players. The outcome of this service is a Strategy object, encapsulating the determined strategy.

CommunicationService

The CommunicationService component is responsible for obtaining the strategy data produced by the StrategyService and constructing a packet to be sent to the robot via the BaseStation subsystem. It facilitates the delivery of the calculated strategy to the robot.

Components

SSL VAR Component Diagram

The SSL VAR component diagram illustrates the following components: SSL VAR

SSL Game Component Diagram

The SSL Game component diagram expands upon the SSL VAR diagram and introduces the following components: SSL GAME

Classes

The model incorporates the following classes:

Vision

The Vision package defines the structures for vision-related data. It includes classes such as Ball, Robot, Field, and Frame, which encapsulate information about the position, velocity, and other relevant attributes of detected objects within the robot soccer field.

Referee

The Referee package defines the structures for referee-related data. It follows the specifications provided by the RoboCup SSL Game Controller for representing referee information during the game.

Behavior

The Behavior class represents behavior-related data. It includes attributes such as vx (velocity in the x-axis), vy (velocity in the y-axis), and vw (angular velocity). Instances of this class describe the desired behavior of the robot.

Tactic

The Tactic class represents a specific tactic associated with a robot and its corresponding behavior. It includes attributes such as robot (representing the associated robot) and behavior (representing the desired behavior for the tactic).

Play

The Play class represents a sequence of tactics employed during the game. It consists of a list of Tactic objects, defining the tactics to be executed in a specific order.

Strategy

The Strategy class encapsulates the overall strategy for the game. It incorporates the current Frame data, the referee information (Referee), and the selected Play to guide the team's behavior and decision-making during the match.

RobotPacket

The RobotPacket class represents a packet of data to be transmitted to the robot. It includes a data attribute that holds the packet's content as a string.

View

The View in the system is implemented as a web user interface (WebUI). It provides an interactive interface for users to visualize and interact with the robot soccer game. The WebUI presents the game-related information, such as the positions of the ball, teammates, and opponents, using intuitive visualizations and user-friendly controls. It enables users to monitor the game progress, make strategic decisions, and observe the effects of their actions.

Controller

The Controller in the system is designed using the Facade pattern. Acting as a central point of control, the Controller simplifies the interaction between the View and the underlying services and classes of the system. It encapsulates complex interactions and operations, providing a simplified interface for the View to communicate with the various components. The Facade pattern allows the View to delegate requests and commands to the Controller, which then coordinates the necessary actions and updates between the services, ensuring a streamlined and cohesive flow of information and functionality.

Feel free to explore the AstahUML file and the provided classes to gain a deeper understanding of the system's architecture and the relationships between its components.