Introducción a la caracterización del robot

The characterization tools consist of a python application that runs on the user’s PC and matching robot code that runs on the user’s robot. The PC application will send control signals to the robot over NetworkTables, while the robot sends data back to the application. The application then processes the data and determines characterization parameters for the user’s robot mechanism, as well as producing diagnostic plots. Data can be saved (in JSON format) for future use, if desired.

¿Qué es «caracterización»?

«Caracterización» - o formalmente como sistema de identificación - es el proceso para determinar un modelo matemático para el comportamiento a través de análisis estadístico de sus entradas y salidas.

En FRC, el sistema mas común en el que estamos interesados en caracterizar es el imán permanente de motor DC. en particular estamos interesados en averiguar que entrada de motor (i.e. voltaje desde el controlador del motor) es necesario para lograr nuestras salidas deseadas (i.e velocidad y aceleración del motor).

Afortunadamente, esto no es difícil de hacer. Un motor de DC imán permanente (sin mas carga que la fricción y la inercia) obedecerá lo siguiente “ecuación de balance de voltaje” (para mas información, vea el siguiente documento):

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

Donde \(V\) es el voltaje aplicado, \(d\) es el desplazamiento (Posición) del motor, \(\dot{d}\) es la velocidad y \(\ddot{d}\) es la aceleración (la notación de overdot tradicionalmente denota el derivado con respecto al tiempo).

Heurísticamente, podemos interpretar los coeficientes en la ecuación anterior de la siguiente manera:

kS es el voltaje que se necesita para sobrellevar la fricción estática del motor , o en otras palabras para apenas conseguirlo en movimiento; resulta que esta fricción estática (porque es, bueno, estática) tiene el mismo efecto independientemente de la velocidad o aceleración. Quiere decir que no importa la rapidez con la que viajes o que tan rápido aceleres, una porción constante del voltaje que ha aplicado a su motor (dependiendo en el ensamblaje especifico del mecanismo) se dirigirá hacia la superación de la fricción estática en sus engranajes, cojinetes, etc.; este valor es su kS. Note la presencia de signo de función, porque la fricción se opone a la dirección de movimiento.

kV describe la cantidad de tensión necesaria para mantener (o «navegar») a una velocidad constante determinada mientras se supera la «resistencia electromagnética en el motor» <https://en.wikipedia.org/wiki/Counter-electromotive_force>`__ y cualquier fricción adicional que aumente con la velocidad (conocida como «resistencia viscosa»<https://en.wikipedia.org/wiki/Drag_(physics)#Very_low_Reynolds_numbers:_Stokes’_drag>`__). La relación entre la velocidad y el voltaje (a aceleración constante) es casi totalmente lineal (con componentes FRC® , de todos modos) debido a cómo funcionan los motores de corriente continua de imán permanente.

«kA» describe el voltaje necesario para inducir una aceleración proporcionada al eje del motor. Como con «kV», la relación entre voltaje y aceleración (a una velocidad constante) es casi perfectamente lineal para los componentes de FRC.

Una vez que estos coeficientes han sido determinados (aquí logrado por una regresión lineal múltiple), podemos tomar una velocidad y aceleración deseadas dadas por el motor y calcular el voltaje que debe ser aplicado para lograrlo. Esto es muy útil no solo por decir, seguir perfiles de movimiento, sino también para hacer que los mecanismos sean mas controlables en el control de bucle abierto, porque las entradas de su joystick serán mas cercanas con el actual mecanismo de movimiento.

Algunas de las herramientas en el conjunto de herramientas introducen términos adicionales en la ecuación anterior para tener en cuenta las diferencias conocidas del caso simple descrito anteriormente- los detalles para cada herramienta se pueden encontrar aquí abajo:

Herramientas de Caracterización Incluidas

Nota

Muchos otros tipos de mecanismos pueden ser caracterizados por una sencilla adaptación en el código existente en la biblioteca.

El conjunto de herramientas para la caracterización del robot actualmente soporta caracterización para:

  • Configuraciones simples del robot

  • Transmisiones

  • Brazos

  • Elevadores

Caracterización Simple Motora

La caracterización simple motora de herramientas determina los mejores parámetros para la siguiente ecuación:

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

donde \(V\) es el voltaje aplicado, \(d\) es el desplazamiento (posición) del variador, \(\dot{d}\) es su velocidad, y \(\ddot{d}\) es su aceleración. Este es el modelo para un motor de corriente continua de imán permanente sin carga más que la fricción y la inercia, como se mencionó anteriormente, y es un modelo preciso para flywheels, torretas y deslizadores lineales horizontales.

Caracterización de la transmisión

La caracterización de la transmisión determina los mejores parámetros para la siguiente ecuación:

\[V = kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

Donde \(V\) es el voltaje aplicado, \(d\) es el desplazamiento (posición) de camino, \(\dot{d}\) es la velocidad, y \(\ddot{d}\) es la aceleración. Este es el mismo modelo de la ecuación que se usó en la caracterización simple motora, sin embargo, el caracterizador de la transmisión está configurado específicamente para funcionar en unidades diferenciales, y caracterizará cada lado de la unidad de forma independiente si se desea.

El caracterizador de la transmisión también puede determinar la efectividad del ancho de la vía de su robot usando un gyro. Más información sobre como ejecutar la caracterización disponible en el articulo de pista con caracterización. track width characterization article.

Caracterización del brazo

La herramienta de caracterización del brazo determina los parámetros de mejor ajuste para la ecuación:

\[V = kS \cdot sgn(\dot{\theta}) + kCos \cdot cos(\theta) + kV \cdot \dot{\theta} + kA \cdot \ddot{\theta}\]

Donde \(V\) es el voltaje aplicado, \(\theta\) es el desplazamiento angular (posición) del brazo, \(\dot{\theta}\) es la velocidad angular y \(\ddot{\theta}\) es la aceleración angular. El término coseno (\(kCos\)) se añade correctamente a el efecto de gravedad.

Caracterización del elevador

La herramienta de caracterización del elevador determina los parámetros de mejor ajuste para la ecuación:

\[V = kG + kS \cdot sgn(\dot{d}) + kV \cdot \dot{d} + kA \cdot \ddot{d}\]

Donde \(V\) es el voltaje aplicado, \(d\) es el desplazamiento (posición) del camino, \(\dot{d}\) es la velocidad, \(\ddot{d}\) es la aceleración. El término constante (\(kG\)) se añade correctamente a el efecto de gravedad.

Requisitos previos

Para usar el conjunto de herramientas de caracterización del robot, debe tener instalado el Phyton 3.7 instalado en su computadora, así como el conjunto de herramientas de programación WPILib estándar.

Python 3.7

Advertencia

No instale el Pyhton desde la tienda de Microsoft. Por favor use el link previo para descargar e instalar Python.

Instalación y lanzamiento del conjunto de herramientas

Para instalar el conjunto de herramientas de caracterización del robot, abra un programa y escriba el siguiente comando.

pip install frc-characterization

El conjunto de herramientas, y todas sus dependencias, deberán ser automáticamente descargadas e instaladas. Si usted está usando una maquina de Windows y el comando pip no es reconocido, asegúrese de que su carpeta scripts de Python ha sido añadido al PATH.

Nota

Si usted esta en Ubuntu, tendrá que instalar manualmente tkinter con sudo apt-get install Python3-tk. También tendrá que usar el comando pip3 en lugar del comando pip como pip refiriéndose a Python2 en distribuciones de Ubuntu.

Si usted tiene instalado ya el conjunto de herramientas, asegúrese de actualizarlo regularmente para prevenir errores y agregar nuevas funciones.

pip install --upgrade frc-characterization

Nota

Si desea utilizar la versión beta de esta herramienta, debe escribir pip install --pre --upgrade frc-characterization en su lugar.

Una vez que el conjunto de herramientas ha sido instalado, debe iniciar un nuevo proyecto de caracterización de unidades para garantizar que funciona ejecutando el siguiente comando desde powershell o una ventana de terminal.

frc-characterization drive new

El nuevo proyecto GUI debería abrirse momentáneamente. Para lanzar otros proyectos de caracterización, simplemente reemplaza drive con el tipo de caracterización deseado (arm, elevator, simple-motor).

Mientras que el nuevo proyecto GUI tiene botones para iniciar ambos la herramienta de registro y el analizador de herramientas, estos también se pueden iniciar directamente desde la CLI reemplazando new con logger o analyzer.

Importante

Se recomienda encarecidamente que utilice la nueva GUI del proyecto para iniciar las herramientas de registrador y analizador para conversiones de unidades más efectivas en lugar de iniciar el registrador y el analizador desde la CLI.

Para más información en uso de CLI, enter frc-characterization -h.