(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.
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.
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.
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.
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.
The SSL VAR component diagram illustrates the following components:
The SSL Game component diagram expands upon the SSL VAR diagram and introduces the following components:
The model incorporates the following classes:
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.
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.
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.
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).
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.
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.
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.
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.
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.