2009-09-04 20 views
7

Estoy trabajando para localizar un dispositivo iPhone en el espacio 3D.Cómo detectar la altura del iPhone (para usar en juegos de realidad aumentada)?

Puedo usar lat/long para detectar la ubicación física, puedo usar el magnetómetro para determinar la dirección a la que se enfrentan, y puedo usar el acelerómetro para determinar cómo está orientado su dispositivo, pero no puede encontrar la forma de levantar la altura del dispositivo.

Específicamente, necesito saber si el usuario está en cuclillas o levantando la mano hacia el techo (una diferencia de aproximadamente 2 metros/6 pies).

He publicado una descripción más detallada de lo que estoy tratando de hacer en mi blog: http://pushplay.net/blog_detail.php?id=36

me encantaría alguna sugerencia en cuanto a cómo incluso la falsificación de este tipo de información. Realmente quiero el tipo de interactividad y movimiento que requeriría agacharse y mecerse, en lugar de dejar que alguien se recueste y haga ángulo con el teléfono - como la gente puede "engañar" jugando con una Wii ...

+0

doesnt GPS le dan altura? Pensé que sí (Editar): me refiero a la elevación ... pensé que el GPS devolvería datos de elevación –

+1

el problema, creo que sería en determinar dónde está el "piso". Si el usuario está en Denver, ¡su piso está a unos 5,200 pies del nivel del mar! –

+0

no podrá obtener la ubicación con ningún tipo de precisión útil. Tal vez pueda arreglar algo con el reconocimiento de características/rastreo de características, pero ese es un Problema Difícil (tm) – hop

Respuesta

7

El más cercano Pude verte llegar a lo que estás buscando usando el acelerómetro/magnetómetro como un rastreador inercial. Tendría que calibrar la posición inicial del usuario en el arranque a una posición "base", luego muestrear continuamente los sensores en un hilo de fondo para construir un modelo de movimiento. This post habla de aumentar la frecuencia de muestreo predeterminada de las funciones del acelerómetro para que pueda obtener una imagen muy precisa de los movimientos del usuario.

no estoy seguro de que esto va a resolver su preocupación por la gente simplemente inclinando el dispositivo para producir la acción deseada, pero usted tendrá que encontrar un equilibrio entre ser demasiado estricto en la interpretación de los movimientos y teniendo en cuenta las diferencias en el movimiento

+0

Ahí me inclino ahora, a menos que pueda encontrar una mejor solución (bien, bien, más fácil) ... -) Tampoco estaba seguro de si esto entraría en conflicto con la forma en que iba a medir el ángulo del teléfono ... ¡muchas variables para hacer un seguimiento! –

+0

ja ja sí te escucho. No debe entrar en conflicto con las medidas de su ángulo, ya que está midiendo (delta) x, (delta) y, y (delta) z para construir su mapa de movimiento. Por ejemplo, si el usuario necesita dibujar un analema (signo de infinito), el mapa se construye a partir de la comparación de puntos muestreados a lo largo del tiempo hasta un punto y hora lógicos de "inicio". –

+0

buen comentario.Solvió mi problema .... THANKS budy – Saad

0

No estoy íntimamente familiarizado con el iphone. Pero podría requerir un complemento de hardware. (que probablemente no quieras hacer). Después de pensar en esto, la única forma en que sé cómo es a través de luz o láser más específico. Disparas un láser en el piso y registras el tiempo que toma regresar. De hecho, no es mucho para armar este hardware y estoy seguro de que el iphone tiene conexiones para periféricos. A menos que Osmeone pueda superarme, digo que no hay forma de hacerlo con una imagen.

1

El material CoreLocation le da altura a aswell como latitud/longitud, así que podría usar potencialmente que aunque hay algunos problemas significativos con este:

  • no funcionará bien en interiores (no es un problema para la navegación por satélite , es un problema para los juegos)
  • Tus usuarios tendrían que "calibrar" (probablemente colocando el teléfono en el piso) ¡cada ubicación que usan!
  • De hecho, necesitaría comenzar a mantener una lista de "ubicaciones previamente calibradas" ... que podrían variar enormemente en una sola casa (por ejemplo, varias habitaciones y pisos). Podría ponerse en el camino del juego.
  • No se puede utilizar en el transporte en movimiento (trenes, aviones, automóviles ... incluso a pie) porque la elevación cambia con tanta frecuencia.

Por lo tanto, habría pensado que usar el acelerómetro como un proxy para la altura es una ruta mucho más preferible que la determinación de la elevación absoluta.

Cuestiones relacionadas