01 · Punto de partida
Qué aporta la medición inercial
Ya observamos distancias, marcas del suelo y contactos. Un sensor inercial aporta información sobre el movimiento del cuerpo donde está montado: puede ayudar a detectar un giro, estimar inclinación o reconocer una vibración.
Pero no entrega automáticamente posición y orientación perfectas. El acelerómetro no es un medidor directo de centímetros recorridos y el giroscopio no es una brújula. La estimación depende de conversiones, tiempo, calibración y supuestos físicos.
Trabajaremos principalmente con una inclinación de un solo eje, lejos de giros completos. Es una base para entender la fusión; no es un estimador general de orientación tridimensional.
02 · Convenciones
Ejes, signos y unidades
Los sensores tienen ejes fijados a su encapsulado o placa. El robot tiene su propio sistema de referencia. Si montás la placa de costado, sus etiquetas no pasan a coincidir mágicamente con las del chasis.
Para el ejemplo elegimos ejes de mano derecha: X hacia adelante, Y hacia la izquierda y Z hacia arriba cuando el robot está nivelado. Las rotaciones positivas siguen la regla de la mano derecha.
| Magnitud | Unidades | Interpretación |
|---|---|---|
| Aceleración específica aX, aY, aZ | m/s² o g | 1 g ≈ 9,81 m/s² para nuestros cálculos |
| Velocidad angular ωX, ωY, ωZ | °/s o rad/s | Tasa de giro alrededor de cada eje |
| Roll, pitch y yaw | ° o rad | Ángulos de orientación según una secuencia declarada |
| Intervalo Δt | Segundos | Tiempo entre adquisiciones para integrar |
Roll se asocia al giro alrededor de X, pitch al de Y y yaw al de Z. En tres dimensiones los ángulos dependen también del orden de las rotaciones. Para el caso de un eje usaremos roll, con aY = g · sen(θ) y aZ = g · cos(θ) si no hay aceleración de traslación.
Documentá cualquier cambio de ejes y signos. Las funciones trigonométricas del código trabajan en radianes, pero presentaremos los ángulos en grados. Si la biblioteca entrega rad/s, convertí antes de sumarlo a un ángulo expresado en grados.
03 · Fuerza específica
Qué mide un acelerómetro
Un acelerómetro mide fuerza específica por unidad de masa. Un sensor apoyado y quieto registra aproximadamente 1 g en la dirección de soporte; en caída libre ideal registra cerca de cero. Por eso «el robot no se mueve» no implica que los tres canales indiquen cero.
Con nuestra convención, nivelado y en reposo esperamos aproximadamente aX = 0, aY = 0, aZ = +g. Revisá la convención de tu biblioteca: puede entregar otros signos o un dato ya procesado con la contribución gravitatoria compensada.
Al inclinar el cuerpo, cambian las proyecciones del vector observado. Al acelerar, frenar o vibrar también cambian las lecturas. Un acelerómetro aislado no separa siempre una inclinación de una aceleración sostenida.
La posición no aparece simplemente integrando dos veces y esperando un resultado estable. Un pequeño error constante de aceleración produce un error de posición que crece con el cuadrado del tiempo; además hay que estimar orientación y compensar gravedad correctamente.
04 · Geometría
Estimar inclinación desde la gravedad
Para el giro de un eje definido antes, con lecturas compatibles y sin traslación importante:
θgrados = θradianes · 180 / π
Si aY = 0,5 g y aZ ≈ 0,866 g, el ángulo es aproximadamente 30°. Usar atan2 conserva información del cuadrante y evita una división explícita por aZ. No elimina los problemas físicos de una lectura insuficiente o perturbada.
Si el cuerpo está nivelado pero aparece una componente adicional de 0,3 g en Y, obtenemos atan2(0,3, 1) ≈ 16,7°: una inclinación aparente aunque el ángulo real sea cero.
La norma √(aX² + aY² + aZ²) sirve como comprobación: un valor muy distinto de g puede advertir aceleración adicional, caída o error. Pero estar cerca de g no prueba que todo sea gravedad. En el ejemplo de 0,3 g lateral, la norma solo aumenta a unos 1,044 g.
La nota AN3461 de NXP desarrolla convenciones y estimación de inclinación con tres ejes. En un sistema completo no hay que aplicar fórmulas sueltas sin revisar sus ejes, signos y singularidades.
05 · Velocidad angular
Giroscopio: integrar el giro
El giroscopio mide velocidad angular. Si durante 0,02 s informa 50°/s alrededor del eje que estamos siguiendo, el incremento aproximado de ángulo es 1°:
b es una estimación del sesgo o desplazamiento de cero. Aunque esté quieto, un giroscopio puede informar una pequeña velocidad no nula. Si queda un error residual de 0,5°/s, la integración suma 10° en 20 s sin giro real.
La integración necesita un ángulo inicial y acumula errores. Analog Devices describe el papel del sesgo y del ruido en la deriva del giroscopio. Restar una calibración inicial ayuda, pero el cero también puede variar con temperatura y tiempo.
La fórmula escalar sirve para nuestro giro de un eje. En movimiento 3D, las componentes del giroscopio en el cuerpo no son, en general, las derivadas directas de roll, pitch y yaw. Para rotaciones arbitrarias se usan relaciones cinemáticas y representaciones como cuaterniones.
06 · Un conjunto de sensores
IMU de seis y nueve ejes
Una IMU integra mediciones inerciales. Se suele llamar «de seis ejes» a tres canales de acelerómetro y tres de giroscopio. Algunos conjuntos «de nueve ejes» agregan tres canales de magnetómetro. Son canales de medida, no nueve grados de libertad mecánicos del robot.
| Grupo | Aporta | Límite |
|---|---|---|
| Acelerómetro | Referencia de inclinación bajo supuestos apropiados | La traslación contamina esa referencia |
| Giroscopio | Cambios de orientación a corto plazo | La integración deriva y necesita estado inicial |
| Magnetómetro | Observación del campo magnético | Motores, metales y corrientes pueden perturbarlo |
La gravedad no cambia al girar alrededor de su propia dirección: acelerómetro y giroscopio por sí solos no proporcionan una referencia absoluta estable de yaw. Un magnetómetro puede ayudar con rumbo, pero requiere calibración y compensación de inclinación; no es inmune al robot donde lo instalaste.
Algunas placas entregan solo datos crudos; otras incluyen procesamiento de orientación. Identificá qué devuelve cada API: lecturas, unidades físicas, ángulos o una orientación fusionada. No apliques una segunda compensación como si todos fueran datos crudos.
07 · Preparar datos fiables
Calibración y adquisición
- Identificá placa e interfaz: tensiones, direcciones, niveles y biblioteca correspondiente.
- Comprobá ejes: incliná y girá por separado, observando signos y escalas.
- Calibrá el cero del giro: con el cuerpo realmente inmóvil, tomá muestras y estimá la media por eje.
- Revisá acelerómetro: probá varias orientaciones conocidas para evaluar offset y escala, sin restar g indiscriminadamente.
- Elegí rango y frecuencia: evitá saturación y verificá el filtrado interno y la tasa de datos nuevos.
- Guardá marcas temporales: usá intervalos entre adquisiciones compatibles y detectá lecturas ausentes o vencidas.
No calibres el sesgo mientras el robot gira: la media incluiría movimiento real. Tampoco elimines la gravedad de un canal fijo y esperes que eso funcione al inclinar la placa; su proyección cambia con la orientación.
Si hay FIFO, cada muestra necesita su intervalo de adquisición. Leer diez muestras juntas y asignarles el mismo instante de procesamiento no reconstruye correctamente su historia temporal.
El montaje debe ser rígido y su orientación conocida. Vibraciones, flexión y posición respecto de ejes de giro también afectan las aceleraciones observadas.
08 · Fusión de un eje
El filtro complementario
El giroscopio aporta incrementos de giro, pero deriva. El acelerómetro puede dar una referencia de inclinación a largo plazo si sus supuestos se cumplen, pero responde también a vibraciones y traslación. Un filtro complementario sencillo combina ambas observaciones:
θk = α · predicción + (1 − α) · θacc,k
α = τ / (τ + Δt)
La predicción parte del estado fusionado anterior. No es un promedio permanente entre un ángulo de giroscopio independiente y el ángulo del acelerómetro. La corrección se aplica en cada paso y modifica el siguiente estado.
Con Δt = 0,02 s y τ = 0,5 s resulta α ≈ 0,9615. Un τ mayor suaviza más la influencia rápida del acelerómetro, pero también corrige más lentamente errores del giro. Si el sesgo residual es constante y la referencia de acelerómetro es perfecta, el error estacionario de esta recurrencia es aproximadamente b · τ: con 0,5°/s y 0,5 s queda alrededor de 0,25°.
Un α fijo no significa lo mismo con cualquier frecuencia. Mantener τ y recalcular α desde Δt permite conservar aproximadamente la escala temporal elegida. Sigue siendo necesario manejar muestras inválidas e intervalos anormales.
Esta recurrencia trabaja con un ángulo local sin cruces de ±180°. Para una fusión 3D se necesitan otros cuidados y algoritmos; la documentación de filtro complementario de MathWorks muestra una implementación de orientación con marcos de referencia explícitos.
09 · Código ejecutable
Simulación en Python: un robot quieto
Vamos a aislar el sesgo: el cuerpo está nivelado, el acelerómetro da 0° exactos y el giroscopio informa 0,5°/s aunque no exista giro. Comparamos integración sola y filtro durante 20 segundos.
Probalo en el navegador. Podés editar el código. Python se descarga con Pyodide la primera vez y requiere conexión. No mide ni controla una placa real.
dt = 0.02 # segundos
tau = 0.5 # segundos
sesgo_real = 0.5 # grados por segundo
sesgo_estimado = 0.0 # probá cambiarlo a 0.5
alpha = tau / (tau + dt)
angulo_gyro = 0.0
angulo_filtro = 0.0
for k in range(1, 1001):
omega_medida = sesgo_real
theta_acc = 0.0
omega_corregida = omega_medida - sesgo_estimado
angulo_gyro += omega_corregida * dt
prediccion = angulo_filtro + omega_corregida * dt
angulo_filtro = alpha * prediccion + (1 - alpha) * theta_acc
if k % 250 == 0:
print(f"t={k * dt:.0f} s; gyro={angulo_gyro:.2f}°; "
f"filtro={angulo_filtro:.2f}°")
print(f"alpha = {alpha:.4f}")A los 20 s, la integración sola llega a 10,00° y el filtro queda aproximadamente en 0,25°. Si la estimación del sesgo es exactamente 0,5°/s, ambos quedan en cero en este modelo ideal. Cambiá τ a 2 s: el error estacionario del filtro se aproxima a 1°.
Este resultado no significa que el acelerómetro real siempre tenga error cero ni que el sesgo sea constante. Sirve para entender un término antes de agregar ruido, movimiento y perturbaciones.
10 · Exploración interactiva
Laboratorio: ruido, deriva y aceleración
La simulación dura 20 s. El cuerpo está nivelado hasta 2 s, sube a 20° entre 2 y 4 s, mantiene esa inclinación hasta 10 s y vuelve a cero entre 10 y 12 s. Se comparan el ángulo real, el obtenido del acelerómetro, la integración del giro y el filtro.
Una inclinación y dos fuentes de error
Curvas: real (blanco), acelerómetro (naranja), gyro integrado (violeta claro) y filtro (verde).
Modificá los parámetros para comparar las estimaciones.
| Tiempo | Real | Acelerómetro | Gyro | Filtro |
|---|
El giro ideal de cada intervalo se obtiene de la diferencia exacta entre ángulos reales para aislar el efecto del sesgo. El error del acelerómetro es una sinusoide determinista de 7 Hz, no ruido aleatorio. La perturbación agrega 0,3 g a aY antes de calcular atan2. No se simulan saturación, fallos ni movimiento 3D.
Recorrido guiado
- Bajá el error del acelerómetro a cero y mantené sesgo 0,5°/s y τ = 0,5 s. Al final, el gyro acumula 10° y el filtro queda cerca de 0,25°.
- Subí el sesgo a 2°/s: el gyro llega a 40° de error; el filtro queda cerca de 1° con esa τ.
- Restablecé y aumentá el error angular a 8°. Compará τ = 0,1 y 2 s: mayor τ reduce la oscilación rápida transferida, pero aumenta el error residual del sesgo.
- Activá +0,3 g en Y. Entre 6 y 8 s el acelerómetro interpreta una inclinación mayor; el filtro también se desvía. El máximo error revela un problema que el error final puede ocultar.
- Con la perturbación activa, compará las tres τ: corregir rápido con el acelerómetro también hace seguir más rápido una referencia contaminada.
- Cambiá el período: α se recalcula. No se garantiza una curva idéntica, porque también cambia la discretización y el muestreo de la perturbación.
11 · Método de trabajo
Llevar el cálculo al robot
La biblioteca del sensor debe entregar datos físicos con marcas temporales o información suficiente para reconstruirlas. Mantené separadas adquisición, conversión, estimación y decisión:
adquirir muestra nueva y comprobar estado
convertir unidades y transformar ejes al marco del robot
calcular dt desde instantes de adquisición
rechazar tiempos incoherentes y datos no finitos
obtener inclinación del acelerómetro si la referencia es utilizable
predecir con giro corregido y actualizar el estimador
publicar orientación, tiempo y estado de confianza
decidir la acción del robot
En el arranque, inicializá el ángulo desde una referencia válida si las condiciones lo permiten. Si hay un intervalo muy largo sin datos, no integres usando una lectura aislada como si describiera todo ese tiempo: marcá pérdida de confianza y definí recuperación.
La norma de aceleración puede formar parte de un criterio para reducir corrección, pero no es una prueba suficiente de ausencia de traslación. Evitar toda corrección durante mucho tiempo tampoco es gratuito: deja crecer la deriva del giro.
Probá primero en una mesa, sin actuadores: reposo, inclinaciones conocidas, giros lentos, retorno al inicio y traslación sin inclinar. Después repetí con vibraciones del montaje. Registrá datos crudos, unidades, dt, sesgo y estimación; observá el máximo error durante la maniobra, además del resultado final.
12 · Comprensión
Confusiones frecuentes
«Quieto, el acelerómetro debe dar cero en todo»
Apoyado, observa aproximadamente 1 g según orientación. Cero en todos los ejes puede corresponder a caída libre ideal, un dato procesado o un problema de lectura: necesitás saber qué devuelve la API.
«El giroscopio ya entrega el ángulo»
Un giroscopio crudo entrega velocidad angular. El ángulo requiere integrar, conocer el estado inicial y tratar errores. Una API que entrega orientación ya realizó otro procesamiento.
«Basta integrar cada eje para obtener roll, pitch y yaw»
Solo es una aproximación apropiada en casos restringidos. En rotación 3D los ejes se mueven con el cuerpo y las velocidades medidas deben relacionarse con la representación de orientación.
«Con seis ejes ya tengo rumbo absoluto»
La gravedad no fija la rotación alrededor de la vertical. El yaw integrado puede derivar sin una observación externa adecuada.
«α = 0,98 sirve siempre»
Su efecto depende del período de actualización. Definí una escala temporal y calculá α desde dt; después verificá ruido, deriva y perturbaciones.
«El filtro complementario elimina cualquier aceleración falsa»
Si la perturbación es sostenida, puede contaminar la referencia lenta y la estimación fusionada. Necesitás condiciones de validez, otros modelos o referencias adicionales según la tarea.
13 · Práctica guiada
Predecí antes de comprobar
1. Incremento angular
El gyro corregido indica 90°/s durante 20 ms. ¿Cuánto sumás al ángulo? ¿Y si confundís 20 ms con 20 s?
Ver solución
90 × 0,020 = 1,8°. Usar 20 s daría 1800°, un error de factor mil. Las unidades de tiempo deben convertirse antes de integrar.
2. Deriva en reposo
Queda un sesgo residual de 0,2°/s. ¿Qué error genera en 60 s de integración de un eje?
Ver solución
0,2 × 60 = 12°, suponiendo sesgo constante y sin corrección externa.
3. Inclinación ideal
Con la convención del tema, aY = 0,5 g y aZ = 0,866 g. ¿Qué inclinación aproximada resulta y qué supuesto necesitás?
Ver solución
atan2(0,5; 0,866) ≈ 30°. Necesitamos que esas componentes representen la referencia gravitatoria bajo el modelo del giro, sin aceleración adicional importante.
4. Un paso del filtro
Ángulo previo 10°, giro corregido 5°/s, dt = 0,02 s, acelerómetro 12° y α = 0,96. ¿Qué resultado da?
Ver solución
Predicción: 10 + 5 × 0,02 = 10,1°. Resultado: 0,96 × 10,1 + 0,04 × 12 = 10,176°.
5. Cambiar la frecuencia
Para τ = 0,5 s, calculá α con dt de 10 y 20 ms. ¿Por qué no mantenemos obligatoriamente el mismo α?
Ver solución
Con 10 ms: 0,5 / 0,51 ≈ 0,9804. Con 20 ms: 0,5 / 0,52 ≈ 0,9615. Hay distinta cantidad de correcciones por segundo; recalcular busca conservar aproximadamente la misma escala temporal.
6. Aceleración que aparenta inclinación
El cuerpo está nivelado y aparece 0,3 g adicional en Y, con aZ = 1 g. ¿Qué ángulo interpreta el acelerómetro? ¿Una norma cercana a g descarta el problema?
Ver solución
Interpreta atan2(0,3; 1) ≈ 16,7°. La norma es √(1 + 0,09) ≈ 1,044 g: puede quedar dentro de una tolerancia relativamente amplia y aun así el ángulo estar contaminado.
14 · Síntesis
Ideas para recordar
- El acelerómetro mide fuerza específica; quieto y apoyado no necesariamente marca cero.
- La inclinación desde acelerómetro depende de gravedad, ejes y ausencia de perturbaciones importantes.
- El giroscopio mide velocidad angular; integrar exige tiempo correcto, estado inicial y tratamiento del sesgo.
- Un error residual de giro se acumula y produce deriva.
- Una IMU de seis ejes no garantiza rumbo absoluto estable ni posición.
- El filtro complementario predice desde el estado fusionado y corrige con otra observación.
- Su ajuste depende del período y del compromiso entre ruido, corrección y perturbaciones.
- El modelo de un eje sirve para aprender; la orientación 3D requiere más cinemática y cuidados.
¿Listo para el tema 9?
Antes de avanzar, explicá por qué un robot quieto puede mostrar aceleración y por qué un gyro quieto puede acumular ángulo. Después calculá un paso del filtro usando unidades y dt explícitos.
En el próximo tema estudiamos encoders y medición de giro: cuadratura, conteo de pulsos y cálculo de velocidad para cerrar lazos de movimiento.