## 2 Assumptions and Definitions
Let \(dt\) stand for the sampling interval in discrete-time systems. In computer simulations, one utilizes \(v=20\) m/s. Then, \(R_{m}=45\) m is used under [35]. Let \(A_{max,z}\) denote the maximum turn angle within one sampling interval \(dt\), in the vehicle's horizontal plane. Since the simulated vehicle speed is \(v>0\), \(A_{max,z}\) (in radians) is given as  
\[A_{max,z}=\frac{v\times dt}{R_{m}}. \tag{6}\]  
Let \(A_{max,y}\) denote the maximum turn angle within one sampling interval \(dt\), in the vehicle's vertical plane. \(A_{max,y}\) is given as  
\[A_{max,y}=A_{max,z}\times\rho \tag{7}\]  
where \(\rho<1\) is a positive constant. This implies that the vehicle cannot turn a large angle in the vehicle's vertical plane. For computing a 3D path to the destination, \(R\) iteratively spawns simulation nodes in an open space. Let \(n\) denote an arbitrary simulation node. Let \(\mathbf{n}\in\mathcal{R}^{3}\) stand for the 3D global coordinates of simulation node \(n\). Whenever a new simulation node is spawned, we store the node in a list, termed the _simulation node list_, so that all nodes in the list are sorted in the ascending order considering the relative distance to the destination \(\mathbf{D}\). This implies that the first node in the list is the nearest node to \(\mathbf{D}\) and that the last node in the list is the farthest node to \(\mathbf{D}\). Every simulation node \(n\) has spherical sensing coverage with a radius, say \(r_{s}\). Here, \(r_{s}\) is defined as  
\[r_{s}=v\times dt. \tag{8}\]  
Let \(S(n)\) stand for the sphere with radius \(r_{s}\), centered at a simulation node \(n\). Let \(\partial S(n)\) stand for the boundary of \(S(n)\). Using (8), the simulated vehicle at \(n\) can reach \(\partial S(n)\) within one sampling interval \(dt\). An _openSensingBoundary_ of a simulation node \(n\) stands for the set of points on \(\partial S(n)\), such that every point in this set is outside an obstacle. For the path planning of the simulated vehicle, we define the _simulation graph_, say \(G\), as a tuple \(G=(N(G),E(G))\). Here, \(N(G)\) is the node set, and \(E(G)\) is the edge set. Each edge, e.g., \(e\in E(G)\), is directed and has its weight, e.g., \(w(e)>0\). Every node in \(N(G)\) denotes a simulation node. Every edge, say \((n_{1},n_{2})\in E(G)\), implies that \(\|\mathbf{n}_{1}-\mathbf{n}_{2})\|\leq\beta r_{s}\). Here, \(\beta\geq 1\) is a constant. In computer simulations, one utilizes \(\beta=1.1\). \((n_{1},n_{2})\in E(G)\) implies that \(n_{1}\) and \(n_{2}\) are one hop distance from each other. A path from \(n_{1}\) to \(n_{2}\) is a sequence of edges and node, such that the sequence starts from \(n_{1}\) and ends at \(n_{2}\). One searches for a simulated vehicle's path from the start to the destination. The path must be safely traversable by the simulated vehicle, which has the maximum turn angles given as (6) and (7). Suppose that the simulated vehicle's path from the start to the destination contains a simulation node \(n\). Among simulation nodes along the path to reach \(n\), \(parent(n)\) is the simulation node, which is one hop distance from \(n\). Here, \(parent(n)\) is called the _parent_ of \(n\). Every simulation node \(n\) stores its parent as \(parent(n)\). As one accesses the parent of a simulation node on the path iteratively, we can backtrack the path until meeting the start point. Let \(Line(n_{1},n_{2})\) stand for a straight line segment connecting two simulation nodes \(n_{1}\) and \(n_{2}\). \(Line(n_{1},n_{2})\) is safe once the following safety requirement is met: while \(R\) with radius \(r\) tracks along \(Line(n_{1},n_{2})\), \(R\) does not cross an obstacle boundary. This safety requirement can be checked by computing the distance between an obstacle boundary and \(Line(n_{1},n_{2})\). Suppose that the simulated vehicle has been traveling along \(Line(parent(n),n)\).