An Algorithm for Coding an Additive Manufacturing File from the Pressure Distribution of a Baropodometric Board for 3D Printing Customised Orthopaedic Insoles
Abstract
:1. Introduction
2. Materials and Methods
2.1. Data Acquisition
2.2. Mechanical Characterisation and FEM Analysis
2.3. Data Processing
- The images containing the pressure distribution and the colourmap to estimate the pressure values (Figure 1a).
- The STL file containing the 3D model of the insole to be printed.
- The relationship between the elastic modulus and the infill pattern density previously computed.
- Loading and repairing of the STL file: the vertices and the normal vectors of the triangles that define the surface are loaded (Figure 4a). The STL files obtained from the orthopaedic CAD software (FreeStepTM 2.0 by Sensor Medica, version 2.00.010) usually only have the upper surface of the insole defined and also have discrepancies on the boundaries (Figure 4a, detail view). These defects are repaired using Laplacian smoothing with surface preservation. Subsequently, the points representing the insole surface are stored, obtaining a point cloud that defines the upper portion of the insole. Successively, a 3D volume is obtained, creating a closed surface. Accordingly, the points are projected on the X-Y plane, duplicating the point cloud and setting the Z coordinates to zero. The resulting volume is obtained by triangulation using a combination of Matlab® functions. Firstly, “alphaShape()” defines a virtual surface that completely encloses the point cloud and which can be tightened or loosened, fitting around the points using the parameter “alpha”. The best alpha value is chosen using the command “criticalAlpha” to obtain the smallest value that produces a shape with a single region. To finalise the definition of the geometry, the ‘alphaTriangulation()’ command is used to describe the volume through triangles and vertices, and the result of this operation is processed with the ‘triangulation()’ function to create the final object. The subsequent operations involve refining the obtained object with the ‘freeBoundary’ function to eliminate the ‘free edges’ of the mesh (the edges or outer boundaries of the mesh that are not shared with other elements) and with an additional Laplacian smoothing operation applied to the entire surface to remove any artefacts introduced by previous operations (Figure 4b).
- Loading of the image containing the pressure distribution: the pixels of the image (Figure 1a) are stored in three matrices according to Red Green Blue (RGB) encoding. Accordingly, data are divided into two groups, for the left and the right foot, respectively (Figure 5a). The following procedure is reported for the left foot and is then repeated for the right one. A roto-translation matrix that permits the registration of the pressure distribution to the 3D model of the insole is computed; to this end, a 2D-2D registration using singular value decomposition (SVD) is used. To perform this technique, input files must be prepared as follows: Firstly, a matrix with the same dimensions as the one containing the image data, in terms of rows and columns, is generated (Figure 5a). In the new matrix, called the ‘edge mask’, all the elements are null except for the values that encode the colour white in the original image. As an example, in the mask, the value 1 will be present only when, in the same position in the R, G, and B matrices, the value 255 is present (Figure 5b). Secondly, the non-null elements inside the ‘edge mask’ are converted into 3D points, using the position of the non-null element in terms of row and column as coordinates; for example, the element in the second row and fourth column becomes a point with coordinates x = 2 and y = 4. The final preparatory operation consists of assigning to the points that describe the insole geometry a Z coordinate equal to 0 (Figure 5c). At this point, SVD is performed to register the pressure distribution on the insole model: “A” is the matrix containing the coordinates of the point cloud describing the STL file and “B” is the matrix containing the coordinates of the point cloud obtained from pressure distribution. The coordinates of the points are coded in X, Y, and Z coordinates, where X is in the first column, Y in the second column, and Z in the last column. In both matrices, the elements of the third column are equal to zero. The initial step involves estimating the centre of gravity (), as a row vector (Equation (1)) of a point cloud “A” and subtracting it from each point within the matrix “A”, resulting in a new matrix referred to as “” (Equation (2)). “N” is the number of points belonging to “A”, “” is the i-th element of point cloud “A” and “u” is a unitary vector (N 1) used to subtract the to each “”.
- 3.
- Estimation of the pressure distribution magnitude: the image containing the colourmap (Figure 1b) is used together with the image loaded during the first step (Figure 6a). From the colourmap, a single pixel is obtained for each colour, and the two images are then loaded and stored in different matrices following the RGB coding. The three matrices thus obtained represent the colour in the pressure distribution while the colourmap is represented by three vectors. The pressure magnitude is estimated by comparing the colours in the colourmap vectors with the image representing the pressure. A new matrix is thus created and where a match is found, the index representing the correspondent colour into the colormap is written. Due to the low quality of the Figure 1 acquisition (127 × 309 pixels), there was not a complete match between the colours; therefore, the comparison was performed with a 10% tolerance (Figure 6b). At this point to obtain the values of pressure from the previous matrix, the “interp1()” function is used, and the obtained values are compared with the mean and the maximum pressure obtained from Figure 6a.
- 4.
- Data refinement: previously obtained data are processed. Firstly, data are densified to define specific areas in the 3D model of the insole. An algorithm was developed that uses the data from the previous step as pixels in an image. The algorithm starts initialising a new empty matrix with the same dimension as the matrix containing data to be thickened; subsequently, the matrix containing data is scanned from the left to the right and from the top to the bottom. Every value greater than zero is compared with the eight adjacent “pixels” using the median operator, and the result is written in the newly created matrix in the same position as the central data. This operation is repeated for all the elements excluding the first and final row and column. The result of this operation is Figure 6c. This operation was repeated twice to obtain a uniform distribution of data. The last step of the refinement is filtering, performed to remove the artefacts resulting from interpolation. A Gaussian filter with a standard deviation equal to 2 was used to achieve the result shown in Figure 6d.
- 5.
- Data classification to create the masks: data are divided into five groups using the histogram of information refined in the previous step. A histogram with five classes with the same width is used to classify each pressure data point according to its class.
- 6.
- Conversion of the refined data pressure into 3D points: a method similar to that described in step 2 is used. During this conversion, all the points are associated with a specific class and a pressure value. Subsequently, the point cloud is registered on the 3D model using the roto-translation matrix previously obtained. At this point, five areas are defined in the 3D model using the point cloud that contains the pressure distribution and the classification, but there is no uniqueness between the points generated from pressure data and the points describing the geometry within the STL file. The points of the geometry are thus classified by taking the i-th point from the point cloud that describes the pressure distribution, finding the nearest point of geometry and assigning it the same value as the class contained in the point cloud. The comparison is repeated for all the points belonging to the previously cited point cloud. Accordingly, to create an AMF file a mesh must be created for each zone where a specific infill density is needed. Therefore, a triangulation method is used as in the first step, and it is applied to each point of the STL file with the same classification. As an example, all the points with a class number equal to 1 are selected and triangulated obtaining a new STL file that describes only the points exposed to the pressure defined into the first class. This is repeated for all the classes. At this point, there is an STL file that describes all the insole geometry and other five STL files that describe specific areas based on the applied pressure.
- 7.
- Stiffness assignment to the areas of the STL file: Equation (5) is used to determine the elastic modulus of each area.
- 8.
- Coding of the AMF file and related metadata: the functions “fopen” and “fprintf” are used to write the AMF file line by line. In the first row of the file, the file name and the unit of measurement are defined; successively, the mesh definition starts, writing all the points inside the list of unique vertices. Additionally, the entire insole geometry is described using triangles whose vertices are the points listed within the list of unique vertices. Metadata that define the cubic infill pattern and the infill density computed in the previews part are also written. This operation is repeated for all five different infill percentages defined in the previous steps; the output is an AMF file containing the 3D model of the insole and the specific infill based on the applied pressure in that area.
2.4. Slicing and 3D Printing
3. Results
3.1. Mechanical Characterisation and FEM Analysis
3.2. Data Processing
3.3. Slicing and 3D Printing
4. Discussion
Future Developments
5. Conclusions
Supplementary Materials
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Ma, C.Z.H.; Wong, D.W.C.; Wan, A.H.P.; Lee, W.C.C. Effects of Orthopedic Insoles on Static Balance of Older Adults Wearing Thick Socks. Prosthet. Orthot. Int. 2018, 42, 357–362. [Google Scholar] [CrossRef] [PubMed]
- Kolling, S.; Neubert, M.; Subke, J.; Griesemann, J. Material Modeling of Orthopedic Insoles. In Proceedings of the 7th European LS-DYNA Conference, Salzburg, Austria, 14–15 May 2009. [Google Scholar]
- Chhikara, K.; Gupta, S.; Chanda, A. Development of a Novel Foot Orthosis for Plantar Pain Reduction. Mater. Today Proc. 2022, 62, 3532–3537. [Google Scholar] [CrossRef]
- Aydoğan, Ö.; Yazici, N.H.; Tarakci, D.; Atilgan, E. Effect of Custom Design Insole Applications with 3D Modelling on Baropodometric Parameters in Individuals with Pes Planus. Int. J. Disabil. Sports Health Sci. 2023, 6, 399–407. [Google Scholar] [CrossRef]
- Baumfeld, D.; Baumfeld, T.; Da Rocha, R.L.; Macedo, B.; Raduan, F.; Zambelli, R.; Alves Silva, T.A.; Nery, C. Reliability of Baropodometry on the Evaluation of Plantar Load Distribution: A Transversal Study. Biomed. Res. Int. 2017, 2017, 5925137. [Google Scholar] [CrossRef]
- Leal-Junior, A.G.; Díaz, C.R.; Marques, C.; Pontes, M.J.; Frizera, A. 3D-Printed POF Insole: Development and Applications of a Low-Cost, Highly Customizable Device for Plantar Pressure and Ground Reaction Forces Monitoring. Opt. Laser Technol. 2019, 116, 256–264. [Google Scholar] [CrossRef]
- Klöpfer-Krämer, I.; Brand, A.; Wackerle, H.; Müßig, J.; Kröger, I.; Augat, P. Gait Analysis—Available Platforms for Outcome Assessment. Injury 2020, 51, S90–S96. [Google Scholar] [CrossRef]
- Davia-Aracil, M.; Hinojo-Pérez, J.J.; Jimeno-Morenilla, A.; Mora-Mora, H. 3D Printing of Functional Anatomical Insoles. Comput. Ind. 2018, 95, 38–53. [Google Scholar] [CrossRef]
- Ma, Z.; Lin, J.; Xu, X.; Ma, Z.; Tang, L.; Sun, C.; Li, D.; Liu, C.; Zhong, Y.; Wang, L. Design and 3D Printing of Adjustable Modulus Porous Structures for Customized Diabetic Foot Insoles. Int. J. Lightweight Mater. Manuf. 2019, 2, 57–63. [Google Scholar] [CrossRef]
- Gibson, I.; Rosen, D.; Stucker, B.; Khorasani, M. Additive Manufacturing Technologies; Springer International Publishing: Cham, Switzerland, 2021; Volume 17, ISBN 978-3-030-56126-0. [Google Scholar]
- Beloshenko, V.; Beygelzimer, Y.; Chishko, V.; Savchenko, B.; Sova, N.; Verbylo, D.; Voznyak, A.; Vozniak, I. Mechanical Properties of Flexible Tpu-Based 3d Printed Lattice Structures: Role of Lattice Cut Direction and Architecture. Polymers 2021, 13, 2986. [Google Scholar] [CrossRef]
- Jafarzadeh, E.; Soheilifard, R.; Ehsani-Seresht, A. Design Optimization Procedure for an Orthopedic Insole Having a Continuously Variable Stiffness/Shape to Reduce the Plantar Pressure in the Foot of a Diabetic Patient. Med. Eng. Phys. 2021, 98, 44–49. [Google Scholar] [CrossRef]
- Xu, R.; Wang, Z.; Ren, Z.; Ma, T.; Jia, Z.; Fang, S.; Jin, H. Comparative Study of the Effects of Customized 3D Printed Insole and Prefabricated Insole on Plantar Pressure and Comfort in Patients with Symptomatic Flatfoot. Med. Sci. Monit. 2019, 25, 3510–3519. [Google Scholar] [CrossRef] [PubMed]
- Lin, K.W.; Hu, C.J.; Yang, W.W.; Chou, L.W.; Wei, S.H.; Chen, C.S.; Sun, P.C. Biomechanical Evaluation and Strength Test of 3D-Printed Foot Orthoses. Appl. Bionics Biomech. 2019, 2019, 4989534. [Google Scholar] [CrossRef] [PubMed]
- Dombroski, C.E.; Balsdon, M.E.R.; Froats, A. The Use of a Low Cost 3D Scanning and Printing Tool in the Manufacture of Custom-Made Foot Orthoses: A Preliminary Study. BMC Res. Notes 2014, 7, 443. [Google Scholar] [CrossRef] [PubMed]
- Kim, Y.-K.; Joo, J.-Y. Effects of Custom-Made 3D Printed Insoles for Flat-Foot People on Gait Parameters: A Preliminary Study. In Proceedings of the 35th Conference of the International Society of Biomechanics in Sports, Cologne, Germany, 14–18 June 2017. [Google Scholar]
- Srivastava, V.; Gaur, H. Revolutionary Development in Orthopedic Insole by Additive Manufacturing. J. Crit. Rev. 2020, 7, 1943–1947. [Google Scholar]
- Zuñiga, J.; Moscoso, M.; Padilla-Huamantinco, P.G.; Lazo-Porras, M.; Tenorio-Mucha, J.; Padilla-Huamantinco, W.; Tincopa, J.P. Development of 3D-Printed Orthopedic Insoles for Patients with Diabetes and Evaluation with Electronic Pressure Sensors. Designs 2022, 6, 95. [Google Scholar] [CrossRef]
- Gensole. Available online: http://gensole.com/ (accessed on 30 July 2024).
- Jin, H.; Xu, R.; Wang, S.; Wang, J. Use of 3D-Printed Heel Support Insoles Based on Arch Lift Improves Foot Pressure Distribution in Healthy People. Med. Sci. Monit. 2019, 25, 7175–7181. [Google Scholar] [CrossRef]
- Rodríguez-Parada, L.; De La Rosa, S.; Mayuet, P.F. Influence of 3D-Printed TPU Properties for the Design of Elastic Products. Polymers 2021, 13, 2519. [Google Scholar] [CrossRef]
- Mogan, Y.; Periyasamy, R. Thermoplastic Elastomer Infill Pattern Impact on Mechanical Properties 3D Printed Customized Orthotic Insole. ARPN J. Eng. Appl. Sci. 2016, 11, 6519–6524. [Google Scholar]
- Nace, S.E.; Tiernan, J.; Holland, D.; Ni Annaidh, A. A Comparative Analysis of the Compression Characteristics of a Thermoplastic Polyurethane 3D Printed in Four Infill Patterns for Comfort Applications. Rapid Prototyp. J. 2021, 27, 24–36. [Google Scholar] [CrossRef]
- Yick, K.L.; Tse, C.Y. Textiles and Other Materials for Orthopaedic Footwear Insoles. In Handbook of Footwear Design and Manufacture; Elsevier Inc.: Amsterdam, The Netherlands, 2013; pp. 341–371. ISBN 9780857098795. [Google Scholar]
- Nouman, M.; Dissaneewate, T.; Chong, D.Y.R.; Chatpun, S. Effects of Custom-Made Insole Materials on Frictional Stress and Contact Pressure in Diabetic Foot with Neuropathy: Results from a Finite Element Analysis. Appl. Sci. 2021, 11, 3412. [Google Scholar] [CrossRef]
- Merces, L.; Ferro, L.M.M.; Thomas, A.; Karnaushenko, D.D.; Luo, Y.; Egunov, A.I.; Zhang, W.; Bandari, V.K.; Lee, Y.; McCaskill, J.S.; et al. Bio-Inspired Dynamically Morphing Microelectronics toward High-Density Energy Applications and Intelligent Biomedical Implants. Adv. Mater. 2024, 36, 2313327. [Google Scholar] [CrossRef] [PubMed]
- Kim, T.H.; Vanloo, J.; Kim, W.S. 3D Origami Sensing Robots for Cooperative Healthcare Monitoring. Adv. Mater. Technol. 2021, 6, 2000938. [Google Scholar] [CrossRef]
Printing Parameter | Value |
---|---|
Layer height | 0.5 mm |
Nozzle diameter | 1 mm |
Wall | 0 lines |
Bottom layer | 1 |
Top layer | 1 |
Print speed | 40 mm/s |
Print temperature | 200 °C |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Simi, F.; Fortunato, G.M.; Diana, F.; Gai, J.; De Maria, C. An Algorithm for Coding an Additive Manufacturing File from the Pressure Distribution of a Baropodometric Board for 3D Printing Customised Orthopaedic Insoles. Computation 2024, 12, 184. https://doi.org/10.3390/computation12090184
Simi F, Fortunato GM, Diana F, Gai J, De Maria C. An Algorithm for Coding an Additive Manufacturing File from the Pressure Distribution of a Baropodometric Board for 3D Printing Customised Orthopaedic Insoles. Computation. 2024; 12(9):184. https://doi.org/10.3390/computation12090184
Chicago/Turabian StyleSimi, Francesco, Gabriele Maria Fortunato, Fabio Diana, Jacopo Gai, and Carmelo De Maria. 2024. "An Algorithm for Coding an Additive Manufacturing File from the Pressure Distribution of a Baropodometric Board for 3D Printing Customised Orthopaedic Insoles" Computation 12, no. 9: 184. https://doi.org/10.3390/computation12090184
APA StyleSimi, F., Fortunato, G. M., Diana, F., Gai, J., & De Maria, C. (2024). An Algorithm for Coding an Additive Manufacturing File from the Pressure Distribution of a Baropodometric Board for 3D Printing Customised Orthopaedic Insoles. Computation, 12(9), 184. https://doi.org/10.3390/computation12090184