Paso 1: Caracterización de la conducción del robot

Nota

Para instrucciones detalladas sobre el uso de la herramienta de caracterización FRC, ver su documentación dedicada.

Nota

El proceso de caracterización de la unidad requiere un amplio espacio para que el robot la maneje. Asegúrese de tener al menos un tramo de 10” (idealmente más cercano a 20”) en el que el robot pueda conducir durante la rutina de caracterización.

Nota

Los datos de caracterización para este tutorial han sido generosamente proporcionados por el Equipo 5190, que los generó como parte de una demostración de esta funcionalidad en el Taller P2P de la Universidad Estatal de Carolina del Norte en 2019.

Antes de seguir con precisión una trayectoria con un robot, es importante tener un modelo exacto de cómo se mueve el robot en respuesta a sus entradas de control. Determinar tal modelo es un proceso llamado «identificación del sistema». La caracterización FRC de WPILib es una herramienta para la identificación de sistemas de accionamiento.

Recopilación de los datos

Empezamos por reunir los datos de caracterización de conducción.

  1. Generar un proyecto de robot.

  • Nuestro proyecto de ejemplo utiliza el tipo de proyecto «simple». Otros tipos de proyectos (por ejemplo, Talon y NEO) pueden utilizarse sin mucha diferencia; sin embargo, ¡asegúrese de especificar correctamente los parámetros requeridos del robot, independientemente del tipo de proyecto!

  • La biblioteca de trayectoria de WPILib asume que las unidades de metros se usan universalmente para la distancia - por lo tanto, ¡asegúrate de que el diámetro de la rueda de tu robot esté especificado en metros!

  1. Desplegar el proyecto de robot.

  2. Ejecución de la Rutina de Caracterización.

Análisis de los datos

Una vez que se ha ejecutado la rutina de caracterización y se ha guardado el archivo de datos, es el momento de abrirlo en el panel de análisis.

Chequeo de Diagnósticos

Según la FRC-Guía de Caracterización, primero vemos los diagnósticos para asegurarnos de que nuestros datos se vean razonables:

Combined Voltage-Domain Plots.

Como nuestros datos se ven razonablemente lineales y nuestro umbral parece estar establecido correctamente, podemos pasar al siguiente paso.

Registro de ganancias de compensación

Nota

Las ganancias de compensación no se transfieren, en general, a través de los robots. No uses las ganancias de este tutorial para tu propio robot.

Ahora registramos las ganancias de compensación calculadas por la herramienta:

Highlights where to get the kS, kV, kA, and r-squared results from in the center of the window.

Como el diámetro de nuestra rueda se especificó en metros, nuestras ganancias de compensación están en las siguientes unidades:

  • kS: Volts

  • kV: Volts * Segundos / Metros

  • kV: Volts * Segundos^2 / Metros

Si ha especificado sus unidades correctamente, sus ganancias de compensación estarán probablemente dentro de un orden de magnitud de las reportadas aquí (existe una posible excepción para kA, que puede ser muy pequeña si su robot es liviano). Si no lo son, es posible que haya especificado uno de sus parámetros de conducción de forma incorrecta al generar su proyecto de robot. Una buena prueba para esto es calcular el valor «teórico» de kV, que es 12 voltios dividido por la velocidad libre teórica de su transmisión (que es, a su vez, la velocidad libre del motor multiplicada por la circunferencia de la rueda dividida por la reducción del engranaje). Este valor debe coincidir muy estrechamente con el kV medido por la herramienta - si no es así, es probable que hayas cometido un error en algún lugar.

Cálculo de las ganancias de la retroalimentación

Nota

Las ganancias de la retroalimentación no se transfieren, en general, a través de los robots. No uses las ganancias de este tutorial para tu propio robot.

Ahora calcularemos las ganancias de retroalimentación para el control PID que usaremos para seguir el camino. El seguimiento de la trayectoria con el controlador RAMSETE de WPILib utiliza un control de velocidad en bucle cerrado, por lo que primero seleccionamos el modo Velocidad en la herramienta de caracterización:

How to specify velocity mode in the "Loop Type" dropdown.

Como usaremos el controlador PID WPILib para nuestro bucle de velocidad, seleccionaremos además la opción «WPILib (2020-)`` del menú desplegable «preestablecidos». Esto es muy importante, ya que las ganancias de retroalimentación no estarán en las unidades correctas si no seleccionamos el preestablecido correcto:

Highlights choosing "WPILib (2020-)" from the "Gain Setting Preset" dropdown.

Finalmente, calculamos y registramos las ganancias de retroalimentación para nuestro bucle de control. Como es un controlador de velocidad, sólo se requiere una ganancia P:

Highlights the calculated kP and kD controller gains.

Asumiendo que hemos hecho todo correctamente, nuestra ganancia proporcional será en unidades de Voltios * Segundos / Metros. Así, nuestra ganancia calculada significa que, por cada metro por segundo de error de velocidad, el controlador emitirá 8,5 voltios adicionales.