En los dos subapartados siguientes se explicará cómo se ha llevado a cabo la programación de los joints que controlan el pan, así como la caracterización del motor real del
7. DESARROLLO DEL MODELO DE ROBOBO Rafael Boado de la Fuente
7.3.1 Programación del motor en V-REP
El principio de funcionamiento de programación del motor del pan es el mismo que el de las ruedas, por lo tanto, ya no se explicará de nuevo.
En este caso, en el mismo script en el que están definidas las funciones que generan las variables globales de los motores de las ruedas se añade otra función llamada movePanTo. Esta función recibe como argumentos la posición objetivo del pan, que es un dato de tipo entero que puede variar en el siguiente intervalo [-160,160] grados; y el porcentaje de velocidad, que como ya se ha dicho anteriormente, es un entero entre 0 y 100. Antes de declarar las variables globales, los datos de la posición objetivo y de velocidad son filtrados para que sus valores estén entre siempre -160 y 160 y entre 0 y 100. En la función se guardan en variables globales la posición objetivo e inicial del pan, y el porcentaje de velocidad para que puedan ser leídas por un script asociado al joint del pan.
En el script asociado al pan comprueba la posición objetivo del pan con su posición inicial, para saber en qué sentido debe girar el motor. Para esto, se le da alguno de estos tres valores [-1, 0, 1] a un parámetro multiplica a la velocidad que se le asigna al joint. Conocido el sentido de giro del joint, se le asigna la velocidad angular equivalente al valor de porcentaje que recibe, calculada a través del polinomio del apartado 7.3.2, y se comprueba que el valor absoluto de la diferencia entre la posición objetivo y la actual sea menor a un límite. Cuando se supera ese límite, se le asigna al joint velocidad 0 y las variables globales se reinician con valor 0.
En la figura 48 se representa de forma esquemática la relación entre los scripts que controlan el pan.
Figura 48: Lógica de programación del motor del pan en el modelo de V-REP. La función movePanTo se incluye en el script en el que están incluidas las funciones de
los joints de las ruedas. También se incluye en el anexo 2 el script que controla el joint de la
unidad pan.
7.3.2 Caracterización del comportamiento del motor
Para llevar a cabo la caracterización del motor del pan, igual que se ha hecho en el caso de la caracterización de los motores de las ruedas, se van a realizar una serie de medidas con el Robobo real usando el comando movePanTo de la librería robobo.py. En este caso, se han realizado medidas cronometrando el tiempo que tarda el pan en recorrer un ángulo concreto a una velocidad determinada. Los porcentajes de velocidad seleccionados para los experimentos se muestran en la tabla 4.
7. DESARROLLO DEL MODELO DE ROBOBO Rafael Boado de la Fuente
Velocidades (%) 2 4 6 10 20 30 40 60 80 Tabla 4: Velocidades seleccionadas para la caracterización del motor del pan. Para cada velocidad, se cronometrará el tiempo que tarde el pan en recorrer los ángulos motrados en la tabla 5.
Ángulos (˚) 15 30 45 60 75 90 110 135 160 Tabla 5: Tiempos escogidos en la caracterización del motor del pan. Para cada combinación se toman tres valores de tiempo y se calcula el promedio. Para obtener una ecuación que permita modelar el comportamiento del motor del pan se parte de la misma ecuación que en el caso de las ruedas, y considerando cada término como un polinomio de tercer grado se obtiene el mismo polinomio que en el caso de la caracterización de las ruedas:
𝜃 = (𝐶 ∗ 𝑝3+ 𝐷 ∗ 𝑝2+ 𝐸 ∗ 𝑝 + 𝐹) ∗ 𝑡 + (𝐺 ∗ 𝑝3+ 𝐻 ∗ 𝑝2+ 𝐼 ∗ 𝑝 + 𝐽)
En este caso se buscará minimizar el error cuadrático medio entre el tiempo cronometrado y el teórico, despejado del polinomio anterior:
𝑡 =𝜃−(𝐺∗𝑝(𝐶∗𝑝33+𝐻∗𝑝2+𝐼∗𝑝+𝐽)
+𝐷∗𝑝2+𝐸∗𝑝+𝐹) .
Empleando el complemento Solver de Excel para calcular los coeficientes que harían mínimo el error entre el tiempo real y el calculado, los coeficientes serían los mostrados en la tabla 6:
C D E F G H I J
-0.00003 0.00388 0.84747 8.05468 -0.00002 0.00106 -0.33034 -0.89074
Tabla 6: Coeficientes obtenidos como resultado de la optimización.
A partir del polinomio obtenido, con el ángulo recorrido y el porcentaje de velocidad asignado se puede obtener el tiempo, y de ahí la velocidad angular.
En la figura 49 se muestran la comparación entre los valores de tiempo promediado obtenidos de los experimentos y los obtenidos de despejar el tiempo del polinomio calculado, para una velocidad de 60, dando una idea de la exactitud de la caracterización.
7. DESARROLLO DEL MODELO DE ROBOBO Rafael Boado de la Fuente
La tabla de resultados de la caracterización está incluida en el anexo 1. En ella se muestra, de la misma forma que en el caso de la caracterización de los joints de las ruedas, los valores de los coeficientes optimizados para que error cuadrático medio entre los segundos que el pan tarda en llegar a la posición en la experimentación y el tiempo calculado según el polinomio sea mínimo. La tabla también incluye los distintos tiempos que tarda el pan en llegar a una posición objetivo, para una velocidad y una posición concretas, así como el tiempo promedio, y el tiempo ajustado con el polinomio obtenido. Las dos últimas columnas muestran el error en segundos y el cuadrático, para cada caso. Al final de la tabla se incluye un resumen que indica el error cuadrático medio, el error medio y el error máximo de los casos estudiados para realizar la caracterización.