¿Dónde está el giroscopio del iPhone 5s? ¿Dónde está ubicado el acelerómetro en el iPhone? Giroscopio, girocompás y modo coche.

CON trabajo incorrecto Sensores acelerómetros de teléfonos inteligentes porque no estaban calibrados correctamente. Debido a esto aplicación estándar"Brújula" muestra una desviación de varios grados, incluso si el iPhone está sobre una superficie plana, y en el mismo juego de carreras Real Racing, el coche se desplaza hacia un lado sin que el usuario lo sepa.

Los expertos de Gizmodo descubrieron recientemente la supuesta causa de los problemas: afirman que los problemas se deben a un cambio en el proveedor del acelerómetro. Si bien Apple utilizó componentes de STMicroelectronics en el iPhone 5, se instaló el acelerómetro Bosch Sensortech BMA220. Según los expertos, los ingenieros de Apple no realizaron los ajustes necesarios en el software, por lo que el 5s reconoce la pieza nueva como vieja. Aquí es donde surgen los “errores” en las lecturas del smartphone.

Resulta que el problema sigue estando en Sistema operativo, y no en hardware, como se informó anteriormente. Los expertos de RealityCap aconsejan a los desarrolladores de aplicaciones que no esperen una respuesta rápida de Apple e intenten solucionarlo ellos mismos. ¿Cómo? Incorpore un procedimiento de calibración individual en los programas. Esto ayudará a corregir las lecturas del acelerómetro y los propietarios de iPhone 5s ya no experimentarán inconvenientes. Por ejemplo, estos:

Apple se negó a comentar sobre esta situación (lo cual no es sorprendente), y esto es muy deprimente. Los desarrolladores de la corporación podrían ayudar a los creadores de aplicaciones a exponer paso extra calibración, pero los programadores de RealityCap harán esto en su lugar. ellos publicaran instrucciones detalladas para solucionar el problema en un par de semanas.

Claramente, la culpa de este incidente recae directamente en los empleados del gigante tecnológico, y los creadores del programa están frustrados porque tendrán que solucionarlo ellos mismos.

En cuanto a los usuarios normales de iPhone 5s, solo pueden esperar a que Apple corrija el error o que aparezca la calibración integrada en programas que aún no la han solicitado. Básicamente, se trata de simuladores de carreras y de vuelo. Es cierto que todavía es poco probable que sea posible utilizar 5 como principal punto de referencia en el bosque.

Mucha gente ha oído hablar del problema de los sensores no calibrados en nuevo iPhone 5S: la herramienta de “nivel” integrada en la brújula nativa de iOS 7 muestra una desviación de varios grados si el dispositivo se coloca sobre una superficie plana, como una mesa.

En definitiva, en un grado u otro, el problema de la orientación del sensor siempre ha estado presente en todos los dispositivos iOS. Anteriormente, el problema no se observaba con tanta frecuencia debido a la falta de una aplicación integrada en el sistema operativo móvil que permitiera medir el nivel. Un problema similar ocurre en otros dispositivos móviles equipados con un acelerómetro, ya que los principios son los mismos en todas partes: todos los desarrolladores que han tenido que lidiar con varios sensores movimiento y orientación.

He estado desarrollando aplicaciones utilizando sensores de acelerómetro, giroscopio y brújula digital desde que la API estuvo disponible para los desarrolladores, casi desde el principio; como autor de una de las brújulas más populares para iOS, he encontrado problemas con la calibración y la precisión del acelerómetro. de otros sensores hace unos años.

El método para resolver el problema es bastante trivial y ya está incluido en la mayoría de las aplicaciones, tanto aplicadas como de juegos, que de una forma u otra utilizan sensores de gravedad, movimiento y campo magnético, una calibración que cualquier desarrollador que se respete a sí mismo y a sus usuarios debe cuidar. de. Dependiendo de qué tan compleja sea la aplicación y qué problemas resuelva, con punto tecnico Desde el punto de vista del desarrollador, la implementación de una solución puede ser tanto simple como compleja. Pero el principio es el mismo para todos.

Invito a los desarrolladores y usuarios de aplicaciones a descubrir cómo funciona, de dónde provienen estos errores, por qué no debería preocuparse demasiado por los problemas del acelerómetro y por qué no debería correr a la tienda para reemplazar un dispositivo "defectuoso", un Es poco probable que el nuevo dispositivo sea mucho mejor, pero los problemas con los errores del sensor se resuelven de otras maneras.

Cómo fue

Hace más de cuatro años, me enfrenté a la tarea de desarrollar no un análogo ordinario de una brújula bidimensional, que venía incluido con iOS, sino una brújula que utiliza realidad aumentada, opera en un espacio tridimensional y con una alta precisión de combinación. Marcas virtuales superpuestas en vídeo en tiempo real.

Para combinar la marca virtual de un objeto con su posición real en la imagen recibida de la cámara, es necesario utilizar todos los sensores de movimiento disponibles en el dispositivo móvil.

Se necesita un acelerómetro para determinar el vector de gravedad o, en otras palabras, en lenguaje sencillo para saber qué parte del dispositivo mira hacia abajo. Se necesita un sensor de brújula digital o un magnetómetro para orientarse hacia los puntos cardinales y saber qué lado del dispositivo está orientado al norte. Posteriormente apareció un giroscopio que determinó la rotación del dispositivo y, en consecuencia, permitió aumentar significativamente la precisión de la orientación completa en el espacio tridimensional.

A medida que se desarrolló la aplicación y surgió la posibilidad de utilizar nuevos sensores, casi de inmediato surgieron las deficiencias individuales inherentes a los sensores.

Al final resultó que, en todos los dispositivos los sensores producen datos desiguales, difiriendo dentro de un cierto error, en algunos lugares las desviaciones son mayores, en otros menores, y las lecturas de los sensores se ven afectadas; toda la linea varios factores no obvios.

La reacción inicial de alguien que en ese momento no tenía experiencia en esta área fue similar a la descrita en artículos sobre un sensor instalado incorrectamente en el iPhone 5S, pero un estudio más detallado de los problemas me obligó a cambiar de opinión y continuar con el desarrollo sin esperar eso. el fabricante puede arreglar algo y lo hará, pero teniendo en cuenta las características de cada uno de los sensores requeridos.

Como resultado, un juguete de alta tecnología con problemas de precisión resultó ser una herramienta bastante precisa y adecuada para un uso real; lo principal es saber cómo usarlo correctamente, lo que se deriva directamente de las características de cada sensor, que yo escriba en detalle a continuación.

Acelerómetro

Dado que, a diferencia de una brújula estándar que funciona solo en una orientación, mi aplicación tenía que funcionar en cualquiera de las posibles, ya en las primeras etapas, incluso antes de la aparición del giroscopio, se descubrió una característica muy extraña del acelerómetro.

Resultó que, además de que el acelerómetro de cada dispositivo tiene una ligera desviación, dentro del mismo dispositivo físico esta desviación es diferente para diferentes orientaciones del dispositivo; por ejemplo, en una orientación vertical normal, la desviación del eje de gravedad real puede ser de 1°, mientras que cuando se gira 180°, en una orientación vertical invertida puede ser de 4° .

La solución fue agregar la capacidad de calibrar el acelerómetro por separado para cada una de las seis orientaciones posibles, y la aparición del giroscopio brindó nuevas oportunidades: la calibración de sensores de movimiento, en consecuencia, de una forma u otra, ya está disponible en todas las aplicaciones decentes. que los utiliza.

Los desarrolladores de juegos lo han hecho un poco más fácil: en los juegos es suficiente admitir una o dos orientaciones del dispositivo, pero aún es imposible ignorar la necesidad de brindarle al usuario la posibilidad de utilizar la calibración incluso utilizando el sensor giroscópico.

En el "nivel" integrado en la brújula de iOS 7, la calibración se realiza simplemente tocando la pantalla; simplemente toque la pantalla y la posición actual del dispositivo se considerará la posición de referencia o "cero".

Brújula y GPS/GLONASS (aunque lo parezca)

Antes de la aparición del giroscopio, el sensor responsable de la orientación en el plano del horizonte hacia los puntos cardinales era el sensor de la brújula digital, el más sensible a factores externos de todos los sensores y, en consecuencia, el que tenía mayores problemas de precisión.

La brújula se calibra continuamente a nivel del conductor a medida que el dispositivo gira: cuantos más datos reciba el dispositivo, más preciso será el resultado, pero seguirá habiendo un error.

Desafortunadamente, una solución absoluta al problema de la precisión de la brújula es prácticamente imposible sólo mediante la calibración. Aunque sí mejora la precisión. En iOS 7, la brújula incorporada tiene una calibración aún más estricta que en Versión anterior SO. La pantalla de calibración ahora cubre toda la pantalla hasta que el usuario acciones necesarias. En versiones anteriores había un mensaje. talla pequeña, que no bloqueó la pantalla.

Incluso la calibración de la brújula y el filtrado constante de datos no ayudarán mucho en condiciones de un campo magnético no uniforme; después de todo, generalmente después de calibrar una brújula una persona gira alrededor de su propio eje, y no alrededor del eje del dispositivo, que, cuando se gira 90°, desplaza el dispositivo aproximadamente medio metro en el espacio, donde pueden existir otras condiciones magnéticas.

Cerca de campos magnéticos fuertes, objetos metálicos, cables con corriente, las lecturas del magnetómetro son inestables debido a la muy alta sensibilidad a radiación electromagnética- Esto se nota especialmente en las salas y máquinas, que, cada vez más modernas, están cada vez más repletas de todo tipo de relleno electrónico.

Además, si se requiere que la brújula muestre el norte geográfico, entonces entra en juego la precisión de la ubicación con GPS y GLONASS, ya que las coordenadas se utilizan para determinar la declinación magnética o la diferencia entre las direcciones a los polos magnético y del servidor en un punto específico. punto del globo.

Una brújula magnética funciona bien y con precisión al aire libre en condiciones de campo donde no hay interferencias magnéticas, pero aun así, es aconsejable calibrar la brújula con cada medición de azimut.

La dirección hacia el Polo Norte se determina con mayor precisión con una buena precisión del GPS, generalmente también al aire libre.

Para mejorar aún más la precisión cuando sea necesario, por ejemplo, si necesita apuntar correctamente las antenas de radio o Wi-Fi entre sí, o realizar cualquier medidas precisas, ya necesitamos un soporte más profundo en el lado de la aplicación, que se analiza a continuación.

Giroscopio, girocompás y modo coche.

En interiores, en un automóvil, en un barco o en cualquier otro vehículo, y también cuando se requiere mayor precisión y estabilidad de orientación, una brújula magnética convencional no es adecuada: la orientación se necesita mediante el curso del movimiento o mediante un giroscopio.

En consecuencia, en mi aplicación implementé ambas posibilidades: para usar en varios vehículos hay un modo "automóvil" y un modo "girocompás" para todo lo demás.

Con el modo automóvil, todo es simple: se utiliza el curso del movimiento, que depende únicamente de la precisión del GPS y GLONASS y, en consecuencia, la dirección se determina con bastante precisión mientras se conduce a pie, en bicicleta, en automóvil, en barco o en avión. , etcétera.

Con un girocompás la situación es más fácil y algo más complicada.

En el modo girocompás, puede establecer con precisión la dirección inicial o corregir la dirección actual utilizando cualquier punto de referencia externo: el sol, la luna, las estrellas, objetos geográficos, el lado cubierto de musgo de un árbol, orientarse mediante mapas u otros métodos.

Esto se hace simplemente para el usuario. Un marcador superpuesto al vídeo en tiempo real o una flecha en el dial de la brújula que apunta a un objeto se combina con la posición real del objeto o la dirección hacia él. Todas las matemáticas complejas basadas en miles de líneas de fórmulas permanecen invisibles en el nivel de aplicación.

Aproximadamente las mismas acciones son realizadas por los pilotos o el personal que da servicio a aviones y barcos militares modernos: la verificación y posterior calibración de los sistemas de navegación inercial se lleva a cabo al comienzo del vuelo y durante el mismo, lo que también se ve facilitado por la ubicación fija de los sensores. mientras que el nuestro dispositivos móviles están en movimiento casi constante.

Parecería que el girocompás es solución ideal problemas de precisión de la brújula y orientación a los puntos cardinales, pero aquí también hay dificultades.

En los sistemas de navegación inercial industriales y militares, a diferencia de lo que se encuentra en los dispositivos móviles actuales, se utiliza todo un complejo, una serie de sensores para determinar con precisión la posición en el espacio, lo que permite compensar errores y errores en las lecturas.

Los dispositivos móviles normalmente tienen solo una instancia de cada sensor, lo que hace imposible la compensación de errores y genera acumulación de errores.

Cuanto más tiempo pasa desde el momento de la calibración del girocompás, o más precisamente, desde un punto de vista técnico, desde el momento de determinar la posición "cero" de referencia, mayor es el error acumulado, que se expresa en un cambio periódico en la orientación del giroscopio.

El siguiente vídeo ilustra el problema.

El vídeo muestra una brújula en modo “girocompás”, sintonizada exactamente con el servidor, funcionando en un dispositivo que yace inmóvil sobre la mesa. Aunque el dispositivo esté estacionario, el desplazamiento se produce con el tiempo. A las 00:09 pasa de 0° a 359°. A las 01:21 disminuye a 358°. A las 03:03 ya vemos un acimut de 357°.

La acumulación de errores se produce debido a la discreción de los sensores, que en algunos momentos pueden perder eventos, como, por ejemplo, en el video de arriba, las lecturas del giroscopio se ven afectadas por las más pequeñas vibraciones de los ventiladores de las fuentes de alimentación en el monitor. y computadora ubicada cerca de la mesa. Los sensores, por supuesto, progresan con el tiempo, volviéndose más una alta resolución, pero la discreción de los datos permanece. En consecuencia, las lecturas pueden verse influenciadas por factores tan menores como los latidos del corazón y el pulso.

Los sistemas micromecánicos de dichos sensores también se ven influenciados por factores no obvios como la temperatura ambiente; aunque la temperatura es inaccesible para los desarrolladores comunes, se tiene en cuenta para corregir los datos del sensor en el nivel del controlador del propio sistema operativo.

Al mismo tiempo, la orientación con el giroscopio es mucho más precisa que con el sensor de la brújula: al girar 180°, el sensor informa que la rotación fue la misma de 180°, y no de 150°, como, por ejemplo, puede hacer una brújula. digamos en condiciones de interferencia.

Sólo vale la pena tener en cuenta que el giroscopio tiene esta característica y tenerla en cuenta cuando utilice el dispositivo como herramienta o cuando desarrolle sus propias aplicaciones y juegos.

¿Qué pasa con el nuevo coprocesador de movimiento M7?

Con el anuncio del M7 esperaba que los dispositivos móviles se acercaran a los grandes sistemas de navegación inercial, pero desafortunadamente este nuevo coprocesador resuelve problemas ligeramente diferentes.

En primer lugar, M7 está diseñado para reducir el consumo de energía de la batería cuando usando gps y otros sensores. Se dedica menos tiempo al cálculo de datos de satélites debido a que este cálculo no comienza desde cero cuando se inicia la aplicación. Además, los datos de otros sensores se recopilan en segundo plano, incluso cuando la aplicación no se está ejecutando, lo que también reduce el consumo de batería.

Por ejemplo, en el vídeo de arriba que ilustra la situación con la acumulación de errores en el giroscopio, la brújula en modo girocompás funciona en el nuevo iPhone 5S que ya utiliza M7.

¿Se puede confiar en los dispositivos móviles?

La respuesta es sí, conociendo y teniendo en cuenta las características de los sensores utilizados.

Los desarrolladores sacarán sus propias conclusiones.

Para los usuarios que estuvieran interesados ​​en leer hasta el final, permítanme darles algunos consejos.

No es necesario cambiar el dispositivo en particular. Puede que no sea mejor. ¿Y quién dijo que la superficie de la mesa utilizada es estrictamente perpendicular al vector de gravedad?

En juegos con controles hápticos, si el error del acelerómetro o giroscopio se nota claramente, busca en los ajustes o en modo pausa el menú de calibración.

En todas las aplicaciones actuales que implementan la herramienta "nivel", debe haber una calibración que establezca la posición "cero"; por supuesto, también está en la aplicación integrada.

Una brújula magnética sólo funciona bien cuando se hace senderismo en la naturaleza. No debe esperar que el dispositivo haga lo imposible al intentar determinar con absoluta precisión la dirección junto a una computadora, parlantes, radiador o en cualquier vehículo. Utilice aquellas aplicaciones y modos especialmente diseñados que mejor se adapten a la tarea.

Cuando utilice una brújula magnética, recuerde que las lecturas solo son válidas inmediatamente después de la calibración, hasta que el dispositivo se haya movido una distancia significativa; una rotación de 90° a lo largo del eje espinal puede requerir una recalibración.

Cuando utilice aplicaciones de "nivel" o "girocompás", recuerde que las lecturas del sensor son válidas durante aproximadamente uno o dos minutos, tiempo suficiente para realizar una medición; para evitar la acumulación de errores, repita la calibración antes de cada medición para mejorar la precisión. de las medidas.

PD Respondo preguntas en los comentarios.

Muchos han oído hablar del problema con los sensores no calibrados en el nuevo iPhone 5S: la herramienta de "nivel" integrada en la brújula nativa de iOS 7 muestra una desviación de varios grados si el dispositivo se coloca sobre una superficie plana, por ejemplo, una mesa.

En definitiva, en un grado u otro, el problema de la orientación del sensor siempre ha estado presente en todos los dispositivos iOS. Anteriormente, el problema no se observaba con tanta frecuencia debido a la falta de una aplicación integrada en el sistema operativo móvil que permitiera medir el nivel. Un problema similar ocurre en otros dispositivos móviles equipados con un acelerómetro, ya que los principios son los mismos en todas partes: todo desarrollador que haya tenido que lidiar con varios sensores de movimiento y orientación debería estar familiarizado con esto de primera mano.

He estado desarrollando aplicaciones utilizando sensores de acelerómetro, giroscopio y brújula digital desde que la API estuvo disponible para los desarrolladores, casi desde el principio; como autor de una de las brújulas más populares para iOS, he encontrado problemas con la calibración y la precisión del acelerómetro. de otros sensores hace unos años.

El método para resolver el problema es bastante trivial y ya está incluido en la mayoría de las aplicaciones, tanto aplicadas como de juegos, que de una forma u otra utilizan sensores de gravedad, movimiento y campo magnético, una calibración que cualquier desarrollador que se respete a sí mismo y a sus usuarios debe cuidar. de. Dependiendo de qué tan compleja sea la aplicación y qué problemas resuelva, desde el punto de vista técnico del desarrollador, la implementación de la solución puede ser tanto simple como compleja. Pero el principio es el mismo para todos.

Invito a los desarrolladores y usuarios de aplicaciones a descubrir cómo funciona, de dónde provienen estos errores, por qué no debería preocuparse demasiado por los problemas del acelerómetro y por qué no debería correr a la tienda para reemplazar un dispositivo "defectuoso", un Es poco probable que el nuevo dispositivo sea mucho mejor, pero los problemas con los errores del sensor se resuelven de otras maneras.

Cómo fue

Hace más de cuatro años, me enfrenté a la tarea de desarrollar no un análogo ordinario de una brújula bidimensional, que venía incluido con iOS, sino una brújula que utiliza realidad aumentada, opera en un espacio tridimensional y con una alta precisión de combinación. Marcas virtuales superpuestas en vídeo en tiempo real.

Para combinar la marca virtual de un objeto con su posición real en la imagen recibida de la cámara, es necesario utilizar todos los sensores de movimiento disponibles en el dispositivo móvil.

Se necesita un acelerómetro para determinar el vector de gravedad o, en términos simples, para saber qué parte del dispositivo está hacia abajo. Se necesita un sensor de brújula digital o un magnetómetro para orientarse hacia los puntos cardinales y saber qué lado del dispositivo está orientado al norte. Posteriormente apareció un giroscopio que determinó la rotación del dispositivo y, en consecuencia, permitió aumentar significativamente la precisión de la orientación completa en el espacio tridimensional.

A medida que se desarrolló la aplicación y surgió la posibilidad de utilizar nuevos sensores, casi de inmediato surgieron las deficiencias individuales inherentes a los sensores.

Al final resultó que, en todos los dispositivos los sensores producen datos desiguales, que varían dentro de un cierto error, en algunos lugares las desviaciones son mayores, en otros menores, mientras que las lecturas de los sensores están influenciadas por una serie de factores diferentes no obvios.

La reacción inicial de alguien que en ese momento no tenía experiencia en esta área fue similar a la descrita en artículos sobre un sensor instalado incorrectamente en el iPhone 5S, pero un estudio más detallado de los problemas me obligó a cambiar de opinión y continuar con el desarrollo sin esperar eso. el fabricante puede arreglar algo y lo hará, pero teniendo en cuenta las características de cada uno de los sensores requeridos.

Como resultado, un juguete de alta tecnología con problemas de precisión resultó ser una herramienta bastante precisa y adecuada para un uso real; lo principal es saber cómo usarlo correctamente, lo que se deriva directamente de las características de cada sensor, que yo escriba en detalle a continuación.

Acelerómetro

Dado que, a diferencia de una brújula estándar que funciona solo en una orientación, mi aplicación tenía que funcionar en cualquiera de las posibles, ya en las primeras etapas, incluso antes de la aparición del giroscopio, se descubrió una característica muy extraña del acelerómetro.

Resultó que, además de que en cada dispositivo el acelerómetro tiene una ligera desviación, dentro de un mismo dispositivo físico esta desviación es diferente para diferentes orientaciones del dispositivo; por ejemplo, en una orientación vertical normal, la desviación del eje real La gravedad puede ser de 1°, mientras que, cuando se gira 180°, en un retrato invertido puede ser de 4°.

La solución fue agregar la capacidad de calibrar el acelerómetro por separado para cada una de las seis orientaciones posibles, y la aparición del giroscopio brindó nuevas oportunidades: la calibración de sensores de movimiento, en consecuencia, de una forma u otra, ya está disponible en todas las aplicaciones decentes. que los utiliza.

Los desarrolladores de juegos lo han hecho un poco más fácil: en los juegos es suficiente admitir una o dos orientaciones del dispositivo, pero aún es imposible ignorar la necesidad de brindarle al usuario la posibilidad de utilizar la calibración incluso utilizando el sensor giroscópico.

En el "nivel" integrado en la brújula de iOS 7, la calibración se realiza simplemente tocando la pantalla; simplemente toque la pantalla y la posición actual del dispositivo se considerará la posición de referencia o "cero".

Brújula y GPS/GLONASS (aunque lo parezca)

Antes de la aparición del giroscopio, el sensor responsable de la orientación en el plano del horizonte hacia los puntos cardinales era el sensor de la brújula digital, el más sensible a factores externos de todos los sensores y, en consecuencia, el que tenía mayores problemas de precisión.

La brújula se calibra continuamente a nivel del conductor a medida que el dispositivo gira: cuantos más datos reciba el dispositivo, más preciso será el resultado, pero seguirá habiendo un error.

Desafortunadamente, una solución absoluta al problema de la precisión de la brújula es prácticamente imposible sólo mediante la calibración. Aunque sí mejora la precisión. En iOS 7, la brújula incorporada tiene una calibración aún más estricta que en versiones anteriores del sistema operativo. La pantalla de calibración ahora cubre toda la pantalla hasta que el usuario realiza las acciones necesarias. Las versiones anteriores tenían un pequeño mensaje que no cubría la pantalla.

Incluso la calibración de la brújula y el filtrado constante de datos no ayudarán mucho en condiciones de un campo magnético no uniforme; después de todo, generalmente después de calibrar una brújula una persona gira alrededor de su propio eje, y no alrededor del eje del dispositivo, que, cuando se gira 90°, desplaza el dispositivo aproximadamente medio metro en el espacio, donde pueden existir otras condiciones magnéticas.

Cerca de campos magnéticos fuertes, objetos metálicos y cables con corriente, las lecturas del magnetómetro son inestables debido a la altísima sensibilidad a la radiación electromagnética; esto se nota especialmente en habitaciones y máquinas que, a medida que se vuelven cada vez más modernas, están cada vez más repletas de todo. tipos de relleno electrónico.

Además, si se requiere que la brújula muestre el norte geográfico, entonces entra en juego la precisión de la ubicación con GPS y GLONASS, ya que las coordenadas se utilizan para determinar la declinación magnética o la diferencia entre las direcciones a los polos magnético y del servidor en un punto específico. punto del globo.

Una brújula magnética funciona bien y con precisión al aire libre en condiciones de campo donde no hay interferencias magnéticas, pero aun así, es aconsejable calibrar la brújula con cada medición de azimut.

La dirección hacia el Polo Norte se determina con mayor precisión con una buena precisión del GPS, generalmente también al aire libre.

Para mejorar aún más la precisión cuando sea necesario, por ejemplo, si necesita apuntar correctamente las antenas de radio o Wi-Fi entre sí, o realizar mediciones precisas, ya se necesita un soporte más profundo en el lado de la aplicación, que se analiza a continuación.

Giroscopio, girocompás y modo coche.

En interiores, en un automóvil, en un barco o en cualquier otro vehículo, y también cuando se requiere mayor precisión y estabilidad de orientación, una brújula magnética convencional no es adecuada: la orientación se necesita mediante el curso del movimiento o mediante un giroscopio.

En consecuencia, en mi aplicación implementé ambas posibilidades: para usar en varios vehículos hay un modo "automóvil" y un modo "girocompás" para todo lo demás.

Con el modo automóvil, todo es simple: se utiliza el curso del movimiento, que depende únicamente de la precisión del GPS y GLONASS y, en consecuencia, la dirección se determina con bastante precisión mientras se conduce a pie, en bicicleta, en automóvil, en barco o en avión. , etcétera.

Con un girocompás la situación es más fácil y algo más complicada.

En el modo girocompás, puede establecer con precisión la dirección inicial o corregir la dirección actual utilizando cualquier punto de referencia externo: el sol, la luna, las estrellas, objetos geográficos, el lado cubierto de musgo de un árbol, orientarse mediante mapas u otros métodos.

Esto se hace simplemente para el usuario. Un marcador superpuesto al vídeo en tiempo real o una flecha en el dial de la brújula que apunta a un objeto se combina con la posición real del objeto o la dirección hacia él. Todas las matemáticas complejas basadas en miles de líneas de fórmulas permanecen invisibles en el nivel de aplicación.

Aproximadamente las mismas acciones realizan los pilotos o el personal que presta servicio a aviones y barcos militares modernos: la verificación y posterior calibración de los sistemas de navegación inercial se lleva a cabo al comienzo del vuelo y durante el mismo, lo que también se ve facilitado por la ubicación fija de los sensores. mientras nuestros dispositivos móviles están casi constantemente en movimiento.

Parecería que un girocompás es una solución ideal al problema de la precisión de la brújula y la orientación a los puntos cardinales, pero aquí también existen dificultades.

En los sistemas de navegación inercial industriales y militares, a diferencia de lo que se encuentra en los dispositivos móviles actuales, se utiliza todo un complejo, una serie de sensores para determinar con precisión la posición en el espacio, lo que permite compensar errores y errores en las lecturas.

Los dispositivos móviles normalmente tienen solo una instancia de cada sensor, lo que hace imposible la compensación de errores y genera acumulación de errores.

Cuanto más tiempo pasa desde el momento de la calibración del girocompás, o más precisamente, desde un punto de vista técnico, desde el momento de determinar la posición "cero" de referencia, mayor es el error acumulado, que se expresa en un cambio periódico en la orientación del giroscopio.

El siguiente vídeo ilustra el problema.

El vídeo muestra una brújula en modo “girocompás”, sintonizada exactamente con el servidor, funcionando en un dispositivo que yace inmóvil sobre la mesa. Aunque el dispositivo esté estacionario, el desplazamiento se produce con el tiempo. A las 00:09 pasa de 0° a 359°. A las 01:21 disminuye a 358°. A las 03:03 ya vemos un acimut de 357°.

La acumulación de errores se produce debido a la discreción de los sensores, que en algunos momentos pueden perder eventos, como, por ejemplo, en el video de arriba, las lecturas del giroscopio se ven afectadas por las más pequeñas vibraciones de los ventiladores de las fuentes de alimentación en el monitor. y computadora ubicada cerca de la mesa. Los sensores, por supuesto, progresan con el tiempo y obtienen una mayor resolución, pero la discreción de los datos permanece. En consecuencia, las lecturas pueden verse influenciadas por factores tan menores como los latidos del corazón y el pulso.

Los sistemas micromecánicos de dichos sensores también se ven influenciados por factores no obvios como la temperatura ambiente; aunque la temperatura es inaccesible para los desarrolladores comunes, se tiene en cuenta para corregir los datos del sensor en el nivel del controlador del propio sistema operativo.

Al mismo tiempo, la orientación con el giroscopio es mucho más precisa que con el sensor de la brújula: al girar 180°, el sensor informa que la rotación fue la misma de 180°, y no de 150°, como, por ejemplo, puede hacer una brújula. digamos en condiciones de interferencia.

Sólo vale la pena tener en cuenta que el giroscopio tiene esta característica y tenerla en cuenta cuando utilice el dispositivo como herramienta o cuando desarrolle sus propias aplicaciones y juegos.

¿Qué pasa con el nuevo coprocesador de movimiento M7?

Con el anuncio del M7 esperaba que los dispositivos móviles se acercaran a los grandes sistemas de navegación inercial, pero desafortunadamente este nuevo coprocesador resuelve problemas ligeramente diferentes.

En primer lugar, el M7 está diseñado para reducir el consumo de batería cuando se utiliza GPS y otros sensores. Se dedica menos tiempo al cálculo de datos de satélites debido a que este cálculo no comienza desde cero cuando se inicia la aplicación. Además, los datos de otros sensores se recopilan en segundo plano, incluso cuando la aplicación no se está ejecutando, lo que también reduce el consumo de batería.

Por ejemplo, en el vídeo de arriba que ilustra la situación con la acumulación de errores en el giroscopio, la brújula en modo girocompás funciona en el nuevo iPhone 5S que ya utiliza M7.

¿Se puede confiar en los dispositivos móviles?

La respuesta es sí, conociendo y teniendo en cuenta las características de los sensores utilizados.

Los desarrolladores sacarán sus propias conclusiones.

Para los usuarios que estuvieran interesados ​​en leer hasta el final, permítanme darles algunos consejos.

No es necesario cambiar el dispositivo en particular. Puede que no sea mejor. ¿Y quién dijo que la superficie de la mesa utilizada es estrictamente perpendicular al vector de gravedad?

En juegos con controles hápticos, si el error del acelerómetro o giroscopio se nota claramente, busca en los ajustes o en modo pausa el menú de calibración.

En todas las aplicaciones actuales que implementan la herramienta "nivel", debe haber una calibración que establezca la posición "cero"; por supuesto, también está en la aplicación integrada.

Una brújula magnética sólo funciona bien cuando se hace senderismo en la naturaleza. No debe esperar que el dispositivo haga lo imposible al intentar determinar con absoluta precisión la dirección junto a una computadora, parlantes, radiador o en cualquier vehículo. Utilice aquellas aplicaciones y modos especialmente diseñados que mejor se adapten a la tarea.

Cuando utilice una brújula magnética, recuerde que las lecturas solo son válidas inmediatamente después de la calibración, hasta que el dispositivo se haya movido una distancia significativa; una rotación de 90° a lo largo del eje espinal puede requerir una recalibración.

Cuando utilice aplicaciones de "nivel" o "girocompás", recuerde que las lecturas del sensor son válidas durante aproximadamente uno o dos minutos, tiempo suficiente para realizar una medición; para evitar la acumulación de errores, repita la calibración antes de cada medición para mejorar la precisión. de las medidas.

PD Respondo preguntas en los comentarios.