Interdigitation and Interpolation Methods for Continuous Position Input
This page accompanies our TEI 2019 paper on pressure sensor matrix design. Here we provide a basic overview of our results with additional figures that did not fit the paper. Data and code can be found in our GitHub repository.
We have – in the past – build various pressure sensor matrices, such as this one, published at NIME 2017 and also Open Source. We had various discussions on how to optimize the design, and finally decided to simply test things rather than making decisions based on assumptions.
To do so we built 17 different sensors, and tested their accuracy using 3 different touch sizes and 8 different touch-detection algorithms.
Keep scrolling for an overview of the results.
In general, touch characteristics are what we have the least control over. We can’t very well tell users to change the size of their fingers and generally we don’t control how much pressure they use. Still, we can take their behavior into consideration and we can design sensors to suit the way we expect the users to engage with them.
Does it make any difference how hard a user presses the sensor? What are the effects of changing pressure? To answer these questions, we sampled both gentle (the smallest signal we could consistently produce) and strong (taking advantage of the full dynamic range of the sensor) touches.
Precision / Accuracy
We found that on average that low pressure performed better than high pressure over all sensors for accuracy. However, the low pressure condition also had low precision. Strong pressure typically was less accurate, but more precise.
As in: on average low pressure performed better than high pressure, but the readings of the high pressure condition have less variability.
Consistency (as a function of method)
The difference between high and low pressure was especially strong for the CUBIC peak-detection method. The difference between sensor behavior for high and low pressure was lowest with GAUSSIAN, followed closely by LINEAR, mTOUCH, and COM.
As in: You should probably not use CUBIC peak-detection, while GAUSSIAN might be a good choice if you care mostly about precision and repeatability of measures.
Should electrodes be spaced at intervals smaller than the touch size? Should electrode spacing and touch size be the same? Or maybe touch size should be smaller than electrode size? In practice, the touch size cannot easily change (the size of a fingertip will not change much for a given user). However, we might estimate the expected touch size and then design the sensor accordingly. To investigate how touch/digit width ratios influence the sensing, we used touch-points 50%, 100% and 150% the size of the electrodes (which is the same as the electrode spacing).
In general, we found, large touches perform better than smaller touches. However, this patter was not true for all sensors. For example, for the non-interdigitated sensor, small touches performed better than large touches.
Information Content in Signal
To understand why this is the case, we analyzed how much the signal changes when the position changes. The reasoning for this is that, if there is a measurable change between two positions, there should be a way to determine if the touch is at position 1 or 2. If there is no change between two positions, even the smartest algorithm cannot identify where the sensor is being touched.
The plot below shows the normalized magnitude of the change in signal between adjacent positions. X axis is the position, Y axis magnitude of change. Colors indicate different electrodes. Top row is smallest touch, bottom row is largest touch.
What we found is that, for the small touch size the changes in signal were evenly distributed. However, as the touch size increased, there are areas (between 20mm and 50mm as well as between 70mm and 100mm) where there is almost no change in signal and, consequently, it is reasonable that the estimation of touch position is error-prone in those regions.
While our initial interest was establishing if touch size should be equal to, smaller, or larger than the electrode size, this suggests that the problem is more complex and that there is a periodic interaction between the size of the elctrode and of the touch. In retrospect it would have been valuable to have a wider range of touch sizes, as we did in our previous (more limited) study on touch accuracy of pressure sensor matrices. That work suggests that further increasing touch-sizes need not result in better accuracy of the tracked position:
Interaction with Algorithms
We wrote a Processing Sketch for parametrically generating interdigitated patterns. We decided that the parameters most interesting to us were digit width and digit length (as seen in the large image above).
Though many more parameters could be manipulated, feel free to test our pattern generator.
As we showed in our discussion of the touch-sizes, there is a periodic interaction between touch-size and strip width. Increasing the length of the digits changes the effective strip width and effects these patterns. In the 5 graphs below, we plot the change in sensor readings between each consecutive position (normalized on a scale of 0 to 1). We see that when using 150% touch size (375mm) there are large gaps with hardly any change in signal for the non-interdigitated sensor (top). As we add increasingly longer digits, the change becomes more consistent until, at 100% digit length, the change is almost constant.
We did not find a main effect for this, as the effect of digit length interacts with the touch size – in other words, on average, digit length did not make a difference, however, for the large size, increasing digit length improved the accuracy of the readings.
Touch Detection Algorithms
Center of Mass
Overall Centre of Mass based approaches led to the best results, especially when using interdigitated electrodes. We used two different approaches mTOUCH calculates the touch position from the three highest values. COM uses the values of all seven electrodes.
Generally mTOUCH led to the best results, once the data had the noise-floor removed and the dynamic range mapped from 0 to 1. Anecdotally, Calculating Centre of Mass using all electrodes led to better results on the more noisy raw data.
Curve Fitting methods assume that the distribution of the pressure values matches a known curve. We tested GAUSSIAN, CUBIC and PARABOLIC curves. We found that CUBIC peak-detection performed surprisingly poorly, especially for interdigitated sensors. While it performed well for low pressure levels, high pressure with CUBIC peak detection lead to some of the worst results we found.
While Centre of Mass approaches generally outperformed Curve Fitting approaches, GAUSSIAN peak-detection performed surprisingly well with regards to consistency over pressure levels and precision.
Linear Fitting follows the same logic as Curve Fitting, just that we assume that the signal has a linear propagation from its peak. Interestingly the periodic error patterns we found for these peak-detection methods had double the frequency as the others.
In general LINEAR performed well, however, the distribution of errors is slightly non-intuitive, and we speculate that a more consistent method, such as GAUSSIAN Curve Fitting might be more pleasant to users, even though the accuracy is lower. The BLAIS_RIOUX algorithm is originally designed for detecting peaks in streaming real-time data. We modified a modified version by https://link.springer.com/chapter/10.1007/978-1-4471-1921-0_28