-Descripción de controlador PID
Esta es la formula que del controlador PID, dicha formula, a la hora de pasarla a la práctica, no se puede usar tal cual en el código, por lo tanto convertimos la integral en un sumatorio, y la derivada en la variación del error.
El resultado, u, es la velocidad que los motores deben de dar a las ruedas en cada momento para que mantenga el equilibrio
-Obtención de parámetros e implementación (kp 22, ki 1.2,kd 14, Lim de i 200)
La constante kp es una constante proporcional al error medido entre la posición en la que está y de la que debería estar
La constante kd es una costante proporcional a la derivada del error, por lo cual, esta constante es la que hace posible que cuando desequilibres al robot, el vuelva al equilibrio
La constante ki es una constante proporcional a la integral del error, la cual hace que cuanto mas alejado, o mas tiempo este alejado del punto de equilibrio, más fuerza de a los motores para recuperar la posición.
-Video del robot equilibrista
-Video del robot equilibrista
-Gráficas de la ejecución:
Con el objetivo de intentar interpretar el movimiento a partir de las constantes, del error, la integral y la derivada del error, nos propusimos capturar los datos que maneja RJV11 en cada momento. Para ello leJOS incluye un par de herramientas muy útiles, el nxjmonitor y el nxjdataviewer.
Lo óptimo hubiera sido poder monitorear todos los datos durante la ejecución del programa, casi en tiempo real, para lo cual el nxjmonitor hubiera sido la herramienta perfecta. Pero debido a la imposibilidad de conseguir ejecutarlo en nuestros ordenadores personales, y no poder usarlo en los ordenadores del laboratorio debido a la ausencia de los paquetes necesarios para la conexión bluetooth, no fue posible hacer uso del nxjmonitor. En su lugar usamos el nxjdataviewer, un pequeño programa que nos hacia posible recoger los datos de un log que íbamos generando durante la ejecución de RJV11. El nxjdataviewer cumplió su propósito perfectamente, con la pega de poder obtener solo los últimos datos recogidos, debido a la limitación de la memoria del ladrillo.
A continuación unas gráficas correspondientes a una ejecución que consiguió mantener el equilibrio durante unos 10 segundos antes de estrellarse. Las gráficas han de leerse de derecha a izquierda:
Puede observarse como las gráficas en su parte izquierda aumentan/disminuyen repentinamente, mostrandonos los valores que manejaba RJV11 en el momento de caerse.
-Conclusión
Nos ha costado mucho dar con las constantes adecuadas, pero nos hemos acercado ya que RJV11 nos aguanta 13 segundos en equilibrio. Hemos probado muchas constantes basandonos experimentalmente en las pruebas anteriores y modificando segun veiamos que necesitabamos en cada momento, y tambien basandonos en las gráficas extraidas.
Cuando aumentamos la kd, dejando las demas igual, se aumenta la velocidad de las ruedas, si disminuimos dicha constante, tambien se disminuye la velocidad.
Cuando aumentamos la ki, a la minima acumulacion de error se dispara la velocidad de las ruedas, y si se disminuye se le permite mas error y por lo tanto mas inclinacion del cuerpo del robot.
Cuando aumentamos la kd, se me hace muy sensible a la variacion de error, pero si se disminuye, no responde bien a los posibles desequilibrios externos.
Próxima entrega: Práctica 5 - Entorno simulado Gazebo y JDE
0 comentarios:
Publicar un comentario