Estimación de la orientación usando una red neuronal RBF
- PI - RobotSubmarino
- 23 jul 2020
- 2 Min. de lectura
Actualizado: 3 ago 2020
La orientación de un móvil podría calcularse simplemente como: arctan(my/mx), donde mx y my son las lecturas de los magnetómetros en los ejes x y y, respectivamente, ver figura 1. Sin embargo dicha función es afectada considerablemente por el medio ambiente y por la distorsión del campo magnético, que varía dependiendo de nuestra posición en el planeta.
Una red neuronal, con funciones de base radial, puede ser usada para corregir dichas distorsiones y estimar la orientación de un móvil en el eje azimutal. Para este experimento usaremos un smartphone, donde los datos de entrada considerados son las lecturas de sus magnetómetros en los ejes x y y, ver figura 1.

Figura 1
mientras que los datos de salida corresponden al seno del ángulo de orientación en el eje azimutal. Se usó la función senoidal para no depender del cuadrante en el que se encuentre nuestro ángulo azimutal, ver figura 2. Estos ángulos pueden obtenerse de los sensores de orientación del smartphone o pueden ser medidos directamente usando una regla compás. Para este experimento fueron tomados 50 muestras sincronizadas, usando el aplicativo mostrado en este link.

figura 2
Debido a que el experimento fue realizado en el plano horizontal, las lecturas del magnetómetro en el eje z son muy bajas y serán desconsideradas para el proceso de estimación.
Se realizó una búsqueda del mejor modelo, incrementando el número de neuronas del tipo RBF, desde 1 hasta 200 neuronas. De este experimento, notamos que con 45 neuronas se obtiene el mejor resultado. La Figura 3 muestra los 45 centros para cada función RBF, los cuales fueron definidos aleatóriamente, tal como se sugiere en [1].

Figura 3
La figura 4 muestra el la orientación medida y la orientación estimada. El error de estimación obtenido es de 0.013%. Este error se calculó como: e = norm(yd-ye)^2/N, donde ye es la salida estimada, yd es la salida medida y N es el número de datos.

Figura 4
Conclusión:
Este método demostró buenos resultados para la estimación de orientación, sin embargo requiere de la toma de datos del sistema. Además, el modelo solo es valido para el medio ambiente donde se hicieron los experimentos de toma de datos.
En link1 y link2 se muestran otras formas de estimar la orientación en el eje azimutal. Todas estas forman pueden complementarse entre sí para obtener una estimación óptima usando el filtro de Kalman.
El código y los datos para este experimento se encuentra disponible este link.
Referencias:
[1] Yue Wu, Hui Wang, Biaobiao Zhang, and K.-L. Du, Using Radial Basis Function Networks for Function Approximation and Classification, International Scholarly Research Network, 2012.
Comments