perecornella@gmail.com

Realitat Augmentada al teu web amb Saqoosha FLARToolKit

El propòsit d’aquesta entrada és la de mostrar el procés que hem de seguir per tenir una aplicació de RA en el nostre lloc web. Em basaré en la idea de crear una aplicació on, en acostar el marcador, aparegui la imatge de l’Esquivamosques, un dels capgrossos més populars de la ciutat de Girona. En entrades anteriors he explicat com crear marcadors (markers, arxius en format PAT o PATT) on line o bé amb l’aplicació BuildAR.

En aquesta nova entrada s’explica com utilitzar aquests marcadors per crear realitat augmentada i posar-la al nostre espai web amb l’ajuda dels arxius que ens proporciona Saqoosha FLARToolKit. L’enllaç anterior ens porta fins a la pàgina de la guia d’inici, on podrem trobar un arxiu zip amb el FLARToolKit-starter-kit. Aquest és l’arxiu que necessitem descarregar i descomprimir. El següent esquema explica la funció i contingut de les carpetes i arxius que hi trobem (les icones poden variar en funció de les aplicacions que tingueu instal·lades al vostre ordinador).

Si volem fer una prova de com funciona, podem seguir els següents passos:

  • imprimir el marcador que utilitza FLARToolKit per defecte que trobarem a la carpeta Data: flarlogo-marker.pdf,
  • fer doble clic a un dels dos arxius .swf (pel·lícula Flash): Earth.swf o SimpleCube.swf,
  • s’obrirà una finestra del navegador i ens demanarà que permetem l’accés al Flash. Quan li donem el permís, en encarar el marcador a la webcam, ens ha d’aparèixer el model relacionat.

En la  imatge següent es pot observar el resultat d’haver executat l’arxiu Earth.swf:

Anem a veure com podem personalitzar tant el marcador com l’objecte que es mostra quan acostem el marcador a la webcam. Seguirem aquests passos:

  • crear el nostre propi marcador,
  • crear la nostra pròpia imatge a mostrar (2D, 3D…),
  • esborrar els arxius que no ens són necessaris de la carpeta FLARToolKit,
  • canviar el nom d’un arxiu i d’una carpeta,
  • posar els nostres arxius al lloc adequat,
  • modificar l’arxiu d’ActionScript (llenguatge que utilitza el Flash) amb l’ajuda d’Adoble Flash Builder.

Creant el nostre propi marcador

En altres entrades s’han explicat un parell de maneres de crear arxius .PAT que ens serveixin de marcador per a aplicacions de Realitat Augmentada:

Tot i que hi ha altres maneres de crear-los. El cas és que, d’alguna manera o altra, hem de tenir el nostre marcador personalitzat.

Creant la nostra pròpia imatge a mostrar (2D, 3D…)

Per als nostres propòsits necessitem un arxiu d’imatge en format DAE. Aquest és un tipus d’arxiu generat per Collada, una extensió que es pot treballar a partir de Blender, 3DS Max i altres editors 3D. D’entrada, dir això fa respecte, perquè l’ús d’aplicacions com aquestes, no és pas trivial (més aviat és complex… molt complex). Està clar que si dominem alguna d’aquestes aplicacions, els resultats poden ser molt espectaculars.

Tenim, però, una alternativa més senzilla: utilitzar l’aplicació Trimble SketchUp, una aplicació de Google. Per tant, descarreguem i instal·lem aquesta aplicació (hi ha una versió gratuïta i una versió Pro de pagament). D’una forma senzilla podem construir models 3D (és qüestió de practicar una mica). Però també podem convertir imatges personals al format DAE. El que explicaré aquí és precisament aixó. Seguint l’exemple, vull que la imatge mostrada en l’aplicació de RA sigui una foto del capgròs Esquivamosques. Per això, seguiré aquests passos:

  • retallo la figura del capgròs en un editor d’imatges i deso l’arxiu en format PNG,
  • obro l’aplicació SketchUp i hi importo l’arxiu PNG que acabo de preparar (File > Import…). El puc posar on més em convingui però, en el meu cas, el posaré sobre el terra; això ho aconseguiré desplaçant la imatge que estic important cap a la part inferior. Intento que quedi centrat amb els eixos de coordenades de l’aplicació. Sempre puc moure els objectes utilitzant les eines de SketchUp. També hauré d’esborrar la figura que apareix per defecte en els nous arxius de SketchUp (amb l’eina Select, selecciono la figura i l’esborro),
  • exporto l’arxiu (File > Export > 3D Model…). Puc escollir entre exportar un arxiu DAE (és el que ens interessa) i KMZ (el podríem utlitzar en el Google Earth, per exemple). Això ens crea un arxiu DAE amb el nom que haguem escollit i una carpeta amb el mateix nom que conté la textura. Ho necessitarem tot plegat per als nostres interessos.
Un parell de consideracions:
  • amb SketchUp puc crear objectes 3D que funcionaran de la mateixa manera que l’exemple explicat. Una mica de pràctica ens portarà a obtenir figures interessants,
  • si no volem crear nosaltres l’objecte DAE, poder recórrer a repositoris existens, per exemple la mateixa Galeria 3D de Google, des d’on es poden descarregar els arxius DAE.

Esborrant els arxius que no ens són necessaris

Hem vist que a l’arrel de la carpeta FLARToolKit Starter Kit hi ha dos exemples: Earth i SimpleCube. Ens quedarem només amb un dels dos exemples: l’Earth, pequè és el que ens permetrà, posteriorment, afegir un model personalitzat a mostrar. Això vol dir que podem esborrar:

  • els tres arxius de l’exemple SimpleCube,
  • dos dels arxius Earth: Earth.swf i Earth.fla, i deixem sense esborrar l’arxiu Earth.as,
  • no hem de tocar els arxius ARAppBase ni PV3DARApp,
  • de la subcarpeta Data, hem d’esborrar els arxius flarlogo.pat i flarlogo-marker.pdf; i deixar, per tant l’arxiu camera_para.dat,
  • de la subcarpeta model hem d’esborrar tots els arxius i deixar-la buida.

Canviant de nom d’un arxiu i d’una carpeta

Per començar a personalitzar el nostre projecte, canviarem el nom de l’arxiu Earth.as pel que nosaltres vulguem. En el meu cas, el rebatejaré com a esquivamosques.as (penseu que pot ser que no es vegi l’extensió).

També canviarem el nom de la carpeta on hem preparat tots els arxius anomenada FLARToolKit Starter Kit i la personalitzarem amb un nom referent al nostre projecte. per exemple, esquivamosques.

Posant els nostres arxius al lloc adequat

A la subcarpeta Data hi posarem el nostre arxiu de marcador. En el meu cas, esquivamosques.pat. A la subcarpeta model hi posarem els arxius del nostre model a mostrar. En el meu cas, l’arxiu esquivamosques.dae i la carpeta esquivamosquesque conté la textura de la imatge.

Modificant l’arxiu d’ActionScript (llenguatge que utilitza el Flash) amb l’ajuda d’Adoble Flash Builder

Per acabar el procés, cal crear els arxius necessaris a partir dels nostres arxius personalitzats. Per això seguirem el següent procés:

  • descarreguem i instal·lem la versió de prova de l’Adobe Flash Builder (60 dies) que trobarem al web d’Adobe (ens faran crear un compte d’Adobe, de forma gratuïta). Si som del ram eductiu o som a l’atur, podem optar a una versió no comercial. la podeu trobar en aquest enllaç d’Adobe (triguen un parell de setmanes en validar les dades i proporcionar-te un serial),
  • executem l’aplicació,
  • creem un nou projecte ActionScript: File > New > ActionScript Project,

  • completem la finestra que se’ns obre amb les dades del nom del nostre projecte. Canvieu, si us convé, el destí on desarà el projecte. Les altres opcions les deixem tal i com estan,
  • fem clic sobre Next i ens porta a una nova finestra. Fem clic sobre la pestanya Source path i afegirem una nova carpeta, a través del botó Add Folder… Escollirem la carpeta que hem preparat amb tots els arxius. En el meu cas, la carpeta esquivamosques. Fem clic sobre Finish i veurem que es crea tot el projecte perquè apareixen carpetes i arxius a la zona de l’esquerra,
  • després d’un breu procés, veurem que la part esquerra de pantalla de Flash Builder ha canviat i hi apareixen elements relacionats amb el nostre projecte,
  • des de la finestra de l’esquerra anomenada Package Explorer, despleguem la carpeta anomenada [source path] seguit del nom de la carpeta del nostre projecte. Veurem que hi ha les carpetes Data, model i org que ja hem vist anteriorment. Seleccionem les carpetes Data i model, les copiem, i les enganxem a la carpeta (default package) que trobarem dins la carpeta src, dins la mateixa zona de la pantalla. El resultat final ha de ser com el que mostra la imatge:
  • encara hem de copiar i enganxar un altre arxiu de la finestra Package Explorer: hem de desplegar la carpeta [source path] esquivamosques > (default package), seleccionar i copiar l’arxiu esquivamosques.as i copiar-lo a a la carpeta src que hi ha una mica més avall. Ens dirà si volem sobreescriure l’arxiu i li diem que sí. Quan ho fem, veurem que el codi de l’arxiu d’ActionScript (as) que hi ha a la dreta canvia,
  • podem observar que, a la part inferior de la pantalla apareix un error. És normal perquè hem d’actualitzar algunes parts del codi per ajustar-lo als noms d’arxiu del nostre projecte,
  • ara ens cal fer uns quants canvis en aquest codi:
    1. canviem el nom del marcador pel nostre (flarlogo.pat per esquivamosques.pat),
    2. canviem el nom del model pel nostre (earth.dae per esquivamosques.dae),
    3. canviem els 2 noms de la classe Earth per un nom personalitzat. En el meu cas, esquivamosques,
    4. canviem els 7 noms _earth per un nom personalitzat. En el meu cas, _esquivamosques (és aconsellable deixar la barra baixa inicial; podeu canviar d’un sol cop tots aquests noms amb una cerca i reemplaçament),
  • el resultat final per al meu projecte és aquest:
  • i ja podem provar el projecte tot fent clic sobre el botó verd (Run) de la barra d’icones de l’aplicació.A vegades ens podem trobar que no es visualitza res; sol ser degut a problemes amb el navegador (en el meu cas, he tingut problemes amb el Google Chrome, també cal tenir el Flash Player degudament actualitzat). Es pot copiar l’adreça i enganxar-la en un altre navegador. Probablement el resultat que veiem no ens acaba d’agradar: mida, està girant, posició… En la següent imatge indico quines línies de codi cal modificar per variar els resultats. Tingueu en compte que, tant en el cas de la posició inicial com en el de la rotació de l’objecte, es poden variar els exios i es poden afegir noves línies de cosi per a nous eixos. Us deixo de la vostra mà l’experimentació fins a obtenir el resultat desitjat,
  • en el meu cas, he canviat el valor de l’escala a 4; he afegit una rotació inicial de l’eix Z a 90 (afegint una línia sota la de l’eix X) i he tret la rotació de l’objecte (deixant el valor a 0),
  • ara només ens exportar el projecte: File > Export… i triant l’opció Release Build de la carpeta Flash Builder. Triem la carpeta destí (o en creem una de nova) i ja ho tindrem tot llest.  Aquesta és la carpeta que hem de pujar al nostre lloc web. A l’interior veureu que hi ha un arxiu html amb el mateix nom del projecte, que és el que engega el projecte (de fet, abans de penjar la carpeta podem executar aquest arxiu per veure el resultat final). Podeu rebatejar aquest arxiu amb el nom index i així no caldrà escriure’l a l’adreça web perquè ja s’obrirà per defecte. També podeu editar i canviar alguns dels paràmetres d’aquest arxiu html. Per exemple, el color de forns, la mida de la finestra de vídeo… En la darrera imatge podeu veure una imatge del resultat del meu projecte, que podeu trobar i provar en aquest enllaç web  fent sevir el aquest marcador.