Mediciones de posición usando sonido y ultrasonido

De nada Pec
Muchachos, muchisimas gracias a todos!!! Al final lo termine resolviendo usando al viejo Pitagoras, nada mas :) ya se puede cerrar este tema, si quieren.
Pero es la típica.
Al principio ni idea de por dónde empezar.
Después, varios foristas pusimos unas cuantas horas de nuestro tiempo para ayudarle a siquiera encarar el tema. Se le mostraron varios caminos con lujo de detalles y todo tipo de consideraciones especiales, dejando claro además que el problema no es para nada trivial.
Finalmente, "solito", resolvió el problema por una vía "más elemental", pero NO nos va a mostrar cómo.
Vaaaamos !!!
...
Bueno, por lo menos dió las gracias.
 
Última edición:
...

bueno, no perdamos la esperanza, a lo mejor la incognita se devela y el forista nos cuenta como lo hizo.

Por lo pronto, igual a mi este post me ha servido muchisimo y todavia me queda por digerir parte del material que esta expuesto.
 
Pero es la típica.
Al principio ni idea de por dónde empezar.
Después, varios foristas pusimos unas cuantas horas de nuestro tiempo para ayudarle a siquiera encarar el tema. Se le mostraron varios caminos con lujo de detalles y todo tipo de consideraciones especiales, dejando claro además que el problema no es para nada trivial.
Finalmente, "solito", resolvió el problema por una vía "más elemental", pero NO nos va a mostrar cómo.
Vaaaamos !!!
No se que te sorprende, desde el primer mensaje se veía que este era un típico caso del pibe que quiere mover un carrito robótico y está convencido que conocer la posición son dos líneas de programa y también que los emisores/receptores de ultrasonido se comportan como él necesita y no hay mas que enchufarlos.
Al menos para mi, ese es un detalle sin importancia.

Es frecuente que en un tema donde se "enganchan" varias personas se termine desviando de los aspectos que interesan al iniciador a aspectos que interesan a quienes están participando.
A mi en particular, Pec y el movimiento de su carro no me interesan en absoluto. Pero sí los diferentes algoritmos para extraer la posición --> Por eso me sumé. Porque a mí eso me interesaba y tenía la impresión que a vos y a otros también.

Es más, está pendiente el análisis de algoritmos iterativos, mas aptos para trabajarlo en microcontroladores :)
 
Si, tenés razón. Lo mío también es vocacional.
Pero hubiera sido una pena que cierren el tema.

Es más, está pendiente el análisis de algoritmos iterativos, mas aptos para trabajarlo en microcontroladores :)
Está buena tu idea. Habría que pensar un problema tipo como el que tiraste antes, cosa de focalizar y ver qué dificultades van surgiendo. (y)

Y además los algoritmos iterativos son "ideales" para la gente de edades extremas (los más jóvenes y los más vejetes). Los del medio suelen estar muy ocupados intentando atrapar mujeres :LOL:.

Hablando en serio, tratándose de dimensiones bajas (2D, 3D) algoritmos simples como el de Jacobi o de Gauss-Seidel (su versión sobre-relajada, no confundir con Gauss-Jordan) deberían andar sobrados para resolver sistemas de ecuaciones que calculan coordenadas de posición.
Hay otros algoritmos más elaborados como Gradientes Conjugados y todas sus secuelas, pero están
más pensados para problemas de dimensión alta (N>>35) y matrices complejas, ralas, etc.

:confused: ¿Cómo? ¿Se puede saber? Supongo que al final es al revés: El cerebro esta en el receptor móvil y se sabe exactamente cuando transmiten los transmisores fijos un "beacon" a intervalos regulares.
Esa también está buena. Si es un carrito que emite un pulso, los rebotes en objetos de la periferia van a ser recibidos en tiempos con inicio prestablecido. Es como si conocieramos TC en las ecuaciones del problema anterior.

Claro que suponemos que la señal del pulso de rebote es bien limpia, cosa que no es fácil obtener.
Ni hablar si hay muchos obstáculos.
 
Última edición:
que usan ?? emisores ultrasonicos ??
(yo nunca use pero me dan dudas) ;

si emito una señal, dentro de un cuarto (un rectangulo) y luego espero el rebote:
¿ como distingo rebotes de un cuerpo dentro de el cuarto de los rebotes de las paredes ??

si considero (estando en modo recepcion) que la onda emitida es como una onda en el agua (un circulo o mas bien un semicirculo si la apunto hacia un lado:
tendre muchos rebotes.

¿ como se maneja eso ???
 
Lo que se ha hecho en este hilo es trabajar con "tiempo de vuelo" para varios sensores y para ubicar una sola fuente en condiciones de señal "limpia". Es decir: con todo a favor.
Tener en cuenta señales espúreas es bastante complicado y creo que se va de este tema.

...
si emito una señal, dentro de un cuarto (un rectangulo) y luego espero el rebote:
¿ como distingo rebotes de un cuerpo dentro de el cuarto de los rebotes de las paredes ??
...
¿ como se maneja eso ???
Si el objeto está más cerca que la pared, su reflexión llegará primero.
También conviene ir guardando medidas anteriores, o hacer mediciones sin obstáculos.
A mayor habilidad requerida, mayor complejidad del sistema.
 
Última edición por un moderador:
No sé cómo harán otros pero yo he probado en el rango audible y se va complicando en proporción al detalle que uno quiere lograr (como es lógico).

Hay algunas consideraciones básicas:

* Para la técnica de tiempo de vuelo conviene usar pulsos, porque con onda continua se forman ondas estacionarias debido a las dimensiones de la sala. En la técnica de "tiempo de vuelo" para ondas, se hacen las cuentas como si la señal viajera fuera una pelotita (para decirlo simple). El dispositivo emisor/detector emite un pulso de sondeo y detecta la señal reflejada sobre un blanco, situado a una distancia D. La señal viaja a velocidad fija conocida V, y tarda en ir y volver un tiempo total T. Con eso se calcula la distancia al blanco D.

D = V . T/2.

* A igual distancia, si la señal detectada es más intensa significa que el objeto tiene mayores dimensiones (mayor sección detectable).

* El tamaño máximo del recinto de trabajo está relacionado con qué tan rápido disminuye la energía del pulso a medida que viaja.
a) Por el solo hecho de propagarse la intensidad de la señal disminuye con la distancia detector-blanco al cuadrado. Si el pulso se refleja lejos, volverá con poca amplitud.
b) Si el medio es absorbente se puede perder algo de energía de la señal durante el viaje. La absorción reduce la intensidad en forma exponencial con el espesor del absorbente. A los fines prácticos es como si el blanco estuviera más lejos. Ejemplo: en el cine las cortinas pesadas sobre las paredes reducen la reverberación (ecos múltiples superpuestos).

* Se debe poner un límite al tiempo que se tiene abierto el canal de entrada de señal: si no llegó señal luego de cierto tiempo T es que los obstáculos están demasiado lejos (D > V T/2), o que hay un absorbente en medio.

* Con frecuencias más altas se logra mayor resolución (y precisión) en recintos más chicos.
La calidad de las medidas de distancia depende de la precisión con que se miden los tiempos. Dos objetos que reflejan el mismo pulso de sondeo se podrán "resolver" (distinguir) si los tiempos de llegada de ambos pulsos están separados un tiempo mayor que la duración de cada pulso. Para mejorar la resolución se deberá trabajar con pulsos lo más cortos posible.

* La ventaja de trabajar con ultrasonido es que no interfieren los sonidos del ambiente. La desventaja es que como no se puede verificar "a oido" qué es lo que pasa (a menos que uno sea medio batman) requiere trabajar con instrumental (osciloscopio).
 
Última edición por un moderador:
Temas combinados ya que en realidad hablan de lo mismo....
Como en este tema se discute la matemática de un cálculo concreto, creí que debía abrir otro tema
para tratar otros detalles como estrategias de tratamiento de señal y hardware.
Pensé que con el enlace se resolvía la desconexión. Sorry.

Entonces este aporte elemental lo pongo acá.
Disculpen si hay algún fallo en la notación, el texto lo recorté de un informe más extenso. Volví a controlar todo, pero puede haber quedado algún detalle. Igual son cuentas relativamente sencillas que cualquiera puede seguir.

Dimensionamiento de un sistema de sonar activo en aire, para detección de obstáculos en corto rango (pocos metros).

El sistema consta de un par de detectores acústicos separados una distancia d, y de un emisor de pulsos ubicado en su centro, a una distancia h de ambos. El esquema se muestra en la figura 1.
Fig 1.PNG
Figura 1: Esquema del dispositivo. El alcance máximo de detección es R.

El proceso de detección se inicia emitiendo un pulso de duración Tp desde el emisor central (sonar activo). Se debe esperar un tiempo Te=h/s hasta que la cola del pulso emitido abandone la región de los detectores.
A continuación se enciende el sistema detector esperando el retorno del pulso emitido. El pulso dispersado por el objeto más cercano será recibido por ambos detectores, en general en instantes diferentes T1 y T2. Inmediatamente recibido el flanco de ataque en los micrófonos se inhibirá la detección de nuevos pulsos hasta transcurrido un tiempo tal que garantice la extinción de las subsiguientes reflexiones.
Las cantidades R1 = ½ s T1 y R2= ½ s T2 son las distancias desde el objeto reflector hasta los sensores 1 y 2 respectivamente.
Además, el retardo (T1-T2) medido entre los dos micrófonos permitirá determinar el ángulo de incidencia del pulso acústico detectado, y por lo tanto la posición angular de la fuente dispersora, relativa a la línea que une los micrófonos (ver fig. 3).

Acondicionamiento del sistema

Para un pulso de sondeo de duración Tp, el sistema de detección no se debe encender hasta que el fin del pulso emitido abandone el detector más lejano. El tiempo muerto total Tmín, desde el inicio del pulso emitido hasta el inicio de la detección, debe ser:

Tmín ≥ Tp + Te, con: Te = h/s

Los tiempos del sistema y su relación con las dimensiones geométricas se pueden apreciar en la figura 2.
Fig 2.PNG
Figura 2: Temporización en vacío (sin medir).

En la gráfica se muestra el rango máximo de apertura del canal detector, dentro del cual ocurren las detecciones de flancos. Para que no se confundan diferentes pulsos cada canal detector debe bloquearse una vez que ha detectado un flanco. Para diferenciar flancos de diferentes procedencia se debería medir la amplitud del pulso o su forma temporal.

[/SIZE]Determinación de la dirección de incidencia.

En la figura 3 se muestra la dirección de incidencia de la onda en cada micrófono, donde a es el ángulo de incidencia media respecto de la dirección normal a la línea que une los micrófonos, y T es el retardo resultante entre los flancos recibidos en cada micrófono.
Fig 3.PNG
Figura 3 .- Tiempo de retardo debido a la dirección de incidencia.

De aquí puede deducirse una expresión para el sen(a) en función del retardo T medido, y algunas constantes del sistema:

sen(a) = s T / d

Recordando que d = 2 h y Te = h/s, podemos tomar como unidad de tiempo la cantidad Te, y se tiene:

sen(a) = ½(T/Te)

Las coordenadas (x,y) del objeto dispersor son:

x = R sen(a)

y = R cos(a)


que en función de T y Te se pueden expresar:

x = ½ R (T/Te)

y = ½ R √[4 - (T/Te)2]

Expresando R en función del tiempo de vuelo promedio, y usando s = 0.33 cm/us:

Tm = ½ (T1 + T2)

R ~
[/SIZE]½ s[/SIZE] Tm = ½ 0.33 (cm/us) Tm

se llega a las expresiónes generales:

x (cm) = 0,165 Tm (us) T/Te

| y | (cm) = 0,165 Tm (us) √[4 – (T/Te)2]


donde T y Te se deben expresar en las mismas unidades. Se debe notar que esto puede hacerse porque el emisor está en el centro de los detectores y por eso se conocen los valores absolutos de T1 y T2, no solo su diferencia.

Obsérvese que hasta aquí todo depende de un parámetro estructural (la distancia entre sensores) y de la velocidad del sonido. Lo demás son tiempos medidos en alguna unidad, por ejemplo número de pulsos de clk del micro. Sólo al tiempo Tm se lo debe pasar a us.
Tampoco
[/SIZE]
depende de si se emplea sonido o ultrasonido.

De la figura 3 se deduce que si el retardo T es positivo, el pulso detectado proviene del semiplano con x > 0. En este caso el detector derecho D2 inicia la medición del retardo y el detector izquierdo D1 la termina. Viceversa, si T < 0 => x < 0; D1 inicia la medición y D2 la termina.
La ordenada y, en cambio, no puede determinarse unívocamente debido al doble signo de la raíz cuadrada.
Una idea con dos emisores para establecer el signo de y se muestra en la figura 4.

Fig 4.PNG

PD: Dedicado a un amigo que tenía en el foro, que me decía que no había que hacer aportes para no favorecer a los malos tipos.
 
Última edición:
Mirando cómo funciona un GPS, veo que no estuve tan desacertado al decir que se debe transmitir la hora, así sabemos la hora de la transmisión. Cosa que mas nos complicó.

Si no tienen ganas de leer el link, les resumo: El GPS transmite 1 ms de ruido, la hora UTC sin leap second, un calendario donde va a estar la próxima semana y su posición exacta. (No necesariamente en ese orden)
 
Del momento en que el sistema de posicionamiento se basa en tiempos, obviamente tenes razon en decir que si el sensor envia el tiempo se simplifica el calculo. Pero, que pasa con la implementacion?

Para que la medicion tenga sentido, todos los receptores y emisores tienen que estar sincronizados, no puedo hacer calculos sobre cuando emitio el emisor si su reloj tiene una diferencia desconocida con respecto a mi reloj. No se puede hacer calculos entre los diferentes sensores si sus relojes no estan sincronizados

En los satelites GPS tal problema se resuelve utilizando relojes de muy alta precision y baja deriva, relojes atomicos.

En nuestra implementacion tenemos varias maneras posibles de actuar. Los requisitos son

1 Todos los sensores fijosdeben estar sincronizados entre si
2 Sincronismo del sensor movil
a Por tiempo de "ida y vuelta". Los sensores fijos envian un pulso, cuando el sensor movil lo recibe lo reenvia y se mide el tiempo total
b el sensor envia el tiempo de emision de su pulso. Hay que definir como se sincroniza el reloj del movil con los fijos
c Los sensores emiten periodicamente y la logica de calculo se realiza en el movil
d El sensor informa de su momento de emision mediante una señal rapida (luz, RF)
e No se sabe el momento de emision y se agrega un sensor mas para calcularlo.

Seguro se me queda alguna otra forma en el tintero

Saludos
 
En nuestra implementacion tenemos varias maneras posibles de actuar. Los requisitos son
En que tipo de sistema están pensando ?
Si usan GPS es porque las distancias son grandes y ahí interviene geometría esférica, no un recinto rectangular.
Por otra parte, si el emisor y detector están gestionados por el mismo microcontrolador la sincronización está garantizada.
O me perdí de algo.
 
Última edición:
el "murciegalus tremendus " no ve con sonar ?? y solo tiene uno de frente

imagnio que es la explicacion de alejandro , no ??
un emisor ...... 2 receptores .
 
Última edición:
En un sistema con varios detectores fijos y uno movil, no puede ser que el movil y los fijos esten manejados por el mismo microcontrolador, gran parte de la discusion ha sido como determinar el tiempo de emision del pulso, si este no se conoce, y en muchos casos no se conoce.

El caso del murcielago seria parecido al caso en que los sensores fijos emiten un pulso, el movil lo recibe y lo retransmite. Nuestros sensores no son tan buenos como para captar rebotes en forma efectiva como lo hace el murcielago... todavia nos falta para eso. Por lo menos, en aplicaciones hogarenias.

Me parece que la solucion de alejandro es tipo murcielago... pero no es lo que veniamos discutiendo.
 
Última edición:
hogareña debe ser sencilla.

o el movil tiene todo (tx y Rx) tipo para un robot.
o el fijo tiene todo (no le voy a pedir a un ladron en caso de un detector de seguridad que ande el pobre con un retransmisor ) .
y si es fijo la idea seria un solo modulo comenrcial, no distribuir sensores lejos uno de el otro .

no dan los tiempos para captar diferencia de tiempo de llegada de el eco el entre 2 sensores que esten por decir algo a 5 o 10 cm de distancia ??
 
El problema y la pregunta originales era, dado un rectangulo, en el que se pueden poner varios sensores ultrasonicos, calcular la posicion de un movil dentro de ese rectangulo.

Desde ahi en adelante deliramos lo que se ve en este hilo. Eso no quiere decir que no haya otros problemas y otras soluciones, sonar, medidor de distancia, etc, u otros enfoques posibles a este problema.
 
El robot único es lo que está al alcance de un hobista con recursos limitados.
La intercomunicación en sistemas distribuidos es un tema candente. Está en pleno desarrollo tanto la tecnología en sí, como las posibles aplicaciones (piensen en el grupito de cuadricópteros).

A propósito del murciélago, no trabaja con un pulso monofrecuencia, sino con algo parecido a un "chirp" (piar) o barrido en frecuencias, y aprovechando el corrimiento Doppler para detectar no sólo posición sino velocidad de sus presas (ecolocación).

300px-PipiBat.jpg
300px-LinearChirp.jpg

Espectrograma de un murciélago------------------Espectrograma de un Chirp lineal

Algo interesante:
Wiki dijo:
La geometría compleja de las crestas en la superficie interna de las orejas de murciélago ayuda a enfocar bien no sólo las señales de ecolocalización, sino también para escuchar pasivamente a cualquier otro sonido producido por la presa. Estas crestas se pueden considerar como el equivalente acústico de una lente de Fresnel, y pueden ser vistos en una gran variedad de animales no relacionados, como el galago aye-aye, menor, orejas de murciélago zorro, el ratón lemur, y otros


El esquema que yo presenté arriba apunta a reproducir la audición estereofónica humana y su habilidad para localizar la posición angular de una reflexión, o de una fuente.
Lo notable es que podemos identificar el ángulo de posición vertical, para lo cual la separación horizontal de los oídos no ayuda mucho. Esto aún es un misterio para mí.
 
Última edición:
Atrás
Arriba