Multi-touch table

The multi-touch table is aiming for creating an easy-to-use prototype platform for tabletop interaction. The goal of the table is that it can sense touch input as well as fiducial markers for object tracking. An online community, NUI Group, contains a lot of information about how to make this type of table through different types of technologies. The method I chose here is called Diffused Surface Illumination (DSI). The idea is putting the infrared(IR) LED strip on the side of the acrylic to illuminate the whole surface; therefore, the IR camera underneath can see the surface clearly without being affect by the projection on the surface.

Material and Equipments

The material and equipments I used for the table contains:

All of the wood are just for making the structure of the table, it can be replaced with any other material. ACRYLITE LED acrylic sheet let the IR LED's light diffused nicely across the whole surface. ACRYLITE Satinice acrylic sheet is a frosted surface for projection, it can be replaced with any similar material. Kinect in this project is just serving as an IR camera, and it would be a lot easier if just using a normal IR camera than Kinect. ST200 is a short throw pico projector, it can project a 30" screen size (diagonal) in around 30" distance. If the projector has smaller throw rate, you can use a mirror to increase the projector distance without actually increase the table size. The ST200 has only 150 lumen, so the projection is pretty dim and requires a dark room to see the projection clearly. Since the model I got has some problem on its HDMI port; therefore, I consider to replace it with P450, which has 450 lumen and might have a better projection.The image below shows the same projection in both light and dark room

Testing the IR edge lit and projection

We use Kinect as IR camera here. Kinect itself has IR LED array that projects an IR point cloud, which will interfere with the nicely diffused IR light comes out from the IR LED strips, so we need to block that LED array. The image bellow shows the Kinect with LED array blocked, and the Kinect's views with LED blocked and unblocked.

The video shows that Haman's eyes cannot see the light comes out from the IR LED; therefore, it won't affect the projection. Similarly, the IR camera cannot see the light comes out from the projector, and shows only black image before I turn on the IR LED strips.

Making of the Table

I first model the table in SolidWorks. In SolidWorks, I design every different part as "Part", and put everything together in "Assemble". For similar part with slightly different, I use configuration to modify those different, such as different height and drilling holes.

I made the four sides of the table with the CNC routing machine and connect the parts with dowels and glue. Then, I stick the LED strip on the table and place the acrylic sheets.

Laser cutting the cover

Finish

Projection Test

Testing the projection. At this point, the projector's HDMI port is still working fine, so the projection size is larger and can fit the whole screen. The resolution is higher (720p), too. The HDMI port then has a connection problem, so I switch to use the VGA port. However, the projection size is smaller, and I can only get 800 x 600 resolution.

Making the Tabletop Objects

I made the tabletop objects with MDF. I'll attach the fiducial marker underneath for object tracking later.

Tracking

All of the code can be found on Github. I use openFrameworks with some other add-ons, including ofxFiducialTracker. The video shows the tracking result. For the fiducial tracker, the program can get the marker size and the orientation information as well.

Removing light leakage.

The image on the left shows the side of the table is extremely bright. That is probably because we didn't cover the top of the LED strip. The extremely brightness will affect the detection. In the image, you can see the palm also reflecting lights, which we don't want. The image on the right shows the camera view after the top side of the LED strip is covered. The result is much cleaner.