13.05.2013 Views

desarrollo de sistemas de realidad virtual y aumentada para la ...

desarrollo de sistemas de realidad virtual y aumentada para la ...

desarrollo de sistemas de realidad virtual y aumentada para la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Incluso incorporando esta mejora se apreciaba un ‘jitter’ consi<strong>de</strong>rable con<br />

tamaños <strong>de</strong> marcas pequeños, por lo que se optó por aumentar el tamaño <strong>de</strong> éstas<br />

hasta unos 24 centímetros <strong>de</strong> <strong>la</strong>do, ya que <strong>la</strong> óptica <strong>de</strong> <strong>la</strong> cámara utilizada tenía un<br />

elevado campo <strong>de</strong> visión y el tamaño <strong>de</strong> marca en pantal<strong>la</strong> era muy reducido. De este<br />

modo se mejoró muy notablemente <strong>la</strong> estabilidad <strong>de</strong>l sistema. De todas formas, aun se<br />

podía mejorar, así que se incluyó un filtrado básico <strong>de</strong> <strong>la</strong> posición y orientación. Se<br />

establecieron unos umbrales a partir <strong>de</strong> los cuales se actualizaban <strong>la</strong>s posiciones y<br />

orientaciones. La forma <strong>de</strong> implementarlo fue usar maps <strong>de</strong> código Python evaluados<br />

a cada ciclo <strong>de</strong> refresco <strong>de</strong> <strong>la</strong> tarjeta gráfica <strong>de</strong>l or<strong>de</strong>nador utilizado. Esta mejora<br />

produjo resultados bastante satisfactorios, aunque los umbrales no podían ser muy<br />

gran<strong>de</strong>s, por lo que se pensó en hacer otro tipo <strong>de</strong> optimización.<br />

Una posible mejora era <strong>la</strong> implementación <strong>de</strong> un filtro <strong>de</strong> Kalman [Kalman08],<br />

pero se optó por otra solución. Dicha solución partió <strong>de</strong> <strong>la</strong> disponibilidad <strong>de</strong> un ‘tracker’<br />

<strong>de</strong> cabeza <strong>de</strong> tres grados <strong>de</strong> libertad. ‘Tracker’ que ya se ha <strong>de</strong>scrito en el apartado<br />

3.6 y que proporcionaba mucha precisión en <strong>la</strong>s orientaciones que <strong>de</strong>vuelve (‘head’,<br />

‘pitch’ y ‘roll’). La i<strong>de</strong>a era utilizar el posicionamiento que <strong>de</strong>vuelve <strong>la</strong> tecnología óptica<br />

y <strong>para</strong> <strong>la</strong> orientación tomar como referencia <strong>la</strong> tecnología <strong>de</strong> giroscopios que incorpora<br />

el ‘tracker’. De esta forma sí que se obtuvo una mejora consi<strong>de</strong>rable.<br />

Posteriormente se incluyeron una serie <strong>de</strong> extras <strong>para</strong> facilitar el trabajo <strong>de</strong> <strong>la</strong><br />

persona que estuviera a cargo <strong>de</strong> los <strong>sistemas</strong> durante <strong>la</strong>s pruebas. La i<strong>de</strong>a era utilizar<br />

un joystick inalámbrico <strong>para</strong> el control <strong>de</strong>l sistema, y así no tener que estar junto al<br />

tec<strong>la</strong>do <strong>de</strong>l or<strong>de</strong>nador. Para ello se utilizó un plugin escrito en C++ que capturaba <strong>la</strong>s<br />

pulsaciones <strong>de</strong>l joystick. Éstas se en<strong>la</strong>zaron (binds) con cada botón <strong>de</strong> ejecución <strong>de</strong><br />

los eventos <strong>de</strong>finidos <strong>para</strong> <strong>la</strong>s pulsaciones <strong>de</strong> tec<strong>la</strong>do.<br />

A<strong>de</strong>más, <strong>para</strong> lograr un mayor grado <strong>de</strong> inmersión se mostró <strong>la</strong> escena <strong>de</strong> forma<br />

estereoscópica. Para conseguirlo mediante Brainstorm eStudio, hay que <strong>de</strong>finir el pipe<br />

gráfico sobre el que se dibuja <strong>la</strong> escena como ‘pipe’ <strong>de</strong> tipo “estéreo pasivo” y<br />

configurar el tamaño como el doble <strong>de</strong> una pantal<strong>la</strong> (si originalmente era 800x600, se<br />

pasa a 1600x600, con lo que se han <strong>de</strong> utilizar <strong>la</strong>s dos salidas <strong>de</strong> <strong>la</strong> tarjeta gráfica, y<br />

<strong>la</strong>s dos entradas se<strong>para</strong>das <strong>de</strong>l casco. A<strong>de</strong>más, hay que configurar el <strong>para</strong><strong>la</strong>je <strong>de</strong> <strong>la</strong><br />

escena, acción que se hace utilizando el editor correspondiente <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> cámara<br />

<strong>de</strong> simu<strong>la</strong>ción <strong>de</strong> <strong>la</strong> escena. Consi<strong>de</strong>rando que <strong>la</strong> fuente <strong>de</strong> vi<strong>de</strong>o era monoscópica, se<br />

obtuvieron resultados muy satisfactorios.<br />

82<br />

Desarrollo <strong>de</strong> <strong>sistemas</strong> <strong>de</strong> Realidad Virtual y Aumentada <strong>para</strong> el tratamiento <strong>de</strong> <strong>la</strong> acrofobia. Estudios …

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!