## 6 Path-Following Control Laws While Avoiding Collisions
### Control Laws for Tracking the Voronoi Path \(P_{v}\)  
The idea of the proposed path following is to set the robot's wayPoint at every sample-step \(k\), and make the robot approach the wayPoint utilizing the control in Section 6.1. The robot's wayPoint is set so that it tracks the designated path as the robot follows its wayPoint. One discusses how to set the robot's wayPoint at every sample-step \(k\). One parameterizes the designated path, so that \(V^{1}\) has arc-length \(0\) and \(V^{Q}\) has the longest arc-length. Let \(arc^{p}\) define the arc-length associated with a point, say \(p\), on the path. Let _closestPnt_, say \(C(k)\), define the point on the Voronoi path \(P_{V}\), which is closest to the robot at sample-step \(k\). \(C(k)\) can be measured by the robot, since the robot localizes itself while accessing the Voronoi path \(P_{V}\). The arc-length associated with \(C(k)\) is \(arc^{C(k)}\). One draws a circle centered at \(C(k)\), whose radius is \(s_{max}*dt\). Let _pathCircle_ define this circle for convenience. Since the maximum speed of the robot is \(s_{max}\), the maximum movement distance within one sample interval \(dt\) is the circle radius \(s_{max}*dt\). Suppose that the Voronoi path crosses the pathCircle at distinct points, say \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\). The index order of these points is set, satisfying that \(arc^{p_{1}}\leq arc^{p_{j}}\) where \(l<j\). This implies that \(arc^{p_{1}}\leq arc^{p_{2}}\ldots\leq arc^{p_{end}}\). Thus, \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\) exist along the Voronoi path in this order. In Figure 5, \(p_{1}(k)\) and \(p_{2}(k)\) exist along the Voronoi path in this order. Suppose that the Voronoi path crosses the pathCircle at distinct points, to be defined as \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\) in this order. One then sets \(p_{end}(k)\) as the robot's wayPoint at sample-step \(k\). In Figure 5, \(p_{2}(k)\) is selected as the robot's wayPoint. Then, the robot approaches the wayPoint under the control laws in Section 6.1. At each sample-step \(k\), the robot sets its wayPoint as \(p_{end}(k)\) and sets its velocity vector as (12). Lemma 2 proves that this control makes the robot follow \(P_{V}\). Lemma 2: _Suppose that the Voronoi path crosses the pathCircle at distinct points, to be defined as \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\) in this order. At each sample-step \(k\), the robot sets its wayPoint as \(p_{end}(k)\) and sets its velocity vector as (12). This control makes the robot follow the Voronoi path \(P_{V}\)._  
Proof: Suppose that the Voronoi path crosses the pathCircle at distinct points \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\) in this order. As the robot moves at every sample-step \(k\), its wayPoint is set to \(p_{end}(k)\). \(\mathbf{q}(k)\) is the robot's position at sample-step \(k\). Let \(\mathbf{p}_{end}(k)\in\mathcal{R}^{2}\) denote the 2D position of \(p_{end}(k)\) for convenience. If \(\|\mathbf{q}(k)-\mathbf{p}_{end}(k)\|>s_{max}*dt\), then the robot heads to \(p_{end}(k)\) with speed \(s_{max}\) under (12). If \(\|\mathbf{q}(k)-\mathbf{p}_{end}(k)\|\leq s_{max}*dt\), then the robot heads to \(p_{end}(k)\) with speed \(\frac{\|\mathbf{q}(k)-\mathbf{p}_{end}(k)\|}{dt}\) under (12). In this case, the robot reaches \(p_{end}(k)\) at the next sample-step \(k+1\). The Voronoi path crosses the pathCircle at distinct points, say \(p_{1}(k)\), \(p_{2}(k)\),..., \(p_{end}(k)\), in this order. Under (12), the robot moves towards \(p_{end}(k)\) at each sample-step \(k\). As the robot moves toward \(p_{end}(k)\), it follows the Voronoi path, since \(arc^{p_{1}(k)}\leq arc^{p_{2}(k)}\ldots\leq arc^{p_{end}(k)}\). Once \(V^{Q}\) is inside the pathCircle centered at \(C(k)\), \(V^{Q}\) is selected as the wayPoint. Then, the robot heads towards the wayPoint under (12). Suppose that one has an object which is too close to \(V^{Q}\), and that the robot's wayPoint is set as \(V^{Q}\). In this case, the robot stops moving and it is assumed that the path following is finished.