Efficient path planning for automated guided vehicles using A* (Astar) algorithm incorporating turning costs in search heuristic

ABSTRACT The path planned for an automated guided vehicle in, for example, a production facility is often the lowest-cost path in a (weighted) geometric graph. The weights in the graph may represent a distance or travel time. Sometimes turning costs are taken into account; turns (and decelerations before and accelerations after turning) take time, so it is desirable to minimise turns in the path. Several well-known algorithms can be used to find the lowest-cost path in a geometric graph. In this paper, we focus on the A algorithm, which uses an (internal) search heuristic to find the lowest-cost path. In the current literature, generally, either turning costs are not taken into account in the heuristic or the heuristic can only be used for specific graph structures. We propose an improved heuristic for the A algorithm that can be used to find the lowest-cost path in a geometric graph with turning costs. Our heuristic is proven to be monotone and admissible. Moreover, our heuristic provides a higher lower bound estimate for the actual costs compared to other heuristics found in the literature, causing the lowest-cost path to be found faster (i.e. with less iterations). We validate this through an extensive comparative study.


Introduction
Automated guided vehicles (AGVs) are mobile robots that are widely used in flexible manufacturing systems, logistic systems, and other industrial environments. AGV systems are scalable, flexible, and robust and therefore a promising alternative to fixed infrastructure systems used for example for transporting, sorting or order picking. The performance (in terms of, for example, throughput, robustness, and energy consumption) of an AGV system depends on the system layout used and the strategies used for controlling the AGVs. AGVs can move over a predefined topology that can be represented by a graph, or they can move around freely. Control strategies should at least perform the following three functions: dispatching, path planning, and traffic control (Vis 2006). Dispatching means determining which AGV transports which job, and from which pick-up location to which drop-off location the job needs to be transported. Path planning consists of selecting the path (i.e. a trajectory in space) an AGV should follow in order to transport a job from its pick-up location to its drop-off location. Traffic control manages the execution of the path by the AGV. All movements are to be executed in a collisionfree, deadlock-free, and livelock-free manner. Dispatching, path planning, and traffic control can be performed by separate control strategies, or a strategy can perform multiple functions. A routing strategy combines path planning and traffic control; it (pre-)determines the path of an AGV in both space and time.
Several survey studies exist on the control strategies described for performing the aforementioned functions, see, e.g. the surveys of De Ryck, Versteyhe, and Debrouwere (2019) and Fragapane et al. (2021). In this paper, we focus on (global) path planning for AGVs. Path planning consists of two steps (De Ryck, Versteyhe, and Debrouwere 2019): (1) Representation of the free configuration space.
(2) Using a graph search algorithm to search for the lowest-cost path using this representation.
In currently deployed industrial AGV systems, the paths on which AGVs can move are predetermined (De Ryck, Versteyhe, and Debrouwere 2019); a layout consisting of nodes (physical locations in a 2D plane such as intersections, diverts, and merges) and segments (paths between the nodes) is defined and designed. This network of nodes and segments can be represented by a (weighted) geometric graph, where vertices represent nodes and edges represent straight line segments connecting these nodes (Tóth 2000). If a predefined layout is not available, an algorithm is needed which generates a representation of the free configuration space such that possible paths can be generated. Cell decomposition methods, trajectory maps (also called roadmaps), artificial potential fields, and intelligent algorithms such as neural networks can be used for this (Anavatti, Francis, and Garratt 2016;Campbell et al. 2020;De Ryck, Versteyhe, and Debrouwere 2019;Injarapu and Gawre 2018;Mac et al. 2016). The representation of the free configuration space can also be translated into a (weighted) geometric graph that can be used to find the lowest-cost path.
In AGV systems, it is often desirable to maximise throughput and to minimise lead time. Especially for large AGV systems with hundreds or thousands of AGVs, using shortest-distance paths may lead to congestion and therefore long lead times. Approaches have therefore been proposed (e.g. Bartlett et al. 2014;Fransen et al. 2020;Lian and Xie 2019) aiming to find shortesttime paths for AGVs in the system. For these approaches, the layout over which AGVs are allowed to move is represented by a geometric graph with costs (or weights) related to time. To find the shortest-time path for an AGV in the system, the lowest-cost path in the geometric graph is determined.
Among a variety of wheel configurations that can be used for AGVs (Shabalina, Sagitov, and Magid 2018), in industry often AGVs are used that have the ability to pivot (i.e. turn on the spot), such as differential drive AGVs. Pivoting takes time; when a turn needs to be made at a node, the AGV needs to decelerate to standstill, make the turn, and accelerate again. Therefore sometimes costs associated with turning are also taken into account in the geometric graph. Here we assume costs for pivoting are included in the geometric graph; the costs for turning at a vertex are computed using 2D information of the corresponding node.
Different graph search algorithms can be used to find the lowest-cost path. Algorithms such as Dijkstra (1959) and Floyd (1962) are guaranteed to find the lowest-cost path; therefore we call them optimisation algorithms. Also the A * algorithm (Hart, Nilsson, and Raphael 1968) is an optimisation algorithm, provided that the (internal) heuristic used in the algorithm is admissible (Hart, Nilsson, and Raphael 1968). The algorithm combines the advantages of both Dijkstra's algorithm (Dijkstra 1959) and best-first search (Lawler and Wood 1966). If the (internal) heuristic used in the A * algorithm is not admissible, then the algorithm is not guaranteed to find the lowest-cost path. We call algorithms that are not guaranteed to find the lowestcost path heuristic algorithms. Other examples of heuristic algorithms are genetic algorithms (Krukhmalev and Pshikhopov 2017) and simulated annealing algorithms (e.g. Ganeshmurthy and Suresh 2015). This paper focuses on the A * algorithm, which is described in more detail in Section 2.
In this paper, we propose a new heuristic for the A * algorithm to find the lowest-cost path on a geometric graph. Our heuristic is admissible, monotone, and takes costs for pivoting into account. The developed heuristic provides a higher lower bound estimate for the actual costs compared to other heuristics found in the literature, thereby causing the lowest-cost path to be found faster. In this case, faster means with less iterations; the number of iterations is also used in other literature as a measure for the efficiency of the A * algorithm (e.g. in Mathew 2015;Song and Yuan 2019;Whangbo 2007;Yao et al. 2010). We validate the decrease in number of iterations by means of an extensive comparative study.
The remainder of this paper is organised as follows. In Section 2, the A * algorithm is described in more detail. Section 3 provides a literature overview of existing work that (implicitly) takes into account turning costs when using the A * algorithm on a geometric graph. It appears that in most papers, turning costs are not taken into account in the heuristic, or the heuristic can only be used for specific graph structures. Section 4 describes the developed heuristic, Section 5 describes the comparative study executed to validate the developed heuristic and compare it to other heuristics, and Section 6 concludes the paper.

A * algorithm
The A * algorithm (Hart, Nilsson, and Raphael 1968) is an efficient algorithm that can be used for finding the lowestcost path in a (weighted) graph G = (V, E) from one source vertex v s to a destination vertex v d . V denotes the set of vertices (i.e. V = {v 1 , . . . , v N } for N vertices) and E denotes the set of edges (i.e. The algorithm uses a best-first search strategy (Lawler and Wood 1966), exploring the most likely candidate (as current vertex v c ) while eliminating provably inferior solutions (Yap 2002). The most likely candidate is the vertex v c with the lowest sum of the actual costs from the source vertex v s , g(v s , v c ), and the estimated costs h(v c , v d ) to the destination vertex, i.e. with the lowest value for ( 1 ) The algorithm is admissible (i.e. is guaranteed to find the optimal (lowest-cost) path), if the heuristic h(v e , v d ) from a vertex v e ∈ V to destination vertex v d provides a lower bound estimate for the actual minimum costs h * (v e , v d ) to move from a vertex v e to the destination vertex v d (Hart, Nilsson, and Raphael 1968): The closer the value of h(v e , v d ) is to the actual minimum costs h * (v e , v d ), the lower the number of iterations needed to find the lowest-cost path (Mathew 2015). Furthermore, the number of iterations can also be kept low by ensuring each vertex only needs to be explored once.
In the A * algorithm, this can be realised by selecting a monotone heuristic (Hart, Nilsson, and Raphael 1968). Table 1 provides an overview of control strategies described in the literature that (implicitly) take into account turning costs when using the A * algorithm on a geometric graph. The table specifies to what extent turning is taken into account in different parts of the A * algorithm. Moreover, it shows whether the A * algorithm is used for path planning or routing, and whether the objective is to find the shortest-distance or shortest-time path, or route. Our control strategy, which is described in Section 4, is shown in the table as Heuristic This Paper. The objective of using the A * algorithm is to find the lowest-cost path, which on a geometric graph usually is the shortest-distance or shortest-time path. Since turning increases the time it takes for an AGV to drive from a source to a destination, turning costs are often taken into account when the objective is to find the shortest-time path on a graph.

Literature overview
Turning on the spot takes time, and also the deceleration to and acceleration from standstill, respectively, before and after turning take time. Some routing strategies (e.g. Cui et al. 2018;Jia et al. 2017) take the time needed for deceleration and acceleration into account, but often it is neglected. When separate control strategies for path planning and traffic control are used within an AGV system, it is unknown how long it is going to take for an AGV to execute a planned path; often the weights in the graph cannot effectively reflect the real-time execution time of the path (Lian, Xie, and Zhang 2020).
It is therefore not known from what speed deceleration should take place or to what speed acceleration should take place, and thus how long, respectively, the deceleration and acceleration processes take. Therefore, the path planning strategies described in the literature that use the A * algorithm do not take into account separate costs associated with the deceleration before and acceleration after turning. However, an estimation could be included in the turning costs, for example, by increasing the costs per turn.
Instead of incorporating turning costs in the heuristic in order to guide a search towards the destination, it is also possible to select only a subset of successor vertices to evaluate in each step. Mu et al. (2020) describe a control strategy, suitable for orthogonal layouts, where the successor vertices to evaluate in each step are based on the differences between the current vertex v c and destination vertex v d in x-and y-coordinates. An admissibility proof of the adapted A * algorithm is missing; none of the references shown in Table 1 contains (a reference to) an admissibility proof for their control strategy. Furthermore, the strategy of Mu et al. (2020) is not the only control strategy that can be applied to specific layouts only; most of the control strategies mentioned in Table 1 can only be applied to orthogonal grids.

Heuristic
In this section, we introduce the developed heuristic. First, we describe the problem for which the heuristic was developed in Section 4.1. Then we describe the heuristic and its components in more detail in Section 4.2.

Problem statement
In this paper, we propose a new heuristic for the A * algorithm. With this heuristic, we aim to efficiently (i.e. with a low number of iterations) find the lowest-cost path on a geometric graph, taking into account costs for pivoting. To guarantee that the lowest-cost path is found, we need an underestimation of the actual costs h * (v e , v d ) from vertex v e to destination vertex v d (i.e. an admissible heuristic h(v e , v d ) needs to be defined). The closer the value of the heuristic to the actual costs, the more efficient the heuristic is (i.e. the lower the number of iterations needed to find the lowest-cost path). The heuristic should be used when the objective of the A * algorithm is to find the shortest-time path on a geometric graph. The assumptions that should hold for the geometric graph are described in Section 4.1.1. Under these assumptions, the actual costs of which the heuristic should provide an underestimation are given in Section 4.1.2. h Deceleration from and acceleration to maximum AGV speed are taken into account in heuristic h(v c , v d ) when a turn needs to be made. i Ratio of two angles is taken into account. j Normalised sine and cosine similarity of two vectors are taken into account. k A (weighted) cost compensation based on angular deviation is included. l One of the (weighted) terms of the heuristic depends on the difference in x-and y-coordinates between current vertex v c , its predecessor vertex, and successor vertex. m Heuristic from predecessor of current vertex v c to destination vertex v d is included. n Also a 'Repeated route cost' and 'Dynamic weight guidance' are included. o The vertices to expand are selected based on differences in x-and y-coordinates between current vertex v c and destination vertex v d . p Heuristic is based on distance or translation time only; proof of admissibility when using Manhattan or Euclidean distance seems to be considered trivial. q Lowest-cost path is not always found. The paper acknowledges this. r Restricted to orthogonal grids. s Restricted to orthogonal and axis-aligned grids. Length of a path segment should at least be equal to the distance required to accelerate from standstill to maximum speed, plus the distance required to decelerate from maximum speed to standstill. t Developed for orthogonal grids but does not seem to be a restriction.

Assumptions
The assumptions that should hold for the geometric graph are as follows: • The graph contains unidirectional edges or bidirectional edges whereby turning is only allowed on the spot at a vertex (i.e. not halfway an edge). • The orientation of the AGV while driving is constant with respect to the path it is following (i.e. when there is an orientation change between two consecutive edges, a turn needs to be made at the vertex connecting those edges). The AGV will make the smallest possible turn (either clockwise or counterclockwise) to realise the orientation change. • Driving in reverse is not possible for the AGV; a turn of π radians should be made to start driving in the opposite direction. Since AGVs are often equipped with one safety scanner at the front of the vehicle, only allowing driving in reverse at very low speeds, this assumption usually holds.
E should have non-negative values and represent notions of time. The minimum weight of an edge should be equal to the minimum translation time of an AGV over the corresponding path segment in the geometric graph. The set of all weights is denoted by c. • The turning costs per radian p turn should be nonnegative. The turning costs per radian should at least be equal to the minimum time it takes for an AGV to rotate over one radian.
There are no restrictions on the structure or topology of the geometric graph. It should be possible to specify a desired end orientation end at the destination vertex v d and the start orientation start at the source vertex v s .

Actual costs
The shortest-time path P v s ,v d to be found by the algorithm is the path minimising the following cost function, for the is the set of vertices in path P v ,v , and |θ v i | is the minimum turn that needs to be made at vertex v i in radians. The minimum turn |θ v i | at vertex v i is computed as follows, as the absolute smallest difference (either clockwise or counterclockwise) between: • If v i = v s : start orientation start , and orientation of the outgoing edge from source vertex v s .
• If v i = v d : the orientation of the incoming edge to the destination vertex v d , and the desired end orientation end , if specified. Otherwise the difference is equal to zero.
the orientation of the incoming edge at v i , and the orientation of the outgoing edge at v i . If v i = v , then the outgoing edge is unknown and the difference is equal to zero.
The actual costs to move from source vertex v s to ver- with P v s ,v e the shortest-time path from source vertex v s to vertex v e found so far by the A * algorithm.
The actual minimum costs from a vertex v e ∈ V to Decelerations before and accelerations after turning are not explicitly taken into account; these can be incorporated implicitly (e.g. by varying weights over time, based on realised AGV travel times, as in Fransen 2019 andFransen et al. 2020).

Our heuristic
The Euclidean distance is a lower bound estimate of the distance over which the AGV needs to move from vertex v e to destination vertex v d (Sedgewick and Vitter 1986).
The component h rot (v e , v d ) is equal to the turning costs per radian, p turn , times a lower bound estimate |θ min (v e , v d )| of the necessary angles of rotation needed to move from (specified orientation e at) vertex v e to (desired end orientation end at) destination vertex v d , i.e.
The turning costs per radian p turn represent the minimum time it takes for an AGV to rotate over one radian (e.g. the inverse of the maximum rotation speed). The specified orientation e is equal to start if v e = v s , and otherwise equal to the orientation of an incoming edge to vertex v e . The computation of the lower bound estimate |θ min (v e , v d )| is provided in Section 4.2.1. The pseudocode of the A * algorithm with our heuristic is provided in Appendix 1. Our contribution is including the term h rot (v e , v d ), as specified in Equation (6), in the heuristic h(v e , v d ). Note that the developed heuristic is monotone (see Appendix 2 for the proof), causing each vertex in the graph to be expanded as current vertex v c at most once during execution of the A * algorithm (Hart, Nilsson, and Raphael 1968).

Lower bound estimate necessary rotations
The lower bound estimate |θ min (v e , v d )| of the necessary angles of rotation the AGV needs to make in order to move from (specified orientation e at) vertex v e ∈ V to (desired end orientation end at) destination vertex v d is equal to the sum of three minimum absolute angles of rotation.
Note that we use ψ to denote an angle of rotation, to denote a specific orientation (e.g. orientation of an edge or a desired end orientation), and θ to denote a minimum angle of rotation that needs to be made by an AGV.
A minimum absolute angle of rotation |θ | is defined as follows. An angle of rotation can be measured either in clockwise or counterclockwise direction. We define the counterclockwise direction to be positive, such that the angle of rotation from orientation A to orientation B for the example situation in Figure 1 is equal to ψ when turning in counterclockwise direction and equal to ψ − 2π when turning in clockwise direction. The minimum absolute angle of rotation |θ | that needs to be made (either clockwise or counterclockwise) is equal to |θ | = min(|ψ|, |ψ − 2π|).
As mentioned before, the estimate |θ min (v e , v d )| is a lower bound for the angles of rotation needed to move from (specified orientation e at) vertex v e to (desired end orientation end at) destination vertex v d . Figure 2 shows three example situations, where vertex v e (with specified orientation e of the AGV) and destination vertex v d (with the desired end orientation end of the AGV) are shown as circles. The Euclidean vector (i.e. shortest possible connection regardless of the graph) directed from vertex v e to destination vertex v d is shown as the arrow connecting those vertices. Three minimum angles of rotation are shown in this figure as θ 1 , θ 2 , and θ 3 .
The minimum angle of rotation θ 1 represents the rotation from orientation e at vertex v e to the Euclidean The minimum angles of rotation θ 2 and θ 3 are dependent on the incoming edge(s) to the destination vertex v d . Those minimum angles of rotation represent, respectively, the rotation from Euclidean vector d(v e , v d ) to the incoming edge at the destination vertex v d , and the rotation from that incoming edge to the desired end orientation end . As shown in Figure 2(c), different incoming edges (v i , v d ) ∈ E can lead to different values for θ 2 and θ 3 : In these equations, The lower bound estimate |θ min (v e , v d )| might be chosen equal to |θ 1 | only but is sharpened by also using |θ 2 | and |θ 3 |. It is equal to The minimum sum of |θ 2 | (v i ,v d ) and |θ 3 | (v i ,v d ) over the incoming edges (v i , v d ) ∈ E at the destination vertex v d is used to compute the lower bound estimate |θ min (v e , v d )|. If the desired end orientation end is unspecified, then the minimum angle of rotation θ 3 is set to zero. Note that Figure 2(a) shows an example situation for one incoming edge at the destination vertex v d . In this case, the minimum angles of rotation are equal to θ 1 = |θ 1 |, θ 2 = |θ 2 |, and θ 3 = |θ 3 |, since they are measured in counterclockwise direction. The lower bound estimate |θ min (v e , v d )| equals |θ 1 | + |θ 2 | + |θ 3 | (see Equation (11)). Figure 2(b) shows minimum angles of rotation θ 1 , θ 2 , and θ 3 for a different desired end orientation end at the destination vertex v d . In this case, the minimum angles of rotation at the destination vertex v d are equal to θ 2 = −|θ 2 | and θ 3 = |θ 3 |, since they are measured in, respectively, clockwise and counterclockwise directions. Also for the situation shown in Figure 2(b), the lower bound estimate |θ min (v e , v d )| equals |θ 1 | + |θ 2 | + |θ 3 | (see Equation (11)).
As mentioned in Section 2, the A * algorithm is admissible (i.e. is guaranteed to find the optimal (lowest-cost) path), if the heuristic h(v e , v d ) provides a lower bound estimate of the actual minimum costs h * (v e , v d ) to move from vertex v e to destination vertex v d . To prove that with our heuristic, the A * algorithm finds the optimal path, we have to prove that the minimum absolute angle of rotation |θ min (v e , v d )| is a lower bound estimate of the actual minimum absolute angle of rotation the AGV needs to make, to move from (specified orientation e at) vertex v e to (desired end orientation end at) destination vertex v d . The proof is provided in Appendix 3.

Comparative study
To validate the efficiency of our heuristic, we executed a comparative study. We determined the number of iterations needed by the A * algorithm to find the lowestcost path from each vertex to each other vertex in the layout, for different heuristics, for different types of grid layouts. The grid layouts studied have sizes of approximately 10 × 10, 20 × 20, 30 × 30, and 40 × 40 elements, with either rectangular, hexagonal, or arbitrary-shaped grid elements. Furthermore, we verified the effect of changing the values of some input parameters that affect the mutual differences between the evaluated heuristics.
In this section, we first provide the cost function used in our study in Section 5.1, which is the same for all heuristics included in the comparison. Then we describe the other heuristics included in our comparative study in Section 5.2 and the layouts used in Section 5.3. We introduce a metric that is used for comparison of the results in Section 5.4, and finally provide the results and a discussion of these results in Section 5.5.

Cost function lowest-cost path
To fairly compare the performance of our heuristic to other heuristics found in the literature, it is important that the A * algorithm finds the same optimal (i.e. lowestcost) path for all heuristics included in the comparison. The goal of the algorithm, for every heuristic, is to find the path minimising the cost function given in Equation (3) with v = v s and v = v d . In the study, the weight of each edge (v i , v j ) is equal to In this equation, l v i v j is the distance from vertex v i to vertex v j , and s max is the maximum AGV (translation) speed. The turning costs per radian are equal to In this equation, ω max is the maximum rotation speed of the AGV.

Other heuristics
The control strategies of Bae and Chung (2018), Bae and Chung (2019), Cui et al. (2018), and Lian and Xie (2019) show resemblance with our control strategy (see Table 1); therefore the performance of these strategies (in a modified version to allow for a fair comparison) are compared to the performance of our strategy. Bae and Chung (2018), Bae and Chung (2019), and Lian and Xie (2019) do not incorporate turning in the heuristic; the heuristic only consists of a term related to translation, described in Equation (5). For simplicity, we will only refer to Bae and Chung (2018). The control strategy is suitable for orthogonal grids only. However, by using rotation-dependent turning costs instead of constant turning costs (the costs for turning over π/2 radians) in the computations for f (v s , v e , v d ) and g(v s , v e ), the control strategy can be applied to non-orthogonal grids as well. Also the control strategy described by Cui et al. (2018) shows resemblance with our control strategy, assuming that decelerations before and accelerations after turning are infinitely large. The heuristic consists of a component related to translation and a component related to rotation, see Equation (4). The component related to translation is equal to In this equation, |x v e − x v d | is the absolute difference in xcoordinates between vertex v e and destination vertex v d , and |y v e − y v d | is the absolute difference in y-coordinates between vertex v e and destination vertex v d . The control strategy adds constant turning costs (the costs for turning over π/2 radians) to the heuristic if both the xand y-coordinates of the vertex v e differ from, respectively, the x-and y-coordinates of the destination vertex v d . The control strategy is only suitable for orthogonal and axis-aligned grids. Changing the control strategy such that it becomes suitable for other grids as well requires major changes. The component in the heuristic related to translation should be changed to the term described in Equation (5). Furthermore, the component in the heuristic related to rotation should be removed, and rotation-dependent turning costs should be used instead of constant turning costs for the computations for f (v s , v e , v d ) and g (v s , v e ). The control strategy then becomes similar to the control strategy developed by Bae and Chung (2018). The control strategy developed by Cui et al. (2018) will therefore only be used in the comparative study for rectangular grids. The Manhattan distance (i.e. |x v e − x v d | + |y v e − y v d |) is equal to or bigger than the Euclidean distance (the triangle inequality), i.e.
Therefore, using the Manhattan distance in the component related to translation h trans (v e , v d ) results in a higher cost estimate compared to using the Euclidean distance. As explained in Section 2, the closer the value of h(v e , v d ) is to the actual minimum costs h * (v e , v d ), the lower the number of iterations needed to find the lowest-cost path.
Using the Manhattan distance in the heuristic will therefore cause less (or an equal number of) iterations to be needed to find the lowest-cost path, compared to using the Euclidean distance. The added value of our heuristic is the component related to rotation; using the Euclidean distance in the component related to translation has been done before, and the effect of using the Euclidean distance instead of the Manhattan distance has been studied before by, for example, Kusuma, Riyanto, and Machbub (2019) and MacGregor and Leung (2009). Therefore, to fairly compare the performance of the component related to rotation in our heuristic to components related to rotation in other heuristics, a modified version of the control strategy described by Cui et al. (2018) is used in the comparative study, where the component related to translation in the heuristic is as in Equation (5).
The control strategies developed by Cui et al. (2018) and Bae and Chung (2018) are not able to take into account a specified desired end orientation end . For a fair comparison, it is necessary that all control strategies studied find the same lowest-cost path. Therefore, the comparative study is executed without specifying desired end orientation end .
Our control strategy, as well as the modified control strategy of Cui et al. (2018), always needs less or an equal number of iterations to find the lowest-cost path, compared to the control strategy of Bae and Chung (2018). This can be explained as follows: a non-negative term is added to the heuristic of Bae and Chung (2018) in order to get our heuristic, or the modified heuristic of Cui et al. (2018). If a positive term is added, the value for the heuristic estimate increases (i.e. h(v e , v d ) gets closer to h * (v e , v d )), resulting in a (possible) decrease in the number of iterations needed to find the lowest-cost path, as explained in Section 2. Addition of a zero term results in the same number of iterations to be needed for our heuristic, or the modified heuristic of Cui et al. (2018), compared to the heuristic of Bae and Chung (2018).

Layouts for comparative study
The layouts for the comparative study are constructed as follows: • Rectangular layouts: Square grid elements are placed in 10 × 10, 20 × 20, 30 × 30, and 40 × 40 arrangements. Horizontal and vertical driving directions are alternated over the rows and columns in such a way that strongly connected graphs (i.e. directed graphs with a path from each vertex to every other vertex) are obtained, see Figure 3(a), with vertices at the centre of each reachable grid element. Our layouts show resemblance with parcel sorting grids with alternating unidirectional lanes. • Hexagonal layouts: Hexagonal grid elements are placed in arrangements with similar size as the rectangular layouts. However, to ensure that alternating driving directions in all three hexagonal directions (i.e. vertical and two diagonal directions) always yield a strongly connected graph, the number of columns is odd (i.e. decreased by one), and odd columns have one grid element less than even columns, see Figure 3(b). • Arbitrary layouts: In a square enclosed space with similar dimensions as the rectangular layout, vertices are placed randomly and one by one, under the constraint that they are placed at least d metres apart (with d equal to the size of a grid element in a rectangular layout), and d/2 metre from the border of the space. The vertex generator tries to fit in as many vertices as possible, but once placed the position of a vertex is not changed anymore. A constrained Voronoi diagram is constructed to visualise the grid elements, see Figure 3(c). The unidirectional graph between the grid elements is constructed arbitrarily, nevertheless ensuring that the graph is strongly connected.
For all layout shapes and sizes, multiple instances are generated (see also Section 5.4) in which 20% of the grid elements are blocked. Figure 4 shows three example layouts with 20% of the grid elements blocked. The blocked grid elements can be regarded as obstacles where AGVs cannot drive. The grid elements that are blocked are chosen randomly, one by one, in a greedy manner: a random grid element is selected and blocked if the resulting graph remains strongly connected, otherwise the grid element is skipped. This process continues until 20% of all grid elements have been blocked or all grid elements have been evaluated.

Metric
For each grid layout considered, the number of iterations needed to travel from one to another vertex in the grid is determined for all possible source-destination combinations, for each heuristic. Results are generated for 0% and 20% of the grid elements blocked. For 20% of the grid elements blocked, 40 random combinations of blocked grid elements are generated in order to establish the 95% confidence interval of the mean number of iterations needed. Furthermore, for arbitrary layouts for 0% of the grid elements blocked, also 40 random arbitrary layouts are created.
We have chosen to study the difference in the number of iterations between the different heuristics and to not focus on computation time, since the measured computation time depends on the implementation of the heuristics and the computer used, while the number of iterations is independent of these variables. The number of   iterations is also used in other literature as a measure for the efficiency of the A * algorithm (e.g. in Mathew 2015;Song and Yuan 2019;Whangbo 2007;Yao et al. 2010).
The number of iterations needed to find the lowestcost path using the A * algorithm is the number of vertices being expanded during execution of the algorithm (Róka 2018). At least all vertices in the lowest-cost path from the source vertex v s to the predecessor vertex of the destination vertex v d need to be expanded. Therefore, the number of iterations n(P v s ,v d ) is at least equal to the number of grid elements (i.e. vertices) in the lowest-cost path |V(P v s ,v d )| minus one (since the destination vertex v d does not have to be expanded), i.e.
Ideally, the number of iterations is as low as possible and thus equal to the number of grid elements in the lowestcost path (i.e. path elements) minus one. Figure 5 shows the sample mean and 95% confidence interval of n(P v s ,v d )/(|V(P v s ,v d )| − 1) for different path lengths, for a 30 × 30 grid with rectangular elements, for 0% of the grid elements blocked. Only the path lengths with at least 40 samples are shown to allow for the computation of confidence intervals. The parameter values used for the computations are provided in Table 2. As shown in Figure 5, for longer paths, the average number of iterations needed to find one element of the lowest-cost path is relatively large; the longer the path P v s ,v d , the larger n(P v s ,v d )/(|V(P v s ,v d )| − 1). Due to an upper bound on the number of iterations (since the number of vertices in the graph is finite and the heuristic is monotone), an S-curve is visible in the figure. Since the number of grid elements in the path is also larger for longer paths, efficiency gains for longer paths are thought to have a significant influence on the performance of a heuristic. To properly take this into account, the following performance metric is defined to measure the performance of a heuristic for a specific layout: This metric can be interpreted as the weighted average number of iterations needed to find one grid element of the lowest-cost path (i.e. path element). It is at least equal to one; the better the heuristic, the closer the value is to one.

Results and discussion
The resulting performance metrics of the computations executed for the control strategy with our heuristic, the modified heuristic of Cui et al. (2018), and the heuristic defined by Bae and Chung (2018) equal to the heuristics defined by Bae and Chung (2019) and Lian and Xie (2019) and are visible in Figure 6. The figure shows the sample mean and 95% confidence interval of the metric for different grid sizes. The parameter values used for the computations are provided in Table 2.
Results are shown for grids with, respectively, rectangular, hexagonal, and arbitrary-shaped grid elements, for approximately 10 × 10, 20 × 20, 30 × 30, and 40 × 40 elements, for, respectively, 0% and 20% of the grid elements blocked. Figure 6 shows that the mutual differences between the evaluated heuristics remain approximately constant for different grid sizes. Our control strategy needs on average the lowest number of iterations to find the lowest-cost path, followed by the modified control strategy of Cui et al. (2018) for rectangular grids, and, as expected, the control strategy of Bae and Chung (2018).
For rectangular grids, our control strategy does not always outperform the modified control strategy of Cui et al. (2018); for specific combinations of source vertex v s and destination vertex v d (for example, when the Euclidean vector d(v s , v d ) directed from source vertex v s to destination vertex v d is almost (but not exactly) parallel to an axis, with incoming edges at source vertex v s and destination vertex v d aligned with the axis), the number of iterations needed by the modified control strategy of Cui et al. (2018) may be less than the number of iterations needed by our control strategy. However, on average our control strategy outperforms the modified control strategy of Cui et al. (2018). Furthermore, the modified control strategy of Cui et al. (2018) cannot be used for grids with hexagonal or arbitrary-shaped elements.
The mutual differences between control strategies are influenced by the parameter values used for the computations: the values selected for maximum rotation speed ω max and maximum (translation) speed s max may influence the ratio between the values of the components in the heuristic related to rotation and translation. For ω max → ∞ or s max → 0, the component in the heuristic related to translation will dominate the component related to rotation; the performance of all control strategies will be similar. For ω max → 0 or s max → ∞, the component in the heuristic related to rotation will dominate the component related to translation, increasing the mutual differences between control strategies. This behaviour is also visible in the computations executed for a 30 × 30 rectangular grid with 0% of the grid elements blocked, for different parameter combinations: for ω max ∈ {1/4π, 1/2π, 3/4π, π } rad/s, and for s max ∈ {0.5, 2, 3.5, 5} m/s. The results are visible in Figure 7.
The figure shows that our heuristic outperforms the other heuristics for all parameter values; the differences become larger for smaller maximum rotation speeds and larger maximum (translation) speeds.

Conclusion
In this paper, we have provided a literature overview of existing work on path planning using the A * algorithm on a geometric graph with turning costs. In general, in the current literature either turning costs are not taken into account in the heuristic or the heuristic can only be used for specific graph structures. We have not found any proofs of heuristics' admissibility.
We developed a monotone and admissible A * heuristic incorporating turning costs that can be used for any geometric graph structure. We validated that our heuristic decreases the number of iterations needed to find the lowest-cost path, compared to other heuristics found in the literature. A decrease of up to 68% for the weighted average number of iterations needed to find one vertex in the lowest-cost path was achieved, depending on the selected input parameters. Using information about the graph structure in the heuristic can further decrease the number of iterations needed. For example, for rectangular grids, the Manhattan distance can be used instead of the Euclidean distance. For some rectangular grids, it may be beneficial to take the maximum of our heuristic and the heuristic developed by Cui et al. (2018). However, the heuristic can then no longer be used for any graph structure.
Furthermore, for any graph structure, the directions of outgoing edges at the current vertex (besides the currently used directions of incoming edges at the destination vertex) can be included to further improve the heuristic.
Although the component related to rotation in our heuristic decreases the number of iterations needed to find the lowest-cost path in the A * algorithm, we have increased the number of operations needed to compute the heuristic. Pre-computation of heuristic values is possible to decrease the number of extra operations needed. Depending on the selected input parameter values and weights in the graph, the extra complexity in the heuristic may not be beneficial (e.g. if the turning costs are zero). A recommendation for improvement is to study if our heuristic of the A * algorithm could be made selfconfiguring based on the graph and parameters such as turning costs. Figure A1. Minimum absolute angles of rotation |θ 1 |, |θ 2 |, |θ 4 |, |θ 5 |, and |θ 6 |. (a) |θ 1 | > |θ 5 | and (b) |θ 1 | < |θ 5 |.

Theorem A.3: The sum of minimum absolute angles of rotation |θ min (v e , v d )| as computed in Equation
Proof: Theorem A.2 states that the minimum absolute angle of rotation the AGV needs to make, to move along an arbitrary path from vertex v e to destination vertex v d , such that vertex v e is left and destination vertex v d is entered with minimum absolute angle of rotation with respect to the Euclidean vector d(v e , v d ) (directed from vertex v e to destination vertex v d ) equal to, respectively, |θ 1 | and |θ 2 |, is equal to |θ 1 | + |θ 2 |. In order to reach the desired end orientation end at the destination vertex v d , an extra minimum absolute angle of rotation needs to be made of at least |θ 3 |. For one incoming edge (i.e. for one possibility of entering the destination vertex v d ), the minimum absolute angle of rotation the AGV needs to make is therefore at least equal to |θ 1 | + |θ 2 | + |θ 3 |.
For multiple incoming edges at the destination vertex v d , considering the incoming edge (v i , v d ) ∈ E that minimises |θ 2 | (v i ,v d ) + |θ 3 | (v i ,v d ) ensures that Equation (11) provides a lower bound estimate of the actual minimum absolute angle of rotation needed.