Problema del giroscopio

1

Estoy trabajando en un proyecto que requiere determinar el rol de un dispositivo. Estudié el método a través de lo que puedo hacer y creo que una IMU (Unidad de medición inercial) podría ayudarme. Comencé con el giro, pero no sé si funcionará correctamente. El giro comienza a desviarse demasiado rápido, si ruedo en una dirección, el ángulo del giro del giro es de aproximadamente 10 grados. Estoy utilizando el módulo de gyro ST3 L3GD20 . Si alguien pudiera explicarme si esto es normal, lo apreciaré.

    
pregunta Stefan Merfu

3 respuestas

3

Solo para agregar un poco más de explicación al por qué de usar un giroscopio vs acelerómetro para la orientación: un giro da la tasa de rotación, así que para obtener orientación, tenemos que integrar:

orientación = Integrar (gyro_data, dt) + C

La C nos dice que nunca obtenemos orientación absoluta, solo orientación relativa. Con el acelerómetro, al menos obtenemos una orientación absoluta con respecto a la gravedad.

La integración nos dice que nuestro ruido se acumulará con el tiempo, y nuestro valor para la orientación empeorará a medida que pase el tiempo. No es necesario que no se integre para obtener orientación desde el acelerómetro. Incluso si nuestro giroscopio tiene menos ruido que nuestro acelerómetro, podría tener sentido usar el acelerómetro. Depende de los niveles de ruido relativo y del tiempo que planee muestrear.

Donde brilla el giro es durante el movimiento dinámico del dispositivo. Podemos usar la combinación del giro y el acelerómetro para distinguir mejor el movimiento lineal del cambio en la orientación.

    
respondido por el Chad Kennedy
2

Como Scott Seidman sugirió usar un acelerómetro para determinar el rollo de un dispositivo. A continuación se muestra la ecuación que utilicé con el acelerómetro ADXL345 de Analog devices.

accelerationX = (signed int)(((signed int)rawData_X) * 3.9);
accelerationY = (signed int)(((signed int)rawData_Y) * 3.9);
accelerationZ = (signed int)(((signed int)rawData_Z) * 3.9);
pitch = 180 * atan (accelerationX/sqrt(accelerationY*accelerationY + accelerationZ*accelerationZ))/M_PI;
roll = 180 * atan (accelerationY/sqrt(accelerationX*accelerationX + accelerationZ*accelerationZ))/M_PI;

El código fuente completo que usé para el proyecto se puede encontrar aquí . Usted es más que bienvenido a bifurcar el código.

La respuesta a Cálculo de tono , yaw, y roll from mag, acc, y gyro data tiene más detalles que pueden resultarle útiles. También a continuación hay referencias que pueden ser útiles.

Referencias:

respondido por el Mahendra Gunawardena
1

Mire la página 9, tabla 2.1 - "Características mecánicas". Para una unidad de 250 grados / seg, el cero puede estar desactivado en +/- 10 grados / seg, por lo que debe determinar el nivel y luego proporcionar un desplazamiento. Esto luego variará con la temperatura, pero la unidad también proporciona una lectura de temperatura, y esto ayudará.

No está claro a qué se refieren tus 10 grados. ¿Está diciendo que una rotación en un eje (mecánico) da una lectura en uno de los ejes no giratorios de aproximadamente el 10% del eje válido? Si es así, es probable que esto sea causado por un accesorio que no es de precisión y que proporciona rotación en un eje distinto al que usted piensa.

En cualquier caso, estas unidades tienen una tasa de deriva considerable (y las unidades rápidas son aún peores), pero eso es lo que obtienes por el dinero. Los giroscopios con desviaciones mucho más bajas están disponibles, pero son más grandes y mucho más caros. Proporcionar el ajuste de desplazamiento adecuado depende de usted.

    
respondido por el WhatRoughBeast

Lea otras preguntas en las etiquetas