DOI: 10.25377/sussex.30256453
title: 3D Printable Tactile Dataset

description: This dataset contains the 3D printable objects of varying patterns to make a benchmark task for comparing tactile sensors. This dataset contains the 3D printable objects in STL format. The textures can be generated from scratch using the equations listed below (be advised the equations are in markup format).It is easy to parameterise for a 2D surface, we have 5 parameters (amplitudes along the 2 directions, the frequencies along the 2 directions, and the phase shift between the directions). This would simplify scalability for different sensors.Indeed, as other repetitive shapes (squares, pyramids, etc..) can be obtained from a sum of sine functions, detecting what is the minimum sine pattern that the sensor can detect may help benchmark the sensor for more advanced shapes.The equations used to generate the shapes are as follows.Texture OneIn this equation~\ref{eq_1}, \( A_1 \) and \( A_2 \) represent the amplitudes of the sine waves in the \( x \)- and \( y \)-directions, respectively. The parameters \( f_1 \) and \( f_2 \) denote the frequencies of the sine components along the \( x \)- and \( y \)-axes. The variable \( \phi \) is a phase offset applied to the sine term involving \( y \). The variables \( x \) and \( y \) are spatial inputs, and the output \( z_1 \) is the sum of two sine functions modulated by their respective amplitudes, frequencies, and phase.We use $A_1 = 1$, $A_2 = 2$, $f_1 = 1$, $f_2 = 1$, $\phi = \pi / 2$.\begin{equation}z_1 = A_1 \sin(f_1 x) + A_2 \sin(f_2 y + \phi)\label{eq_1}\end{equation}<br>Texture TwoTexture two also uses equation~\ref{eq_1}, with the same parameters for $A_1$, $f_1$, and $f_2$ however the variable $A_2$ is set to 1.<br>Texture ThreeWe define the function \( z_3 \) over a grid using the following summation:\begin{equation}z_3 = \sum_{\substack{i=1 \\ i \text{ odd}}}^{N} \left( \frac{8}{\pi^2} \cdot \frac{(-1)^{\frac{i - 1}{2}}}{i^2} \cdot \sin(i x) + \frac{8}{\pi^2} \cdot \frac{(-1)^{\frac{i - 1}{2}}}{i^2} \cdot \sin(i y) \right)\label{eq_2}\end{equation}<br>In this expression, \( N \) is the number of terms in the summation, taken over odd integers from 1 to \( N \). For our texture we used $N=25$ Each term in the series uses the coefficient\begin{equation}A_i = \frac{8}{\pi^2} \cdot \frac{(-1)^{\frac{i - 1}{2}}}{i^2}\end{equation}which controls the amplitude of the sine wave. The sine functions \( \sin(i x) \) and \( \sin(i y) \) vary with spatial coordinates \( x \) and \( y \), respectively, and share the same frequency \( f = i \) and amplitude \( A_i \). The phase offset \( \phi \) is set to zero and is therefore omitted in the formula.The function \( z_3 \) is initialized as a zero-valued array of the same shape as \( x \), and is built up iteratively by adding sine wave components in both the \( x \)- and \( y \)-directions. This results in a 2D Fourier-like series that combines symmetrical sine waves to construct a spatial pattern.Texture FourTexture four uses the same equation (equation~\ref{eq_2}) as texture three, however with a modified coefficient\begin{equation}A_i = \frac{4}{\pi i}\end{equation}<br>Additionally this equation uses $N=25$. The decay and lack of sign alternation lead to sharper features, with more pronounced ridges and edges.Texture FiveTexture five also uses the same equation as equation~\ref{eq_2} and the same coefficient as texture three. The difference is $A_2 = 0$ which leads to no direction in one of the axis, making the shape a protruded shape rather than shapes in both directions.Texture SixOur final texture uses the same equation as equation~\ref{eq_2}, and same coefficient as texture four. The difference is $A_2 = 0$ which leads to no direction in one of the axis, making the shape a protruded shape rather than shapes in both directions.Now we can see that there is a lot of overlap between these textures equations, making the generation of new patterns that are not widely different very possible.All the models were converted to file type STL as blocks to be 3D printed. These models were all constrained to be the same height. We wanted to make sure that the sensor can be lowered to the same position for each experiment.Code can be found: https://github.com/shepai/3D-textures<br>