Nuestro robot tiene una matriz circular de 12 sensores de sonda que se ve así:
Los sensores del sonar son bastante buenos. Usamos un filtro de paso bajo para lidiar con el ruido, y las lecturas parecen bastante precisas. Sin embargo, cuando el robot se encuentra con una superficie plana como una pared, sucede algo extraño. Los sonares no muestran lecturas que indiquen una pared, en cambio, aparece como una superficie curva.
La siguiente trama se realizó cuando el robot estaba frente a una pared. Vea la curva en las líneas azules, en comparación con la línea roja recta. La línea roja se produjo mediante el uso de una cámara para detectar la pared, donde las líneas azules muestran lecturas de sonda filtradas.
Creemos que este error se debe a la diafonía, donde el pulso de un sensor sonar rebota en la pared en ángulo y es recibido por otro sensor. Este es un error sistemático, por lo que realmente no podemos tratarlo como lo haríamos con el ruido. ¿Hay alguna solución para corregirlo?
fuente
Respuestas:
Este es un problema común y uno de los muchos. La detección acústica es un campo de estudio complicado, una parte importante de la cual se dedica a adivinar qué camino tomó una onda de sonido entre enviarla y recibirla. Como habrás notado, suponiendo que salió directamente y regresó producirá resultados extraños en la práctica.
Para resolverlo realmente, deberá usar un sistema que coloque una frecuencia y / o duración de tono única en cada sensor. Esto puede llevarse a extremos significativos, por ejemplo , modulación de ancho de pulso pseudoaleatorio de salto de frecuencia para eliminar la diafonía de los sensores de sonda en los robots móviles .
También hay una solución de baja tecnología, que es bastante simple en concepto. Si simplemente quisiera detectar la diafonía, sería cuestión de disparar el pulso de un solo sensor entre el disparo de todos los pulsos de los sensores. Si detecta el pulso de retorno con cualquier otro sensor, sabe que se encuentra en una situación de diafonía.
En la práctica, esto es bastante derrochador: observe que efectivamente reduce a la mitad el número de muestras que puede tomar. Por lo tanto, puede mejorar la implementación dividiendo los sensores en grupos donde cada miembro del grupo esté lo suficientemente lejos de los demás como para que no reciba diafonía. La versión más sólida de este enfoque es hacer que los grupos sean pseudoaleatorios, lo que no solo permite que los errores se promedien con el tiempo, sino que ayuda a la detección de diafonía en función de un sensor individual.
En su caso particular, tiene la ventaja adicional de que un sensor de cámara que ha mostrado está devolviendo un valor más correcto para los rangos. Las estrategias para combinar mediciones separadas (y posiblemente conflictivas) en una sola estimación más precisa es su propio tema muy amplio (llamado fusión , ejemplo 1 , ejemplo 2 ), pero muy relevante para lo que está haciendo aquí.
fuente
Algunos sensores, como el Maxbotix MB1200 XL-MaxSonar-EZ0, tienen un sistema de encadenamiento integrado en el que un sensor activa el siguiente sensor una vez que ha terminado su medición. De esta forma, puede tener N sensores y asegurarse de que solo uno esté disparando a la vez, pero que el siguiente sensor se dispare tan pronto como el primero haya recogido su retorno. Esta solución es simple pero obviamente reduce en gran medida la cantidad de datos que obtiene por unidad de tiempo. Las soluciones de Ian están mucho más cerca de lo óptimo.
fuente
¿Es posible usar múltiples sensores ultrasónicos en un solo robot? Sí: "Uso de múltiples sensores de sonda" .
Como ya ha descubierto, un sensor a menudo recibe ecos de pings enviados por otro sensor. Hay varias formas de lidiar con la sensibilidad cruzada, más o menos en el orden más simple primero:
PD: ¿Has visto "Infrarrojo vs. Ultrasónico: lo que debes saber" ?
(Sí, he dicho todo esto antes, en "Pregunta de telémetro ultrasónico múltiple" ).
fuente