2. Combinar dos sensores

Iwata:

Bueno, ya sabemos que el sensor giroscópico da algunos problemillas, pero ¿podríais decirnos por qué concretamente es tan difícil trabajar con él?

Takamoto:

Como ya hemos comentado, este aparato sirve para medir los giros y la rotación, pero dicho esto, hay que tener en cuenta que si te sales del área en la que puedes observarlo, hay veces en que no sabes con seguridad si los datos que estás recibiendo son fiables.

Iwata:

Eso quiere decir que si haces un movimiento grande con el mando de Wii, es posible que lo saques de la zona en la que el sensor puede detectar dicho movimiento y que por lo tanto éste no se refleje en la pantalla.

Takamoto:

Eso es.

Iwata:

Vamos a preguntarle al señor Ito, que estaba a cargo de los circuitos eléctricos cómo consiguió solucionar el problema.

Ito:

Claro. A ver, aumentamos la sensibilidad del sensor giroscópico que utilizamos para la Wii hasta cinco veces la normal. Al fin y al cabo, los sensores giroscópicos que llevan las cámaras de vídeo solo pueden detectar una rotación de unos 300 grados por segundo, es decir, son muy lentos...

Iwata Asks
Iwata:

¡300 grados por segundo! ¡A mí no me suena a lento! (Risas)

Ito:

Es que hay personas que realizan movimientos increíblemente rápidos cuando juegan a un videojuego.

Iwata:

Entonces, quieres decir que si el sensor solo fuera capaz de detectar una rotación de 300 grados por segundo, habría casos en los que se sobrepasaría este límite y se ignoraría el movimiento realizado.

Ito:

Exacto. Y por ello diseñamos el sensor para que pudiera detectar 1600 grados de movimiento por segundo.

Iwata:

Es el equivalente a cuatro vueltas y media. ¡Para que alguien gire la mano de esa manera hace falta bastante esfuerzo!

Ito:

Sí. Al hacerlo así, nos aseguramos de que los movimientos rápidos se iban a detectar. Después, nos pusimos a debatir si era necesario o no que detectara los movimientos lentos.

Iwata:

Me parece que nos encontramos ante una pequeña contradicción. A ver, si lo diseñas para que sea capaz de detectar los movimientos rápidos, el sentido común te lleva a pensar que tendrá menos sensibilidad para detectar los movimientos lentos.

Ito:

¡Eso es exactamente lo que te dice el sentido común! (Risas) De todas formas, queríamos hacer todo lo posible para que también fuera capaz de detectar los movimientos lentos. El señor Ota y yo debatimos sobre este tema en repetidas ocasiones.

Ota:

Lo debatimos unas cuantas veces, ¿verdad?

Iwata Asks
Iwata:

Dinos, señor Ota, ¿cómo resolvisteis este problema?

Ota:

Diseñamos el sensor para que tuviera dos modos: uno para movimientos rápidos y otro para movimientos lentos.

Iwata:

¿Y qué son exactamente esos dos modos?

Ota:

Verás, como los datos del sensor se envían vía inalámbrica, la resolución de dichos datos está predeterminada. Imaginemos que los datos pueden enviarse por diez bandas distintas. En realidad, hay más, pero digo diez para que sea más fácil entender el ejemplo. Si tienes diez bandas, solo se pueden enviar señales de datos del cero al nueve.

Iwata:

Bien. Digamos que la resolución de los datos depende de esas diez bandas, ¿no se puede duplicar así como así el número de bandas, verdad?

Ota:

Exacto. No se puede hacer. Vamos a poner como ejemplo la velocidad de un coche. En el caso de un coche que puede moverse como máximo a diez kilómetros por hora, los datos sobre la velocidad a la que se mueve se enviarían en unidades de un kilómetro por hora, es decir, cada banda se correspondería con un kilómetro por hora. Sin embargo, si aumentamos la velocidad máxima a la que puede ir el coche a cien kilómetros por hora, cada unidad sería ahora de diez kilómetros por hora. Por lo tanto, seríamos incapaces de medir velocidades bajas, de dos o tres kilómetros por hora por ejemplo.

Iwata:

Entonces, si ajustas la configuración para que te permita medir velocidades de hasta cien kilómetros por hora, los datos se medirán en grupos de diez kilómetros por hora.

Ota:

Así es. Por eso diseñamos dos modos para el sensor: un modo para velocidades bajas, en el que los datos se envían por diez bandas pero mide hasta diez kilómetros por hora, y otro modo para velocidades altas, en el que los datos también se envían por diez bandas pero miden velocidades de hasta cien kilómetros por hora.

Iwata:

Al tener dos modos, habéis conseguido que sea sensible a los pequeños movimientos y al mismo tiempo capaz de detectar movimientos más dinámicos.

Ota:

Exacto.

Iwata:

Hicisteis así el sensor para que respondiera a los movimientos lentos. Sin embargo, aquella no fue la única dificultad que os planteó el sensor giroscópico, ¿verdad?

Iwata Asks
Ota:

No, qué va. La sensibilidad de la capacidad de detección de movimiento del sensor giroscópico puede verse afectada negativamente por los cambios producidos en la temperatura ambiente.

Takamoto:

La segunda “M” de las siglas MEMS significa “mecánico”.

Iwata:

Precisamente porque es mecánico, sabíais que aquello podía ocurrir.

Ota:

En general, si algo está quieto, la lectura de los datos que envía deberá ser de cero, pero en el caso del sensor giroscópico, aunque esté en absoluto reposo, después de un tiempo, la lectura de los datos que envía será de uno o dos.

Iwata:

Entonces, aunque nadie lo toque, se comporta como si estuviera en movimiento.

Ota:

El término técnico de este fenómeno es "deriva térmica”.

Iwata:

El problema es que cuando la temperatura cambia, el punto donde debería estar el cero se mueve de su sitio.

Ota:

No solo por efecto de la temperatura, también la humedad o los golpes repentinos pueden afectar a ese punto. Estuvimos buscando formas de conseguir nuestro objetivo, de fabricar un sensor que no tuviera este problema...

Iwata:

¿Y eso no es...

Ota:

¿Imposible? Sí, pero hay una manera de sortear el problema. Lo único que hay que hacer es añadir otro sensor distinto que ajuste el punto donde está el cero, por así decirlo.

Takamoto:

Aunque no podíamos aumentar el coste innecesariamente.

Ota:

Por eso, nuestra única opción era encontrar una solución para el problema basada en el software. Probamos muchas posibilidades distintas. Fue un proceso de prueba-error.

Iwata Asks
Iwata:

Eso quiere decir que no os quedó más remedio que inventar un método que detectara si el mando de Wii estaba o no en movimiento.

Ota:

Lo primero que se nos ocurrió fue usar un acelerómetro. Pensamos que nos serviría para detectar si se estaba moviendo o no, pero...

Iwata:

Pero no funcionó, ¿verdad?

Ota:

No, no funcionó. El sensor giroscópico es mucho más sensible que el acelerómetro, lo que significa que había casos en los que el acelerómetro indicaba cero, pero el sensor giroscópico detectaba movimiento.

Iwata:

No servía de nada, ¿verdad?

Ota:

Al final, conseguimos que el propio sensor giroscópico sea capaz de saber que no se está moviendo en realidad.

Iwata:

Entonces, a pesar de las fluctuaciones de temperatura y humedad, el sensor giroscópico funciona correctamente.

Ota:

Así es. Le añadimos un programa que lo hizo posible.

Iwata:

Dime, señor Ota, a la vez que intentabas domar ese sensor giroscópico tan rebelde, estabas trabajando en el SDK, el kit de desarrollo de software. ¿Qué opciones se abrieron de cara al desarrollo de nuevos juegos al combinar el acelerómetro y el sensor giroscópico? Me gustaría escuchar tu experta opinión ya que has participado en el desarrollo de gran cantidad de juegos.

Iwata Asks
Ota:

Yo creo que el avance más importante es que Wii MotionPlus permitirá a los desarrolladores de videojuegos experimentar las sensaciones del jugador.

Iwata:

¿Las sensaciones del jugador?

Ota:

Al ser capaz de percibir la rotación, el movimiento de la mano del jugador y el movimiento del objeto de la pantalla al que representa el mando de Wii coinciden en el tiempo. Todo el mundo ha soñado siempre con conseguir este objetivo.

Iwata:

Es indudable.

Ota:

No obstante, no se puede decir que fue fácil ni mucho menos. Las soluciones de las que acabamos de hablar, como aumentar el rango de detección de velocidad o la sensibilidad de detección de las velocidades bajas, no bastaban.

Iwata:

También estaba el problema de la deriva térmica.

Ota:

Y por otro lado, como los datos se transfieren vía inalámbrica, existía la posibilidad de que no se recibieran todos, lo cual significaría que el movimiento del mando de Wii y el del objeto correspondiente de la pantalla serían ligeramente asincrónicos.

Iwata:

¿Cómo resolvisteis ese problema?

Ota:

Utilizando solo el sensor giroscópico no fuimos capaces de dar con una solución satisfactoria para el problema, así que al final el acelerómetro nos resultó muy útil para conseguirlo.

Iwata:

Por lo tanto, estábais ante un problema que ni el acelerómetro ni el sensor giroscópico podían resolver por si solos, pero combinando ambos sensores, fuisteis capaces de lograr lo que siempre habíais querido: conocer de primera mano las sensaciones del jugador.

Ota:

Exacto.