Elementos de la interfaz de usuario específicos de la simulación

WPILib ha ampliado la simulación del robot para introducir una interfaz gráfica del usuario (GUI por sus sigla en inglés: Graphical User Interface). Esto permite a los equipos visualizar fácilmente las entradas y salidas de información de sus robots.

Nota

The Simulation GUI is very similar in many ways to Glass. Some of the following pages will link to Glass sections that describe elements common to both GUIs.

Ejecutando la GUI

Running simulation via VS Code

Usted puede simplemente abrir la GUI a través de la opción Run Simulation de la paleta de comandos.

Picking Sim GUI simulation extension

And the Sim GUI option should popup in a new dialog and will be selected by default. Press Ok. This will now launch the Simulation GUI!

The simulation graphical user interface

Usando la GUI

Aprendiendo el Layout

Simulation graphical user interface but with labels

Los siguientes elementos se muestran por defecto en la interfaz gráfica de la simulación:

  1. Robot State - Este es el estado actual del robot o “mode”. Usted puede hacer clic en las etiquetas para cambiar el modo como lo harías en la Driver Station.

  2. Temporización - Muestra los valores de los temporizadores del Robot y permite manipular la temporización.

  3. System Joysticks - Esta es una lista de los joysticks conectados actualmente a su sistema.

  4. FMS - This is used for simulating many of the common FMS systems.

  5. NetworkTables - Muestra los datos que se han publicado en NetworkTables.

  6. Joysticks - Estos son los joysticks que el código del robot puede extraer directamente.

  7. Otros dispositivos - Esto incluye dispositivos que no entran en ninguna de las otras categorías, como el giroscopio ADXRS450 que se incluye en el kit de piezas o dispositivos de terceros que soportan la simulación.

Los siguientes elementos pueden añadirse desde el menú Hardware, pero no se muestran por defecto.

  1. LEDs direccionables - Muestra los LEDs controlados por la clase AddressableLED.

  2. Analog Inputs - Esto incluye cualquier dispositivo que normalmente usaría la ANALOG IN o pin analógico en el roboRIO, como cualquier giroscopio analógico.

  3. DIO - (Digital Input Output) - Esto incluye cualquier dispositivo que utilice el conector DIO en el roboRIO.

  4. Encoders - Esto mostrará cualquier dispositivo instanciado que extienda o utilice la clase Encoder .

  5. PDPs - Muestra el objeto Panel de Distribución de Energía.

  6. PWM Outputs - This is a list of instantiated PWM devices. This will appear as many devices as you instantiate in robot code, as well as their outputs.

  7. Relays - Esto incluye cualquier dispositivo de relé. Esto incluye los relés VEX Spike.

  8. Solenoids - Esta es una lista de los solenoides “connected” o conectados. Cuando usted crea un objeto solenoide y empuja las salidas de información, estas se muestran aquí.

Añadiendo un System Joystick a Joysticks

Para añadir un joystick de la lista de joysticks del sistema, simplemente haga clic y arrastre un joystick mostrado en el menú «System Joysticks» al menú «Joysticks» .

Dragging a joystick from System Joysticks to Joysticks

Nota

La Driver Station de FRC® hace un mapeo especial a los gamepads conectados y el simulador WPILib no los «mapea» por defecto. Puedes activar este comportamiento presionando la tecla «Map gamepad» debajo del menú «Joysticks».

Utilizar el teclado como joystick

Se añade un teclado a la lista de joysticks del sistema haciendo clic y arrastrando uno de los elementos del teclado (por ejemplo, el Teclado 0) al igual que un joystick anterior. Para editar la configuración del teclado vaya al elemento DS en la barra de menú y luego elija Keyboard 0 Settings. Esto le permite controlar qué botones del teclado controlan cada eje. Este es un ejemplo común de cómo hacer que el teclado sea similar a un mando arcade de split sticks en un controlador de Xbox (utiliza los ejes 1 y 4):

How to configure the keyboard so it acts similar to an Xbox controller.

Modificar las Entradas del Giroscopio ADXRS450.

Usar el objeto ADXRS450 es una forma fantástica de probar las salidas basadas en giroscopios. Esto se expondrá en el menú «Other Devices». Entonces se expone un menú desplegable que muestra varias opciones como «Connected», «Angle», y «Rate». Todos estos valores son valores que puede cambiar en el código y que su robot puede usar en la marcha.

../../../../_images/sim-gui-using-gyro.png

Determinando la Simulación a Partir del Código del Robot.

En los casos en que las librerías de los proveedores no compilan al ejecutar la simulación del robot, usted puede envolver su contenido con RobotBase.isReal() que regresa un boolean.

TalonSRX motorLeft;
TalonSRX motorRight;

public Robot() {
 if (RobotBase.isReal()) {
   motorLeft = new TalonSRX(0);
   motorRight = new TalonSRX(1);
 }
}

Nota

Reasignar los tipos de valores en C++ requiere mover o copiar la asignación; las clases de proveedores que ambos no soportan la simulación y carecen de un operador de asignación de movimiento o copia, no puede ser trabajado con asignación condicional a menos que se use un puntero, en lugar de un tipo de valor.

Cambiar la configuración de la vista

El elemento View del menú contiene configuraciones de Zoom y Style que se pueden personalizar. La opción de Zoom dicta el tamaño del texto en la aplicación mientras que la opción de Style le permite seleccionar entre los modos Clásico, Claro, y Oscuro.

Un ejemplo sobre la configuración en estilo Oscuro esta abajo:

../../../../_images/glass-dark-mode.png

Borrar datos de la aplicación

Los datos de la aplicación para la GUI de la simulación, incluyendo los tamaños y posiciones de los widgets, así como otra información personalizada para los widgets, se almacenan en un archivo imgui.ini. Este archivo se almacena en la raíz del directorio del proyecto desde el que se ejecuta la simulación.

El archivo de configuración imgui.ini puede ser simplemente borrado para restaurar la GUI de Simulación a una «pizarra limpia».