Encoders calculos mátematicos
Seguidor de línea
Parte 2
En la primera parte, se conceptualizo acerca de los encoders, en esta segunda parte, se dará a conocer los calculos matemáticos, necesarios para el uso adecuado de los encoders, cabe resaltar, que el principal objetivo es la de memorizar la pista, para llevar esto acabo se aplican formulas trignometricas y operaciones de básicas, dichas formulas fueron calculadas y despejadas previamente, por ende, este documento no explica como obtener cada ecuación final, Sin embargo, si desea profundizar más y saber acerca del despeje matematico al final de la pagina habrá un link de un pdf en el cual esta toda la información que tomé como referencia.
Arco de circunferencia:
Se define como parte de una curva o una parte del borde del circulo(Ver Figura 1).
Figura 1. Definición de Arco
Sector Circular:
Se denomina sector circular a la porción del plano delimitada por un arco de circunferencia y dos de sus radios. [1] (Ver Figura 2)
Figura 2.Sector Circular
A continuación, se da un ejemplo:
Figura 3.Formación de arcos en una curva
Como se observa en la Figura 3, en una curva de la pista está el ejemplo claro de la formación del sector circular, y en realidad se definen varios arcos debido a que el robot lo que hará es calcular su posición cada cierto tiempo.
Cálculos matemáticos:
Objetivos:
- Radio de la sección de pista (r2)
- Cambio en el ángulo de rumbo (theta)
- Longitud de la pista y velocidad promedio
- Desplazamiento horizontal y vertical (X,Y)
Suposiciones:
Recorrido a lo largo de una trayectoria uniforme en forma de arco
- Sin deslizamiento de ruedas (Derrape)
- Condición de giro a la izquierda (L<R)
- Distancia constante entre las ruedas
Las fórmulas que se utilizaran fueron despejadas tendrán en cuenta la gráfica de la Figura 4; Observar muy bien la gráfica y comparar las variables con su respectiva función que se encuentran en la Tabla 1.
Tabla 1. Variables
Figura 4.Formación de arcos |
Variable
|
Función
|
L
|
# de pulsos del encoder izquierdo
|
R
|
# de pulsos del encoder derecho
|
A
|
Distancia entre las ruedas
|
C
|
Longitud de la pista o tramo.
|
𝜃
|
Angulo de Curvatura
|
O
|
Origen del arco
|
r1, r3
|
Radios de los arcos de la rueda
|
r2
|
Radio de la sección de pista
|
- Radio de el centro de la línea
El radio de la línea central es el promedio de los valores o número de pulsos del encoder izquierdo y derecho multiplicados por la relación entre la distancia entre ruedas y el valor absoluto de la diferencia de lecturas de los encoders.
if (L ≠ R){
}
Esta fórmula posee la condición L ≠ R, si dicha condición no se cumple el resultado sería un radio infinito, que en otras palabras quiere decir que el robot está posicionado en línea recta.
- Angulo de curvatura
A continuación, se calcula el ángulo de curvatura dicho resultado esta expresado en radianes.
- Longitud de la pista y velocidad promedio
Para calcular la longitud de la pista ( C ), se tienen las siguientes formulas.
Sin embargo, hay que tener en cuenta que los valores de R y L se está reiniciando constantemente cada cierto tiempo; por lo tanto, la longitud de pista se crea una segunda variable, que es igual a la sumatoria de los valores de C y donde X representa el número de muestras obtenidas.
Además, teniendo la longitud de pista podemos calcular la velocidad promedio, que nos servirá para saber si en realidad el robot está realizando el mapeo de la pista.
Hay que tener en cuenta que para poder calcular la distancia se tiene en cuenta la resolución de los encoders, el cual es de 12 pulsos por vuelta y también saber el tamaño de las ruedas (M); a continuación, se da un ejemplo con un valor para de M = 3 cm
Y por último como se puede observar se tiene la variable t, dicha variable es el tiempo(s) que tardo en completar las X muestras obtenidas. Por lo tanto, se puede calcular la velocidad en cualquier tramo de la pista o hasta que el robot termine la pista.
- Desplazamiento horizontal y vertical
Hasta el momento no se había utilizado funciones trigonométricas, y son algo pesadas para un microcontrolador RISC de 8 bits, pero en la siguiente parte, enseñare como reducir la computación de las funciones seno y coseno, si desea implementar en un seguidor con ATmega328P.
Ejemplo de Mapeo:
La idea consiste en poder obtener los siguientes resultados, cada color podría asignarse un perfil de velocidad al robot. Aunque hay que tener en cuenta otros factores como la frecuencia de muestreo y el derrape.
Mapeo por colores |
Para culminar, se puede indagar acerca del tema y como se despejan las respectivas formulas, también cabe resaltar que es dichas ecuaciones son utilizadas en robots micromouse, y algunos incorporan un módulo IMU para mejorar la precisión del mapeo, en fin, es cuestión de investigar y probar.
Link: ComputeEncoders.pdf
En la siguiente y última parte se proporciona la librería optimizada realizada en C++ para una posible implementación en un seguidor de línea.
"El conocimiento no es nada si no se comparte"
Bibliografía
[1]
|
https://es.wikipedia.org/wiki/Sector_circular.
|