The present invention relates to orthotic devices, in particular, methods and systems for constructing custom foot orthotic models and devices.
The feet are the foundation and base of support for the entire body, whether standing walking or running. Weakness, instability or lack of shock absorption in the feet can contribute to postural and stress problems throughout the rest of the body which can lead to knee, hip and back and even shoulder and neck pain. Foot orthotics is a specially designed medical device that is worn inside a shoe to control abnormal foot function or accommodate painful areas of the foot. Properly designed foot orthotics may compensate for impaired foot function, by controlling abnormal motion across the joints of the foot.
To provide the desired fit and function, orthotic devices may be customized to have specific characteristics such as shape and stiffness. Traditionally, designing and fabricating custom orthotics is a multi-step process. First, a practitioner such as a podiatrist starts with a plaster or foam box cast or a 3D scan of a foot and, after an examination of foot symptoms, writes a prescription for a corrective orthotic device. The cast and prescription are then sent to an orthotic lab with extensive computer aided design (CAD)/computer aided manufacturing (CAM) capabilities. Typically, the orthotic lab generates foot positive molds from negative molds such as foot casts and then custom foot orthotics are manually fabricated by using the foot positive molds. Custom foot orthotics are currently mainly fabricated manually based on craftsmen's skill and experience and require substantial time to complete. Some orthotic labs use general-purpose CAD/CAM software to aid this fabrication process, which is relatively flexible, but requires a trained operator with experience, is time consuming to use and prone to human error. In addition, a prescribing practitioner can only see a foot orthotic device after it has been physically fabricated. The practitioner usually has no opportunity to preview or modify foot orthotics during the fabrication process.
In an aspect of the present disclosure, a method of constructing a customized foot orthotic model for a foot comprises: receiving an initial model for a contoured surface of a foot device that fits a plantar surface of a specific foot, the initial model comprising data representing three-dimensional coordinates of a plurality of discrete points on the contoured surface; receiving a plurality of orthotic parameters for constructing a foot orthotic device customized for the specific foot; electronically obtaining coordinates of selected ones of the discrete points distributed along selected longitudinal and transverse lines on the contoured surface, and electronically adjusting vertical coordinates of the selected points based on a first subset of the orthotic parameters; electronically constructing a foot orthotic model comprising data representing an orthotic surface of the foot orthotic device, the orthotic surface constructed based on the selected points with adjusted coordinates; and providing the foot orthotic model to a fabrication facility for automated fabrication of the foot orthotic device based on the foot orthotic model. The selected lines may comprise three longitudinal lines and three transverse lines. The method may comprise determining a reference plane, a longitudinal axis, and a transverse axis for the contoured surface, wherein the reference plane is parallel to the longitudinal axis and the transverse axis and is perpendicular to a vertical axis for the contoured surface; and re-registering the plurality of discrete points in a coordinate system such that each one of the longitudinal lines is in a corresponding plane parallel to the longitudinal axis and the vertical axis, and each one of the transverse lines is in a corresponding plane parallel to the transverse axis and the vertical axis. Each line may be determined using a spline function and control points distributed along the corresponding plane. The method may also comprise partitioning the contour surface into a heel section and a forefoot section, wherein the reference plane is defined by a bottom point in the heel section, a lateral bottom point in the forefoot section, and a medial bottom point in the forefoot section. The orthotic parameters may comprise an arch shape parameter, a heel cup depth parameter, a forefoot width parameter or a heel width parameter; and vertical coordinates of the selected points in the arch section may be adjusted based on the arch shape parameter, the heel section may be trimmed or extended based on the heel cup depth parameter, or the forefoot section or the heel section may be narrowed or widened based on the forefoot width parameter or the heel width parameter. The constructing may comprise electronically generating additional surface points for the orthotic surface by extrapolation based on the selected points. The foot orthotic model may further comprise data representing a bottom surface opposite to the orthotic surface, the bottom surface constructed based on a pre-defined surface and a second subset of the orthotic parameters. The orthotic parameters may comprise a posting parameter, and the bottom surface is tilted, or includes a posting for raising the heel or forefoot section based on the posting parameter.
In another aspect of the present disclosure, a computing device comprises: a processor; an input/output device in communication with the processor; a memory in communication with the processor; and processor-executable code stored in the memory, which, when executed by the processor, causes the computing device to: receive, over the input/output device, a first data structure comprising an initial model for a contoured surface of a foot device that fits a plantar surface of a specific foot, the initial model comprising data representing three-dimensional coordinates of a plurality of discrete points on the contoured surface; receive, over the input/output device, a second data structure comprising a plurality of orthotic parameters for constructing a foot orthotic device customized for the specific foot; obtain coordinates of selected ones of the discrete points distributed along selected longitudinal and transverse lines on the contoured surface, and adjust vertical coordinates of the selected points based on a first subset of the orthotic parameters; construct a foot orthotic model comprising data representing an orthotic surface of the foot orthotic device, the orthotic surface constructed based on the selected points with adjusted coordinates; and provide the foot orthotic model to a fabrication facility over the input/output device for automated fabrication of the foot orthotic device based on the foot orthotic model. The selected lines may comprise three longitudinal lines and three transverse lines. The code may cause the computing device to: determine a reference plane, a longitudinal axis, and a transverse axis for the contoured surface, wherein the reference plane is parallel to the longitudinal axis and the transverse axis and is perpendicular to a vertical axis for the contoured surface; and re-register the plurality of discrete points in a coordinate system such that each one of the longitudinal lines is in a corresponding plane parallel to the longitudinal axis and the vertical axis, and each one of the transverse lines is in a corresponding plane parallel to the transverse axis and the vertical axis. Each line may be determined using a spline function and control points distributed along the corresponding plane. The code may cause the computing device to partition the contour surface into a heel section and a forefoot section, and the reference plane may be defined by a bottom point in the heel section, a lateral bottom point in the forefoot section, and a medial bottom point in the forefoot section. The orthotic parameters may comprise an arch shape parameter, a heel cup depth parameter, a forefoot width parameter or a heel width parameter; and vertical coordinates of the selected points in the arch section may be adjusted based on the arch shape parameter, the heel section may be trimmed or extended based on the heel cup depth parameter, or the forefoot section or the heel section may be narrowed or widened based on the forefoot width parameter or the heel width parameter. The code may cause the computing device to generate additional surface points for the orthotic surface by extrapolation based on the selected points. The foot orthotic model may further comprise data representing a bottom surface opposite to the orthotic surface, the bottom surface constructed based on a pre-defined surface and a second subset of the orthotic parameters. The orthotic parameters may comprise a posting parameter, and the bottom surface may be tilted, or may include a posting for raising the heel or forefoot section based on the posting parameter. The computing device may be in communication with a scanning device for providing the first data structure and with a user interface device for providing the second data structure, and the fabrication facility may comprise an additive manufacturing device for fabricating the foot orthotic device.
In a further aspect of the present disclosure, a computing device for constructing customized foot orthotics comprises: an input module for receiving a first data structure comprising three-dimensional coordinates of discrete points on a plantar surface of a scanned foot and a second data structure comprising a plurality of orthotic parameters for constructing foot orthotics customized for the scanned foot; a contour constructing module configured to determine contour points distributed along selected longitudinal and transverse lines on the plantar surface, and to adjust coordinates of the contour points based on a first subset of the orthotic parameters; a model constructing module configured to construct an orthotic surface based on the contour points with adjusted coordinates, and to construct a orthotic model based the orthotic surface; and an output module for communicating with a fabrication device to produce customized foot orthotics from the orthotic model.
In the figures, which illustrate by way of example only, embodiments of this invention:
As used in this specification and the appended claims, the technical and scientific terms used in the descriptions herein will have the meanings commonly understood by one of ordinary skill in the art, unless specifically defined otherwise.
“Foot orthotic devices” refer to specially designed medical devices or inserts that are worn inside the shoe. Foot orthotic devices may modify or assist foot function. The term “foot orthotics” may be used to refer to foot orthotic devices or electronic models of such devices. As is known in the art, orthotics is concerned with design, manufacture and application of orthoses, which are externally applied devices used to modify structural and functional characteristics of the neuromuscular and skeletal system. For example, foot orthotics may be designed to support specific areas of a foot, to address abnormal foot function or anatomy, or to ameliorate foot pain or other symptoms.
“Top surface” of a foot orthotics refers to the top surface that faces the sole (or plantar surface) of a user's foot when the foot orthotics is worn by the user. “Bottom surface” of the foot orthotics refers to the bottom surface that faces the shoe-bed surface when the foot orthotics is worn by the user. The distance between the top and bottom surfaces of the foot orthotics is referred to as the “thickness” of the foot orthotics.
“Forefoot” refers to the five toes and five metatarsal bones. “Midfoot” refers to the bones of navicular, cuboid, and the three cuneiforms. They form the arch of the foot which serves as a shock absorber. “Rearfoot” is composed of the talus (or ankle bone) and the calcaneus (or heel bone). “Medial arch” refers to the longitudinal arch made up by the calcaneus, the talus, the navicular, the three cuneiforms, and the first, second, and third metatarsals. “Lateral arch” refers to the longitudinal arch made up by the calcaneus, the cuboid, and the fourth and fifth metatarsals. The medial arch is normally higher than the lateral arch.
“Additive manufacturing technology” refers to various processes for making a three-dimensional (3D) object from a 3D model or other electronic data source primarily through additive processes in which successive layers of material are laid down under computer control. The processes include, but not limited to, fused deposition modelling (FDM), stereolithography (SLA), laminated object manufacturing (LOM), electron beam melting (EBM), selective laser sintering (SLS) and inkjet material deposition (IMD). Additive manufacturing technologies may also be known as “3D printing” and additive manufacturing devices may be referred to as “3D printers”.
Computing device 104 may be a PC running a Microsoft Windows operating system or other suitable operating system such as Linux or OSX.
Scanning device 108 is connected to computing device 104, for example, by universal serial bus (USB) or over a network connection such as a wireless local area network (WLAN) connection or Ethernet, and is operable to measure the surface of a patient's foot and return to computing device 104 three-dimensional coordinates of points on the surface. Scanning device 108 may for example be a 3D laser scanner such as a ShapeGrabber SG502, structured light scanner such as a GOM ATOS Core 300 or photogrammetry device such as a PhotoModeler, produced by EOS Systems.
Printing device 110 is connected to computing device 104, for example, by USB or over a network connection such as WLAN or Ethernet, and is operable to receive instructions from computing device 104 and fabricate foot orthotics in accordance with a model at computing device 104. Printing device 110 may for example be a three-dimensional printer such as a Makerbot Replicator, produced by MakerBot Industries LLC. Printing device 110 may be capable of printing custom orthotic devices from feedstocks including, but not limited to nylon, polyester, nylon-polyester blend, polyethylene, polypropylene, acrylonitrile butadiene styrene, polylactic acid, polycarbonate, rubber, foam rubber, ethylene vinyl acetate, fiberglass, or carbon fiber graphite.
Computing device 104 executes application software loaded from a computer-readable medium 122 (
Scanner driver 126 interfaces with scanning device 108 by way of network interface 114 or I/O interface 118 to send instructions to and receive data from scanning device 108. Specifically, scanner driver 126 can be invoked from computing device 104 to send instructions causing scanning device 108 to scan a foot and return data containing a point cloud 136 for the sole surface of the scanned foot (
Prescription entry module 128 is configured to provide instructions to cause graphics adapter 120 to present a user interface on display 121 to receive input parameters for foot orthotics for the scanned foot. An example user interface 146 is shown in
User interface 146 has an information block 148 with entry fields for properties such as patient name, sex, age, weight, shoe size, left/right handedness, doctor name and date.
User interface 146 further has a parameter entry block 150 for receiving input parameters defining orthotic characteristics of the foot orthotics to be constructed (hereinafter, “orthotic parameters”). Parameters input to property entry block 150 may include, for example, material type; rigidity; arch shape; heel cup depth (which may be selected from among discrete depth levels or entered as a numerical adjustment value); forefoot width; heel width; rearfoot posting type (extrinsic or intrinsic); rearfoot posting direction (varus, neutral or valgus); heel lift; forefoot posting direction (varus, neutral or valgus); forefoot posting amount; top cover thickness and top cover color. As will be appreciated, some or all of the input parameters may vary between a matched pair of right foot and left foot orthotics. For example, a prescription may call for 2 mm of heel lift for a patient's right foot and 4 mm of heel lift for a patient's left foot. Prescription entry block 150 may be arranged to simultaneously receive input parameters for a matching right foot and left foot pair, and may allow for values of the parameters to vary between feet.
Prescription entry module 128 constructs a data structure 152 for storage in memory 116.
Server interface 130 is configured to receive data structures 138, 152 from scanner driver 126 and prescription entry module 128 and to send the data structures 138, 152 to server 102 by way of network interface 114. Server interface 130 may also receive an orthotic model from server 102. As will be described in further detail below, the orthotic model may be received in a CAD file format, such as stereolithography (STL), initial graphics exchange specification (IGES) or standard for the exchange of product model data (STEP). Server interface module 130 is configured to output the received orthotic model to model viewer 132 for display.
Model viewer 132 is configured to receive an orthotic model from server interface module 130 in a CAD file format and to display a representation of the solid model on interconnected display 121 using graphics adapter 120. Model viewer 132 may also receive data structure 138 containing point cloud 136 and overlay a visual representation of point cloud 136 simultaneously with a solid model. Model viewer 132 can rotate, pan, zoom and perform other transformations on the displayed representation, such that the solid model may be aligned with point cloud 136 to evaluate the fit of the foot orthotics.
Printer driver 134 is configured to be invoked by a user from solid model viewer 132. Printer driver 134 is configured to read the CAD-format orthotic model, generate instructions for causing printing device 110 to fabricate an orthotic device according to the CAD-format file, and provide those instructions to printing device 110 by way of network interface 114 or I/O interface 118.
Server 102 may be a computer running a Microsoft Windows operating system or other suitable operating system such as Linux or OSX.
Server 102 executes application software loaded from a computer-readable medium 123 (
Client interface module 140 communicates with computing device 104 to receive data structures 138, 152 and to return a three-dimensional model of an orthotic device in a CAD file format, once the model is constructed as described below.
Point cloud registration module 142 is configured to receive data structure 138 from client interface module 140 and re-register the coordinates in a coordinate system aligned with the scanned foot. Specifically, point cloud registration module 142 transforms the received coordinates from an X-Y-Z coordinate system assigned by scanning device 108 to an X′-Y′-Z′ coordinate system based on anatomy of the foot, as is further described below and shown in
Point cloud registration module 142 identifies anatomical landmarks from point cloud 136 and constructs an anatomical coordinate system based on the anatomical landmarks, transforms the coordinates in data structure 138 according to the coordinate system, and identifies points at specific locations of interest on the scanned foot for constructing curves to form as the basis for an orthotic model surface. Point cloud registration module 142 is configured to output a modified data structure based on data structure 138, with coordinates in the anatomical coordinate system.
Surface contour module 144 receives as input the modified data structure generated by point cloud registration module 142 and data structure 152, containing orthotic parameters. Surface contour module 144 is configured to adjust coordinates of points based on orthotic parameters in data structure 152, the adjusted coordinates representing discrete points on a top surface of a custom orthotic device. Surface contour module 144 outputs a representation of the top surface, e.g., set of coordinates for points on the top surface.
Orthotic model generator 146 is configured to receive coordinates of points on orthotic contour lines from surface contour module 144 and construct a top orthotic surface model based on the received points. Orthotic model generator 146 is further configured to construct a bottom orthotic surface based on the top orthotic surface, and a subset of parameters from data structure 152, and to construct an orthotic model by combining the top and bottom orthotic surfaces. Orthotic model generator 146 outputs a representation of the model in a CAD file format, such as stereolithography (STL), initial graphics exchange specification (IGES) or standard for the exchange of product model data (STEP) to client interface module 140 for provision to fabrication facility 103 so that it can be viewed with computing device 104 and ultimately, fabricated with printing device 110.
Turning now to
At block S510, data is acquired at fabrication facility 103. Specifically, a specific foot is scanned using scanning device 108 to acquire a point cloud 136 of measured points on at least the plantar surface of the foot (
Many foot orthotic devices extend only to the metatarsal heads of the wearer (not beneath the wearer's toes). Accordingly, during or after scanning, a scanner operator may review a representation of the scanned points on a display and demarcate the base of the toes. Points corresponding to the toes may then be discarded from data structure 138, or an identifier may be appended to data structure 138 to identify points corresponding to the toes. Such points may then be disregarded during construction of an orthotic model. Identification of points corresponding to the toes may alternatively de done by automated processing of the scanned points.
At block S512, the foot is examined, such as by a medical doctor to ascertain pathomechanical features of the foot. Such examination may include, for example, biomechanical examination and gait analysis. Based on the examination, desired properties of a custom orthotic device for the foot are identified. An operator at computing device 104 interacts with user interface 146 to input identification information and orthotic parameters corresponding to the desired properties of the orthotic device. The entered orthotic parameters may include, but are not limited to, those depicted in
Data structures 138 and 152 are then provided to server 102 by way of network interface 114 of computing device 104 (
At block S520, point cloud registration module 142 loads data structure 138 and performs steps to register the coordinates of point cloud 136 to an X′-Y′-Z′ coordinate system constructed so that the X′ axis extends transversely across the scanned foot, the Y′ axis extends longitudinally along the scanned foot and the Z′ axis extends vertically.
Typically, point cloud 136 and thus, data structure 138, includes some noisy data points introduced by the scanning process. Accordingly, at block S521, point cloud registration module 142 performs noise reduction on the received data structure 138, or replacing them with points extrapolated from neighbouring points. Such noise filtering may, for example, discard outlying points from data structure 138. Suitable noise filtering techniques are well known to those skilled in the art. Example techniques are described in Robust Filtering of Noisy Scattered Point Data, Schall, Oliver et al., Eurographics Symposium on Point-Based Graphics (2005), the entire contents of which are incorporated herein by reference.
As noted above, the point coordinates stored in data structure 138 are within an X-Y-Z coordinate system assigned by scanning device 108. At block 5523, point cloud registration module 142 constructs an anatomical X′-Y′-Z′ coordinate system based on the anatomy of the scanned foot. Specifically, as shown in
Point cloud registration module 142 then constructs a reference plane 162 based on three calculated reference points R1, R2 and R3 (
Referring to
The X′ and Y′ axes define an X′-Y′ plane parallel to reference plane 162. The Y′ and Z′ axes define a Y′-Z′ plane which extends in the longitudinal and vertical directions of the foot. The X′ and Z′ axes define an X′-Z′ plane which extends in the transverse and vertical direction of the foot.
At block S525, point cloud registration module 142 constructs a modified data structure 138′ by re-registering (mapping) the points of data structure 138 from the original, scanner-defined X-Y-Z coordinate system to the anatomical X′-Y′-Z′ coordinate system as shown in
At block S527, and as depicted in
At block S529, point cloud registration module 142 further identifies points in data structure 138′ which lie on specific cross-sectional planes. For example, as depicted in
Referring again to
Surface contour module 144 uses the points on each of curved lines 166a, 166b, 166c to construct corresponding B-spline curves 170a, 170b, 170c (collectively, B-spline curves 170) and uses the point on each of curved lines 168a, 168b, 168c to construct corresponding B-spline curves 172a, 172b, 172c (collectively, B-spline curves 172). Each of B-spline curves 170, 172 may for example be constructed using the SISL library by SINTEF of Norway with the set of points on the corresponding curved line 166, 168. B-spline curves 170, 172 correspond to the shape of the sole of the scanned foot. B-spline curves 170, 172 may be stored in a data structure comprising a series of 3-dimensional X′-Y′-Z′ coordinates, which may be in the same format as data structure 138′.
Each of B-spline curves 170 has an inner endpoint I and an outer endpoint O. B-spline curve 170b, which passes through the arch region, has a point A corresponding to the highest point on the curve in the arch region.
Each of B-spline curves 172 has a front endpoint F and a rear endpoint R, and a point A corresponding to the highest point on each respective curve in the arch region.
At block S540, surface contour module 144 modifies the B-spline curves 170, 172 to construct orthotic contour lines 174 (174a, 174b, 174c) and 176 (176a, 176b, 176c). The modifications to sole B-spline curves are based on orthotic parameters in data structure 152. In an example, the modifications are based on arch height, heel cup depth, forefoot width and rearfoot width parameters.
Surface contour module 144 adjusts inner and outer endpoints I and 0 of B-spline curve 170a and rear endpoints R of each of B-spline curves 172a, 172b, 172c based on the heel cup depth parameter in data structure 152.
If, as depicted, the heel cup depth parameter specifies increased depth, surface contour module 144 extrapolates from each of B-spline curves 170a, 172a, 172b, 172c to add points so that the Z′ coordinates of each endpoint R′ and of endpoints I′, O′ are increased relative to the corresponding endpoints R and I, O.
Conversely, if the heel cup depth parameter specifies decreased depth, surface contour module 144 discards endpoints on each of B-spline curves 170a, 172a, 172b, 172c so that the Z′ coordinates of the new endpoints R′ and the new endpoints I′, O′ are reduced relative to the corresponding old endpoints R and I, O.
Surface contour module 144 applies a function to vertically adjust points in each of curves 170b, 172a, 172b, 172c based on the arch height parameter.
As depicted in
As depicted in
The vertical adjustments to curves 170b, 172 may be upward, as depicted, in the case of parameter specifying increased arch height or downward in the case of a parameter specifying decreased arch height. As noted, the adjustments are a function of Y′ coordinate for curves 172 and of X′ coordinate for curve 170b and some points may be adjusted very small distances or not at all.
Surface contour module 144 adjusts the X′ coordinates of endpoints I, O of curve 170c based on the forefoot width parameter. As depicted in
Surface contour module 144 adjusts endpoints I, O of curve 170a based on the rearfoot width parameter. The adjustments based on rearfoot width are similar to the adjustments based on heel cup depth, described above with reference to
Once orthotic curves 174, 176 are calculated, surface contour module 144 constructs an adjusted outline curve 173 (
Orthotic contour lines 174, 176 and outline curve 173 may be stored in a data structure comprising a series of 3-dimensional X′-Y′-Z′ coordinates, which may be in the same format as data structure 138′.
At block S550, orthotic model generator 146 receives orthotic contour lines 174, 176 and constructs a top, orthotic surface model 178 based on orthotic contour lines 174, 176 as depicted in
To generate top surface model 178, orthotic model generator 146 calculates additional transverse orthotic surface contours 175 and longitudinal orthotic surface contours 177 based on points in orthotic contour lines 174, 176 and outline curve 173.
Each of transverse orthotic surface contours 175 extends in a plane parallel to the X′-Z′ plane at a particular Y coordinate and is constructed by calculating a B-spline curve using inner and outer points on outline curve 173 at that Y′ coordinate and points on each of orthotic surface contours 176a, 176b, 176c at that Y coordinate.
Each of longitudinal orthotic surface contours 177 extends in a plane parallel to the Y′-Z′ plane at a particular X′ coordinate and is constructed by calculating a B-spline curve using front and rear points on outline curve 173 at that Y′ coordinate and points on each of orthotic surface contours 174a, 174b, 174c at that X′ coordinate.
Orthotic contour lines 175, 177 may be stored in a data structure comprising a series of 3-dimensional X′-Y′-Z′ coordinates, which may be in the same format as data structure 138′. Orthotic contour lines 175, 177 may be evenly spaced along the length and width of the foot and model generator 146 may continue to construct sufficient orthotic contour lines 175, 177 so that the distance between adjacent contour lines is a predetermined step size. In an example, the step size is 3 mm. However, the step size may typically be between 2 mm and 5 mm.
Orthotic model generator 146 constructs a surface mesh comprising a plurality of polygons. Each polygon is constructed by selecting neighbouring points on orthotic contour lines 174, 176 and orthotic surface contours 175, 177 and outline curve 173 and forming polygons from the selected points, until the entire orthotic surface 178 is occupied by such polygons. Any suitable polygon modelling technique may be used. Such techniques for constructing a surface mesh defined by a plurality of polygons are well known to skilled persons and are therefore not described in detail. Example techniques for producing a 3D mesh of polygons are discussed in Meshing Point Clouds Using Spherical Parametrization, Zwicker, M. and Gotsman, C., Eurographics Symposium on Point-Based Graphics (2004), the entire contents of which are incorporated herein by reference. As depicted, surface 178 is defined by a mesh of four-sided polygons. However, the mesh may instead be formed of three-sided polygons, or of polygons having a larger number of sides. In some embodiments, triangular polygons may be more convenient to use for constructing 3D surfaces. Any suitable polygon modelling technique may be used for constructing the surfaces from a given set of 3D surface points.
Orthotic model generator 146 then constructs a bottom surface 180 offset from the top surface downwardly as depicted in
Once orthotic model 182 is constructed, orthotic model generator 146 modifies orthotic model 182 in accordance with a subset of parameters in data structure 152. For example, depending on the parameters in data structure 152, orthotic model generator 146 may add rearfoot posting 184. Rearfoot posting 184 may be extrinsic, as depicted in
At block S570, orthotic model generator 146 adds a support structure to orthotic model 182.
At block S571, a thin wall structure 194 is added along the inner (medial) edge of orthotic model 182. As shown in
At block S573, a base plate 196 is added to an edge of thin wall structure 194 as shown in
At block S575, extensions 198 are added to each end of base plate 196 as shown in
Orthotic model 182 and support structure 199 may be stored in a CAD file format, such as stereolithography (STL), initial graphics exchange specification (IGES) or standard for the exchange of product model data (STEP). Client interface module 140 provides the model in this format to computing device 104 for display and ultimately, fabrication. For simplicity,
At block S580, computing device 104 receives orthotic model 182 and support structure 199 in CAD-compatible format and model viewer 132 presents a representation of the model on an interconnected display, such as display 121, using graphics adapter 120 (
The user interface may also display a print control. If the operator of computing device 104 is satisfied with orthotic device 182, the operator can activate the print control to send instructions to printing device 110.
Alternatively, if the operator is not satisfied with orthotic device 182, the operator may enter modified parameters corresponding to desired characteristics to be provided to server 102 as a modified data structure 152. Optionally, modifications may be entered by way of the user interface presented by model viewer 132. For example, modifications may be entered in a dialog. Alternatively, the operator may return to block S510 and enter new parameters by way of user interface 146 (
Optionally, on receiving modified data structure 152, server 102 may load the relevant registered point cloud data and resume process S500 beginning at block S540, using the modified data structure 152. Alternatively, server 102 may repeat process 500 from block 520.
At block S590, model viewer 132 sends orthotic model 182 and support structure 199 to printing device 110 to cause printing device 110 to fabricate a custom orthotic device in accordance with orthotic model 182. Printer driver 134 may translate the orthotic model from a CAD-file format to instructions in a format readable by printing device 110.
After printing, support structure 204 may be removed from the completed orthotic device 200, for example by cutting or grinding.
Conveniently, the above-described system and process provides an opportunity for review of a prospective orthotic model prior to fabrication. For example, a user of system 100 may be a podiatrist, who may examine and scan a foot and enter an initial set of orthotic parameters using user interface 146 at computing device 104. Server 102 constructs custom orthotics for the foot according to the scanned model and the initial orthotic parameters and returns an orthotic model. The podiatrist may then evaluate the returned model by aligning and comparing it with the scanned foot, for example, as represented by the point cloud 136. The orthotic parameters may then be altered as necessary and a new orthotic model is constructed based on the scanned foot and the revised parameters. If the new orthotic model is satisfactory, an orthotic device is fabricated based on the new orthotic model. Thus, a design may be quickly constructed and tested. In contrast, design by physical prototyping may be relatively slow and a design cannot be tested until a physical prototype is produced.
Moreover, the disclosed design process can be tailored for computational efficiency. For example, applying orthotic parameters to curves prior to constructing an orthotic surface may limit the computational resources required for the design process. For at least some types of orthotic parameters, modifying an already-constructed surface, rather than the curves from which a surface is constructed, may be relatively more computationally intensive.
As described above, custom orthotics are constructed using three transverse lines 166, three corresponding transverse curves 170 and three corresponding transverse orthotic contour lines 174, and three longitudinal lines 168, three longitudinal curves 172 and three longituorthotic contour lines 176. In other embodiments, custom orthotics may be constructed using a larger number of transverse lines 166, curves 170 and orthotic contour lines 174, and a larger number of longitudinal lines 168, curves 172 and orthotic contour lines 176. The number of lines, curves and contours in each direction is selected to provide an orthotic model of acceptable fit and smoothness. Greater numbers may allow for more detailed surfaces, but excessive numbers may result in roughness. The number of lines, curves and contours in the transverse direction may differ from the number of lines in the longitudinal direction.
In some embodiments, curves 170, 172 may be constructed using only subsets of the points on lines 166, 168. For example, each of curves 170, 172 could be constructed by calculating a B-spline using a certain number of points (e.g. 5) along the corresponding line 166 or 168.
In some embodiments, curves 170, 172 may be constructed using functions other than B-splines. For example, each of curves 170, 172 may be constructed by fitting curves to a set of points from the corresponding line 166 or 168. Fitting curves may be done, for example, by calculating coefficients for polynomial or other mathematical functions. Such functions may be selected to provide a certain number of degrees of freedom based on the number of control points to which the functions are to be fit. For example, a function to be fit to 5 points may be selected to have no more than four degrees of freedom.
In some embodiments, pre-defined curves can be used to adjust the shape of curves 170a and 170b to match the proper heel cup depth and arch height requirements.
As described above, server 102 and fabrication facility 103 are connected over a network 106. Server 102 and computing device 104 are separate computers. However, in other embodiments, the functions of server 102 and computing device 104 may be carried out by a single computer. In such embodiments, data exchanges described above as occurring over network 106 may occur between applications on a single machine, within memory.
It will be apparent that the components of fabrication facility 103 need not be physically located together. In some embodiments, printing device 110 or scanning device 108 may be located remotely from computing device 104. For example, scanning device 108 and computing device 104 may be located in an office and printing device 110 may be remotely located at another facility.
As described above, printing device 110 is a 3D printer. However, other fabrication devices may be used. For example, printing device 110 could be any additive manufacturing device, or even a conventional manufacturing device such as a computer-numeric-controlled (CNC) mill. In such embodiments, printer driver 134 may be replaced with a module configured to control the specific fabrication device.
An embodiment of the disclosure relates to a process of constructing foot orthotics. In a typical process, a subject, such as a patient, visits a podiatrist or another medical professional at the professional's office such as a foot clinic. One or both feet of the patient can be examined and scanned using a suitable foot scanner in the clinic. The professional prepares a prescription form containing patient information and foot orthotic parameters for custom foot orthotics for each scanned foot of the patient. A 3D image or model of the scanned foot and the corresponding prescription form are input into a user terminal at the clinic and communicated to an off-site server for constructing an orthotic model for each scanned foot. The server may construct the orthotic model as described herein. The orthotic model is then communicated from the server to the user terminal at the clinic. The medical professional may view the orthotic model on a computer display and may overlay (superimpose) the orthotic model with the scanned image of the corresponding foot to see how they fit. Based on this review, the medical professional may revise the orthotic prescription and send the revised prescription and the scanned model to the server to construct a revised orthotic model. Once the professional is satisfied with the orthotic model received from the server, the orthotic model may be loaded to an automated fabrication device such as a 3D printer to fabricate an orthotic device based on the orthotic model. Alternatively, the off-site server may be replaced with a local computing device located on site in the clinic. Conveniently, a podiatrist may have an opportunity to review and modify the orthotics before a physical orthotic device is fabricated. The patient may be able to receive and try the orthotic device within a short period of time, such as within one or two days. In some embodiments, a system including devices for scanning, model construction, and fabrication can be all provided at one location, and the location can be at or near the clinic. In some embodiments, a dedicated off-site server for model construction may be used to serve a large number of medical professionals or foot clinics at different locations. This may allow the users to share the costs of developing and maintaining a more sophisticated modelling construction software, and allow the fabrication processes and products to be more conveniently standardized.
A further embodiment of the disclosure relates to a system for constructing foot orthotics. The system includes a data acquisition module or component for acquiring data structures representing a foot plantar surface or a contoured surface on an foot orthotics (a 3D orthotic model or an orthotic device), and representing orthotic parameters for constructing or modifying the foot orthotics. The system also includes a model construction component for electronically constructing or modifying 3D orthotic models. The model construction component may be configured and adapted to perform the functions and steps described above with reference to server 102. The system further includes a fabrication component for fabricating foot orthotic devices based on 3D orthotic models constructed by the model construction component. The components of the system may be connected for inter-communication as needed. Each component of the system may be provided by a combination of hardware and software. One or more of components of the system may be integrated into one device or apparatus. The system may also be a distributed system. For example, one or more of the components of the system may be provided in separate devices and functions of a component may be performed by different devices at different locations. In particular, computing steps may be distributed over networked computers or devices. Some computing functions may be performed by hardware or software, or a combination of hardware and software. The system may be provided in part by a cloud computing technique. The system may require individual users of the system to pre-register, such as with a user management component of the system. The user may be assigned an identification (ID) (e.g. a username) and a security code (e.g. a password). The scanned foot models and corresponding constructed orthotic models may be stored centrally or otherwise in association with information of the particular user who made the initial request and the particular patient of the user. The stored information may be retrievable at a later point in time. The stored information may also be analysed to improve the modelling procedure (such as the modelling algorithm) or standardize the modelling procedure. The stored information may also be used to provide improvements to new orthotics for the same patient based on feedback from the user or patient with or without a new scan. The system may also provide a material or product ordering and delivering component for the users to order materials or components used to scan a foot or to make a foot orthotic device. For example, a user may order scanners, printers, printing materials or the like through the ordering component of the system. The system may provide a user interface for the users to conveniently interact with the system.
Other embodiments will be apparent, in which an initial computerized model of a contoured foot surface is received along with parameters for constructing a foot orthotic device and coordinates of points on the foot surface are adjusted based on curves derived from the parameters, the adjusted points defining a surface of a customized foot orthotic device, which can then be provided to a facility for fabrication.
It should be clarified that in this disclosure a point is considered to be “along” a line or a plane if the point is on the line or in the plane. A point may also be considered to be along a line if the point is not exactly on the line but is close to or near the line within a given distance, which may be pre-defined. In some cases, a particular point may be considered to be along the line if the particular point is closer to the line than any other points under consideration. Similarly, a point or a line may be considered to be along or in a plane if the point or line is close to or near the plane within a given distance, which may be pre-defined. In some cases, a particular point or line may be considered to be in the plane if the particular point or line is closer to the plane than any other point or line under consideration. For example, as can be appreciated, the points in a point cloud, particularly a scanned 3D point cloud after re-registration in a different coordinate system, may not be perfectly aligned with the given coordinate axes or a reference surface. Therefore, some allowance may be required to account for the imperfect alignment. It may not be necessary in all cases for a point to be exactly on a line in order for the point to be included as a part of the line for fitting purposes. Similarly, it may not be necessary in all cases for a line to be exactly in a plane in order for the line to be included as a part of the plane for fitting purposes.
A fabrication facility may be as simple as a general purpose 3D printer, but may also be a dedicated installation with a special-purpose fabrication device or a sophisticated manufacturing plant.
It will be understood that any range of values disclosed herein is intended to specifically include any intermediate value or sub-range within the given range, and all such intermediate values and sub-ranges are individually and specifically disclosed.
It will also be understood that the word “a” or “an” is intended to mean “one or more” or “at least one”, and any singular form is intended to include plurals herein.
It will be further understood that the term “comprise”, including any variation thereof, is intended to be open-ended and means “include, but not limited to,” unless otherwise specifically indicated to the contrary.
When a list of items is given herein with an “or” before the last item, any one of the listed items or any suitable combination of two or more of the listed items may be selected and used.
Other modifications to the above-described embodiments are possible. The invention is therefore defined by the claims, which should be given a broad interpretation consistent with the description as a whole.
This application claims the benefit of, and priority from, U.S. Provisional Patent Application No. 62/064,285, filed Oct. 15, 2014, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
62064285 | Oct 2014 | US |