La posición del robot respecto a un sistema de referencia inicial es uno de los
parámetros más importantes de los que debe dispober un robot móvil.
Se conoce como "odometría" a las técnicas de posicionamiento que emplean información
de sensores propioceptivos (aquéllos que adquieren datos del propio sistema), para
obtener una aproximación de la posición real a la que se encuentra un sistema móvil,
en un determinado instante, respecto a un sistema de referencia inicial.
En general, como se puede apreciar en la figura 01, son suficientes tres parámetros
(X, Y, θ) para conocer la posición de un sistema móvil:
posición respecto al eje "x", respecto al eje "y" ángulo respecto al eje "x".
La base de RMA desarrollada en este proyecto es capaz de conocer su posición actual a
partir de la distancia recorrida por cada una de sus ruedas. Para ello, accede
regularmente a las lecturas de los encoders para determinar cuál ha sido el
desplazamiento lineal de cada una de las ruedas. Posteriormente, mediante el empleo
de una aproximación trigonométrica y conociendo la posición anterior, puede calcular
una aproximación a la nueva posición actual real. A continuación se muestra el algoritmo
empleado:
Paso 1. Considerando la precisión de los encoders, P, la distancia
entre ruedas, B, y el valor de los acumuladores de los encoders izquierdo
y derecho, Tl y Tr
respectivamente, se calcula el desplazamiento lineal (en mm) realizado por cada rueda:
Dl = Tl * P
Dr = Tr * P
Paso 2. El desplazamiento realizado por el punto medio del eje imaginario que une las
dos ruedas se calcula como (en mm):
Dc = (Dl + Dr) / 2
Paso 3. El valor del ángulo de giro que se produce cuando las ruedas giran a distintas
velocidades se calcula como (en radianes):
Dθ = (Dr - Dl) / B
Paso 4. A partir de la posición en el instante actual, t,
(Xt, Yt, θt) se calcula
la posición en el instante siguiente, t+1, de la siguiente forma:
θt+1 = θt + Dθ
Xt+1 = Xt + Dc * cos(θt+1)
Yt+1 = Yt + Dc * sin(θt+1)
Estos pasos se han codificado en la función do_odometry_ctrl(), que es ejecutada de forma
periódica por el planificador cada 100ms. El resultado se puede apreciar en la figura 02:
tenemos en todo momento información sobre el recorrido seguido por el robot.
|
Fig. 01: Parámetros de odometría.
( eps)
( xfig)
Fig. 02: Ejemplo de odometría.
( pdf)
|