» Optimus PFC » Odometría

04 de Mayo de 2004

Odometría

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)

Paráetros empleados en la odometría


Fig. 02: Ejemplo de odometría.   (pdf)

Paráetros empleados en la odometría
© 2004 optimus.meleeisland.net