Mixed Reality DesignRSSarchive

Progress in the project : physical objects -> virtual environment

Yesterday i made several progress in the prototyping of the project.

> physical tags and grid configuration

- I have defined one touchatag rfid tag for each 10X10 cm square on a 4x5 grid. I used a pen and wrote on each tag the corresponding square coordinates from 1-1 to 4-5.

- I used the touchatag online tag dashboard configuration (who makes able to say what url must be targeted for one or several rfid tags) to link all the coordinates tags directly to a local Mysql/php server url with a php script.

Touchatag online rfid configuration dashboard (http://www.touchatag.com)


> php+mysql installation - database creation


Mamp : an “easyphp” like for mac (free)

- I installed MAMP for OS X (same as easyphp for PC), and create a database and php scripts

- The database has 3 tables :objects, positions, and link (between objects and position id’s).

- I created a php script called “register.php”. Linked the local url http://127.0.0.1/mixedreality/register.php?hash= to the rfid tags for coordinates squares.

> Registering of the tags in the database with their id’s (hash)

- i just put the tags on the reader, then the distant server make my browser call the local php page wich is registering the hash (unique id, very long) in the mysql database. I did that for each position tag corresponding to a physical square in my 5x4 grid.

- I made the same for the objects rfid tags : a register local php script launched by the rfid reader and registering the objects hash id’s on the object table. Then i manually completed the table to write “sphere”, “cube”, “table”,”chair”,”bed”. These are the basic objects for my tests.

> Other php scripts : clean.php and scan.php

- I created another script to clean the objects position. This script corresponds to a webpage called when i put a particular object on the rfid reader (a yugi yoh card). When i put this object on the reader, all the “link” table is dropped. It “cleans” all the positions.

- The most complicated script is the scan.php script. It is registering the position of objects on the grid. Depending of physical mouvements, this script must not take some informations like coordinate tag+coordinate tag, but only object tag+coordinate tag,and must try to eliminate basic “data noise”. We don’t care about the details for the moment : we must prove the main concept and it works :-)

> positions.php to be requested from virtual world

- the last script is a php page made to be requested from OpenSim (free version of Second Life) by the Rezzer Object. The rezzer object is a cube in the virtual world, requesting the position of objects and then building them (rezzing) at the right coordinates.

- At this stade and after local test of the positions registration in the database, i uploaded the php scripts on a webserver and also the database. Then i linked in one click all the tags on the new distant url for the php scripts (clean.php, scan.php), using touchatag online dashboard.

- I created then a last php script writing the combinations of objects and positions in a string : object name - x - y,object name, x,y, etc. This is the page wich is requested by the rezzer : positions.php.

> In the virtual world

- Now in Opensim i connected my avatar and built a cube. I created a lsl script in the cube to call the positions.php webpage. When clicked, the cube requests the positions.php page and launches a lsl parsing script. Depending of the string obtained, it builds the objects at the right positions. I built also a biggest object reflecting the physical grid (a big square of 20x20m in the virtual world), to verify easily the positions of virtual objects.

> Tests/Results

As you can see in the pictures i made my tests with familiar simple objects and it seems to work :-)


Tagged cube (i found a rubiks :-)


I put the cube on the reader and then put it on the physical tagged board with the rfid reader.

I did the same with the sphere.
Rfid tags are sticked on objects and in the board.
Coordonnates 1-2 and 2-1.


Inworld, virtual objects are appearing :
Coordonnates 1-2 and 2-1 :-)

> Next steps :

- Make the object disappear in the virtual world when i put the “cleaner” object on the rfid reader in the physical world : all the object must listen to a channel and disappear at the “destroy” signal.

- Make the cube request the database each 5 seconds. For the moment i click the cube and then it requests the web and “rezzes” the objects.

- Build a fine physical board, modify the reader.

- Find something else than my wife objects because she is bored with that :-)

But the concept works : i can put the object in the physical world, click on the cube, and i walk in the generated environment immediatly with my avatar !

hugobiwan.zolnir(at)gmail(dot)com

link