Autonomous Path Planning for Road Vehicles in Narrow Environments: An Efficient Continuous Curvature Approach

. In this paper we introduce a novel method for obtaining good quality paths for autonomous road vehicles (e.g., cars or buses) in narrow environments. There are many traffic situations in urban scenarios where nontrivial maneuvering in narrow places is necessary. Navigating in cluttered parking lots or having to avoid obstacles blocking the way and finding a detour even in narrow streets are challenging, especially if the vehicle has large dimensions like a bus. We present a combined approximation-based approach to solve the path planning problem in such situations. Our approach consists of a global planner which generates a preliminary path consisting of straight and turning-in-place primitives and a local planner which is used to make the preliminary path feasible to car-like vehicles. The approximation methodology is well known in the literature; however, both components proposed in this paper differ from existing similar planning methods. The approximation process with the proposed local planner is proven to be convergent for any preliminary global paths. The resulting path has continuous curvature which renders our method well suited for application on real vehicles. Simulation experiments show that the proposed method outperforms similar approaches in terms of path quality in complicated planning tasks.


Introduction
Looking around in the automotive industry, we can see a great amount of automation and an accelerating pursuit to develop intelligent self-driving vehicles. According to the popularity of the field, research is considerably active in the last decades [1][2][3][4][5]. The navigation task of autonomous robotic vehicles consists of many subproblems, involving sensing, perception and recognition of situations, localization, motion planning, and execution. Amongst these, we treat here the problem of generating appropriate paths for robotic cars in the presence of obstacles. As usual in case of cars, we assume the workspace of interest being a planar surface. From a control theoretic view, the rolling without slipping constraint of wheels induces nonholonomic constraints, which do not prohibit the controllability of a system but cause remarkable difficulties (it is enough to think of parallel parking a car). Although controlling a nonholonomic vehicle is a control theoretic challenge, it is worth incorporating knowledge about the specific system in the path planning task as well. This paper describes a path planning algorithm which is intended to solve navigation problems where the vehicle has to cross narrow or cluttered areas in order to reach the goal. Since cars have a nonzero minimum turning radius, such environments require in many cases nontrivial maneuvering (including more reversals) between narrowing. Our solution is appropriate for the continuous steering car, which means that the finite steering rate is taken into account as well beyond the turning radius. In other words, steering at standstill is avoided by forcing the path to have a continuous curvature profile. This is achieved by using clothoid curves between straight and circular path segments. The proposed algorithm is an approximation-based method consisting of a local and a global planner. The local planner generates feasible paths in the absence of obstacles. The global planner delivers a preliminary collision-free path by omitting the minimum turning radius constraint of the vehicle. It is shown that the proposed local and global planners are appropriate to be applied together and guarantee finding a feasible solution in the presence of obstacles if the planning task is solvable. 2 Journal of Advanced Transportation Moreover, the local paths are designed to be similar to those a human driver would find.
Although different human drivers and passengers prefer different types of paths, we try to summarize the main characteristics of a "human-like" path as follows. Existing optimal planners strive to return the shortest possible solution which results in sharp (mostly maximal curvature) turns and many reversals in most cases. In our opinion optimal length is not as important for a passenger as feeling comfortable. If a path is longer than optimal (to a meaningful extent, of course) but contains less sharp turns and reversals, then we treat it better from the passenger's perspective. Our proposed approach is designed with these preferences in mind: the preliminary global path consists only of straight segments (with in-place turning between them), and the local planner has the task of connecting these segments with smooth and not necessarily maximal curvature turns.
The remaining part of the paper is organized as follows. The next section summarizes related work in path planning for car-like vehicles. Section 3 introduces the main characteristics of the proposed approach and the previous work of the authors in this field. In Section 4 we describe the local planning component (TTS-planner) in detail, in which we discuss the applied path elements, the properties of local paths, and a topological admissible steering method based on these. In Section 5 the global planning tool (RTR-planner) is described which generates the collision-free preliminary path. Finally, simulation examples are presented which confirm the advantageous characteristics of the proposed approach.

Related Work
The path planning task for nonholonomic systems is difficult, caused by the concurrent presence of global geometric (environmental) and local kinematic constraints. For this reason most available approaches decouple the treatment of these in two separate phases of the planning process. Basically we can distinguish between global and local path planning methods, which account for the two subproblems. In some approaches the configuration space of the vehicle is sampled and a graph-based description is used to grasp the topological structure of the environment [6]. For example, the Probabilistic Roadmap Method [7] uses general graphs with an offline sampling; the Rapidly Exploring Random Tree approach [8][9][10] builds one or more trees online to cover the free space. These sampling-based frameworks make use of a vehicle-specific local planner module (also denoted as a steering method), which accounts for connecting two arbitrary configurations of the nonholonomic car. Graph vertices represent configurations, while edges in the graphs correspond to local paths in these approaches. The global admissibility of these is checked by an appropriate collision detector module.
Other approaches are based on the Holonomic Path Approximation Algorithm [11], which recommends planning a preliminary holonomic (kinematically unconstrained) path first and approximating it using a steering method in a second step. In this framework, the holonomic global path is iteratively subdivided and the steering method together with a collision detector is applied to replace the parts. To ensure the convergence of this algorithm, the steering method has to verify the topologically property, which is defined in [12].
Steering nonholonomic systems is a difficult task even in the absence of obstacles. Exact algorithms are not available in general but only for special classes, for example, nilpotentizable [13], chain-formed [14][15][16], and differentially flat systems [17]. Common examples for the above-mentioned system classes include wheeled vehicles with or without trailers. There exist elegant solutions of path planning and control especially for differentially driven and car-like robots [18][19][20][21] and mobile manipulators [22][23][24]. Most of the available work investigates differentially driven robots with one trailer [19] or more trailers [18,20]. The steering methods presented in [19,20] are shown to verify the topological property as well.
Since the kinematics of a car is equivalent to a differentially driven robot towing a trailer hitched on top of the wheel axis, these flatness-based methods were shown to be applicable for cars [21] as well. In these approaches a sufficiently smooth planar curve is planned for the flat output of the system, which is the axle midpoint of the last trailer, or simply the rear axle midpoint in case of a single car. Although the method proposed in [21] is a simple and elegant way of generating local paths for cars with continuous curvature, it does not take into account the upper-bounded curvature constraint (except at the start and end configurations).
An important and widely used family of steering approaches is based on optimal control. For general systems only approximate methods exist [25]. However, exact methods for computing optimal (e.g., shortest length) local paths are available for cars moving only forward (Dubinscar [26]) or both forward and backward (Reeds-Sheppcar [27][28][29][30]). For the Reeds-Shepp-car, it is shown in [27] that for any pair of configurations the shortest path can be chosen from 48 possible sets of paths, each of which consisting of maximum five circular or straight segments and having maximum two cusps. The number of sets was reduced to 46 in [28] and to 26 in [30]. Because these optimal paths consist of linear and circular segments, the resulting curvature profile contains abrupt changes, which can be traversed precisely only when the car is stopped at points where the curvature changes, in order to reorient its wheels. To overcome this limitation, a steering method is introduced in [31] which approximates Reeds-Shepp paths using continuous curvature turns, which contain clothoid curves to connect linear and circular parts. It was shown that although these paths are not optimal, they converge to the optimal Reeds-Shepp paths when the allowed sharpness of the clothoids tends to infinity. Both the Reeds-Shepp planner and its continuous curvature generalization (let us denote it as CCRS planner in the sequel) is proved to be topological admissible.
Other continuous curvature planning approaches fall into the "path smoothing" class, where a sequence of configurations or a preliminary polygonal route is given and the goal is turning it to a smooth curve. These make use of clothoids [32] and higher order polynomial curves [33][34][35], or curves with closed form expressions such as Bézier curves [36,37] or -splines [38]. Unfortunately these are not treating issues such as topological admissibility or convergence guarantees in general planning tasks.
Beyond these approaches, there are specialized algorithms, which were designed to solve a specific planning task, for example, parallel or garage parking. These are not suited to solve more general planning problems in case of arbitrary obstacle distributions. For example, [39,40] use circle segments and straight lines to generate trajectories for car parking. In [40] these are denoted as translation (TM) and rotation movements (RM), and a number of TM-RM-TM combinations are linked together, depending on the maneuvering complexity of the parking task. An exhaustive search is performed in every step; thus the computational complexity increases heavily with the number of necessary maneuvers. The method of Müller et al. [41] proposes solving the parking task by the general two-step path approximation approach, where they use the CCRS local planner [31] and the global planner described in [42]. Although a general framework is applied, they exploit some simplifications and assumptions (e.g., regarding the shape of obstacles and symmetry of their distribution) in order to make computations tractable for real-time applications.
A recent publication [43] introduces a planning approach which generalizes a parking planner to handle more difficult obstacle distributions, for example, navigation in a narrow parking lot containing some additional obstacles. It is shown that the algorithm can be applied in real time thanks to the fast optimization strategy it is based on. However, completeness or guaranteed convergence is not proven.

The RTR + TTS-Planner
Many of the mentioned planning methods were seminal for the development of our approach presented in this paper. Our goal was to design an algorithm with the following properties: (i) It should solve the general planning task; that is, no assumptions are made regarding the obstacle distribution or the starting and goal configurations of the vehicle. At the same time, it should perform well also in the specialized parking situations.
(ii) The resulting paths should have continuous curvature profile.
(iii) The aim is to generate "human-like" paths, which are simple and contain a "meaningful" number of maneuvers needed by the task at hand.
We chose the following methodology during the design of this planning method. A two-step approximation approach similar to [11,41] was chosen; however, our global planner already takes some nonholonomic properties of the vehicle into account. The main contributions of this paper are the introduction of our novel topological admissible continuous curvature local planning method (TTS-planner) which facilitates the construction of "human-like" paths, as well as the detailed description of the global RTR-planner. This paper extends our previous work [45] giving a thorough theoretical treatment, detailed derivation, and proofs regarding the local planning method, as well as a more detailed description of the global planner.
Previous versions of the proposed two-step planning approach can be found in [46][47][48][49], where the local planner used only straight and circular segments, resulting in a discontinuous curvature profile. The currently proposed generalized version uses clothoids as well (similarly to [31]). In the derivation we rely on the results of Wilde [50] regarding the parametrization of clothoids. Our approach is mostly comparable to the CCRS planner [31] or the two-step planning method [41] based on it, because they have similar theoretical properties. However, the simulation examples in Section 6 show that our local planner generates better quality paths and has a higher success rate in narrow environments than a CCRS-based approach.
In the sequel we introduce the local TTS-planner first, by deriving it from the kinematic properties of the car and choosing path primitives with clothoids as building blocks. The global RTR-planner is introduced after that where we explain the reason of using only straight movement and in-place turning primitives in the preliminary planning phase.

Local Planning: The TTS-Planner
Before going into details of the local path planning method, we give mathematical definitions of the solvable problem. First the vehicle model is introduced, followed by basic properties of the feasible paths, which will serve as a basis for choosing the geometric building elements of the local planner module.

Vehicle
Model. The geometrical model of a car can be seen in Figure 1. In this approach we use the one-track (or bicycle) motion model of a continuous steering kinematic car [41]: where and are the position coordinates of the back axle midpoint (treated as the reference point of the model), is the orientation of the car, denotes the steering angle, and is the distance of the front and rear wheel axles. The signed velocity of the reference point is V (positive means forward motion), and Ω stands for the steering rate. The absolute values of the steering angle and its rate of change are limited to The instantaneous turning radius (the reciprocal of the path curvature ) is given by The steering angle limit implies an upper bound on the path curvature The more widespread form of the motion equation is the following [51]: where denotes the curvature change rate. The vector = ( , , , ) is called the configuration (or state) of the vehicle and = (V, ) is the input vector of the system. The connection between (1) and (5) is given by An upper bound on the curvature change rate can be expressed as

Feasible Paths.
To elaborate the properties of feasible local paths of our car model, let the translational velocity of the car be written as V = |V|, where |V| stands for the magnitude of the velocity and represents the local direction of motion: Furthermore, let us introduce the translational displacement of the car along its path and express the translational velocity as Using (10) and the chain rule of differentiation, we reformulate the motion equation (5)  ] .
We can establish the following properties of these paths for our car model: (i) The orientation at is constrained by the local displacements along the -and -axes and by the motion direction . The path curvature is given by the first (spatial) derivative of and the motion direction. Thus every feasible path can be fully described by a planar curve labeled by the motion direction at every point. This fact actually arises from the differential flatness property of the car with the rear axle midpoint position as flat output [17,21].
(ii) The sharpness of the path is the second derivative of (the spatial change rate of the curvature along the path) and determines the maximal allowed velocity at every point on the path: Journal of Advanced Transportation 5 If a nonzero minimal traveling speed V min is required, then the sharpness has an upper bound: In other words, if we would like to obtain a path which can be followed by the continuous steering car (1) and we allow the car to stop only if the motion direction is reversed, then the path should be a planar curve with (i) bounded curvature and (ii) bounded sharpness (continuous curvature).
In Sections 4.3, 4.4, and 4.5 we are about to present specific paths fulfilling these requirements and the local path planner for generating such paths.

Path Elements.
Our aim is to choose geometric primitives which can serve as building elements in the process of path construction. We assume that the motion direction is the same along a primitive, but it can change between the primitives (which means a cusp in the path). The most simple planar curves with bounded curvature are straight lines ( = 0, called segments in the sequel) and curvature-limited circular arcs (| ( )| = const ≤ max , called segments). Paths constructed by these primitives have piecewise constant curvature with abrupt curvature changes (i.e., infinite sharpness) between the pieces. To obtain continuous curvature, we are about to use clothoids, which are the most simple parametric curves with changing curvature and bounded sharpness.

Clothoids. A clothoid is a curve with constant sharpness
According to (13), the equations describing a clothoid path can be obtained by integration. If we assume that (0) = 0, we get where sgn( ) denotes the sign of and and stand for the Fresnel cosine and sine integrals:  The absolute curvature grows if the vehicle is entering a turn (called in-type clothoid) and vanishes if it returns to a straight segment (out-type clothoid).
Equations (17a) and (17b) describe in-type clothoids parametrized by the constants , and the running variable ∈ [0, CC ], starting from in (0) = 0 and arriving at some in ( CC ), where CC denotes the whole curve length. From every in-type clothoid we can derive an out-type counterpart by preserving the same geometry but reversing the motion direction: Note that these out-type clothoids start from some out (0) = in ( CC ) and arrive at out ( CC ) = 0. The eight different types of clothoids are illustrated in Figure 2.
Note that we deal here only with such clothoid path segments which have either their starting or their final configuration at the origin with zero orientation and curvature ( (0) = 0 for in-type and ( CC ) = 0 for out-type clothoids). However, this causes no serious limitations. On the one hand, any = ( , , , 0) can be transformed to = (0, 0, 0, 0) by translation and rotation. On the other hand, (0) = 0 or ( CC ) = 0 means that our final concatenated paths can consist of segments, CC in --CC out triplets, and CC in -CC out pairs. Practically, the only limitation is that transitions between two segments of different curvatures are allowed only with a curvature profile crossing or touching zero, that is, by a -CC out -CC in -sequence. As we will see later, this does not prohibit the creation of a complete path planner.
From now on, according to the nomenclature of [31], we will denote CC in --CC out triplets as CC-turns or segments, and CC in -CC out pairs as elementary paths or segments. Note that an elementary path is a special case of a CC-turn.

Reparametrization of Clothoids.
By looking at (17a) and (17b), we can state that any point on an in-type clothoid starting from (0) = 0 can be described by the pair ( , ), the sharpness and the signed displacement along the curve. It was shown by Wilde [50] that an equivalent representation is available using the pair ( , ), the curvature and the deflection of the curve at a certain point: As it can be seen, appears only as a multiplier in the expressions; thus it can be interpreted as a scaling factor. In this representation is responsible for the "shape" of the clothoid segment, and determines its "size." From a computational perspective, this ( , ) parametrization is less convenient than the parametrization by ( , ). The reason is that and are constant values and only is variable along the path segment; thus the curve is described by some fixed parameters and exactly one free parameter, as usual. This makes the explicit computation of these curves simple, for example, for visualization or collision checking. Opposed to this, both and are varying along the curve, and coherency has to be maintained between them to obtain proper results. The coherency is ensured by the constant sharpness, which is related to and as For simplicity, let us choose fixed curvature and deflection values CC and CC at the endpoint of curve. This is the point with maximal absolute curvature and deflection: Based on (20a), (20b), (22a), and (22b), in-type clothoids can be fully described by where ∈ [0, CC ] is the variable parameter and CC and CC are constant values. A shorter form for in ( ) and in ( ) can be obtained by defining the following functions: Using these, (23a), (23b), (23c), and (23d) will look like Note that if we look at the endpoint, (2 CC ) and (2 CC ) can be treated as the end position of and "unscaled" in-type clothoid of CC full deflection. The "scaling factor" 1/ CC can be used to obtain the real endpoint coordinates in ( CC ) and in ( CC ). Now, let us consider a pair of in-type and out-type clothoids having the same geometry (such pairs were shown in Figure 2, e.g., CC in and CC out ). In order to ensure the above-mentioned coherency between CC and CC , we define them according to (22a) and (22b) for out-type clothoids as well. However, in this case CC belongs to the starting point, while CC to the endpoint of the curve. Since an outtype clothoid has the same geometry as its in-type pair but opposite motion direction, we can obtain its equation as Journal of Advanced Transportation

Elementary Paths and CC-Turns.
As already mentioned, elementary paths ( segments) are symmetric curves, consisting of a pair of compatible CC in and CC out clothoids. The curvature of the first curve changes from 0 to CC , while the second from CC back to 0. Both curves have the same deflection CC . Compatibility is assured by the same motion direction and the same curvature CC at the end of the in-type part and at the beginning of the out-type part. The compatible pairs are (i) CC in and CC out , (ii) CC in and CC out , (iii) CC in and CC out , (iv) CC in and CC out .
A CC-turn consists of a pair of compatible CC in and CC out curves, with an additional circular arc between them, which has = CC curvature and deflection. As mentioned before, an elementary path is a special case of a CC-turn with = 0 (see Figure 3). Let us characterize these path components. They can be described by a parametric configuration curve ( ) = ( ( ), ( ), ( ), ( )) with ∈ [0, end ]. The curve is fully determined by the following parameters: (i) A starting configuration (0) = = ( , , , 0).
(ii) The maximal curvature CC (in an absolute sense: (iii) Deflections of the clothoid ( CC ) and circular ( ) parts.
The starting and end configurations of these parts have to be aligned in order to obtain the resulting elementary path or CC-turn. The alignment is performed by rotation and translation, described by homogeneous transformation matrices. Let us assign a transformation matrix to any configuration 0 as follows: This transformation matrix represents the pose of the local coordinate frame attached to 0 . The transformation of 8 Journal of Advanced Transportation another configuration by ( 0 ) can be performed as usual: This means that we interpret the coordinates of as local, relative to 0 . Multiplying by ( 0 ) we get , which represents the global coordinates of the transformed . Notice that the transformation does not affect the curvature part of the configuration. It follows that the original configuration 0 can be obtained by applying the transformation ( 0 ) to = (0, 0, 0, 0 ): ) .
The inverse transformation is given by These transformation matrices have the following chaining property: where the upper " " index stands for the homogenous coordinate representation = [ , 1] . Now, we have all the tools to assemble CC-turns and elementary paths. A general description of these is obtained as follows: (34b) where stands for a given arbitrary starting configuration with zero curvature and in ( ) and out ( ) are given by (23a), (23b), (23c), (23d), (27a), (27b), (27c), and (27d), respectively. This can be treated as a "direct" approach for generating a CC-turn or elementary path. One specifies the starting configuration , the maximal curvature CC , and the deflections CC and , and the end configuration = (2 CC + ) is obtained directly using (34a), (34b), and (34c). Without loss of generality we can assume that = (0, 0, 0, 0). In this case we get because the endpoint of a standard out-type clothoid is the origin, according to (27a), (27b), (27c), and (27d). The components of have the following form: ] .
In order to obtain −1 ( out (0)), we express out (0) first: Journal of Advanced Transportation 9 and it follows from (32) that After multiplying the three matrices we get where The end configuration of the CC-turn is given by the elements in the last column of ( ): It is important to note that, in order to fully define a CC-turn, two of the deflections CC , , and end should be given, together with the maximal curvature CC . The third deflection parameter is determined by (42).

TTS Paths for Local Planning.
Algorithms that generate feasible local paths for a wheeled system-such as our car model (5)-in the absence of obstacles are called local planners or steering methods. The exact definition of these is the following.
Definition 1 (steering method). Let us denote by Λ the set of all feasible local paths regarding system equatioṅ= ( , ). A steering method (or local planner module) is a function As already mentioned in Section 2, the most widely used local planners for the simple kinematic car model (without the requirement of curvature continuity) are based on the optimal length Reeds-Shepp (RS) paths [27]. These local paths consist of maximum five circular or straight segments and have at most two cusps, where the curvature of circular arcs is exactly ± max . If the continuous steering car model (5) is used, the continuous curvature generalization proposed in [31] can be applied. This approximates Reeds-Shepp paths by replacing circular segments with CC-turns. It was shown that although the resulting CCRS paths are not optimal, they converge to the optimal RS paths when the allowed sharpness of the clothoids tends to infinity. The CC-turns in this approach consist of clothoids having the maximal allowed sharpness and circle segments of maximal curvature.
In the sequel we are doing something similar: introduce a new set of local paths for the continuous steering car. The main ideas which motivated the invention of our approach instead using the CCRS paths are the following: (i) The main goal is global planning in the presence of obstacles. Most existing planning methods use a concatenation of local paths, which has the consequence that the result will be not optimal, even if the parts were generated by an optimal planner. Even the CCRS paths are suboptimal. Thus, having the final application in our mind, we lifted the requirement of optimality of our local paths. (ii) Instead minimizing the global path length, we had the goal to achieve "natural" or "human-like" paths. What this means is informally described in the following points. (iii) The RS (resp., CCRS) paths consist of up to five circular (resp., CC-turn) and straight segments. We show in the sequel that three path segments are sufficient to connect any two configurations. (iv) The RS (resp., CCRS) paths use circular segments (resp., CC-turns) having the maximal allowed curvature (the steering wheel is turned to the end position in every curve). Our planner is not restricted to this. Only the limit is taken into account, but smaller curvatures are allowed. (v) The last segment of RS (resp., CCRS) paths is always circular (resp., CC-turn). We argue that this contradicts the behavior of human drivers. Because the car can only move forward or backward, in most cases the more natural behavior is to arrive at a given goal configuration by a straight movement. There are a few exceptions, for example, the case of parallel parking, but these can usually be transformed to the mentioned case by reversing the roles of initial and goal configurations. Consequently, we choose a straight segment as the last section of our local paths.
To simplify notation in the sequel, we will denote local paths as a concatenation of , , and letters, corresponding straight segments, CC-turns, and elementary paths, respectively. In our approach we use (as well as ) paths (note that in our previous work [45] we used the notations * and * where * and * represented "CC-turn or straight segment" and "elementary path or straight segment," although we omit here the possibility of having a straight segment as the first element because our experiments showed that and paths are chosen very rarely by the implemented planning algorithm). In the sequel we present the construction of paths first (where we use only elementary paths in place of CC-turns) and show that this class of paths is sufficient to connect an arbitrary pair of configurations. After that we generalize segments to CCturns.

Construction of EES Paths.
Let us assume without loss of generality that the path starts from a given initial configuration = ( , , , 0) and arrives at the origin as goal configuration = (0, 0, 0, 0). Any query pair ( , ) can be transformed to this form by translation and rotation, and the designed path can be transformed back. Let us denote the intermediate configurations between the path segments bỹand̃. For every segment, denotes its index (1, 2 or 3) inside the path. A straight segment is parametrized by its absolute length and direction and an elementary path segment by its curvature ,CC and deflection ,CC at the middle point between the CC in and CC out parts. To simplify the notation, let us neglect the "CC" subscript from now on: let = ,CC and = ,CC . The scheme of an path (illustrated in Figure 4) is the following: The coordinates of̃can be obtained from by a transformation belonging to the first elementary path where and write (53a), (53b), (53c), and (53d) in a shorter form: Alternatively, we can get̃from̃= (̃, 0, 0, 0) by "traveling backward" along the elementary path. This corresponds to a normal segment with inverse deflection. We can obtaiñthis way by applying the transformatioñ where ( (− 2 , 2 )) is the same as (41) with parameters CC = − 2 and = 0: and (̃) looks like ] .
The result of the transformation is By comparing (55a), (55b), (55c), (55d), (59a), (59b), (59c), and (59d) we can conclude that the path parameters 1 , 1 , 2 , 2 , and̃= − 3 3 of an path fulfill the following constraints: One can conclude that in an planning problem only one path segment can be parametrized freely; the others are determined. In the sequel we will use 1 and 1 as free parameters.
Let us pay some attention to the ranges of angle parameters in the above equations. The orientation parameter is treated as being in the interval [− , ]/∼, where "/∼" means that the two boundary values are identified. Similarly to the geometric derivation of CC-turns, we introduce an upper bound | end, | ≤ on the whole deflection of both elementary paths, which results in ∈ [− /2, /2]. In order to ensure that 1 , 2 , and being in the given intervals fulfill the constraint (60c), we have to choose the set carefully from which 1 and 2 can be taken. Let us examine two cases: These choices ensure both 1 and 2 being in [− /2, /2] for any values of . We can write these conditions in a single compact form: where sgn (⋅) is a special sign function with sgn (0) = 1: An illustration of this set can be seen in Figure 5.
Up to now we have not taken the curvature bound into account. It can be proven that an arbitrary configuration pair can be connected by an path even if an upper bound on the absolute curvature is given. The following Lemma states this fact; the proof is elaborated in Appendix A. Furthermore, it turns out that infinitely many solutions can be found even with bounded curvature, due to the infinitely many choices of 1 and 1 parameters. This means that̃can be chosen in infinitely many ways, as illustrated in Figure 6.

From EES to TTS Paths.
As we have already seen in Section 4.3.4, elementary paths are special CC-turns with = 0. It follows that the results for elementary paths used in planning can be generalized to CC-turns as well. The equations of an elementary path starting from anyã nd arriving at the -axis-the middle segment of an path-are given by (59a), (59b), (59c), and (59d). This can easily be generalized to the case when the deflection of the circular part is nonzero: where 2,CC and 2, stand for the deflections of the clothoid and the circular parts, respectively. The full deflection of the CC-turn is Let us introduce the relative amount of the circular part of a CC-turn as Using this, we can express (65b) as The maximal curvature and the sharpness of the CC-turn are given by Note that if we fix the full deflection 2,end and change the ratio ,2 only, then for a giveñthe end configurationõ n the -axis remains the same; only 2 and 2 are affected. In other words, we can tune the shape of a CC-turn with without affecting the starting and final configurations. This is illustrated in Figure 7, where clothoids are drawn with solid black lines and the red dashed arcs represent circular segments.
When grows, the curvature is decreasing but the sharpness is increasing at the same time, independently from the full deflection of the path segment. This property can be examined in Figure 8, which shows surface and contour plots of the (absolute) curvature and sharpness of a CC-turn (with = 1), depending on the full deflection and the relative amount of the circular part.
It follows that if we already have obtained an segment between any two configurations, we can reshape it to a CC-turn having smaller curvature and higher sharpness by tuning the parameter. With this, we can define a maximal sharpness max beyond the already treated max constraint. If the sharpness of the initial segment is less than max , then there exists an value such that | | = max . This is beneficial because the length of the path segment is decreasing, as can be seen in Figure 7.
If we have an path, we can do this reshaping for every segment to obtain a path. However, if any of the segments violates the max constraint, then it is not so straightforward. Fortunately it can be shown that a solution obeying the max constraint exists in all cases. If the second segment in the solution violates the sharpness constraint, we can write using (59c) and (69b) and (A.3) in Appendix A: where max is the minimal value of the curvature upper bound ensuring that the second elementary path will have | | ≤ max . If we would like to obtain a path from an solution, then by recalling (55b) and (A.6) in Appendix A we can state that 1 can be decreased arbitrarily in order to fulfill condition (71) for the second segment and the maximal sharpness constraint for the first segment at the same time.
The only drawback of using paths instead solutions is that the sharpness tuning requires an iterative search of in the interval [0, 1]. This cannot be avoided, because is in the argument of the (⋅, ⋅) function in (69a) and (69b), which does not have an inverse because of the contained Fresnel integrals.

A Steering Method Based on EES Paths.
A path planner based on the conditions in proof of Lemma 2 and their generalization in Section 4.4.2 is not a steering method itself (in the sense of Definition 1), because it delivers not only one solution for a query pair. Instead of this, it delivers a parametrized class of solutions, which contains an infinite number of (and ) paths from to , fulfilling the maximum curvature (and sharpness) constraint. This property is useful in global planning problems (i.e., in the presence of obstacles), because one can more likely find a collision-free path from a solution class than from the one and only solution of an exact local planner.
This does not mean that in the presence of obstacles the existence of any collision-free (local) solution would be guaranteed. For successful global planning explicit reasoning about free space connectivity is necessary. As mentioned in Section 3, we apply the framework of the Holonomic Path Approximation Algorithm [11] for this purpose. A distinct global planner delivers a preliminary geometric path, which is iteratively subdivided and approximated by an appropriate steering method. To ensure the convergence of this algorithm, the local planner has to generate such paths that get closer to the original path as the local endpoints get closer to each other. This is called the topological property [12] which is formulated more precisely in Appendix B.
Therefore, if a collision-free geometric path is given and we have an appropriate steering method that verifies the topological property, then a complete (completeness means that the algorithm does not fail to return a solution if the problem is solvable) approximation algorithm can be constructed (which was a footnote in the manuscript). Hence, in order to design such a complete algorithm based on paths, we need a steering method which returns exactly one from the class of paths and verifies the topological property.

Definition of
Paths. In the sequel we take only paths into account for the purpose of designing the exact steering method. This choice will make possible proving the topological property, because paths have closed form expressions. In contrast to that, paths with a given sharpness can only be obtained by iterative deriving from solutions, as seen in Section 4.4.2.
More possibilities can be found to restrict the class of paths to exactly one specific solution for every query pair ( , ). For example, we may choose the sign of 2 and the equality in condition (A.4) in Appendix A and fix 1 to any chosen value except 0 and − ± . In this case the remaining parameter 1 is determined unequivocally. This would result in an path with | 2 | = max and having the intermediate orientatioñ= + 2 1 at the end of the first segment. This approach has the problem that it is hard to formulate any reasonable direct rule for choosing introduce the following approach. Let us choose 1 = − 2 such that | 1 | = | 2 | is maximal. In this case we do not have to specify any other parameters. The resulting path has two segments with same maximal absolute curvature, but having opposite signs (the steering wheel is turned from right to left or reversely). This type of paths is denoted as paths in the sequel to emphasize that the resulting turning radii (reciprocal of the curvature) are opposite, equal, and minimal. The planning problem is formulated as follows: such that = ( , , , 0) , Using (74) we can reformulate (60a), (60b), and (60c) as The necessary and sufficient condition for existence of this kind of paths is obtained by (75) and (77b): In the sequel we use some properties of the (⋅, ⋅) function, which are established in Appendix C.
Proof. According to Properties C.6 and C.7 of the function we can state that for all there exist 1 values for both (2 1 , ) ̸ = 0 and (2 1 , ) = 0. Since is a continuous function, this means that, for all , | (2 1 , )| can take an arbitrarily small value.

The
Steering Method. Based on the existence condition (78) and the optimization criterion (76) we can construct a steering method which generates a single path for any local planning query. We denote it as the -planner.
We have proven that the above defined steering method verifies the topological property which renders it suitable for application in any approximation-based planning approach. The topological property theoretically guarantees convergence of the approximation process in any cases. This advantageous fact is stated by Theorem B.2 in Appendix B and the proof is given there in detail as well.

Implementation
Issues. It turns out by numerical examination of (2 1 , ) that for any there is exactly one 1, and * 1 value; hence 1,max must be unique as well. Figure 9 shows a contour plot of the | | function, where the thick red lines show the zeros and the thick black lines the maxima of | |. It can be seen that for every there is another zerô1 , outside the interval [− /2, 0], but 1, inside the interval is unique.
Unfortunately there are no closed form expressions for calculating 1, , * 1 , and 1,max values, because contains Fresnel integrals with 1 in the argument. Thus a numerical evaluation is needed which can be done by approximating the Fresnel integrals, for example, by using precalculated lookup tables for ( ) and ( ). It is important to note that no twodimensional lookup table for is needed because we can decompose it to one-dimensional factors and terms of ( ), ( ) and trigonometric functions.

Remarks on Bounded
Sharpness. In the above described local planner we payed attention only to the upper bound of the curvature. One could argue that the sharpness should have an upper bound as well to achieve paths which can be traversed by a given minimal velocity. Indeed, as already seen in (15), when a minimal traveling speed is required, then the sharpness of the path should have a given upper bound. The segments in the or have a sharpness of = 2 CC /2 CC , which has the worst-case value = 2 max /2 CC . It follows that the sharpness is unbounded if CC approaches zero, and we can only state that it is less than infinity, because CC = 0 means no motion. Hence the curvature is continuous and the maximal allowed speed is greater than zero everywhere.
Let us determine the traveling time along an segment in case of | CC | = max . For this purpose we can use the velocity constraint (14) along the path and the following identities related to the , , , and parameters of a clothoid [50]: (86) Based on these we obtain the length of an segment (twice as long as a clothoid), the maximal allowed absolute velocity and the minimal travel time along the segment: It turns out that the traveling time along such an segment is finite and lower bounded by 2 max / max , independently from CC . Thus we can state that the car can go along the planned path in finite time if the number of path segments is finite.

The TTS Planning Algorithm.
At the end of this section, let us summarize how we can use paths and the steering method in an approximation framework for the purpose of generating collision-free local paths in the presence of obstacles. A mixed algorithm was implemented, which consists of two parts: the first building block is a sampling-based method relying on general paths; the second one is the exact steering method, as described in Section 4.5.2. We will denote this mixed algorithm as the TTS-planner in the sequel. It takes a number of samples from the set of paths connecting and and fulfilling the maximal curvature and sharpness constraints. Additionally, it computes the unique solution between and as well. From the resulting local path candidates the colliding ones are excluded and the shortest is returned from the remaining set. If every candidate is in collision, then the TTS-planner tries to find new candidates by switching the roles of initial and goal configurations. When no collision-free local path candidate could be found, the TTS-planner reports failure, and the approximation algorithm proceeds with subdividing the global path. The reason of using this mixed local planner approach is twofold. At one hand the -planner part guarantees convergence of the approximation process, according to its topological property. On the other hand, the sampling part gives a good chance of generating good quality paths by reducing the number of necessary subdivision steps during approximation. In fact, the use of steering method alone would be sufficient to ensure convergence, but the sampling part gives a number of alternatives which contribute to path quality and are beneficial when the solution collides.

Global Planning: The RTR-Planner
In Section 4.4 we argued that "human-like" driving prefers moving along straight path segments. We designed the TTSplanner with this assumption in mind; indeed it tries to find a local path which arrives at the straight line defined by (or ). In order to obtain an effective approximation-based planning solution, we need a global planner which facilitates the local planning phase. Thus a preliminary global path is required which is not necessarily feasible for the car, but can be approximated easily with the TTS-planner.
For this purpose we decided not to use any general holonomic planning algorithm; however the topological property of our local planner ensures approximation convergence for any collision-free paths. Instead of this, we looked for a preliminary path which is "almost" feasible for the car. The solution has been found by omitting the minimum turning radius and designing a global planner which uses only straight motion and turning-in-place primitives. The resulting paths are directly applicable for differential drive robots, which have similar motion model as cars except the turning radius constraint. The planning method is based on the Rapidly Exploring Random Trees (RRT) approach [8][9][10] which is known for its fast convergence properties even in high dimensional configuration spaces and widely used in path planning applications.
Let us first summarize the basic RRT planning process and after that we derive our RTR (rotate-translate-rotate) approach.

Rapidly Exploring Random Trees.
The basic RRT construction process can be seen in Algorithm 1. The building of the tree T starts from the initial configuration. RandomCon- fig() returns a random configuration rand from the configuration space C (sampling step). NearestNeighbor() determines the nearest configuration near in the tree, according to a metric defined on the configuration space (vertex selection step). It depends on the implementation if this function can return only graph vertices or inner configurations of edges as well. Connect() tries to connect near to rand by simply interpolating between them (tree extension step). It extends near until it is connected to rand or a collision is detected. In the latter case new will be the farthest collisionfree configuration towards rand . In order to reach the goal configuration, the random sampling can be biased to include goal sometimes in the random sequence, or a bidirectional search [10] can be performed by growing two trees from both the initial and goal configurations.
The RRT method can be inherently applied to nonholonomic systems. Instead of a simple interpolation towards rand (which assumes free mobility in any directions) a system-specific local planner should be applied in the Connect() step. The original RRT version proposed in [8] recommended choosing an input and applying for a given time quantum Δ to obtain a Δ which brings near closer to rand . This was augmented in [9] for such systems where an explicit local planning (steering) method is available to connect two configurations. Actually we build our approach on this RRT-Connect version.
For our purpose (i.e., for differential drive) the simplest steering method is the following sequence of straight motion and turning-in-place primitives: (1) turn to head the next position, (2) move straight until it is reached, and (3) turn to the desired orientation. If a collision occurs during this motion sequence, the extension is stopped at the last collision-free configuration. This simple method has the advantage that it delivers an exact solution between two configurations (no sampling of the input set is needed). Furthermore the tree edges will be straight thus making the nearest neighbor search easy, even if inner configurations of edges are involved in the search. This latter property helps to keep the number of tree vertices as low as possible, although we experienced that a naive application of this rotate-translate-rotate steering method together with RRT has poor performance if narrow areas have to be crossed in order to obtain a result. The reason is that in narrow places the collision will occur most likely during the first rotation primitive; hence no translation, that is, no effective extension of the tree will be achieved. An example scenario with a narrow passage is depicted in Figure 10, with illustrative results of RRT and the below described RTR planners. Both algorithms have been run 100 times; in every run maximum 1000 iterations were allowed. We found that RRT had only 25% success rate and 882.5 iterations on average, while RTR was successful in every trial with averagely 65.4 iterations (see Table 1). We describe the operation of RTR-planner in the sequel.

RT-Trees and Primitives.
RTR-planner is similar to a bidirectional RRT-Connect algorithm; however, it has differences in the sampling, the vertex selection, and the extension steps as well. It uses translation (T) and rotation (R) primitives for building the trees. In the extension steps, only RT (rotatetranslate) sequences are used instead of the exact rotatetranslate-rotate steering method. For this reason, we denote the constructed trees as RT-trees. The vertices of the trees are configurations as usual and the edges are continua of configurations. According to T and R motion primitives, these are called Translational Configuration Intervals (TCIs) and Rotational Configuration Intervals (RCIs). The process of an RT-tree construction can be seen in Algorithm 2 and is detailed in the sequel.

5.2.1.
Sampling. The first difference to RRT can be found in the sampling step. RandomPos() returns a random position without orientation, denoted as the guiding position in the sequel, instead of a configuration. It can be treated as ← T. Extend( near , ) (8) if then (9) T. Extend( near , − ) (10) end if (11) end for (12) return T (13) end function (14) ← TCIExtend ( , "backward") a one-dimensional continuous set of configurations, from which any element can serve as local goal in the tree extension step.

Vertex Selection.
T.NearestNeighbor() returns the configuration in the existing tree which has the smallest position distance to . This step uses a simple Euclidean metric; hence no special configuration space metrics are needed.

Extension.
The main difference to the RRT method can be found in the tree extension step. On the one hand, translation is always performed in both forward and backward directions. Additionally, the translation is not stopped when is reached, but continued until the first collision in both directions (this is the functionality of TCIExtend(), called by both T.Init() and T.Extend() functions). On the other hand, an important difference is the fact that an R-T sequence will always be planned, even if a collision occurs in the rotation phase. The RTR-planner balances between reaching guiding positions and extending the tree. If p G Figure 11: Illustration of the tree extension procedure if the direction to is blocked. cannot be reached due to a collision, then two things can be done: (1) If the collision occurred during the T primitive, then the iteration is finished (because the tree has been extended). (2) If the collision occurred during the R primitive, then TCI EXTEND is performed in both forward and backward directions at the colliding orientation (first extension), and the rotation is tried again in the other turning direction as well. After the second rotation, independently from its success or collision, TCI EXTEND is called again (second extension). An example of this procedure can be seen in Figure 11.
This extension strategy causes a more aggressive free space exploration than in case of the basic RRT method.

Connecting RT-Trees.
As the RTR-planner builds two RT-trees-from both the initial and goal configurations-in order to obtain a final path, the two trees have to be connected. This is attempted in every iteration. The newly added TCIs are checked against every TCI in the other tree, starting from its root. If an intersection is found and if a collision-free RCI can be put between the intersecting TCIs to connect them, then the two trees can be merged and the path determined easily by tracing the trees back to their roots.

Simulation Results
The RTR + TTS planning algorithm was tested extensively in simulations and compared to other similar approaches in terms of effectiveness and path quality. To two other algorithms were investigated: (i) RRT-Connect (CCRS). Bidirectional RRT using the CCRS steering method as local planner (direct onestep approach, no approximation needed). (ii) RTR + CCRS. The RTR-planner is used for generating a preliminary global path, followed by an approximation phase using CCRS paths.
The following scenarios have been used for testing: (i) A wide environment with few obstacles (can be treated as an easy planning task, see Figure 12). (ii) A simple parallel parking scenario (a well known problem for path planning algorithms, see Figure 13).
(iii) Driving through a narrow corridor and parking next to the wall (can be treated as a difficult planning task, see Figure 14).
(iv) Crossing three perpendicular narrow corridors with bigger free areas at the corners (can be treated as a very difficult planning task, see Figure 15).
The simulated car is 4 m long and 2 m wide with 4.42 m minimal turning radius.
To obtain practical results, we constrained the maximum iteration count of the tree building process to 10000 in every algorithm and applied a lower bound of path subdivision at the approximation phase. Every algorithm has been run 100 times in every scenario, and the average results are shown in Figure 16. The performance and path quality is measured by the following metrics: (i) Success Ratio. Percentage of successful runs. Numerical results are listed in Figure 16, while illustrative examples can be examined in  As expected, the "easy" path planning task in wide environment can be flawlessly solved by all selected algorithm combinations ( Figure 12). The path quality measures are similar (first column in Figure 16); however the proposed RTR + TTS-planner combination results in the most comfortable and human-like paths with respect to steering amount and travel time.
Similarly, the parallel parking task is solvable as well by every tested algorithm ( Figure 13). The TTS-based local planner obtains the highest quality paths. This is not surprising because the most "natural" parallel parking maneuver is a path itself. The reason for obtaining more complicated paths with CCRS-based methods is that the CCRS planner does not have the "natural" solution amongst its local path candidates; hence it relies stronger on the global planning phase. During parallel parking we want to achieve a lateral shift to a narrow place which is quite unnatural for the car; this results in many approximation steps for the RTR + CCRS planner, producing an enormous number of small movements. The result is much better if the CCRS local planner is applied directly in the RRT-Connect planning phase, because in this case the unnatural approximation is avoided. However, the RTR + TTS-planner outperforms this as well (see the second column in Figure 16).
As we move to more complicated planning challenges in environments containing narrow corridors, samplingbased planners need more iterations to find a solution, resulting in lower success rates (because the number of iterations is limited). Those global planners which tend to use mainly straight movements are more successful than others. In the scenario with one corridor the direct RRT-Connect method completely fails since it uses curved local paths to connect configuration samples (for this reason only RTR + CCRS and RTR + TTS solutions are depicted in Figure 14). Approximation methods are better suited to such environments and it can be seen in the third column of 14 that the TTS local planner results in higher success ratios and better quality paths. The effectiveness of RTR as global planner originates from the aggressive extension step and from the fact that it contains only straight forward and backward translation movements. Because paths are designed to arrive at straight lines, they are well suited for the approximation of RTR paths, resulting in less subdivision steps (efficiency) and simpler path geometry (quality).
The effectiveness of the RTR global planner can mostly be examined in the last scenario, where three narrow corridors have to be passed ( Figure 15). Comparing the approximation result using CCRS and TTS local planners, we can find a much higher efficiency and much better path quality in case of TTS. Furthermore, we can see the different philosophies behind the two local planners; namely, CCRS paths strive to have the maximal allowed curvature, while paths are not restricted to this. In the larger "turning spaces" between corridors, the TTS-planner generates less sharp turns and needs less reversals, which increases the comfort of passengers in the car. The direct RRT-Connect method with CCRS local planner completely fails, similarly to the previous example. As can be seen in the last column of Figure 16, the RTR + TTS-planner significantly outperforms the other algorithms.

Conclusions
In this paper we presented a global planning method for car-like vehicles, producing paths with continuous curvature. A comparative analysis with possible alternatives was performed as well and we could see that both components (RTR and TTS) of the two-phase planning approach contribute to the effectiveness and path quality of the resulting algorithm. The (preliminary) RTR path planner is capable of designing paths consisting of straight movements and turning-in-place. We apply the TTS local planner to the RTR path in a second approximation phase, in order to obtain a final path obeying the bounded and continuous curvature conditions. The TTSplanner uses straight segments, CC-turns, and elementary paths in order to generate a feasible and human-like solution even in cluttered and narrow environments. We gave an overview of how to build CC-turns and elementary paths; the class of curvature and sharpness bounded and paths were introduced, and existence conditions were given for them. An exact steering method: the -planner was presented as well, which delivers a unique solution for a planning query and verifies the topological property. Simulation studies were presented to illustrate that the proposed RTR + TTS planning algorithm can be applied universally in less and more difficult situations and the obtained paths are quite "natural." We continue this work in the future by implementing the proposed algorithm on our physical testbed [52,53] utilizing small-sized model cars and later on a real vehicle to perform real-life tests and performance measurements. Further research includes the investigation of possible applications in previously unknown and changing environments, and the interaction possibilities of this planning method with online map building algorithms.
After substituting (59b) it gets the form Using the fact that (⋅) is nonnegative in the interval of interest (cf. Property C.3 in Appendix C) we can rearrange this tõ≥ which means that, for a giveñ= −2 2 , a valid subpath exists if and only if̃is farther from the -axis than the minimal possible change in the -coordinate determined by the necessary deflection and the given curvature constraint.
We can obtain the necessary and sufficient conditions for the existence of paths by substituting (55a), (55b), (55c), and (55d) into (A.3): alternatively written as together with the obvious other condition | 1 | ≤ max . According to Property C.5 in Appendix C, (2 1 , ) = 0 only if 1 = 0 or 1 = − ± . This means that, for any and 1 ∉ {0, − ± }, the Δ 1 term is nonzero and a 1 can be found such that (A.5) and the curvature bound are fulfilled, because We have seen that for any query pair of the form ( , 0) a class of paths-parametrized by ( 1 , 1 )-is available. A more general query pair ( , ) can be transformed to the form ( , 0) by the inverse transformation −1 ( ), and the resulting path can be transformed back by ( ).

B. Topological Property of the Steering Method
The topological property of steering methods is defined as follows [12].
where C is any metric defined on the configuration space C and is the total length of the of the path returned by Steer( 0 , 1 ).
This means that, for every nonzero , can be found such that if 1 is in an -neighborhood of 0 , then the local path generated by Steer does not exit the -neighborhood of 0 . When approximating a global path and having 0 as an intermediate point on it which has a collision-freeneighborhood, then we can find another intermediate point 1 along the path in the -neighborhood of 0 such that the feasible local path Steer ( 0 , 1 ) is collision-free (see Figure 17). Hence if the global path has nonzero clearance, then the topological property ensures that a feasible path can be constructed along it using a sequence of local paths generated by the steering method.
We will show in the sequel that the steering method has this advantageous property. But before that, a metric C has to be defined over C. The most important metrics over the -dimensional Euclidean space R belong to the family of metrics [6]: A special metric is the ∞ metric which can be obtained from (B.2) if → ∞: The configuration space of the continuous steering car is not an Euclidean space but a manifold C = R 2 × S 1 × [− max , max ], where S 1 stands for the unit circle which is homeomorphic to [− , ]/∼. Because of the identification of − and , special care must be taken when the "distance" of two angles has to be measured. An appropriate metric for S 1 can be the following [6]: As stated in [6], metric spaces are extendable by Cartesian product and a new metric can be defined for the extended space using the original metrics. Since our configuration space C is an extension over R 2 and S 1 , we can choose ∞ metric for R 2 , S 1 for S 1 , and ∞ again over these: which leads to Note that we have neglected one dimension of the configuration space (the [− max , max ] part) in the metric. This is valid because the curvatures of and are always 0; thus the "curvature distance" of these is zero as well. Furthermore, note that in this metric Euclidean distances are compared to angles, which is a common problem in motion planning. It is hard to define a metric over C that can avoid this issue. Nevertheless, the above defined metric is appropriate for proving the following theorem.
Theorem B.2. The steering method verifies the topological property.
Proof. Since the goal configuration is at the origin by assumption (without loss of generality), the metric (B.6) can be written in the following form: where ( ) is a shorthand for Steer (0, )( ). The total length of an path is  Because all of these contain Fresnel integrals, it is hard to solve equations including these functions if the unknown variable is in the argument. However, some function properties can be specified including parity, zeros, and specific values. These properties are useful when dealing with expressions containing them. Proof. For ( ) and ( ) the value at = 0 can be obtained by substitution: all factors are zero. It follows from the definitions that (0) and (0) make every term zero in the other functions as well.

24
Journal of Advanced Transportation Table 2: Signs of the terms of ( ). Proof. It follows from the definition of Fresnel sine and cosine integrals (18a) and (18b) that they are odd functions and their signs are the same as the sign of their arguments. In the definitions of ( ) and ( ), the arguments of and depend on the absolute value of , which results in even functions with nonnegative values. The multiplication factor √ | | is even as well, while the sgn(⋅) function is odd. We know that the product of two functions is even if the parities of factors are the same. Similarly, if the parities differ, then the resulting function is odd. Based on these, it is obvious that ( ) is odd with sgn( ( )) = sgn( ) and ( ) is even and nonnegative.
Given that the sine function is odd and cosine is even and (0) = (0) = 0, it can be easily seen that both terms in the definition of ( ) are odd; thus ( ) itself is odd as well. Similarly, both terms in ( ) are even; thus ( ) itself is even as well. Proof. Let us see the sign of terms of ( ) in different subsets of range ∈ [− , ], as listed in Table 2. It can be seen that ( ) is a sum of positive or zero-valued terms. Only ( ) and sin can be negative, but in all such cases the product of them is positive or zero. The table shows that Proof. (C.10) can be verified easily by substituting = 0 into (C.4). Before looking at the second equation, let us reformulate the definition of ( ) as follows: ( , ) = ( ) (sin + sin ( + )) + ( ) (cos − cos ( + )) . (C.12) We used here the definitions of ( ) and ( ) and trigonometric addition rules. In both cases of (C.11) we get Proof. The first condition for ( , ) being zero was already stated by Property C.1. The second condition can be verified easily by substitution to (C.12). Furthermore, we have to check whether ( , ) has zeros elsewhere. Let us assume that ̸ = 0 and ̸ = −2 + 2 , but ( , ) = 0. In this case the following equality would be true: ( ) (sin + sin ( + )) = − ( ) (cos − cos ( + )) . (C.14) Let us introduce a new variable fl + 2 − 2 ̸ = 0 (C. 15) according to our assumption ̸ = −2 + 2 . After substituting = /2 − /2 + into (C.14) we get (C. 19) Because all of these are contradictions, the assumption that ( , ) has zeros elsewhere than = 0 and = −2 + 2 was wrong.