[论文学习笔记]02一种连通费马螺线区域填充算法(CFS)【3D打印路径规划】

零.论文来源

赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

0.1 概述

       本文参考上述学位论文中关于增材制造路径规划的内容。
       该论文的路径规划主要是面向FDM等类似材料喷射的3D打印技术。这类技术中移动的主体是打印喷头,丝状材料或者粉末状材料再或者熔融的液体材料通过喷头喷射到工作台上,材料一层层的累积最终形成实体。

路径规划优化要点:
1)打印喷头频繁的开启、关闭操作,影响打印质量和打印效率。
2)空行程移动,喷头移动较慢,影响打印效率。
3)路径上小于90°的硬拐角影响打印质量和打印效率。

0.2 关于费马螺旋线

       费马螺旋线(Fermat spiral)由法国著名数学大师费马提出。费马螺线由两条相互分布的子螺旋线构成,可以应用于空间填充。
在这里插入图片描述图1

图1引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

费马螺线的特点:
1)只有一个起点和一个终点,中间连续不间断;且端点位于轮廓外部,位置可以调整。
2)全路径几乎低曲率,只有轮廓中心有一处拐点。

一.算法描述

1.1 单条费马螺线的生成

在这里插入图片描述图2

图2引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

1.1.1 判断区域类型

       用符号R表示区域边界,区域中任意一点p到边界R的最小欧式距离用 θ R ( p ) \theta_R(p) θR(p) 表示,可知边界R上的 θ R = 0 \theta_R=0 θR=0,而区域中心点的 θ R \theta_R θR最大, θ R ( p ) \theta_R(p) θR(p)在区域中只有一个局部极值点,就是中心点。
       如果 θ R \theta_R θR有多个局部极值点,那么属于无法螺旋的区域,如图2(d)所示,后文中再提及。

1.1.2 生成轮廓等距路径

       首先在扫描区域内生成轮廓等距的扫描路径,可以让 θ R = k w \theta_R=kw θR=kw,其中w是轮廓偏移的值,k是层数,这样逐层生成偏移的轮廓。如图2(a)所示。

1.1.3 设置打断点,将各层相连

在这里插入图片描述图3

图3引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

       如图2(b)、(c)所示,在外圈轮廓中任找一个点 p i n p_{in} pin作为螺旋线起始点,沿着 θ R ( p i n ) \theta_R(p_{in}) θR(pin)正梯度的方向找到下一层轮廓点 p i 1 p_{i1} pi1,然后找到 p i 1 p_{i1} pi1同层后退w长度的点 p i 1 ′ p'_{i1} pi1,去掉 p i 1 p_{i1} pi1 p i 1 ′ p'_{i1} pi1之间的线,再从 p i 1 ′ p'_{i1} pi1再向 θ R ( p i 1 ′ ) \theta_R(p'_{i1}) θR(pi1)的正梯度方向找到下一层的轮廓交点 p i 2 p_{i2} pi2,不断循环,可以得到图2(c)的效果。
       从外层轮廓中再找任意点 p o u t p_{out} pout作为螺旋线终点,重复上一段中的偏移方法,可以得到图3(c)的效果。

这样就完成了单条螺旋线的生成,螺旋线中仍有很多拐角等留在后文中优化。

1.2 连通费马螺旋线

1.2.1 将等值线标记

       对于图2(d)的情形,可以将无法螺旋区域分为多个可螺旋区域再连接到一起。
       以 C i , j C_{i,j} Ci,j来表示一条等值线,其中i代表到区域边界R的距离,j代表到边界距离为i的第几条等值线,将所有等值线保存到集合L中用于调用。如果对于相同的i,j有多个值,那么就是区域不可螺旋。

1.2.2 螺旋连通树

       基于等值线集合L,构造一种树形结构 T \mathbb T T,如图4(b)所示。
在这里插入图片描述图4

图4引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

       每条等值线构成 T \mathbb T T中的一个节点,相邻的等值线节点可以连接到一起,形成树形图。
       定义相邻两条等值线之间的连通边 O i , j , j ′ O_{i,j,j'} Oi,j,j
在这里插入图片描述
       这表示同层(i相等)不同等值线(j不相等)之中距离上一层等值线较近的部分,这一部分可以设置为两条等值线相连的区域。如果O非空,则说明在树状图中条等值线的节点应该相连。
       在这里再定义连通边的权重,该权重设定为该连通边的长度值,权重值如此设置的原因在于期望可以尽量少的破环长路径连续性。
       定义所有度小于或等于两度的节点为I型节点(在树形图中相连的点小于等于2),大于两度的节点为II型节点,将相互邻接的I型节点进行组合,而II型节点将各个子区域的螺旋线连接到一起构成一条相连的路径。

1.2.3 连通路径的生成

现在需要将路径图中子费马螺线都相连起来构成一整条路径。

路径的打断和连接分两种:
1)1.1.3中描述的I型节点生成费马螺线的操作。
2)II型节点将子费马螺线相连的操作,如图5所示。将子费马螺旋线的起始点与相邻的II型节点对应等值线的最近点相连。

在这里插入图片描述图5

图5引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

1.2.4 路径优化

       目前生成的路径只满足几何连续,还存在大量不平滑的点,下面通过局部优化来进行平顺性处理,设定惩罚函数进行优化。

       首先要在螺线上曲率动态选取采样点,曲率越大的地方采样点越多,曲率小的地方采样点少。
在这里插入图片描述

惩罚函数分为三项:
1)采样点扰动惩罚项:
在这里插入图片描述
       扰动项表示优化后的点 p i p_i pi到原采样点 p i 0 p_i^0 pi0的距离,之后采用最小二乘法来约束曲线位置,保证位置变化不要太大。

2)平滑程度惩罚项:
在这里插入图片描述
这个式子可以化简为在这里插入图片描述
       这表示相邻三个采样点组成的两个向量的单位向量的和向量,之后用最小二乘法,可以使这个和向量最小,和向量最小就是两个向量间夹角最大,保证曲率最大,达到平滑的效果。

3)间隔保持程度惩罚项:
在这里插入图片描述
将相邻的螺旋线分为两种情况:
在这里插入图片描述图6

图6引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

这保证相邻的螺旋线之间的距离保持在一个合理的程度,避免出现过填充或者欠填充。

综上所述,全局优化函数为:
在这里插入图片描述
可采用数值优化方法对上述优化函数进行迭代优化,当迭代得到的曲线移动距离达到某种精度即可完成迭代,得到最终优化后的连通费马螺旋线(Connected Fermat Spiral)。
在这里插入图片描述图7

图7引用自: 赵海森.面向增减材料制造的几何研究与应用[D].山东大学,2018

二.实验结果分析

实验结果标准
1)路径段数和硬拐点数
该方法路径段数只有1,拐点数很少。
2)填充质量
少有过填充现象,欠填充位置增加,这可能是优化函数中曲线平滑项引起的。
如果能允许曲线拉伸以减少欠填充的情况,这将是未来的研究工作。
3)表面质量
4)打印时间
由于CFS不用频繁的打开、关闭喷嘴,因此节省很多打印时间。
。。。。。。

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 基于改进遗传算法路径规划MATLAB实现是一种用于寻找最优路径算法。在这个问题中,我们需要找到从起点到终点的最短路径,同时避免障碍物的干扰。 首先,我们定义问题的目标函数。这个函数可以根据路径的长度和避免障碍物的程度来评估一个路径的好坏。我们可以采用费马定理或欧几里得距离作为路径长度的度量,同时通过计算路径上的障碍物数量或避免障碍物的距离来度量避免障碍物的程度。 然后,我们需要定义遗传算法的基本操作。遗传算法主要包括初始化种群、选择、交叉和变异。在路径规划问题中,我们可以将每个个体表示为一条路径,通过染色体编码的方式存储路径的节点信息。初始化种群时,我们随机生成一些路径,选择操作则根据问题的目标函数对路径进行评估,并选择出适应度最高的个体。交叉操作将从选择的个体中选择两个进行交叉,通过染色体的交换产生新的个体。变异操作则对某个个体的染色体进行变异,例如随机交换某两个节点。 接下来,我们需要对遗传算法进行改进以提高求解结果的质量和效率。一种改进方法是引入局部搜索策略,例如爬山算法。爬山算法可以在遗传算法的某个迭代中,对于某个个体的邻域进行搜索,以找到更优的个体。另一种改进方法是通过改变遗传算法的参数,例如交叉率和变异率,来获得更好的求解结果。 最后,在MATLAB中实现这个改进的遗传算法路径规划方法。可以通过编写适应度函数、初始化种群函数、选择函数、交叉函数和变异函数等来实现算法的各个部分。然后,利用MATLAB的优化工具箱中的遗传算法函数进行算法的迭代和求解。 通过这种基于改进遗传算法路径规划MATLAB实现,我们可以找到起点到终点的最短路径,并且能够避免障碍物的干扰。这种方法具有广泛的应用前景,可以在无人驾驶、自动导航、物流配送等领域中得到应用。 ### 回答2: 基于改进遗传算法路径规划一种求解最短路径或最优路径算法。它通过模拟自然界中的遗传与进化的过程,利用遗传算法的优势来寻找最优解。本文使用MATLAB实现了该算法,并进行了改进。 首先,在路径规划问题中,我们需要定义适应度函数来评价每条路径的优劣。适应度函数可以根据实际问题的不同进行设计。例如,可以将某个路径的总长度作为适应度函数,使得通过遗传算法搜索出的路径趋向于最短路径。 其次,我们需要设计遗传算法的基本流程。经典的遗传算法包括选择、交叉、变异等操作。在该改进算法中,我们引入了一种新的选择策略,即“锦标赛选择”。在锦标赛选择中,我们先从种群中随机选择几条路径,然后从中选择适应度最高的路径作为优秀个体。这样,可以增加进化过程中的多样性,提高算法的收敛速度。 另外,我们还对交叉和变异操作进行了一定的改进。在交叉操作中,我们采用了部分映射交叉算子,即只对路径中的某一段进行交叉操作,而不是对整个路径进行交叉。这样可以保留原始路径中的一些有用信息。在变异操作中,我们采用了插入变异算子,即将某个节点插入到路径中的任意位置。这样可以增加路径的多样性和局部搜索能力。 最后,我们使用MATLAB编写代码来实现改进遗传算法路径规划。我们首先初始化种群,并计算每条路径的适应度。然后,根据适应度进行选择、交叉和变异操作,生成新一代的种群。重复进行选择、交叉和变异操作,直到达到预定的停止条件。 通过使用改进的遗传算法路径规划实现,我们可以得到一条近似最优的路径。该算法在实际问题中具有广泛的应用前景,如无人机飞行路径规划、机器人路径规划等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值