Un supositorio para la Revolution

nxname escribió:bueno para los que no lo vieron... lo vuelvo a poner

Imagen
http://www.wirelesspointers.com/
xDDD Ah? Pero sigues empeñado? ya te lo dije en otro post pero te lo repito:

1.- La empresa que fabrica esos mandos es la misma que contrató Nintendo hace 4 años para crear la tecnología de Revolution.

2.- Esos punteros no funcionan en 3D, sino en 2D, con lo cual no tienen nada que ver con el mando de Rev.

Un saludo
nxname escribió:bueno para los que no lo vieron... lo vuelvo a poner

Imagen
http://www.wirelesspointers.com/


ZzzZZ
efegea escribió:¿Con bluetooth se puede saber la distancia del emisor/receptor?

Por poderse, si que se puede. Sabiendo la frecuencia en la que trabaja Bluetooth (2,4 ghz) podemos calcular la longitud de onda.

f=C/L
f es la frecuencia
c es la velocidad de la luz
L = lambda (longitud de onda)

... y midiendo los tiempos de retorno de la señal, se pueden hacer los calculos para hayar la distancia a la que se encuentran los sensores.
efegea escribió:Porque si es así, me remito a un post que puse en otro hilo y nadie comentó. ¿Podría ser que los sensores calculasen la distancia entre los que tiene el mando y en base a eso hiciese unos calculos para determinar la posición/rotación del mando?

Si, es posible, salvo por un detalle. De la forma en que estan puestos los sensores en tu imagen no permiten saber si el mando esta girado boca-abajo o no, ni la inclinación de este:
Imagen
(perdon por la cutre-imagen) Como ves, la distancia sigue siendo la misma para los tres mandos, pero no estan en la misma posicion.

Seria necesario que un sensor estuviese arriba y otro abajo (en distintos planos) para poder triangular con exactitud, y además saber exactamente la distancia entre los sensores.
efegea escribió:¿Con bluetooth se puede saber la distancia del emisor/receptor?

Por poderse, si que se puede. Sabiendo la frecuencia en la que trabaja Bluetooth (2,4 ghz) podemos calcular la longitud de onda.

f=C/L
f es la frecuencia
c es la velocidad de la luz
L = lambda (longitud de onda)

... y midiendo los tiempos de retorno de la señal, se pueden hacer los calculos para hayar la distancia a la que se encuentran los sensores.
efegea escribió:Porque si es así, me remito a un post que puse en otro hilo y nadie comentó. ¿Podría ser que los sensores calculasen la distancia entre los que tiene el mando y en base a eso hiciese unos calculos para determinar la posición/rotación del mando?

Si, es posible, salvo por un detalle. De la forma en que estan puestos los sensores en tu imagen no permiten saber si el mando esta girado boca-abajo o no, ni la inclinación de este:
Imagen
(perdon por la cutre-imagen) Como ves, la distancia sigue siendo la misma para los tres mandos, pero no estan en la misma posicion.

Seria necesario que un sensor estuviese arriba y otro abajo (en distintos planos) para poder triangular con exactitud, y además saber exactamente la distancia entre los sensores.
Elohe escribió:Una pregunta, tu como calculas la tercera dimension, el unico metodo simple y eficaz usando 3 antenas que se me ocurre, es mediante una tecnica derivada de los radares FM, Luego recuerda que no se a de hacer segumiento d eun mando si no de 4 lo cual complica el sitema, el metodo IR (en realidad optico) del que he propuesto una teoria, aunque en principio es mas complejo, su aplicacion es simple a mas no poder

Para calcular las 3D usando 3 antenas receptoras y una emisora (por ejemplo uno de los extremos del mando) daré una de las posibilidades, aplicándolo a la Revo:

La Revo emite una señal en un tiempo T0 hacia el mando. El mando la recibe y la rebota de nuevo a la consola tardando el mando un intervalo de tiempo tiempo T1 en reenviarla. La consola la recibe en un tiempo T2. Conociendo que la transmisión re realiza a la velocidad de la luz c, es posible conocer la distancia entre el mando y la consola D0:

D0 = ((T2 - T1 - T0) / 2) * c ,, Espacio entre el mando y la consola. Se divide entre 2 porque (T2 - T1 - T0) es el tiempo de ida y vuelta.

Para conocer la distancia entre la consola y las dos antenas se mide también enviando una señal a cada una de ellas. Por ejemplo en T3 se envía una señal desde la consola a la 1ª antena a través del aire, y se recibe a través del hilo eléctrico que la conecta de nuevo a la consola en un tiempo T4. La distancia entre la consola y la 1ª antena D1 será:

D1 = (T4 - T3) / 2 * c , Distancia entre la consola y la 1ª antena

Por el mismo método se mide la distancia a la 2ª antena D2.

La distancia D3 entre antenas sería conocida si ambas están en los extremos de una barra. Si no lo estuvieran sería también sencillo de determinar la distancia que las separa enviando una señal de una a otra, calculando el tiempo entre emisión y recepción, restándoles los tiempos correspondientes a la propagación por los cables, y multiplicándolo por c.

En estos momentos la consola sabe las distancias que la separan del mando y de las dos antenas. También el espacio que distan las antenas entre sí.

Ahora el mando a distancia emite una señal que van a recibir los tres receptores (las dos antenas y la consola).

Si la consola recibe esta señal en un tiempo T4, sabrá que fué emitida en un instante de tiempo

T5 = T4 - ((T2 - T1 - T0) / 2)

De la antena 1ª se recibe la señan en un tiempo T6, por tanto el intervalo de tiempo T7 transcurrio desde que salió la señal del mando hasta que llegó a la antena será de

T7 = T6 - (T4 - T3) / 2 - T5

Por tanto la distancia entre el mando y la antena 1ª será de

D4 = T7 * c

Por un método análogo se consigue la distancia D5 desde el mando a la 2ª antena.

Por ahora tenemos las distancias entre los tres vértices de un triándulo formado por la consola y las dos antenas: D1, D2, y D3.

También tenemos la distancia entre el mando y la consola, el mando y la antena 1ª, y el mando y la antena 2ª: D0, D4 y D5.

Con estos datos se puede triangular perfectamente la posición 3D del mando. El sistema es muy sencillo en realidad, y no necesita de giróscopos ni acelerómetros. De ahí que me extraña que los utilicen, pero no dudo que técnicamente habrán visto que tal y como lo hacen sea mejor. El caso es que me gustaría saber por qué.

Yo si tuviera que hacer el diseño no usaría la señal de bluetooth para la triangulación sino solamente para la información de los controles del mando. La triangulación la conseguiría como comenté antes con secuencias Golay, transmitiendo a baja potencia por debajo del nivel de ruido radioeléctrico.

El método IR como se ha dicho anteriormente, lo descarto porque necesita visión directa con el receptor, y porque los mandos a distancia IR no transmiten un haz concentrado sino disperso.

efegea si a tu esquema le metes la consola como otra antena, ya tendrías la triangulación "completa" en 3D, según mi "supositorio".

supermoves, ¿Cómo haces para enviar dos y más mensajes seguidos? A mí no me deja aunque sean diferentes. Algo deben tener los servidores con tu perfil que te los replican de vez en cuando.
Si, se me ha quedado la web empanada al enviar el mensaje, Asi que lo volvi a reenviar porsiaca. Debe ser algun problema del server.
Lo siento.

Y siento tambien ser tan pesado con esto pero... A pesar de que usemos triangulación por radiofrecuencia, solo resolvemos una parte del problema, la de la posición del mando en el espacio.
Pero se sigue sin resolver el problema de Cómo detecta la consola los giros del mando sobre si mismo. Si esta boca arriba o boca abajo....

Obviamente, al menos hay un giroscopio.
yo creo que el mando tiene sensores de inclinacion, una cosa no quita la otra.
supermoves escribió:Y siento tambien ser tan pesado con esto pero... A pesar de que usemos triangulación por radiofrecuencia, solo resolvemos una parte del problema, la de la posición del mando en el espacio.
Pero se sigue sin resolver el problema de Cómo detecta la consola los giros del mando sobre si mismo. Si esta boca arriba o boca abajo....

Obviamente, al menos hay un giroscopio.


Eso es cierto. En mi explicación asumía que no se detectaría la rotación sobre sí mismo en su eje longitudinal.

Aunque no necesariamente debe ser un giroscopio, podría ser un acelerómetro que es mucho más barato y detecta siempre la dirección de la aceleración, en este caso la de la gravedad.
Obviamente el giroscopio es mejor no obstante.
Aún cabe otra opción.

La del japones chiquitin que vive dentro del mando.

Pobrecillo, las va a pasar canutas.
vidda escribió:Para calcular las 3D usando 3 antenas receptoras y una emisora (por ejemplo uno de los extremos del mando) daré una de las posibilidades, aplicándolo a la Revo:

La Revo emite una señal en un tiempo T0 hacia el mando. El mando la recibe y la rebota de nuevo a la consola tardando el mando un intervalo de tiempo tiempo T1 en reenviarla. La consola la recibe en un tiempo T2. Conociendo que la transmisión re realiza a la velocidad de la luz c, es posible conocer la distancia entre el mando y la consola D0:

D0 = ((T2 - T1 - T0) / 2) * c ,, Espacio entre el mando y la consola. Se divide entre 2 porque (T2 - T1 - T0) es el tiempo de ida y vuelta.

Para conocer la distancia entre la consola y las dos antenas se mide también enviando una señal a cada una de ellas. Por ejemplo en T3 se envía una señal desde la consola a la 1ª antena a través del aire, y se recibe a través del hilo eléctrico que la conecta de nuevo a la consola en un tiempo T4. La distancia entre la consola y la 1ª antena D1 será:

D1 = (T4 - T3) / 2 * c , Distancia entre la consola y la 1ª antena

Por el mismo método se mide la distancia a la 2ª antena D2.

La distancia D3 entre antenas sería conocida si ambas están en los extremos de una barra. Si no lo estuvieran sería también sencillo de determinar la distancia que las separa enviando una señal de una a otra, calculando el tiempo entre emisión y recepción, restándoles los tiempos correspondientes a la propagación por los cables, y multiplicándolo por c.

En estos momentos la consola sabe las distancias que la separan del mando y de las dos antenas. También el espacio que distan las antenas entre sí.

Ahora el mando a distancia emite una señal que van a recibir los tres receptores (las dos antenas y la consola).

Si la consola recibe esta señal en un tiempo T4, sabrá que fué emitida en un instante de tiempo

T5 = T4 - ((T2 - T1 - T0) / 2)

De la antena 1ª se recibe la señan en un tiempo T6, por tanto el intervalo de tiempo T7 transcurrio desde que salió la señal del mando hasta que llegó a la antena será de

T7 = T6 - (T4 - T3) / 2 - T5

Por tanto la distancia entre el mando y la antena 1ª será de

D4 = T7 * c

Por un método análogo se consigue la distancia D5 desde el mando a la 2ª antena.

Por ahora tenemos las distancias entre los tres vértices de un triándulo formado por la consola y las dos antenas: D1, D2, y D3.

También tenemos la distancia entre el mando y la consola, el mando y la antena 1ª, y el mando y la antena 2ª: D0, D4 y D5.

Con estos datos se puede triangular perfectamente la posición 3D del mando. El sistema es muy sencillo en realidad, y no necesita de giróscopos ni acelerómetros. De ahí que me extraña que los utilicen, pero no dudo que técnicamente habrán visto que tal y como lo hacen sea mejor. El caso es que me gustaría saber por qué.

Yo si tuviera que hacer el diseño no usaría la señal de bluetooth para la triangulación sino solamente para la información de los controles del mando. La triangulación la conseguiría como comenté antes con secuencias Golay, transmitiendo a baja potencia por debajo del nivel de ruido radioeléctrico.

El método IR como se ha dicho anteriormente, lo descarto porque necesita visión directa con el receptor, y porque los mandos a distancia IR no transmiten un haz concentrado sino disperso.

efegea si a tu esquema le metes la consola como otra antena, ya tendrías la triangulación "completa" en 3D, según mi "supositorio".

supermoves, ¿Cómo haces para enviar dos y más mensajes seguidos? A mí no me deja aunque sean diferentes. Algo deben tener los servidores con tu perfil que te los replican de vez en cuando.


Pero se te presenta un problema tecnico, como vas a seguir a 4 mandos simultaneamente a la suficente velocidad, al menos son necesarias 100 muestras/s por punto como minimo para una precision mediocre, luego habria que calibrar el sistema, cosa que seria de manera manual. Lo que los infrarojos emitan un haz disperso no es importante, el sistema se basa en un sistema de puntos y los principios de vision binocular, y dependieno de como se ven estos puntos se detecta a donde apunta y la distancia, el resto de la informacion se hace mediante giroscopio.

Tu sistema es tecnicamente muy correcto, pero en la practica es poco viable para este caso. Segun los comentarios de gente que lo ha probado, cuando pasa una persona por delante del mando se pierde el control de los juegos en que es usado como puntero, lo que casa con la teoria de infrarrojos, y no con la tuya, ademas ¿para que se usaria los infrarrojos segun tu, ya que el mando tiene la tipica ventana?.
supermoves escribió:Por poderse, si que se puede. Sabiendo la frecuencia en la que trabaja Bluetooth (2,4 ghz) podemos calcular la longitud de onda.

f=C/L
f es la frecuencia
c es la velocidad de la luz
L = lambda (longitud de onda)

... y midiendo los tiempos de retorno de la señal, se pueden hacer los calculos para hayar la distancia a la que se encuentran los sensores.


No, la distancia no se mide asi, porque no sabes cuantas longitudes de onda hay ni cuando comienza, para hacerlo se emiten rafagas de señal de cualquier frecuencia, tanto da, se compara luego la señal recibida con un correlador con la señal emitida y alli donde de la maxima correlacion es el retardo entre la señal emitida y la recibida. A partir de ese tiempo y la velocidad de propagacion de la onda obtienes una medida de distancia, la precision de la cual dependera bastante del sistema. Aunque yo sigo apostando por infrarojos, con lo que se puede hacer lo mismo, si es que se hace que yo no lo tengo tan claro. Sea como fuere, con la directividad de antenas de radiofrecuencia o led's infrarrojos, a esas distancias, dudo que sea capaz de captar la posicion y angulo del mando sin algo que no sean giroscopios y dinamometros, con una precision aceptable para un videojuego.

Sinceramente, esperare a ver el cacharro mas de cerca para ver como funciona.
Elohe escribió:
Pero se te presenta un problema tecnico, como vas a seguir a 4 mandos simultaneamente a la suficente velocidad, al menos son necesarias 100 muestras/s por punto como minimo para una precision mediocre, luego habria que calibrar el sistema, cosa que seria de manera manual. Lo que los infrarojos emitan un haz disperso no es importante, el sistema se basa en un sistema de puntos y los principios de vision binocular, y dependieno de como se ven estos puntos se detecta a donde apunta y la distancia, el resto de la informacion se hace mediante giroscopio.

Tu sistema es tecnicamente muy correcto, pero en la practica es poco viable para este caso. Segun los comentarios de gente que lo ha probado, cuando pasa una persona por delante del mando se pierde el control de los juegos en que es usado como puntero, lo que casa con la teoria de infrarrojos, y no con la tuya, ademas ¿para que se usaria los infrarrojos segun tu, ya que el mando tiene la tipica ventana?.

Con el sistema que propondría yo con 4 mandos tendríamos a 8 antenas emisoras (2 por mando). Suponiendo 100 Muestras/segundo (bueno a mí esa resolución no me parece mediocre en absoluto), tendríamos en total 8 * 100 = 800 señales por segundo en el aire.

Si se repartieran en el tiempo, idealmente para no interferirse entre señal y señal emitidas transcurriría 1/800 = 1,25 ms. Si se transmitiera en el peor de los casos a una frecuencia tan baja como 1 Mbit/s de señal moduladora, en ese intervalo de tiempo se podrían transmitir 1000000 * 0,00125 = 1250 bits.

Si se usaran secuencias Golay de 64 bits para ser detectadas por correlación cruzada, el uso del canal sería de tan solo 64 / 1250 = 5,12 %. En otras palabras, da tiempo de sobra para 100 muestras por segundo aunque se contara con lentísimos emisores de 1Mbit/s.

La calibración del sistema sería tan sencilla como que el usuario seleccionara el origen de coordenadas con el mando al iniciar la consola (asumiendo que la consola y las antenas están en una pared). Un acelerómetro en ese momento marca la dirección de la gravedad.

No sabía que al pasar una persona por delante del mando se pierdiera el control de los juegos. Está claro que el mando usa IR.

A mí no sólo me parece que el sistema que describo es viable, sino que también creo que podría ser más preciso y más barato que lo que va a usar la Revolution. Además no sufriría de la falta de visibilidad del IR.
Gurlukovich escribió:No, la distancia no se mide asi, porque no sabes cuantas longitudes de onda hay ni cuando comienza,


¿No sabemos cuantas longitudes de onda hay?
Una. Va asociada a la frecuencia.

La longitud de onda asociada a la frecuencia en la que trabaja Bluetooth ( canales de frecuencia fija entre 2.4 y 2.48 ghz) es de aproximadamente 12,5 cm. La formula para sacarla es Lambda = C / F

Lo de saber cúando comienzan..., el mando y la consola pueden ponerse de acuerdo y sincronizarse (un reloj dentro del mando) cada x tiempo. Luego puede existir la posibilidad de hacer los calculos de esta manera.

Elohe escribió:¿para que se usaria los infrarroj.os segun tu, ya que el mando tiene la tipica ventana?


Para encender o apagar el trasto. El mando tiene un boton que pone ON/OFF en una esquina

Elohe, tu sistema basado en la visión artifical me parece mas adecuado incluso que el que yo imaginé.

El mando cuenta con un sensor CMOS (infrarojo o no, pero son bastante baratos para la calidad que se necesita) que captura imagenes de los sensores acoplados al monitor y los envia a la consola.
La consola procesa la imagen mostrada y determinando la posición de los sensores en esta sabe la altura(Y) derecha/izquierda (X) o cercanía/lejanía (Z).
Además un giroscopio/acelerometro determina la inclinación del mando.
supermoves escribió:Para encender o apagar el trasto. El mando tiene un boton que pone ON/OFF en una esquina

Y no se podria apagr y encende mediante blueboth, en la practica cualquiera de los dos metodos consumiria lo mismo, y es una estupidez poner infrarrojos solo para eso.
supermoves escribió:
¿No sabemos cuantas longitudes de onda hay?
Una. Va asociada a la frecuencia.

La longitud de onda asociada a la frecuencia en la que trabaja Bluetooth ( canales de frecuencia fija entre 2.4 y 2.48 ghz) es de aproximadamente 12,5 cm. La formula para sacarla es Lambda = C / F

Lo de saber cúando comienzan..., el mando y la consola pueden ponerse de acuerdo y sincronizarse (un reloj dentro del mando) cada x tiempo. Luego puede existir la posibilidad de hacer los calculos de esta manera.



Digo que no sabemos cuantas repeticiones hay entre el emisor y el receptor, y al ser iguales NO sabes cual de ellos llega ni en que fase, no puedes saber el retardo si no es por pulsos, a no ser que estes contando de alguna manera las longitudes de onda que hay, es un dato irrelevante y que no puedes medir con ningun sistema, al menos no que te quepa en un mando y sea usable. Lo unico que puedes acer para medir un retardo es, primero que nada, emitir una forma de onda, esperar que rebote, compararla con la que recibas y buscar donde son mas parecidas (el maximo de la correlacion). En ese tiempo respecto a la emision tienes dos veces el tiempo de propagacion, y con ese tiempo, puedes buscar la distancia a partir de la velocidad de propagación.

Esta es la tecnologia que se aplica al radar precisamente para calcular la distancia a un objeto. No puedes medir una distancia en longitudes de onda fuera de un laboratorio con equipo externo. Se usan rafagas, siempre, asi es como va el GPS también, y la localizacion por GSM. Y lo mismo con infrarrojos que con sonido (ecoradar de los murciélagos).

Y estoy con Elohe en que usar IR para apagar la consola y Buetooth para el resto de cosas es una chorrada (y sino me dices donde tiene el receptor de infrarrojos la carcasa de revolution).
tambien se puede medir usando la tecnica de redar FM, en esta tecnica se emite señal continua, y se mide la diferencia de frecuencia entre la señal emitida y la recibida para determinar la distancia... la verdad lo que dice Vidda es factible, si el mando emite en una frecuencia distinta al emisor, pero entramos en el problema de la precision necesaria para hacer las mediciones en distancia tan pequeñas, estamos hablando de medir el tiempo con precision de picosegundos o incluso mayor para detectar los movimientos mas sutiles en el mando, la formula necesaria es mucho mas compleja de lo que indica tanto Vidda o supermoves, y luego esta el posible desplazamiento del mando entre la muestra de la primera y la segunda antena.
Todo aqui se esta calculando en base de que la consola necesita detectar los movimientos Y y Z de desplazamiento, sigo pensando que la consola no necesariamente tiene que detectar todos los movimientos del control.

Pienso que la barra es para detectar el desplazamiento X del control (por eso ha de utilizarse el IR). el control internamente tiene un giroscopio electronico de bajo costo, (no seria complicado construir un detector electronico-mecanico de angulos de inclinacion ) en el cual se detectan los movimientos de rotacion X y Y. La Z no creo que la utilicemos, pienso que el acercar y alejar lo haremos nosotros con un stick analogo o digital.

Un saludo.
mmm, la ultima vez que mire el precio de un giroscopio electronico bastante preciso ( precision de un minuto con 15" de desviacion maxima ), no era tanto, estaba sobre los 25$, si a eso le añadimos cantidades industriales y directo a fabricante el precio cae por debajo de los 3$, los acelerometros en sumitistro industrial estan sobre 2$, asi que lo pueden tener todo los sensores giroscopicos y acelerometros de precision por menos de 10$.
67 respuestas
1, 2