## 3 Obstacle Avoidance Model by Harmonic Potential Field with Curvature Constraint
### Three Primitive Paths with Curvature Constraint
In the scenario depicted in Figure 7, the maximum curvature of a streamline path is smaller when further from the obstacle, and there are two points with a local maximum curvature in a single path. They lie on the \(y\)-axis and are identified first by a binary search presented in Algorithm 1. Algorithm 1 starts with a point \((0,\,yLow\_{\text{max}})\) with curvature (7) not larger than the maximum  
\[\kappa(0,\,yLow\_{\text{max}})\leq\kappa_{\text{max}} \tag{8}\]  
Figure 6: Sequential obstacle avoidance via sharp turn and low-curvature turn in the situation of different obstacle configurations (**a**) From the space between two obstacles; (**b**) From the same side of both obstacles; (**c**) From farther side. This point \(yLow\_\)max with the largest magnitude \(|yLow\,|\) is identified by increasing the \(y\) coordinate from the upper-most border point (0, \(a\)) of the obstacle centered at (0, 0) with radius \(a\). Then, Algorithm 1 of binary search is used to locate the point \((0,yLow\_\)min) between \((0,\,yLow\_\)max - \(a)\) and \((0,\,yLow\_\)max) with a curvature \(\kappa\) equal to the maximum allowed curvature \(\kappa_{max}\). Then, the streamline path is generated with a velocity \(U\) in (5) by numerical integration initialized with \((0,\,yLow\_\)min). In this way, we can find two streamlines \(S_{1},S_{2}\) with a given maximum curvature with starts at a different location from the current robot position. The streamlines in the region between \(S_{1},S_{2}\) do not comply with the curvature constraints. The modified streamlines obtained by pulling the streamlines \(S_{1},S_{2}\) back to the current robot position are the paths, as shown in Figure 7b. Figure 7: The concept of sharp turn streamline paths to circumvent a circular obstacle with the center placed at the origin in the \(x\)-\(y\) plane. (**a**) Streamline paths with different maximum curvatures. The curvature of the streamline is larger as it is closer to the circle. (**b**) Feasible paths compatible with different curvature constraints are pulled back to graze the obstacle border. * **B**: Continuous-curvature low curvature turn Among the possible streamlines that can pass a given obstacle in front of the mobile robot, a feasible path with a low curvature using Algorithm 1 can be found. This is done by using Algorithm 1 for searching the unique streamline passing \((0,yLow\_max)\) with the largest \(\left\lvert yLow\right\rvert\) satisfying Equation (9). This streamline is called the low curvature turn path. A low-curvature collision-free path is found by Algorithm 1, a lateral displacement vertical to the moving direction (as Figure 8 shows, along \(\pm y\) direction) is used to pull the low curvature streamline path back to the current robot position. Figure 8 shows the concept of the low curvature path. Given an obstacle's radius and the robot's maximum allowed curvature, we can derive three primitive paths which satisfy the curvature constraints as described above. For all three primitive paths, the robot needs to keep a sufficient longitudinal distance with the obstacle to achieve the pursuit of the primitive paths with a stricter curvature constraint, i.e., a lower maximum curvature. In addition, while the maximum curvature constraint decreases, it is more difficult to achieve primitive paths. Excessively restrictive curvature constraint causes no feasible path is found. Moreover, the lateral distance to the obstacle will influence the ability to find a feasible path. Figure 9 demonstrates primitive paths correspond to various initial positions (or relative distance to the obstacle) and curvature constraints. Figure 8: The concept of the low curvature path.