# Dataset for Conditioned haptic perception for 3D localization of nodules in soft tissue palpation with a variable stiffness probe ## Linked publication These data are related to the following publication: \[1\] N. Herzig, L. He, P. Maiolino, S-A Abad, and T. Nanayakkara, *Conditioned Haptic Perception for 3D localization of Nodules in Soft Tissue Palpation with a Variable Stiffness Probe*. PLoS One. DOI: [10.1371/journal.pone.0237379](10.1371/journal.pone.0237379) ## Data The folder contains a .mat file. This binary Matlab file contains the following structures: * `AlgoTest` * `DataFESimu` * `DataLongitudinal` * `DataLateral` * `ForcePeakProminence` * `LikelihoodFunctions` ### AlgoTest `AlgoTest` is a 1D structure where the index correspond to different trials where the nodule detection algorithm (described in [1]) was tested. The structure index takes value from 1 to 10. The structure contains the following fields: * `noduledepth`: describes the nodule depth (in mm) at which the algorithm has been tested * `LikelihoodFunctions`: gives the type of likelihood functions used in the algorithm. Experimental refers to the likelihood functions obtained from experimental characterization whereas simulation refers to the likelihood function computed from the data obtained with FE simulation. * `AlgoType`: refers to the type of algorithm used. `normal` refers to the algorithm presented in [1] and `constant` stiffness refers to the scenario where the stiffness is kept constant. * `ProbD`: 2D table giving the successive discrete probability distributions after each sweep. Each row corresponds to each sweep and the columns correspond to the discrete range of depth from 2 to 8 mm by steps of 0.2mm. * `InformationGains`: vector containing the iterative computation of the information gain (SI unit) after each sweep. * `Stiffness`: vector containing the iterative values of the stiffness (in Nm/rad) computed by the algorithm and used for each sweep. ### DataFESimu `DataFESimu` is a 2 dimension structure that contains the data generated during the Finite Element simulation of longitudinal sweeps. The first dimension is related to the nodule depth taking value from 1 to 5 corresponding to the values 2mm, 4mm, 6mm, 8mm, and no nodule respectively. The second dimension is related to the angular stiffness of the probe taking value from 1 to 15 corresponding to the values 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad. The structure contains the following fields: * `noduledepth`: describes the nodule depth (in mm) at which the algorithm has been tested * `stiffness`: stiffness (in Nm/rad) of the VLM probe set during the simulation * `TimeFT`: time vector (in s) corresponding to the data points of Fz * `Fz`: force (in N) computed at the position of the force sensor along z-direction ### DataLateral `DataLateral` is a 4 dimension structure that contains the data acquired during lateral sweeps characterization. The first dimension is related to the nodule depth taking value from 1 to 5 corresponding to the values 2mm, 4mm, 6mm, 8mm, and no nodule respectively. The second dimension is related to the angular stiffness of the probe taking value from 1 to 15 corresponding to the values 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad. The third dimension relates to the trial number taking value from 1 to 5. The fourth dimension refers to the shift along x-axis taking value from 1 to 5 corresponding to a 0mm, 5mm, 10mm, 15mm, 20mm shift respectively. The structure contains the following fields: * `noduledepth`: the depth of the nodule characterized (in mm). * `stiffness`: stiffness (in Nm/rad) of the VLM probe * `trial`: trial number * `TimeFT`: time vector (in s) corresponding to the data points of Fz * `Fz`: force measured (in N) by the force sensor along z-direction * `TimeTactile`: time vector (in s) corresponding to the tactile measurement data points * `txtable`: 2D table containing the capacitance (in fF) measured for each of the 22 taxels. The column number is given in the attached picture (taxelnumber.jpg) ### DataLongitudinal `DataLongitudinal` is a 3 dimension structure that contains the data acquired during longitudinal sweeps characterization. The first dimension is related to the nodule depth taking value from 1 to 5 corresponding to the values 2mm, 4mm, 6mm, 8mm, and no nodule respectively. The second dimension is related to the angular stiffness of the probe taking value from 1 to 15 corresponding to the values 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad. The third dimension relates to the trial number taking value from 1 to 25. The structure contains the following fields: * `noduledepth`: the depth (in mm) of the nodule characterized * `stiffness`: stiffness (in Nm/rad) of the VLM probe * `trial`: trial number * `TimeFT`: time vector (in s) corresponding to the data points of Fz * `Fz`: force measured (in N) by the force sensor along z-direction * `TimeTactile`: time vector (in s) corresponding to the tactile measurement data points * `txtable`: 2D table containing the capacitance (in fF) measured for each of the 22 taxels. The column number is given in the attached picture (taxelnumber.jpg) ### ForcePeakProminence `ForcePeakProminence` is a 1 dimension structure where the index corresponds to different nodule depths taking value from 1 to 5 corresponding to the values 2mm, 4mm, 6mm, 8mm, and no nodule respectively. The structure contains the following fields: * `long`: 2D table containing the force peak prominences (in N) computed during the longitudinal sweeps characterization (related to `DataLongitudinal`). The rows correspond to the 25 trials where the columns refers to the 15 tested stiffnesses 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad respectively. * `lat`: 2D table containing the force peak prominences (in N) computed during the lateral sweeps characterization (related to `DataLateral`). The rows correspond to the 25 trials where the columns refers to the 15 tested stiffnesses 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad respectively. It can be noticed that these 2 tables have been used for the statistical analysis performed with Kruskal-Wallis tests to compare the distribution of the force peak prominence for different stiffnesses. More details about this statistical analysis are available in the supplementary appendix S1 of \[1\]. ### LikelihoodFunctions `LikelihoodFunctions` is a 2 dimension structure containing the likelihood functions used to perform conditioned haptic perception for 3D localization of nodules in soft tissue palpation with a variable stiffness probe. The first dimension is related to the nodule depth taking value from 1 to 5 corresponding to the values 2mm, 4mm, 6mm, 8mm, and no nodule respectively. The second dimension is related to the angular stiffness of the probe taking value from 1 to 15 corresponding to the values 0.65Nm/rad, 0.66Nm/rad, 0.67Nm/rad, 0.68Nm/rad, 0.69Nm/rad, 0.7Nm/rad, 0.71Nm/rad, 0.73Nm/rad, 0.74Nm/rad, 0.76Nm/rad, 0.77Nm/rad, 0.8Nm/rad, 0.83Nm/rad, 0.87Nm/rad and 0.94Nm/rad. The structure contains the following fields: * `LFLong`: Matlab kernel probability distribution object containing the probability density functions for longitudinal sweeps. * `LFLongInterp`: vector containing the discrete interpolated probability density functions for longitudinal sweeps corresponding to the discrete range of depth from 2 to 8 mm by steps of 0.2mm. * `LFLat`: Matlab kernel probability distribution object containing the probability density functions for lateral sweeps. * `LFLatInterp`: vector containing the discrete interpolated probability density functions for lateral sweeps corresponding to the discrete range of depth from 2 to 8 mm by steps of 0.2mm. * `LFSimu`: Matlab kernel probability distribution object containing the probability density functions for FE simulated longitudinal sweeps. * `LFSimuInterp`: vector containing the discrete interpolated probability density functions for FE simulated longitudinal sweeps corresponding to the discrete range of depth from 2 to 8 mm by steps of 0.2mm. ## Usage Open Matlab. To load the full data: ```matlab addpath('\[LINK-TO-THE-FOLDER-CONTAINING-THE-VariableStiffnessPalpationData.mat\]') load('VariableStiffnessPalpationData.mat') ``` N.B.: The amount of data is important so loading can take a bit of time. To load a substructure of the data (DataLongitudinal for instance): ```matlab addpath('\[LINK-TO-THE-FOLDER-CONTAINING-THE-VariableStiffnessPalpationData.mat\]') load('VariableStiffnessPalpationData.mat','DataLongitudinal') ``` To access the force measurement time vector of the 14th trial of the longitudinal characterization with the 4mm deep nodule and the 0.65Nm/rad stiffness: ```matlab DataLongitudinal(2,14,1).TimeFT ``` ## Acknowledgment This work was funded by the United Kingdom Engineering and Physical Sciences Research Council (EPSRC) MOTION [\[EP/N03211X/2\]](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/N03211X/2) and RoboPatient [\[EP/T00603X/1\]](https://gow.epsrc.ukri.org/NGBOViewGrant.aspx?GrantRef=EP/T00603X/1) grants.