I’ve been working with the Touchkit for a while and have found that there are some tracking issues with the hardware. Particularly, when sliding a finger across the surface the tracker can lose the finger and pick it back up later. This issue causes a problem when writing an application for the Touchkit, since the programmer will expect an action like this to be continuous.
I performed 65 trials of dragging my finger across the Touchkit in one continuous motion with average pressure. I recorded the points of presses and drags and plotted them in Matlab, while I varied the lighting, background color, and sensitivity of the table and found that white background, lights on and 30 vision threshold gave the best results. Next, I did 15 more trials with these or similar settings, and calculated the distance and time between the last drag point recorded and a new touch for the optimal settings. Finally, I wrote an algorithm that uses a pointer to the default finger tracking object, which I can update when I find that a new touch is not the same as the previously lost one, based on its time and distance apart.
I found that with the optimal settings, 57% of the trials yielded one continuous touch. With a distance parameter of 25 pixels and a time of 40 ms in my algorithm the success rate would be 93% (only one failed trial). Below are two Matlab graphs of the same continuous touch. The first is plotted using the default tracking object’s data and the second is plotted using my pointer’s data.
figure 1. Matlab graph of tracked data from the default object
figure 2. Matlab graph of tracked data from my pointer to the default object
The blue circles on the figure indicate a detected press. Notice the first figure shows several detected presses, while the second figure only detects one. Figure 2 shows that my algorithm correctly tracks the finger gesture.