Usando el modo de prueba

El modo de prueba está diseñado para permitir que los programadores tengan un lugar para colocar el código para verificar que todos los sistemas del robot estén funcionando. En cada una de las plantillas de programas de robot hay un lugar para agregar código de prueba al robot. Si usa la plantilla TimedRobot, o usa la programación basada en comandos, puede ver fácilmente el funcionamiento de todos los motores y sensores a través de LiveWindow.

Habilitar del modo de prueba

El modo de prueba en el robot se puede habilitar desde la Driver Station como autónomo o teleop. Cuando está en modo de prueba, el método testInit se ejecuta una vez y el método testPeriodic se ejecuta una vez por tick, además de robotPeriodic, al igual que los modos de control autónomo y teleop. Para habilitar el modo de prueba en la Driver Station, seleccione el botón «Prueba» y habilite el robot. Entonces se ejecutará el código del modo de prueba.

Agregar código de modo de prueba a su código de robot

Agregar el modo de prueba puede ser tan sencillo como llamar a sus métodos Teleop ya escritos desde Test. Esto le permitirá utilizar las funciones de ajuste de LiveWindow para clases como PIDBase y PIDController, así como subsistemas PIDS y PIDCommands, para cambiar constantes y puntos de ajuste PID. Asegúrese de agregar sus subsistemas a SmartDashboard con el método putData (subsystem) o PutData (subsystem).

public class Robot extends TimedRobot {

    @Override
    public void robotInit() {
        SmartDashboard.putData(m_aSubsystem);
    }

    @Override
    public void testInit() {
        teleopInit();
    }

    @Override
    public void testPeriodic() {
        teleopPeriodic();
    }
}

Modo de prueba en SmartDashboard

El código de muestra anterior produce la siguiente salida cuando la Driver Station se pone en modo de prueba y luego se habilita. Puede operar los motores moviendo los controles deslizantes y leer los valores de sensores como el potenciómetro de muñeca.

Observe que los valores están agrupados por los nombres de los subsistemas para agrupar los actuadores y sensores relacionados para facilitar las pruebas. Los nombres de los subsistemas se especifican proporcionando un nombre al método putData() o llamando a SendableRegistry.setName(). Esta agrupación, aunque no es necesaria, hace que sea mucho más fácil probar un subsistema a la vez y tener todos los valores uno al lado del otro en la pantalla.

Uso del modo de prueba con la plantilla de TimedRobot

La plantilla de TimedRobot se presta bastante bien a las pruebas, ya que llamará periódicamente al método testPeriodic() (o TestPeriodic() en C++) en su programa de robot. El método testPeriodic() se llamará cada 20ms y es un buen lugar para probar comandos o actualizar LiveWindow. La actualización de LiveWindow está integrada en la plantilla de TimedRobot, por lo que hay muy poco trabajo para usar LiveWindow.

Nota

Esto funciona incluso si está utilizando la plantilla de TimedRobot y no está realizando una programación basada en comandos.

En este ejemplo, los sensores se registran con LiveWindow y durante el método testPeriodic, simplemente actualice todos los valores llamando al método LiveWindow run(). Si su programa está causando demasiado tráfico en la red, puede llamar al método de ejecución con menos frecuencia, por ejemplo, llamándolo solo cada 5 actualizaciones para una tasa de actualización de 100 ms.

Ajuste de PID en modo de prueba

Ajustar los lazos de PID es a menudo una perspectiva desafiante con recompilaciones frecuentes del programa para obtener los valores correctos. Cuando se utiliza el modelo de programación basado en comandos, la subclasificación del subsistema PIDS o PIDCommand en sus comandos PID permite el ajuste de las constantes PID con retroalimentación inmediata de los resultados.