基于三周期极小曲面的三维打印全接触鞋垫建模方法
2021-05-27江超群郭明灯陆荣杰陈正鸣
江超群,童 晶,郭明灯,陆荣杰,陈正鸣
(河海大学信息学部物联网工程学院,江苏 常州 213022)
0 引 言
糖尿病足病作为糖尿病的常见并发症,导致患者行走时产生巨大的疼痛感。中华医学会糖尿病学分会指出,2013年中国糖尿病患病率为10.4%,我国50岁以上糖尿病患者1年内新发足溃疡的发生率为8.1%[1]。
足底压力集中是患者足部溃烂的重要外力因素[2],在医学上通常采用预防措施,通过制动减压的方式(减压鞋垫、糖尿病足鞋)来缓解这种症状,改善患者的生活条件[1-4]。鞋垫可以改善鞋内环境和脚底受力情况,是影响足底压力分布的重要因素。适合患者的鞋垫可以降低足底峰值压力,改善压力分布。足底压力的峰值区域通常位于跖骨头足底面与胼胝中央等区域[1-4],全接触鞋垫的主要需求是增加足底接触面积,降低足底压力峰值,并可以塞进宽松的鞋子中。
1 相关研究
传统全接触鞋垫定制方法[2-3]多采用手工方式,通过采集患者足部石膏模型来设计完全贴合脚底的鞋垫,存在定制过程复杂、生产周期长、成本高等问题。针对传统定制鞋垫方法的缺点,很多研究利用CAD和CAM技术设计鞋垫[5],通过三维打印快速生产。三维打印[5]作为新兴的生产方式,具有加工精度高、制造周期短、材料多样的特性,已经广泛地应用于生物工程和医学、个性化产品创作等领域。
Ganesan等[6]将人群分为扁平足正常足人群和高足弓人群这2大群体,针对2个群体的定制鞋垫分别划分为5个和4个区域,每个区域使用不同力学性能的材料,依据手工测量的用户足弓高度来调节鞋垫足的弓区域高度以分担足跟和趾部的压力,使用CAD技术设计鞋垫模型通过三维打印生产。但该研究仅仅通过足弓高度来调整鞋垫设计,定制的空间很小。
Ma等[7]提出了一种基于参数设计结构的定制减压鞋垫方法,该结构通过调整参数获得不同缓冲能力,通过将鞋垫划分为多个区域使用不同缓冲性能的参数,使鞋垫具有更好的减压效果。Tang等[8]提出了一种功能梯度结构的定制鞋垫,该方法利用有限元分析方法分析脚部和参数设计鞋垫上的静态受力情况,并反馈调节鞋垫上不同区域的设计参数,迭代多次找到最合适的参数。因有限元分析计算量巨大且操作复杂,该设计方法总耗时过长。
陶晓斌[9]则截取用户脚部模型底面,通过对模型下表面抽壳建模生成一个贴合用户脚底的全接触鞋垫模型。该方法需要复杂手工操作截取脚部模型底面,打印出的鞋垫难以直接穿在鞋子中。刘丽[10]设计了半自动建模全接触鞋垫模型方法,对鞋垫模型上表面进行形变生成全接触鞋垫模型,通过雕刻机制作EVA材质的鞋垫模型,实验验证了全接触鞋垫的外形具有降低足底峰值压力的能力。
三周期极小曲面(TPMS)是一种在空间3个方向均具有独立周期性的极小曲面,具有曲面上任意一点的平均曲率为0的特点,并可在3个独立的方向上无限延伸[11-12]。P、D和G是最常见的TPMS类型,Gandy等[13]用简单的周期函数近似P、D、G和I-WP这4种经典的TPMS类型。相较于传统使用Weierstrass公式表示的方法,新的拟合公式复杂度更低,可以通过Marching Cubes方法[14]构建TPMS多孔结构模型。
Yoo[15-16]则提出了一种使用基于TPMS结构的模型建模方法,可以通过调整水平值等参数调节孔隙率和孔径大小,将模型剖分为六面体网格[17],再将每个六面体单元替换为TPMS单元晶格,模型六面体剖分方法的好坏直接影响了构建出的TPMS模型的美观程度。江振彦[18]总结了一些将TPMS结构应用于建筑设计的方法。王清辉等[19]使用双重轮廓线法剖分模型为六面体网格,并对六面体网格顶点随机调整,基于TPMS结构建模出孔径分布随机的松质骨模型。
当前定制全接触鞋垫研究存在如下痛点:传统方法成本昂贵且生产时间过长,定制鞋垫不能充分贴合用户脚底减压,定制鞋垫体积过大不能塞入鞋子中,鞋垫不透气等。为了解决这些问题,本文提出一种基于三周期极小曲面的三维打印全接触鞋垫建模方法,分为3步:数据采集、全接触模型构建、模型多孔化。其总体流程如图1所示。数据采集步骤使用三维扫描工具获得用户的脚部模型和原始鞋垫模型。全接触模型构建步骤将预制鞋垫模型逼近到扫描鞋垫的边界形状,然后通过网格形变操作调整鞋垫上表面构成全接触鞋垫。模型多孔化步骤利用Marching Cubes算法把隐式曲面表示的TPMS转换成网格模型填充全接触模型区域,将鞋垫构造为基于TPMS的多孔结构。
图1 方法总体流程图
2 方 法
2.1 数据采集
用户脚部模型数据是构建全接触鞋垫的关键,脚部模型提供大量关键信息,包括用户脚底曲面结构、脚长、脚宽、足弓高度等。本文采用精迪科技的足底三维扫描仪JD-FootScan-F2,该扫描仪是一种高效率高精度的激光测量仪器,通过激光重建技术对足底进行准确可靠的三维数据采集。采集用户脚部模型和需要使用定制鞋垫的目标鞋子的鞋垫模型,分别称为脚部模型和目标鞋垫模型,如图2所示。
(a) 扫描脚部模型
(b) 扫描原始鞋垫
2.2 全接触鞋垫构建
足溃疡常见于反复受压部位,如跖骨头组底面、胼胝中央等[1-4],因此定制全接触鞋垫设计要注意将足底压力峰值区域的压力减小。可以通过增大脚底接触面积来分摊跖骨头足底面与胼胝中央等区域的压力,使足底峰值压力降减少,降低溃疡发生的风险。
全接触模型构建分成2个子步骤:鞋垫模型预调整步骤和鞋垫模型上表面形变步骤。鞋垫模型预调整步骤主要是为了使鞋垫模型下表面边缘和扫描鞋垫边缘一致从而更贴合鞋底,鞋垫模型上表面形变步骤是为了使鞋垫模型上表面与脚部底面全接触。
2.2.1 鞋垫模型预调整
为了能使定制鞋垫更贴合日常用鞋鞋底,本文提前制作了如图3所示的预制鞋垫模型,鞋垫下表面形状与常见运动鞋垫相似,具有光滑的弧形。记为Insoletemplate={V,E,F,Vtop,Vboundary},其中,V表示顶点集合,E表示边集合,F表示面集合,Vtop表示上表面顶点集合,Vboundary表示下表面边缘顶点集合。将预制鞋垫模型的底面边界调整逼近扫描鞋垫的边界,可使生成的鞋垫更贴合目标鞋子。调整分为2步,第一步是获得形变的控制点对,第二步通过拉普拉斯网格形变算法[20]使预制鞋垫模型的下表面边界形状与扫描鞋垫一致。
图3 预制鞋垫模型(左脚)的俯视图与仰视图
在获得控制点对之前需要通过对预制模型进行旋转、平移和缩放变换与扫描鞋垫对齐。然后将扫描鞋垫和Vboundary投影到XOY平面,过Vi∈Vboundary做Y轴方向的直线,求直线与扫描鞋垫的边界交点。简单筛选后可以获得控制点Vboundary和目标位置(X,Y,0),通过拉普拉斯网格形变算法,仅调整鞋垫模型的X、Y轴的坐标,对Z轴坐标不做处理,图4(a)与图4(d)对比可见预制鞋垫调整效果。
(a) (b) (c) (d)
2.2.2 鞋垫模型上表面形变
对齐脚部扫描模型与预制鞋垫模型,通过布尔运算从预制鞋垫中减去相交部分,是全接触鞋垫构建的主要流程。网格模型的布尔运算复杂,因脚部模型与预制鞋垫模型的拓扑结构简单,可以使用网格形变方式来简化布尔操作。
八叉树结构[21]是一种描述三维空间的树状结构,被广泛地应用于空间搜索、网格模型布尔操作等。为预制鞋垫模型与扫描脚部模型建立八叉树结构,记作Octreeinsole和Octreefoot,位移脚部模型使其底面部分没入预制鞋垫模型上表面,同时脚部模型底面没有穿透鞋垫模型下表面。
进行调整的顶点为预制模型上表面顶点集合Vtop,为保证预制模型不会发生自交等缺陷,给定变形范围,鞋垫厚度最小值设置为dmin,即上表面顶点Vtop的变化下界为对应下表面Vbottom[Z]+dmin。考虑到部分用户足弓较高,足弓区域不会与鞋垫相交,为增大接触面积主动将上表面顶点Vtop向Z轴正方向移动,其上界为用户手动设定Vtop[Z]+dmax,则预制模型上表面顶点的形变范围为Vtop[Z]∈[Vbottom[Z]+dmin,Vtop[Z]+dmax]。
下面阐述对模型上表面顶点坐标调整的具体算法。对每一个鞋垫上表面顶点Vi∈Vtop执行如下步骤:
步骤1自顶点Vi沿(0,0,-1)方向发射射线,求与脚部扫描模型交点,如有交点记为Vintersect跳转到步骤2,无交点跳转到步骤3;
步骤2取Vintersect[Z]与Vbottom[Z]+dmin两者中最大值设置为Vi坐标的Z值;
步骤3自顶点Vi沿(0,0,1)方向发射射线,求与预制模型交点,如有交点跳转到步骤4,无交点结束算法;
步骤4取Vintersect[Z]与Vtop[Z]+dmax两者中最小值设置为Vi坐标的Z值。
对鞋垫上表面所有顶点执行该算法后,得到几乎与脚底完全接触的全接触鞋垫模型。通过光滑算法[22]使鞋垫上表面区域平滑化,提升全接触模型的网格质量。经过上述操作可以构建出几乎与脚底模型全接触的鞋垫模型Insoleboundary,如图5(b)所示,这个全接触模型将在后续步骤中转换为基于TPMS的多孔结构。
(a) 形变前足底与鞋垫模型 (b) 形变后的鞋垫模型图5 鞋垫模型上表面形变过程示意图
2.3 模型多孔化
TPMS是一种在空间中3个方向都具有周期性的极小曲面,因为Weierstrass公式[13]表达的TPMS种类较少且难以设计和计算,通常使用近似的隐函数[14,23]表示:
(1)
其中,Ak表示幅度因子,r是位置矢量,hk是倒数空间的第k个栅格矢量,λk是周期的波长,pk是相位,c是一个常数表示隐式曲面的等值面。
本文选择最常见的4种TPMS曲面类型,分别是P、D、G和I-WP曲面,4种TPMS曲面的样式如图6所示,使用Yoo[15]给出的近似公式作为TPMS隐函数,分别如下:
φ(r)P=cos(X)+cos(Y)+cos(Z)=c
(2)
φ(r)D=cos(X)cos(Y)cos(Z)-sin(X)sin(Y)sin(Z)=c
(3)
φ(r)G=sin(X)cos(Y)+sin(Z)cos(X)+sin(Y)cos(Z)=c
(4)
(5)
其中,X=2πx,Y=2πy,Z=2πz,c作为水平值调整孔隙率与孔径大小。φ(r)=c将空间划分为2个部分,φ(r)>c位于曲面外侧,φ(r) (a) P类型曲面 (b) D类型曲面 (c) G类型曲面 (d) IW-P类型曲面 将全接触鞋垫模型转换成具有TPMS作为单位晶格结构填充的多孔结构模型,关键在使用TPMS多孔结构填充全接触鞋垫模型内部。本文基于经典Marching Cubes方法[14]将隐式曲面表示的TPMS转换成三角网格模型。Marching Cubes方法将空间划分为体素,其中每个体素有8个顶点,将体素顶点的坐标(x,y,z)代入隐式曲面公式f(x,y,z)并通过阈值c判断顶点是否位于网格内部,根据8个顶点位于网格内部或外部的情况不同,共有256种情况,根据空间对称性简化为14种拟合情况,如图7所示。计算空间中所有体素顶点的隐函数值,查表得到每个体素的拟合面片,依次向网格模型中添加每个体素拟合的顶点、边、面,即可将隐式曲面拟合为三角网格模型。 图7 Marching Cubes拟合表[14] Marching Cubes方法拟合出的单层曲面难以直接应用到三维打印,需要调整成为封闭的网格模型,有实体模型和壳模型这2种方式,如图8所示。在所有采样点的最外侧追加一层采样点,最外层采样点的隐函数值全部赋值为c-1,可利用Marching Cubes拟合表将φ(r) (a) 实体模型 (b) 壳模型 直接使用Marching Cubes方法不能控制TPMS结构的尺寸,本文抽象了逻辑坐标用来作为隐函数值求解时输入参数。将体素的顶点称为采样点,采样点有逻辑坐标和物理坐标这2个属性,计算隐函数值时使用逻辑坐标,计算拟合面片顶点坐标时使用物理坐标。通过调整采样点逻辑坐标的分布,可以调整TPMS单元晶格周期大小、微调局部区域的TPMS周期分布等。通过调整鞋垫Z轴方向上采样点逻辑坐标分布,可以使鞋垫不同区域的Z轴方向具有相同的周期长度,使鞋垫观感美观。 (a) 全接触鞋垫模型 (b) TPMS填充鞋垫模型轴向包围盒示意 (c) 向鞋垫内部压缩采样点逻辑坐标示意 (d) 最终构建TPMS多孔结构鞋垫示意图9 鞋垫TPMS多孔化流程示意图 首先将鞋垫的轴向包围盒空间划分为体素,其逻辑坐标的Marching Cubes方法拟合结果如图9(b)所示。调整逻辑坐标分布,使鞋垫Z轴方向的逻辑坐标都经过了相等长度,调整后逻辑坐标边界如图9(c)所示,重新利用采样点逻辑坐标计算隐函数值拟合网格模型,忽略鞋垫模型外部拟合结果,可得基于TPMS结构的多孔全接触鞋垫建模,如图9(d)所示。 本实验邀请了5位志愿者参与实验,通过三维扫描仪获得脚部模型和原始鞋垫模型,如图10(a)和图10(b)所示,为之构建全接触鞋垫,效果如图10(c)所示。模型多孔化阶段使用水平值参数为c=0分别生成实体模型和壳模型。受限于实验设备FDM三维打印机精度[5],仅使用PLA材料打印部分实体模型的定制鞋垫,打印效果如图11所示。 (c) 构建出的全接触鞋垫模型图10 全接触鞋垫模型的设计过程 图11 基于TPMS的全接触鞋垫模型建模结果及部分打印效果 为验证鞋垫减压效果,本文先使用精迪科技的足底压力测评仪JD-FootScan Pressure test-1找到足底压力峰值区域,再使用5个单点FSR薄膜压力传感器测量单脚压力。结合左、右脚静态压力图以及走路状态的动态压力图分析,足中区域压力最小,压力峰值区域分布在足跟与第二三趾骨区,如图12所示。 图12 足底静态压力分布 受足底压力测评仪厚度限制,无法测量足底与鞋垫之间压力,实验使用5个FSR薄膜压力传感器测量足底压强峰值区域的静态压力,FSR薄膜压力传感器的原理是压感区域的电阻随受力情况变化,电阻值与压力呈线性关系,通过计算电阻值来推导压力值。将5个薄膜压力传感器分别置于足底第一二趾骨区、第三四趾骨区、足弓处、足中区和足跟区,测量对应区域的足底压力数值。 实验对比5位志愿者在光脚、平面EVA鞋垫和PLA三维打印全接触鞋垫情况下的足底区域压力情况,5名志愿者的体重和脚长数据在表1中列出。压强数据采集时,志愿者两脚与肩同宽,静止站立,每秒钟采样2次,采样1分钟共120次数据的平均压力情况。 表1 志愿者体重和脚长信息 从图11中可以看到,基于TPMS的全接触三维打印结果根据参数不同可以非常多样化地构建模型。但实际三维打印生产时,FDM挤出式打印机面临精度问题,很难生产出曲面变化大且壁厚很薄的壳模型,精度更高的SLA光固化三维打印工艺[5]可以解决这个问题。 足底各区域压强情况如图13~图15所示,图中X轴1对应志愿者1左脚数据,2对应志愿者1右脚数据,3对应志愿者2左脚数据,4对应志愿者2右脚数据,以此类推。从图中可以看出,相比于光脚和平面EVA鞋垫,使用定制鞋垫时足弓区域压强不再是0 kPa,而其他区域压力则出现了不同程度的下降,这是由于足底的接触面积增大,足弓处分担了部分足底其他区域转移过来的压力,降低了原本的足底峰值压力。从图16和图17中可以发现,相比光脚,全接触形状鞋垫平均可降低第一二趾骨处峰值压强5.79%,最大降低了20.64%。第三四趾骨处峰值压强平均降低14.18%,足跟处压强平均降低9.11%。相比平面EVA鞋垫,第一二趾骨处压强平均降低6.62%,第三四趾骨处压强平均降低12.90%,足跟处压强平均降低6.13%。 图13 光脚足底各区域压强数据 图14 平面EVA鞋垫足底各区域压强数据 图15 全接触形状鞋垫足底各区域压强数据 图16 全接触形状鞋垫相较于光脚时足底压强峰值区域压强降低情况 图17 全接触形状鞋垫相较于平面EVA鞋垫时足底压强峰值区域压强降低情况 Ganesan等[6]实验对比了光脚在硬质地板上的足底压力和定制鞋垫的足底压力,结果表明脚掌区域减压27.78%。Tang等[8]通过实验对比了普通平面鞋垫和梯度功能结构定制鞋垫,认为可以降低峰值压力33.67%。与之相比,本文方法的脚底峰值压力降低比例较小,因压力降低比例与鞋垫材质相关,实验所用PLA硬质塑料弹性形变能力较弱,会是本文减压比例较低的一个因素。因此实验验证了本文设计的全接触减压鞋垫外形具有减压功能,但更好的减压效果还需改进三维打印鞋垫的材质,选用TPU等柔性打印材料。 综上,本文方法基本解决了现有全接触鞋垫定制痛点:通过预制鞋垫上表面网格形变到逼近足底曲面实现了鞋垫与脚底的紧密贴合,通过预制鞋垫下边缘形变到原扫描鞋垫边缘使鞋垫可以更贴合原鞋子的底部,借助基于TPMS结构的多孔特性实现了鞋垫的透气性。 本文提出了一种新颖的基于三周期极小曲面的三维打印全接触鞋垫建模方法。TPMS结构复杂建模困难,本文提出的方法可以顺利地构建TPMS结构全接触鞋垫三维模型。方法总体分为3步:数据采集、全接触模型构建、模型多孔化。数据采集步骤是为了获得用户的脚部数据和原始鞋垫数据。构建全接触模型步骤先将鞋垫模型逼近到扫描鞋垫的边界,再通过网格变形操作调整鞋垫模型上表面构造全接触模型。模型多孔化步骤使用Marching Cubes算法把全接触鞋垫模型转换为基于TPMS孔隙单元的多孔结构。 实验使用PLA材质打印了全接触鞋垫,验证了全接触鞋垫模型外形可以降低足底峰值压力,相比平面EVA鞋垫,第一二趾骨处压强平均降低6.62%,第三四趾骨区压强平均降低了12.90%,足跟处压强平均降低了6.13%,足弓区域分担了部分转移的压力。实验通过调整TPMS隐函数水平值参数和采样点逻辑坐标,生成了不同外观效果的鞋垫模型,在鞋垫模型个性化方面具有很大的变化空间。未来的工作将围绕着提升鞋垫实用性展开,利用基于TPMS的建模方法,根据运动鞋垫设计原则,研究基于三周期极小曲面结构的特殊运动鞋垫个性化定制,如马拉松长跑鞋垫、短跑鞋垫等。3 实验与讨论
4 结束语