# An Efficient and Adaptable Path Planning Algorithm for Automated Fiber Placement Based on Meshing and Multi Guidelines

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Efficiency Analysis and Topology Reconstruction

#### 2.1. Efficiency Analysis of the Proposed Algorithm

#### 2.2. Triangulation Algorithm for Parametric Surface

_{l2s}: The maximum distance from the straight-line segment of the discrete triangular area to the original parametric surface. (b) L

_{seg}: The maximum length of the straight-line segment in the discrete triangular area.

#### 2.3. Sub-surface Boundary Splicing and Surface Topology Reconstruction

#### 2.3.1. Topology Reconstruction Algorithm for the Triangular Mesh of a Cellular Patch

Algorithm 1: Vertex aggregation algorithm for triangulation |

Input: All vertex sets after the triangulation of a cellular parametric surface. Output: Face ID List, Edge ID List and Point ID List for this cellular parametric surface. |

1: Loop all strip, fans and triangles: 2: According to the right-hand rule, the vertices in the current discrete cell are stored to form the Point ID List of the current cell parameter surface. |

3: Loop all points in the Point ID List 4: Every three points in the point table form a triangle patch to summarize the Face ID list and store the indexes of the three points of the current triangle patch. 5: Point ID List update, add triangle patch ID index. 6: Build the edge ID list, update the two-point indexes of the edge, update the Point ID list to add the edge index, update the Face ID list to add the included edge index. 7: Calculate the normal vector of the current triangular patch according to the right-hand rule, and update it in the Face ID list. |

#### 2.3.2. Algorithm for Subsurface-Boundary Splicing

^{2}).

Algorithm 2: De-duplication algorithm based on vertex closure checking |

Input: Point ID list before de-duplication. Output: Point ID list after de-duplication. 1: Find semi-closed state vertices 2: Loop all points in all Point ID List: 3: if point->edgenum != point->facenum 4: save this point to duplicate Point ID List; 5: Loop all point1 in duplicate Point ID List: 6: Loop all point2 in duplicate Point ID List: 7: if point1.distanceto (point2) < eps 8: delete point2 in Point ID List; 9: refresh Face ID List & Edge ID List; |

^{2}), which is far less than O (N

^{2}) of the brute force algorithm, and the efficiency of the algorithm is greatly improved.

## 3. Main Path Planning Algorithm Based on Guidelines on Triangular Mesh Surfaces

#### 3.1. Main Motion Path Generation Algorithm

_{0}, guide line L, parametric surface Π) as well as the ply angle θ should be provided as input to the main motion path generation algorithm, which outputs the main motion path l

_{i}. Basically, the algorithm needs to calculate the direction vectors and subsequently generate the continuous points on the main motion path, as described in Algorithms 3 and 4, respectively.

**Algorithm 3: The direction vector calculation algorithm for the main motion path.**

_{0}’ for the initial starting point P

_{0}on the triangle patch A of the triangular mesh surfaces ∑ (triangulation of the parametric surface Π) and obtain the normal vector n of triangle patch A. Then, redefine P

_{0}’ as the starting point for the current main motion path.

_{0}’’ of P

_{0}’ on the guide line L, and generate the parallel vector t of t’ at point P

_{0}’.

_{0}’.

_{0′}and vector d to construct a straight line and hence obtain the intersection point P

_{1}of the straight line and the three sides of triangle patch A. The intersection point P

_{1}is the next path point, and all the path points can be obtained after continuous iteration for the main motion path generation.

**Algorithm 4: The continuous path point generation algorithm.**

_{i}and direction vector d

_{i}in the current triangle patch A

_{i}, construct a ray P

_{a}(λ), which is defined as the solution line for the path point. Its parameter equation is:

_{a}and V

_{b}of the triangle patch form a straight line P

_{b}(λ), and the parameter equation is:

_{c}V

_{b}and V

_{a}V

_{c}to form a straight line for the calculation. Repeat steps 1, 2, and 3 to get the next path point.

_{i}

_{+1}cannot be calculated using the above steps. At this time, the endpoint of the edge ${V}_{m}{V}_{k}\left(m,k\in \left\{a,b,c\right\}\right)$ of the triangle, where the point P

_{i}is located, is used as the next path point P

_{i}

_{+1}. The endpoint selection rules are described in Equation (11), where d is the laying direction vector.

_{i}

_{+1}is located, and update the patch index as A

_{i}

_{+1}.

_{i}

_{+1}. When the next path point P

_{i}

_{+1}lies on the triangle edge or vertex, use the area weighing method to reduce the deviation.

_{i}

_{+1}belongs, and A

_{k}is the area of the triangles. The area can be determined using ${A}_{k}=\frac{\Vert AB\times AC\Vert}{2}$, where points A, B, C are the three vertices of a triangle A

_{k}.

_{i}

_{+1}, and solve the direction vector d

_{i}

_{+1}of the next path point P

_{i}

_{+1}using Algorithm 3. The projection vector d

_{i}

_{+1′}of d

_{i}

_{+1}on patch A

_{k}

_{+1}is the laying-direction vector of point P

_{i}

_{+1}.

_{0}, take the inverse of the laying-direction vector d

_{0}and repeat Step 1 to Step 7 until the whole main motion path is completely constructed.

#### 3.2. Guide-line Update Algorithm for Complex Surfaces

**Algorithm 5: Guideline update algorithm for complex surfaces.**

_{i}on each guide-line L

_{i}to obtain projection points A, B, C and D. Connect the projection points to form a polygonal section plane Ω, the four sides of the polygon on the section plane Ω are a, b, c and d.

_{i}to the edge of the polygon, and find the projection points ${P}_{i}^{1}$, ${P}_{i}^{2}$, ${P}_{i}^{3}$ and ${P}_{i}^{4}$.

_{i}to the projection points on the not excluded edge lines, where $dist=\Vert {P}_{i}{P}_{i}^{x}\Vert $.

_{a}and L

_{b}, at the end of x, are the guide-lines for the current path point P

_{i}.

_{a}and L

_{b}, respectively. The smooth transition for the path direction vector from L

_{a}to L

_{b}is realized using the distance-weighing method:

_{1}and dist

_{2}are the distances of P

_{i}to L

_{a}and L

_{b}.

_{i}in Algorithms 3 and 4. The path, which is generated by Algorithm 5, is more adaptive to the changing curvature of the surface and the scalability is improved. Figure 6 shows the paths generated based on single guideline and multi-guidelines for a panel and a curved surface models. It can be seen that the fiber direction transits smoothly between the guide lines and this makes the placed fibers adapt to the shape of the moulds of the final parts.

## 4. Accuracy Analysis of the Generated Path Based on Surface Meshing

_{l2s}and L

_{seg}are the main parameters that affect both the mesh density and the approximation accuracy. When the two parameters are set to larger values, the mesh density is small, the surface approximation accuracy is low, the subsequent path planning process data volume is small, and the algorithm efficiency is high. If the two parameter values are continuously reduced, on the other hand, the efficiency is lower.

#### 4.1. Distance Deviation Analysis

_{l2s}and L

_{seg}. The path was uniformly sampled (with a distance of 5 mm) to evaluate the distance deviation, as shown in Figure 8.

_{l2s}and L

_{seg}did not reach 0, which means that the parameter value (without approximation error) could not be determined. Therefore, in the actual application, the D

_{l2s}range was 0.2–1.0 mm, and the L

_{seg}range was 20–200 mm. The experiment was carried out by the ${L}_{25}\left({5}^{6}\right)$ orthogonal design. The path-generation time, the distance deviation, the normal distance deviation and the geodesic distance deviation were recorded.

_{N}and the geodesic distance deviation d

_{T}.

_{i}on the original parametric surface is n. d

_{N}and d

_{T}can be calculated as follows:

_{l2s}= 0.2 and L

_{seg}= 65, D

_{l2s}= 0.4 and L

_{seg}= 110, D

_{l2s}= 0.6 and L

_{seg}= 155 and D

_{l2s}= 0.8 and L

_{seg}= 200, were selected to analyze the distribution of distance deviation along the generated paths.

_{T}was the main deviation and it increased as the parameters D

_{l2s}and L

_{seg}increased.

_{l2s}and L

_{seg}) and the distance deviation of the generated path and the algorithm efficiency, the mean distance deviation, the normal mean distance deviation, the geodesic mean distance deviation, the maximum distance deviation, the maximum normal distance deviation, the maximum geodesic distance deviation, and the path generation time were calculated. This was done when the generation time started from the beginning of the surface triangulation to the end of the path generation, as shown in Table 2.

_{l2s}and L

_{seg}restricted each other in the triangulation process. When the two parameters cannot be satisfied simultaneously, the algorithm will adopt the parameter that makes the mesh more precise. For example, when L

_{seg}is 20 mm, the triangulation algorithm generated the same triangular mesh surfaces for a D

_{l2s}of 0.4 mm, 0.6 mm, 0.8 mm and 1.0 mm as for the D

_{l2s}of 0.2 mm.

_{l2s}exceeds 0.8mm and L

_{seg}exceeds 155 mm, the mean distance deviation surpasses 1mm, and the maximum distance deviation exceeds 2 mm. When D

_{l2s}is between 0.2 and 0.6mm, and L

_{seg}is 65 to 155 mm, the average distance deviation remains within 1mm, while the maximum distance deviation is within 2 mm. The generation time of the algorithm is within 0.5 s.

#### 4.2. Angle Deviation Analysis

_{l2s}and L

_{seg}on the angle deviation of the path, the mean angle deviation, the mean square error, and the maximum angle deviation were calculated using the experimentally obtained data—see Table 3.

_{l2s}and L

_{seg}increased, both the mesh density and approximation accuracy of the triangular mesh surface decrease. In addition, the normal vector of the path points on the triangular mesh surface deviate significantly from the normal vector on the original parametric surface. Hence, the angle deviation increases. According to Table 3, when D

_{l2s}exceeds 0.6 mm and L

_{seg}exceeds 65 mm, the mean angle deviation surpasses 0.25 deg, and the maximum deviation is more than 1.4 deg.

_{l2s}ranges between 0.2 and 0.6 mm and L

_{seg}is 65 to 110 mm, the mean distance deviation remains within 1mm. Furthermore, the maximum distance deviation stays within 2 mm, the mean angle deviation is less than 0.25 deg, and the maximum angle deviation is below 1.4 deg. At the same time, the path generation time stays within 0.5s. In this case, D

_{l2s}and L

_{seg}can be selected according to the complexity of the surface and the acceptable path error. Within the above range of the parameters, a high-precision triangular mesh surface and fiber path with small error can be obtained, while the generation efficiency of the algorithm is high.

## 5. Conclusions

## Supplementary Materials

## Author Contributions

## Funding

## Conflicts of Interest

## References

- Kozaczuk, K. Automated fiber placement systems overview. Trans. Inst. Aviat.
**2016**, 245, 52–59. [Google Scholar] [CrossRef] - August, Z.; Ostrander, G.; Michasiow, J.; Hauber, D. Recent developments in automated fiber placement of thermoplastic composites. SAMPE J.
**2014**, 50, 30–37. [Google Scholar] - Rousseau, G.; Wehbe, R.; Halbritter, J.; Harik, R. Automated Fiber Placement Path Planning: A state-of-the-art review. Comput.-Aided Des. Appl.
**2018**, 16, 172–203. [Google Scholar] [CrossRef] [Green Version] - Lewis, H.; Romero, J. Composite Tape Placement Apparatus with Natural Path Generation Means. U.S. Patent 4,696,707, 29 September 1987. [Google Scholar]
- Shirinzadeh, B.; Foong, C.W.; Tan, B.H. Robotic fibre placement process planning and control. Assem. Autom.
**2000**, 20, 313–320. [Google Scholar] [CrossRef] - Shirinzadeh, B.; Alici, G.; Foong, C.W.; Cassidy, G. Fabrication process of open surfaces by robotic fibre placement. Robot. Comput.-Integr. Manuf.
**2004**, 20, 17–28. [Google Scholar] [CrossRef] - Shirinzadeh, B.; Cassidy, G.; Oetomo, D.; Alici, G.; Ang, M.H. Trajectory generation for open-contoured structures in robotic fibre placement. Robot. Comput.-Integr. Manuf.
**2007**, 23, 380–394. [Google Scholar] [CrossRef] - Peng, Z.; Ronglei, S.; Xueying, Z.; Lingjin, H. Placement suitability criteria of composite tape for mould surface in automated tape placement. Chin. J. Aeronaut.
**2015**, 28, 1574–1581. [Google Scholar] - Zhang, P.; Sun, R.; Huang, T. A geometric method for computation of geodesic on parametric surfaces. Comput. Aided Geom. Des.
**2015**, 38, 24–37. [Google Scholar] [CrossRef] - Savio, G.; Meneghello, R.; Concheri, G. Geometric modeling of lattice structures for additive manufacturing. Rapid Prototyp. J.
**2018**, 24, 351–360. [Google Scholar] [CrossRef] - Zhang, Q.; Sabin, M.A.; Cirak, F. Subdivision surfaces with isogeometric analysis adapted refinement weights. Comput.-Aided Des.
**2018**, 102, 104–114. [Google Scholar] [CrossRef] [Green Version] - Shinno, N.; Shigemat, T. Method for Controlling Tape Affixing Direction of Automatic Tape Affixing Apparatus. U.S. Patent 5,041,179, 20 August 1991. [Google Scholar]
- Li, L.; Wang, X.; Xu, D.; Tan, M. A Placement Path Planning Algorithm Based on Meshed Triangles for Carbon Fiber Reinforce Composite Component with Revolved Shape. Int. J. Control Syst. Appl.
**2014**, 1, 23–32. [Google Scholar] - Shen, J.; Buse, L.; Alliez, P.; Dodgson, N.A. A line/trimmed NURBS surface intersection algorithm using matrix representations. Comput. Aided Geom. Des.
**2016**, 48, 1–16. [Google Scholar] [CrossRef] [Green Version] - Lo, S.H.; Wang, W.X. An algorithm for the intersection of quadrilateral surfaces by tracing of neighbours. Comput. Methods Appl. Mech. Eng.
**2003**, 192, 2319–2338. [Google Scholar] [CrossRef]

**Figure 4.**Continuous path point generation algorithm. (

**a**) Calculation of next point in single triangle patch. (

**b**) Calculation of all points of one path on the triangular mesh surfaces.

**Figure 5.**Guide-line update algorithm for complex surfaces: (

**a**) Distribution diagram for multi guide-lines. (

**b**) Polygonal section formed by the projection point of the point on the guide-line. (

**c**) Diagram of tangent vector calculation.

**Figure 6.**The paths generated based on single guide line and multi-guide lines for a panel (

**a**,

**b**) and a curved surface (

**c**,

**d**) models.

**Figure 7.**Illustration of the surface for accuracy analysis. (

**a**) Original parametric surface. (

**b**) Triangular mesh surface with D

_{l2s}= 0.2 and L

_{seg}= 100. (

**c**) Surface curvature variation diagram for the path-deviation-error test area.

**Figure 8.**Standard path, verification path generated by the new algorithm, and sample points for D

_{l2s}= 0.4 and L

_{seg}= 100.

**Figure 9.**The distance deviation distribution (N Distance is d

_{N}and T Distance is d

_{T}.) for different parameters (

**a**) D

_{l2s}= 0.2, L

_{seg}= 65, (

**b**) D

_{l2s}= 0.4, L

_{seg}= 110, (

**c**) D

_{l2s}= 0.6, L

_{seg}= 155 and (

**d**) D

_{l2s}= 0.8, L

_{seg}= 200.

**Figure 13.**The angle deviation with different parameters: (

**a**) D

_{l2s}= 0.2, L

_{seg}= 65; (

**b**) D

_{l2s}= 0.4, L

_{seg}= 110; (

**c**) D

_{l2s}= 0.6, L

_{seg}= 155 and (

**d**) D

_{l2s}= 0.8, L

_{seg}= 200.

Class | Contents | Features |
---|---|---|

Vertex | int vIndex; double p [3]; int EdgeIndexList [cur edge index]; int FaceIndexList [cur face index]; | Given the index number of a vertex, one can quickly find the global index of the triangle patch and the global index for the edge, where the current vertex belongs. |

Edge | int eIndex; int VertexIndexList [2]; int FaceIndexList [2]; | Given the number of a side, one can quickly find the global index of the face, where the current edge belongs and the global indices of the two vertices at the current edge. |

Face | int fIndex; doubla n [3];int VertexIndexList [3]; int EdgeIndexList [3]; | Given the number of a triangle patch, one can quickly find the global index and the global index of the three edges of the three vertices on the triangle patch. |

D_{l2s}/mm | L_{seg}/mm | Mean Distance Deviation /mm | Normal Mean Distance Deviation /mm | Geodesic Mean Distance Deviation /mm | Maximum Distance Deviation /mm | Maximum Normal Distance Deviation /mm | Maximum Geodesic Distance Deviation /mm | Generation Time /s |
---|---|---|---|---|---|---|---|---|

0.2 | 20 | 0.41072 | 0.00824 | 0.40834 | 0.81222 | 0.05218 | 0.81219 | 5.506 |

0.2 | 65 | 0.45268 | 0.02694 | 0.4329 | 1.29759 | 0.16468 | 1.29745 | 0.549 |

0.2 | 110 | 0.57411 | 0.02534 | 0.55406 | 1.60354 | 0.16447 | 1.60342 | 0.508 |

0.2 | 155 | 0.57298 | 0.02557 | 0.55294 | 1.60354 | 0.16447 | 1.60342 | 0.508 |

0.2 | 200 | 0.57309 | 0.02547 | 0.55304 | 1.60354 | 0.16447 | 1.60342 | 0.505 |

0.4 | 20 | 0.41072 | 0.00824 | 0.40834 | 0.81222 | 0.05218 | 0.81219 | 5.514 |

0.4 | 65 | 0.54446 | 0.09072 | 0.47922 | 2.12237 | 0.36747 | 2.12172 | 0.296 |

0.4 | 110 | 0.78375 | 0.09412 | 0.71355 | 3.00629 | 0.46252 | 3.00561 | 0.214 |

0.4 | 155 | 0.78403 | 0.09052 | 0.71476 | 2.94274 | 0.46246 | 2.94204 | 0.209 |

0.4 | 200 | 0.78403 | 0.09052 | 0.71476 | 2.94274 | 0.46246 | 2.94204 | 0.213 |

0.6 | 20 | 0.41072 | 0.00824 | 0.40834 | 0.81222 | 0.05218 | 0.81219 | 5.495 |

0.6 | 65 | 0.62143 | 0.1036 | 0.55255 | 2.14027 | 0.55588 | 2.13962 | 0.231 |

0.6 | 110 | 0.65292 | 0.20369 | 0.4915 | 1.62566 | 0.77333 | 1.62391 | 0.142 |

0.6 | 155 | 0.86012 | 0.18893 | 0.69804 | 3.09987 | 0.77349 | 3.0993 | 0.13 |

0.6 | 200 | 0.8602 | 0.18895 | 0.6985 | 3.08182 | 0.77349 | 3.08124 | 0.128 |

0.8 | 20 | 0.41072 | 0.00824 | 0.40834 | 0.81222 | 0.05218 | 0.81219 | 5.499 |

0.8 | 65 | 0.62315 | 0.10188 | 0.55424 | 2.19272 | 0.55588 | 2.19207 | 0.213 |

0.8 | 110 | 0.78546 | 0.20771 | 0.63916 | 1.94612 | 0.84012 | 1.94459 | 0.115 |

0.8 | 155 | 1.18547 | 0.19293 | 1.03511 | 3.91933 | 0.84004 | 3.91922 | 0.098 |

0.8 | 200 | 1.15638 | 0.19065 | 1.00657 | 3.8031 | 0.84004 | 3.80299 | 0.103 |

1 | 20 | 0.41072 | 0.00824 | 0.40834 | 0.81222 | 0.05218 | 0.81219 | 5.491 |

1 | 65 | 0.62147 | 0.10314 | 0.55262 | 2.14027 | 0.55588 | 2.13962 | 0.203 |

1 | 110 | 0.83477 | 0.2216 | 0.68092 | 2.01082 | 1.10312 | 2.00955 | 0.105 |

1 | 155 | 1.33796 | 0.21533 | 1.16792 | 3.97448 | 1.10346 | 3.97407 | 0.082 |

1 | 200 | 1.29659 | 0.20791 | 1.12927 | 3.81894 | 1.10346 | 3.8185 | 0.083 |

D_{l2s}/mm | L_{seg}/mm | Mean Angle Deviation /deg | Mean Square Error /deg ^{2} | Maximum Angle Deviation /deg |
---|---|---|---|---|

0.2 | 20 | 0.10162 | 0.09583 | 0.43632 |

0.2 | 65 | 0.19909 | 0.1562 | 1.019 |

0.2 | 110 | 0.21098 | 0.15039 | 1.01133 |

0.2 | 155 | 0.21159 | 0.15056 | 1.01142 |

0.2 | 200 | 0.21204 | 0.15059 | 1.01141 |

0.4 | 20 | 0.10162 | 0.09583 | 0.43632 |

0.4 | 65 | 0.22812 | 0.16134 | 1.1537 |

0.4 | 110 | 0.27022 | 0.21115 | 1.47317 |

0.4 | 155 | 0.27248 | 0.20807 | 1.47248 |

0.4 | 200 | 0.27248 | 0.20807 | 1.47248 |

0.6 | 20 | 0.10162 | 0.09583 | 0.43632 |

0.6 | 65 | 0.2696 | 0.24432 | 1.47683 |

0.6 | 110 | 0.33184 | 0.27956 | 1.41166 |

0.6 | 155 | 0.36801 | 0.27632 | 1.4119 |

0.6 | 200 | 0.36668 | 0.27738 | 1.4119 |

0.8 | 20 | 0.10162 | 0.09583 | 0.43632 |

0.8 | 65 | 0.27083 | 0.2446 | 1.47683 |

0.8 | 110 | 0.3184 | 0.25209 | 1.50431 |

0.8 | 155 | 0.39048 | 0.25162 | 1.50424 |

0.8 | 200 | 0.38589 | 0.2524 | 1.50424 |

1 | 20 | 0.10162 | 0.09583 | 0.43632 |

1 | 65 | 0.26882 | 0.24516 | 1.47683 |

1 | 110 | 0.33021 | 0.29158 | 2.0499 |

1 | 155 | 0.45625 | 0.32954 | 2.05242 |

1 | 200 | 0.44346 | 0.32784 | 2.05242 |

© 2020 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 (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Xiao, H.; Han, W.; Tang, W.; Duan, Y.
An Efficient and Adaptable Path Planning Algorithm for Automated Fiber Placement Based on Meshing and Multi Guidelines. *Materials* **2020**, *13*, 4209.
https://doi.org/10.3390/ma13184209

**AMA Style**

Xiao H, Han W, Tang W, Duan Y.
An Efficient and Adaptable Path Planning Algorithm for Automated Fiber Placement Based on Meshing and Multi Guidelines. *Materials*. 2020; 13(18):4209.
https://doi.org/10.3390/ma13184209

**Chicago/Turabian Style**

Xiao, Hong, Wei Han, Wenbin Tang, and Yugang Duan.
2020. "An Efficient and Adaptable Path Planning Algorithm for Automated Fiber Placement Based on Meshing and Multi Guidelines" *Materials* 13, no. 18: 4209.
https://doi.org/10.3390/ma13184209