Selección de un acelerómetro para cálculo deducido

11

Nunca he usado un acelerómetro antes, pero soy consciente de que vienen con I2C, SPI y salidas analógicas. Si elijo usar un dispositivo I2c o SPI, ¿acumularé errores debido al tiempo de comunicación?

¿Es probable que el muestreo rápido de una señal analógica me proporcione una posición deducida más precisa que usar am I2C?

¿Será esto cierto para

  1. Un robot moviéndose en una habitación.
  2. Un robot que se mueve en un terreno al aire libre y es probable que se deslice y ruede por una pendiente.

Además, no tengo sentido de Gs. Traté de mover mi mano rápidamente con mi teléfono funcionando y un sensor en mi puño y vi que las lecturas se saturaron a 20 m / s 2 . ¿Qué G puedo esperar que mi robot experimente si es golpeado por otro robot gordo o golpeado por un humano que camina rápido?

Lord Loh
fuente

Respuestas:

5

Aumentar la frecuencia de muestreo del sensor no mejora su precisión o precisión. Esa es una característica del sensor que generalmente no puede cambiar. Si intenta estimar su posición mediante la integración de las aceleraciones solo, que sin duda va a acumular errores en el tiempo, ya que cada sensor es ruidoso. Si desea utilizar los acelerómetros para determinar la posición o la velocidad, debe combinarlos con algún otro sensor que realmente mida la posición (incluso con menor precisión) o la velocidad. Luego, puede combinar estas diferentes señales de sensor con un filtro Kalman para obtener una estimación razonable de dónde se encuentra y qué tan rápido se está moviendo.

Teniendo en cuenta las fuerzas G, considere que 1 G es 9.81 m / s ^ 2, lo que me parece mucho, en el contexto de los pequeños robots de hobby, al menos para los robots de interior. Al aire libre podría ser una historia diferente, dependiendo de qué tan poderoso sea su motor. Una saturación a 20 m / s ^ 2 debería ser suficiente.

Daniel Eberts
fuente
4

Piense en términos de su velocidad de bucle de control. Una velocidad de bucle de control rápido típica es de 1 kHz. Algunos robots usan una velocidad más rápida, otros más lento. Por lo general, la velocidad de su bucle de control es más alta de lo que realmente necesita.

Por lo tanto, cada cuadro de control dura 1000us. Dentro de este marco de control necesita:

  • Muestra tus sensores
  • Realizar los cálculos de control
  • Enviar las nuevas salidas a los motores.

Mientras pueda hacer todo esto cómodamente dentro del período de tiempo, no tendrá problemas. Entonces, ¿cuánto tiempo lleva leer el acelerómetro? Si se trata de un dispositivo de 3 ejes, que utiliza 400 kbps I2C, entonces podría tomar alrededor de 160us leer los datos. Eso te deja a 840us para realizar el cálculo y actualizar los motores. Incluso un PIC de 8 bits puede manejar eso.


Sobre las fuerzas G. Durante un impacto, pueden ser sorprendentemente altos. Por ejemplo, ¿cuánto golpe cree que se necesitaría para romper un disco duro? Probablemente no tanto. Bueno, un disco duro que había dicho recientemente que estaba clasificado para una aceleración máxima de 75G. Entonces, espere que dos robots colisionen para producir al menos varios G. Es imposible estimar con precisión porque depende en gran medida del diseño mecánico de los robots. Si ambos son completamente sólidos como bolas de billar, entonces puede esperar aceleraciones muy altas. Si tienen algún tipo de caparazón flexible, esto reducirá la aceleración en gran medida. Pero, la pregunta es, ¿realmente necesita saber el valor real de la aceleración durante un impacto?

Rocketmagnet
fuente
1

De su pregunta, supongo que está tratando de obtener su posición de los acelerómetros. Echa un vistazo a qué tipo de erroresestás esperando antes, y luego quizás reconsideres. La estimación de posición tiene errores muy grandes, principalmente debido a la incertidumbre en la orientación. La aplicación en barcos, aviones, cohetes, etc. utiliza IMU de grado de navegación de alta precisión muy caras. La latencia, a la que se reduce su pregunta, no es un gran problema. Más relevante es la sincronización entre sus otros sensores (por ejemplo, Gyros). Los acelerómetros generalmente no se usan para la estimación de la posición (hay algunos casos en los que ayuda, pero solo por períodos cortos), sino más bien para compensar la deriva del giroscopio en la estimación de la orientación. También puede usarlos directamente para estimar su orientación, pero luego su estimación se ve perturbada por aceleraciones dinámicas.

Jakob
fuente