Efficient Collision Detection Oriented Motion Primitives for Path Planning
Abstract
Mobile robots in dynamic environments require fast planning, especially when onboard computational resources are limited. While classic potential field based algorithms may suffice in simple scenarios, in most cases algorithms able to escape local minima are necessary. Configuration-space search algorithms have proven to provide a good trade-off between quality of the solutions and search time. Literature presents a wide variety of approaches that speed up this search by reducing the number of edges that need to be inspected. Much less attention was instead given to reducing the time necessary to evaluate the cost of a single edge. This paper addresses this point by associating edges to motion primitives that prioritize fast collision detection. We show how biarcs can be used as motion primitives that enable fast collision detection, while still providing smooth, tangent continuous paths. The proposed approach does not assume a disc shaped hitbox, making it appealing for all robots with very different width and length or for differential drive robots with active wheels located far from the robot’s center.
Index Terms:
Motion and Path Planning, Wheeled Robots, Field Robots, BiarcI Introduction
Path planning has been a subject of extensive research in the field of robotics, yielding a diverse array of approaches over the years [1, 2, 3]. In cases where stringent computational efficiency is a primary concern, classic reactive strategies, exemplified by methods like the Virtual Potential Field [4] and the Vector Field Histogram [5], as well as their subsequent developments [6, 7], may offer viable solutions.
Nonetheless, in numerous scenarios, these methodologies are unsuitable due to their susceptibility to entrapment in local minima. Alternative potential field formulations, which alleviate this concern, have been put forth in the literature [8, 9, 10]. However, it is important to note that the practical utility of these alternatives is often confined to specific contexts, or their adoption is associated with a substantial escalation in computational overhead [11].
To address the inherent challenge of limited path information in potential field algorithms, an array of local search approaches has emerged over the years. This category of methods typically involves the iterative adjustment of a path, frequently represented as splines [12, 13, 14, 15]. Some notable approaches within this realm include Elastic Bands [16], Reactive Path Deformation [17], Trajectory Deformer [18, 19], and Timed Elastic Band [20]. Although these methods are generally more robust and sufficiently efficient when compared to potential field algorithms, they tend to yield sub-optimal solutions.
Alternatively, there exist other techniques, such as the Dynamic Window Approach [21] and its continuous-space extensions [22, 23, 24], which conduct local searches within the velocity search space. These methods, particularly when combined with a global planner, often demonstrate a high degree of robustness in real life scenarios. In recent years, machine learning techniques, particularly deep learning algorithms, have demonstrated remarkable performance in complex environments without the need for exhaustive search processes, as evidenced by works such as [25, 26, 27]. However, a notable limitation is that, in the absence of dedicated hardware acceleration, even basic inference operations can incur significant computational expenses.
An alternative strategy for improving the planning results involves the transformation of the configuration space into a convex space, conducting the planning within this convex space, and subsequently mapping the solution back to the original configuration space. It is essential to note, however, that this approach is most suitable for static environments, wherein the computationally intensive mapping definition is executed only once [28].
Discretizing the configuration space serves to convert the intrinsically continuous problem of path planning into a graph search problem. A range of strategies for selecting the sampling approach has been thoroughly examined, encompassing widely recognized methods such as the Rapidly Exploring Random Tree (RRT) algorithm [29] and its derivatives [30], as well as the Probabilistic Road Map (PRM) approach [31]. The sampling procedures employed by these algorithms are geared towards reducing the set of configurations that must be explored before a path between the start and goal nodes is identified. In terms of the underlying graph, the primary objective is to minimize the number of nodes that constitute the graph. Aspects of the path, such as its smoothness, are often addressed through successive refinement steps [32] or are managed through deterministic optimizations integrated with the stochastic sampling process [33].
Another line of investigation has focused on minimizing the search cost within a given graph. In many motion planning scenarios, effective heuristics are available for A* to significantly reduce the number of nodes traversed during a search compared to Dijkstra’s algorithm. Additionally, in the majority of cases, obstacle positions are updated as new sensor data becomes available. Rather than conducting an entirely new search, prior computation results are leveraged to expedite the search process. This approach is adopted by algorithms such as D* [34], Lifelong Planning A* [35], and D* Lite [36].
An additional research direction has been dedicated to reducing the number of evaluated edges. Specifically, the actual cost of an edge is computed only when absolutely necessary, and heuristics are employed as substitutes for the actual computations whenever feasible. This approach is exemplified in algorithms such as Lazy PRM [37], LWA* [38], Lazy-PRM* and Lazy RRG* [39], LazySP [40], and Lifelong-GLS [41].
We employ an alternative approach to enhance the efficiency of edge cost evaluation. In the physical realm, the edges on the graph correspond to the robot’s movements, commonly referred to as motion primitives. While path smoothness and path length have traditionally been the primary design criteria for motion primitives, this paper prioritizes collision detection efficiency as the foremost design criterion. Through the precise design of motion primitives, we enable accelerated path planning without a significant compromise on path characteristics.
Section II briefly introduces biarcs, the curves utilized to generate motion primitives in this study. Section III examines the impact of a free parameter on path length and path smoothness and identifies an optimal value for achieving desirable paths. Section IV concentrates on replanning and discusses a heuristic for determining the free parameter in this context. Section V elaborates on the efficient execution of collision detection. Section VI presents the experimental results. Lastly, in Section VII, the paper concludes by assessing the limitations of the proposed approach and outlining potential avenues for future research.
II Biarcs
Biarcs have been the subject of extensive investigation in multiple domains, including Mathematics [42, 43], Computer Graphics [44, 45], and, particularly, in the field of Computer-Aided Design [46, 47, 48, 49, 50, 51]. One significant motivation for the extensive exploration of biarcs in the latter domain is the common provision of circular interpolation algorithms in the control modules of early numerically controlled manufacturing systems. Biarc trajectories, as a result, hold appeal as readily usable tool paths.
Biarcs as paths in the field of robotics have received significantly less attention [52, 53, 54]. One contributing factor is that biarcs exhibit continuity, whereas continuity is a prerequisite for Ackermann steering. However, it is worth noting that while continuity is a desirable trait, it is not essential for many types of robots, including holonomic robots, differential drive robots, or skid steering robots. In fact, for these categories of robots, even continuity can be sufficient. Indeed, straight paths and in-place rotations are often employed in robotics because they typically represent the shortest path [55]. Nonetheless, this type of motion necessitates the robot to come to a complete stop at each waypoint, leading to frequent acceleration and deceleration, which can result in increased travel time and wear and tear. As a result, continuous curves, specifically biarcs, provide an appealing compromise between smoothness and path planning simplicity
To the best of our knowledge, there are no documented instances of the use of biarcs as motion primitives for graph-based planners. Additionally, despite the maturity of the biarc literature, it often overlooks factors crucial for robotics, such as path length and degenerate cases [56, 57]. This section seeks to address this gap by presenting an analysis concentrated on aspects pertinent to path planning.
A biarc is a curve comprising two arcs of circles, as illustrated in Figure 1b. The centers of rotation for these two arcs are denoted as and , and the point at which the two arcs intersect is marked as joint point . The choice of the two arcs is made so that their tangents at point are collinear. The centers of rotation for the two arcs can be located either on the same side of the curve (as depicted in Figure 1a) or on opposite sides of the curve (as depicted in Figure 1b). A special case arises when the radius of rotation is infinite, resulting in a straight segment (as shown in Figure 1c). It is worth noting that both arcs can become straight segments, and, therefore, line segments are a subset of the biarc family. Lastly, when the two centers of rotation coincide (as seen in Figure 1d), the biarc is equivalent to a single arc of a circle.




Biarcs represent one of the simplest curve types that enable the specification of both initial position and orientation as well as final position and orientation. Notably, in the case of a single arc, it is not feasible to define the arrival orientation once the arrival position is determined. For biarcs, when provided with an initial position and orientation , and a final position and orientation there exists an infinite array of options for the selection of the joint point . To elaborate, let us establish the following definitions (as illustrated in Figure 2):

-
•
as the angle from the segment to the orientation of the robot in
-
•
as the angle from the segment to the orientation of the robot in
-
•
-
•
The unit vector as the direction from to
-
•
A unit vector orthogonal to as
-
•
The length of as
-
•
The midpoint of as , i.e.
-
•
The point as
(1)
If the initial and final directions are different, i.e., if , where , then can be selected from any of the points situated on the circle with its center at and a radius of . An example of this is illustrated in Figure 3. Detailed proofs can be found in [56]. In case the directions are the same (), then can be chosen from any point along the line .

Figure 4a illustrates how various biarcs, corresponding to different choices of , can be employed to transition from an initial position and orientation to a final position and orientation when . In contrast, Figure 4b demonstrates how different biarcs, corresponding to different choices of , can be utilized to move from an initial position and orientation to a final position with the same orientation .’


III Choosing the joint location for the initial planning
Next, we shall delve into the process of selecting the optimal . To commence, we will introduce the following additional definitions:
-
•
denotes the length of the arc from point to point .
-
•
signifies the length of the arc from point to point .
-
•
represents the total length of the biarc, i.e., .
-
•
is defined as the signed radius of the arc from point to point . A positive radius corresponds to counterclockwise rotation, while a negative radius corresponds to clockwise rotation.
-
•
is the signed radius of the arc from point to point . A positive radius indicates counterclockwise rotation, and a negative radius indicates clockwise rotation.
-
•
is defined as the signed curvature of the arc from point to point , calculated as .
-
•
represents the signed curvature of the arc from point to point , determined by the equation .
Minimizing the curvature discontinuity at the joint point is important in order to mitigate the acceleration demands placed on the robot. Nevertheless, when determining the optimal placement of to achieve reduced curvature discontinuity, it is essential to concurrently consider the path length. Notably, choices of that yield decreased curvature discontinuity may inadvertently result in excessively lengthy paths. The ensuing analysis will comprehensively investigate the disparities in curvature and path lengths associated with different selections, and elucidate the underlying rationale for the choice of adopted in this study.
In Section III-A, we will scrutinize the non-degenerate scenario where . Subsequently, in Section III-B, we will delve into the analysis of the degenerate case, characterized by .
III-A Choosing the joint location for the initial planning, non degenerate case
First, let us assume . Let us introduce the following additional definitions (as depicted in Figure 2):
-
•
is defined as the angle measured from to .
-
•
represents the angle measured from the segment to the orientation of the robot at point .
-
•
denotes the angle measured from the segment to the orientation of the robot at point .
-
•
is established as the angle measured from to the orientation of the robot at point . This angle is equivalent to the angle measured from to the orientation of the robot at point (as described in [58]).
-
•
is defined as the point of intersection with the circle of the line passing through with direction equal to the orientation of the robot in . Notably, coincides with when , where , that is when the orientation is tangential to the circle.
-
•
is similarly defined as the point of intersection with the circle of the line passing through with direction equal to the orientation of the robot in . Again for , , that is when the orientation is tangential to the circle.
-
•
is used to denote .
-
•
is designated as the angle from to . It can be established that .
-
•
is defined as the angle from to . It can be derived that .
Given these definitions it can be demonstrated [57] that:
(2) | |||||
(3) | |||||
(4) |
Upon examining Eq. 4, it becomes evident that exhibits local minima at , where . Specifically, the minimum occurs at when , and at when . In cases where (i.e. when ), both points yield the same absolute difference in curvature. As an example, Fig. 5a illustrates the variation in curvature while adjusting , with initial orientations set to and .
Let us now proceed to analyze the path length by applying the law of sines:
(5) | |||||
(6) |
Denoting by the unnormalized sinc function, we can write:
(7) | |||||
(8) |
If (which holds for ) then
(9) |
This reveals that the path length exhibits only two possible values as varies. Moreover, the minimum path length is achieved for all values of that fulfill the condition .
If , for , (and consequently, ) becomes infinite. It can be demonstrated that is synonymous with . Likewise, if (i.e., when ), we encounter infinite values for (and, consequently, ) when . In the case where , corresponding to , the path length is given by . When , indicating the choice of , the path length becomes .
The path length is a positive function of and exhibits a single discontinuity. It tends to infinity at (when ) or at (when ). In all other cases, the path length remains finite and reaches a minimum at (when ) or at (when ). Fig. 5b shows an example of path lengths obtained for .


Let us shift our attention to the path length for the two specific values of that correspond to local minima in the curvature difference: and . We will refer to the path length for as and to the path length for as . Numerical analysis reveals that, for any given biarc, , and that is smaller than for all biarcs with initial and final orientations in the range of . In contrast, exceeds only in situations where is already substantially large. To be specific, surpasses in all cases where is greater than . For this reason, although the minimum difference in curvature is achieved when when , in the following, we consistently choose for any biarc. In other terms, we choose the point so that it lies on the segment bisector of , on the right side of (facing B) when on the left when , and on itself when .
III-B Choosing the joint location for the initial planning, degenerate case
Now, let us consider the degenerate case, in which the initial and final orientation are identical (), resulting in the locus of forming a line. Let us parameterize in terms of , with defined as
(17) |
we thus have for and for .
Let us define and with such that .
The radii of curvature are
(18) | |||||
(19) |
and the curvature difference is
(20) |
If , the radii become infinite, and the curvatures are zero. Consequently, the curvature difference remains zero for any . If , for (i.e., ), the curvature becomes infinite, and for (i.e., ), the curvature becomes infinite. Thus, the curvature difference is infinite for either of these values of . Conversely, the curvature difference tends to zero as approaches infinity. It is worth noting that the curvature difference exhibits a local minimum at .
In the degenerate case, the lengths of the two arcs are given by:
(21) | |||||
(22) |
therefore the total length is:
and clearly for we have . An example illustrating how the path characteristics vary by changing for can be seen in Fig. 6.


Once again, we select due to it being a local minimum for the curvature difference while not resulting in an excessively long path. Also with this choice, point lies on the bisector of . Furthermore, Eq. 10 to 16 remain applicable. In particular, these equations for simplify to:
(23) | |||||
(24) | |||||
(25) | |||||
(26) | |||||
(27) | |||||
(28) |
IV Choosing the joint location for replanning
In most mobile robot applications, online replanning is a necessity due to various factors, including non-static obstacles in the environment and imperfections in the robot’s trajectory caused by sensing noise, slippage, terrain irregularities, and more. As a result, we assume periodic replanning from the robot’s current pose to the goal pose.
During replanning, it is highly desirable to keep the trajectory close to a previous plan. Drastic changes to the robot’s trajectory at each time step can lead to jerky movements. Therefore, the plan generated in the previous time step should serve as a reference for constructing the new plan.
At time , a trajectory comprising a sequence of biarcs is generated. The first biarc, denoted as , consists of two arcs, and , which guide the robot from its pose at to its pose at . At time , the robot is at pose . The objective is to plan a new biarc, referred to as , from to in a manner that maintains proximity to the previous biarc . Determining the closest biarc based on the squared distance between the two trajectories can be achieved through classical optimization techniques. However, this approach is computationally expensive. Therefore, we employ a heuristic method, as illustrated in Fig. 7.

Let represent the circle of which arc is a part. If is a straight segment (with zero curvature), then denotes the line that contains . Similarly, let denote the circle of which arc is a part or, in the case of being a straight segment, the line defined by and . In instances where represents a circle, refer to the center of as .
Let us consider a potential candidate for a biarc , designed to resemble the previous biarc . This candidate biarc consists of arcs and , with the condition that lies on and . This approach represents a particular case of a heuristic introduced in the field of curve approximation by [58]. With this choice, the chosen biarc and the original biarc overlap in their second arc. In Fig. 7, the previously planned biarc is represented by a dashed line. Biarc consists of arc , illustrated by a solid line, and arc , which is a segment of the original arc .
Let represent the locus of points where can be situated. As explained in Section II, if , then takes the form of a circle with the center , defined in Eq. 1, passing through point . However, if , then is represented by the line . With our definition of a similar biarc, must lie within the intersection of and . This intersection always includes at least one point, which is point . In the case where both and are not degenerate and , the position of can be calculated as follows:
(29) | |||||
(30) | |||||
(31) | |||||
(32) |
The example depicted in Fig. 7 illustrates this situation. If both and are circular and concentric, then coincides with , making any point a valid choice. In this scenario, we select corresponding to .
If takes the form of a line, while is a circle, then corresponds to the reflection of point over an axis that passes through and is perpendicular to the line . This operation can be computed efficiently as
(33) |
where represents the unit vector in the direction of . An illustrative example can be found in Figure 8a.
In a similar fashion, if is a circle and is a line, then can be determined as the reflection of point over an axis that passes through and is orthogonal to the line . The computation for finding in this case is also straightforward:
(34) |
where is the unit vector in the direction . An example is presented in Figure 8b.


If both and are lines, their only point of intersection is , rendering the existence of impossible. In this case, is determined using Eq. 23.
In most cases, selecting the biarc using the heuristic defined above results in good biarcs that resemble the original trajectory . However, there are instances where the obtained biarc is excessively long or contains arcs with very high curvature, as illustrated in Fig 9. If the biarc (depicted by a dashed line) is chosen as a reference for generating a biarc from to , the solid line biarc is obtained. Conversely, when a biarc is planned from to using , akin to the initial planning, the much more favorable dotted biarc is obtained.

Therefore, during the replanning process, a comparative analysis is conducted between the length and curvature difference of biarc and those of biarc . The length of can be calculated using Equations 12 and 13 when , or Equation 25 when . Similarly, the curvature difference of is determined using Equation 16 when , and Equation 28 when . To decide between choosing and , we introduce two parameters, and , both greater than 1. The selection criterion is based on the conditions or . In our experimental evaluations, we determined that setting yields favorable results.
V Collision detection
Biarcs were selected as motion primitives for a specific reason—this type of trajectory lends itself to efficient collision detection. When a generic curve is employed as a motion primitive, it necessitates sampling the robot’s position along the trajectory and subsequently calculating whether a collision occurs at each sampled point. As a result, the computational time scales roughly in proportion to the path length and the sampling resolution.
The primary benefit of using biarcs as motion primitives is the elimination of this sampling requirement. Collision detection with obstacles can be carried out through closed-form computations.
Specifically, collision detection for a biarc trajectory can be executed by checking for collisions in each of its two constituent arcs. Let’s consider a single arc commencing at position with orientation and terminating at position with orientation . In the case of a non-degenerate arc, we define the center of rotation as and the spanned angle as .
For the subsequent discussions, we assume that a convex polygonal hitbox is utilized to represent the robot. If the hitbox is concave, it can be subdivided into convex hitboxes, and the collision check can be performed for each of these components.
This hitbox can be defined by its vertices as , where when the robot is located at position . We can further define , and denote each edge as .
We make the assumption that obstacles in the environment are static. This assumption is supported by the characteristics of our setup, where collision detection can be performed within a single LIDAR scan (taking 50ms), and the robot operates at relatively low speeds (6 km/h).
We investigate collision scenarios involving the movement of the robot’s hitbox along an arc trajectory and its interaction with two types of obstacles. Section V-A focuses on point obstacles, which are a natural representation for LIDAR data. Section V-B addresses collisions with line (and line segments) obstacles, serving as a foundation for assessing collision with polygonal obstacles, lane edges, walls, and similar structures.
It is worth noting that when the map is known in advance and static obstacles can be represented as polygonal objects, LIDAR data collected during robot navigation can be selectively omitted from collision detection if they fall inside or in close proximity to the edges of these obstacles. This optimization can significantly accelerate the collision evaluation process.
V-A Collision detection for point obstacles
This section provides an efficient method for conducting collision detection between a convex polygonal hitbox in motion along an arc and a point.
Throughout the remainder of this section, point obstacles are represented by their coordinates, denoted as , . Two scenarios are distinguished: non-degenerate circular arc movements and straight-line movements.
V-A1 Collision detection for point obstacles, arc movement
Collisions may occur either because a point is initially inside the hitbox at the start of the arc or because it enters the hitbox through one of its edges. Consider a path composed of a sequence of biarcs . If no collision is detected for biarc , then it is guaranteed that no point can be inside the hitbox at the beginning of biarc . Therefore, the check for points inside the hitbox at the start of the arc only needs to be performed for the first arc of . In our setup the initial point of the first arc of corresponds to the current robot position. While it is physically impossible for obstacles to be inside the robot itself, there may still be obstacles within the hitbox, necessitating the check for the initial position of the first arc.
Checking whether any of the obstacle points reside inside the hitbox can be done by projecting each point along the normals of the edges , and checking whether it lies on the half-plane belonging to the hitbox.
Now, we will focus on determining if a point enters the hitbox through the edge while moving along the arc . For this analysis, let us assume that the robot is halfway through its movement along the arc, and we establish a reference frame with the origin at the center of rotation . In this context, we examine the line of which is a segment.
A point on this line can be parametrized as follows:
(35) |
where , is a unitary vector parallel to the line and is the perpendicular vector defined as
(36) |
Let and represent the coordinates of and , respectively. Now, let us examine the points on line where a point might enter the hitbox. If , there are no such points. If , then the only two possible (potentially coincident) entry points have coordinates . Each of these points serves as the entry point if and only if it satisfies the following inequalities:
Let us denote by and the coordinates of and , respectively. Let us now consider the points of the line through which a point may enter the hitbox. If then no such point exists. If then the only two (possibly coincident) possible points of entrance have coordinates . Each of such points is actually the point of entrance if and only if it satisfies the following inequalities:
(37) | |||||
(38) |
V-A2 Collision detection for point obstacles, straight movement
Let us denote by the vertices of the hitbox when the hitbox is at the arrival position . Consider the convex hull of the points in the set:
(39) |
Collision can be detected by checking whether any of the obstacle points falls inside this convex hull. It is worth noting that for rectangular hitboxes, the computation is straightforward as the convex hull is also a rectangle.
V-B Collision detection for line obstacles
Let us now turn our attention to the collision between a hitbox edge and an obstacle in the form of a line segment or a line. We use to denote the line of which is part of, and similarly, let line indicate the line of which is part of. If the obstacle is an (infinite) line obstacle, then will denote the obstacle itself. As we did for point obstacles, we distinguish the non-degenerate case from the degenerate case.
V-B1 Collision detection for line obstacles, arcs movement
Let us assume the radius of rotation is finite. Line rotates around the center of the arc , while line is static. We consider a frame of reference with the origin at the center of rotation . We apply a parametrization similar to the approach used in Section V-A1. Here, a generic point on line can be expressed as:
(40) |
In this equation, represents the displacement of the point along line , is a unitary vector parallel to line , and it is chosen such that is non-negative and denotes the distance of the line from the origin. The perpendicular vector is defined as:
(41) |
We establish a reference frame with its origin at point . The rotation acting on line can be described by a matrix , defined as:
(42) |
where
(43) | |||||
(44) | |||||
(45) | |||||
(46) |
In other words, we express as a composition of two rotations. First, with the right-hand matrix, we rotate to align it parallel to . Then, with the left-hand matrix, we apply an additional rotation with an angle whose half tangent is .
Let us define
-
1.
as the set of rotations for which intersect .
-
2.
as the set of rotation for which line intersect .
-
3.
as the set of rotations taken when the robot performs the arc of interest.
If the obstacle is a line segment , then collision with occurs if and only if
(47) |
If the obstacle is a line , the condition simplifies to
(48) |
The set is determined as follows. Let us define
(49) | |||
(50) |
where is the angle whose cosine is and whose sine is (see Eq. 43 and Eq. 44, respectively). With these definitions we can write:
(51) |
The determination of sets and is more involved. Using the line parametrization from Eq. 40 and the rotation parametrization from Eq.42, for a given rotation where , the point of intersection between the rotated line and line is determined as follows:
(52) | |||||
(53) |
In the case of , the lines either coincide and intersect at any point, or they are parallel and have no intersection.
When considering a coordinate such that , two rotations, denoted as and , result in this coordinate being an intersection. These rotations are calculated as follows:
(54) | |||||
(55) |
Likewise, a coordinate with can be an intersection by performing the rotation:
(56) | |||||
(57) |
Let us denote the coordinates of the points and on according to Eq. 40 as
(58) | |||||
(59) |
and denote the corresponding values of , computed using Eq. 55 and Eq. 54 as . In an analogous way, let us express the coordinates of and on as and , with associated values .
Let us now consider how the intersection point moves over the lines when rotating . The first order derivatives of and with respect to are given by
(60) | |||||
(61) |
and the second order derivatives are
(62) |
From these derivatives we evince that the computation of and requires distinguishing three cases based on the values of and : when , when , and when .
In the case where (as shown in Fig. 10a), the following holds:
(63) | |||||
(64) | |||||
(65) |
Collision occurs inside the segment for the following range of values:
(66) |
In the case of line , we have the following limit values:
(67) | |||||
(68) |
The derivative of with respect to is zero at two points:
(69) | |||||
(70) |
with
(71) |
At , there is a local minimum with , and at , there is a local maximum with , where
(72) |
From this analysis, we can deduce that the intervals of rotations that result in a collision for segment are as follows:
(73) |
In the scenario where , as depicted in Fig. 10b, the following observations can be made. At , all points intersect because and overlap. For :
(74) | |||||
(75) | |||||
(76) |
Consequently, for the case of , the intervals of collisions are as follows:
(77) | |||||
(78) |
The remaining possibility is depicted in Fig. 10c. In this case the following holds:
(79) | |||||
(80) | |||||
(81) |
and for
(82) | |||||
(83) |
with
(84) |
We thus have a local maximum at and a local minimum at , with where
(85) |
The intervals of collision for segment are
(86) |
Considering line we have:
(87) | |||||
(88) | |||||
(89) |
and thus
(90) |
From the results of this section it follows that the determination of whether an edge of the robot collides with a line during an arc movement can be accomplished without iterative computation. Once (Eq.51), (Eq.66, Eq.77, or Eq.86), and (Eq.73, Eq.78, or Eq.90) are computed, Eq.47 or Eq. 48 provides a collision test.


]

It is worth noting that while the above formulation are more efficient computationally, Eq. 54 to 57 can also be interpreted geometrically for a more intuitive understanding. For instance Eq. 54 can be rewritten as:
(91) | |||||
(92) |
By introducing the angles
(93) | |||||
(94) | |||||
(95) |
and noting that
(96) |
we can interpret as the tangent of half of the angle
(97) |
This interpretation offers a geometric visualization of how relates to angles and trigonometric functions, as illustrated in Figure 11. In a similar manner, , , and can be interpreted as the tangents of half of the following angles:
(98) | |||||
(99) | |||||
(100) |

V-B2 Collision detection for line obstacles, straight movement
In line with the method outlined in Section V-A2, the convex hull of the union of the vertices from both the initial position () and the final position () of the hitbox is computed. Let us denote by , the vertices of the convex hull (which are a subset of the vertices of defined in Eq 39). Let us also order the vertices such that is an edge of the convex hull and define .
If the obstacle is a line segment , the hyperplane separation theorem offers a criterion for collision detection. It is sufficient to find one direction in which the projections of , and the projection of do not overlap. Candidate directions are given by the normals to , and the normal to . If intersection occurs for all of these directions, collision is confirmed.
If the obstacle is a (infinite) line passing through , collision detection simplifies. It is sufficient to check the projection of the points in onto the normal of this line, denoted as . Collision occurs when there are points on both side of the line, i.e. when
VI Experiments
Among planners leveraging motion primitives, conformal lattice planners [60] have demonstrated suitability for scenarios involving predetermined routes, where online planning is primarily employed for avoiding unforeseen obstacles. Alternatively, these planners can also be applied to modify a path created by a higher-level planner that operates less frequently. The computation within conformal lattice planners is anticipated to occur onboard in a reactive manner. This scenario is expected to greatly benefit from motion primitives requiring low computational effort. Therefore, we selected conformal lattice planners as the testbed for our motion primitives.
Specifically, let us assume the predefined path comprises a series of waypoints, with each waypoint being defined by a 2D position and an orientation , , . To create a lattice from this initial set of poses, we establish positions according to the formula:
(103) |
where and represents the step size (in our implementation, ). Additionally, we assume that all positions should be reached with the same orientation .
In the lattice, each node , where , corresponds to a physical world waypoint denoted as . Here, we assume that , with representing the maximum expansion of the lattice on each side. We permit only edges in the form of to to exist. To these edges, we assign a cost of if the edge is collision-free, and infinite cost if it leads to collisions. This cost assignment gives preference to collision-free paths that closely follow the provided waypoints.
Classic A* is used to perform planning on this lattice. For each node in the lattice, the heuristic function is set as . We assume the current robot position is connected to all nodes , with . The value of , with , is updated based on the robot’s progress along the lattice. All nodes , where , , and , are designated as goal nodes. The specific value of depends on the planning horizon, which is determined as follows: If the distance from to is less than , then . Otherwise, is set as the minimum for which the distance from to is greater than , where denotes the planning horizon.
The search is carried out iteratively with increasing values of until a solution is discovered or a predefined threshold is reached. In our implementation, this threshold is set to 15. Since each graph is a supergraph of the previous one, caching of the edge costs is implemented to expedite computation.
Additional speed improvements are achieved by assuming that the environment experiences limited changes between consecutive planning requests. This means that the previous planning is assumed to be still valid unless there are alterations in the waypoints, which might be dynamic and provided by an additional global planner.
In detail, we update the values of and to and based on the most recent robot position. Subsequently, a new path is composed by concatenating the following components:
-
•
the biarc from the current position to the previously selected , computed using the algorithm explained in Section IV, using the arc leading to as a reference.
-
•
all the biarcs of the previous plan from to
-
•
(possibly) new biarcs from that connect to passing through for .
The revised trajectory is subject to collision checking, and if no collisions are detected, it is accepted as the new plan. In case of collisions, a fresh plan is generated using the A* method as previously outlined. This strategy has the disadvantage of potentially yielding suboptimal paths when dealing with obstacles that transiently intersect the robot’s path. Nevertheless, it offers significant computational speed enhancements and helps mitigate the abrupt and erratic changes in movement that arise from frequent switching between multiple paths due to minor variations in obstacle positions as detected by the LIDAR sensors.
To ensure easily comparable and reproducible outcomes, the planner described previously was assessed using MRPB, a publicly available benchmark for local mobile robot planning detailed in [61]. The evaluation employed default settings for the test robot, DWA and TEB parameters, and other relevant configurations available in the standard MRPB testing suite. The robot’s hitbox was configured as a square with dimensions of 34 cm within our planner. Waypoints were generated by sampling the path provided by the global planner at 0.5 m intervals. The planning horizon was set to 25 m for our planner. All experiments were conducted on a workstation featuring an Intel I9-9900K processor operating at 3.6 GHz, coupled with 32 GB of RAM.
The results are presented in Table I. The columns provide information on the environment (map), the initial and goal positions (test), the utilized planner, the planning time (denoted as in [61]), the path length (represented as in [61]), the time required to reach the goal (referred to as in [61]), and the closest distance of the robot to the obstacles (listed under the prox column and corresponding to in [61]).
The results indicate that the planning time of our approach is significantly faster by two orders of magnitude compared to commonly used ROS planners. Although the path length in our planner is generally longer, the time it takes to reach the goal is comparable. It is worth emphasizing that many ROS planners optimize path length by taking shortcuts with respect to the global plan. This shortcut behavior is undesirable in many specific applications, where maintaining proximity to the global plan is crucial.
map | test | planner | plan [ms] | path [m] | time [s] | prox [m] |
---|---|---|---|---|---|---|
maze | 1 | biarc | 0.013 | 46.04 | 119.84 | 0.32 |
maze | 1 | dwa | 7.995 | 40.67 | 92.87 | 0.28 |
maze | 1 | teb | 6.473 | 43.06 | 114.28 | 0.33 |
maze | 2 | biarc | 0.012 | 43.82 | 94.78 | 0.40 |
maze | 2 | dwa | 7.588 | 40.34 | 89.92 | 0.27 |
maze | 2 | teb | 6.893 | 42.15 | 107.94 | 0.31 |
maze | 3 | biarc | 0.019 | 46.21 | 103.76 | 0.23 |
maze | 3 | dwa | 7.533 | 40.15 | 96.19 | 0.29 |
maze | 3 | teb | 6.927 | 42.53 | 117.83 | 0.33 |
narrow graph | 1 | biarc | 0.015 | 32.10 | 68.60 | 0.33 |
narrow graph | 1 | dwa | 6.737 | 28.76 | 67.29 | 0.27 |
narrow graph | 1 | teb | 11.920 | 30.99 | 87.92 | 0.33 |
narrow graph | 2 | biarc | 0.015 | 32.14 | 68.97 | 0.29 |
narrow graph | 2 | dwa | 7.538 | 28.24 | 62.00 | 0.26 |
narrow graph | 2 | teb | 8.212 | 29.44 | 71.87 | 0.32 |
narrow graph | 3 | biarc | 0.012 | 29.07 | 68.67 | 0.26 |
narrow graph | 3 | dwa | 6.562 | 25.29 | 62.05 | 0.28 |
narrow graph | 3 | teb | 12.503 | 26.66 | 73.04 | 0.37 |
office01add | 1 | biarc | 0.005 | 18.54 | 41.35 | 0.39 |
office01add | 1 | dwa | 8.017 | 17.78 | 40.87 | 0.30 |
office01add | 1 | teb | 7.185 | 18.23 | 42.14 | 0.38 |
office01add | 2 | biarc | 0.778 | 17.87 | 49.63 | 0.28 |
office01add | 2 | dwa | 6.872 | 16.00 | 42.90 | 0.32 |
office01add | 2 | teb | 7.236 | 16.88 | 45.29 | 0.31 |
office01add | 3 | biarc | 0.244 | 16.10 | 39.66 | 0.25 |
office01add | 3 | dwa | 7.161 | 15.32 | 43.51 | 0.26 |
office01add | 3 | teb | 10.228 | 16.80 | 46.08 | 0.31 |
office02 | 1 | biarc | 0.003 | 30.00 | 74.46 | 0.39 |
office02 | 1 | dwa | 9.075 | 29.05 | 71.67 | 0.28 |
office02 | 1 | teb | 4.625 | 29.49 | 73.99 | 0.30 |
office02 | 2 | biarc | 0.006 | 32.77 | 77.74 | 0.33 |
office02 | 2 | dwa | 8.223 | 31.65 | 79.76 | 0.27 |
office02 | 2 | teb | 5.845 | 32.39 | 86.62 | 0.31 |
office02 | 3 | biarc | 0.006 | 35.85 | 88.43 | 0.34 |
office02 | 3 | dwa | 8.975 | 34.26 | 83.00 | 0.31 |
office02 | 3 | teb | 4.074 | 35.24 | 85.51 | 0.39 |
room02 | 1 | biarc | 1.005 | 17.93 | 41.68 | 0.28 |
room02 | 1 | dwa | 8.102 | 15.99 | 36.96 | 0.34 |
room02 | 1 | teb | 4.916 | 16.47 | 37.54 | 0.33 |
room02 | 2 | biarc | 0.029 | 16.10 | 37.83 | 0.35 |
room02 | 2 | dwa | 7.274 | 14.02 | 34.68 | 0.29 |
room02 | 2 | teb | 7.382 | 15.13 | 45.15 | 0.34 |
room02 | 3 | biarc | 0.013 | 14.42 | 32.56 | 0.44 |
room02 | 3 | dwa | 9.383 | 13.28 | 31.52 | 0.30 |
room02 | 3 | teb | 4.559 | 13.58 | 29.96 | 0.33 |
shopping mall | 1 | biarc | 0.010 | 50.22 | 124.37 | 0.46 |
shopping mall | 1 | dwa | 9.275 | 46.66 | 113.10 | 0.30 |
shopping mall | 1 | teb | 4.394 | 48.27 | 123.12 | 0.37 |
shopping mall | 2 | biarc | 0.021 | 53.39 | 134.01 | 0.39 |
shopping mall | 2 | dwa | 8.564 | 49.44 | 122.02 | 0.31 |
shopping mall | 2 | teb | 4.279 | 50.88 | 127.17 | 0.35 |
shopping mall | 3 | biarc | 0.004 | 50.13 | 122.30 | 0.50 |
shopping mall | 3 | dwa | 8.740 | 48.33 | 118.52 | 0.33 |
shopping mall | 3 | teb | 3.964 | 49.39 | 118.38 | 0.37 |
six people | 1 | biarc | 0.048 | 13.94 | 34.90 | 0.33 |
six people | 1 | dwa | 7.106 | 13.20 | 34.00 | 0.28 |
six people | 1 | teb | 7.825 | 14.17 | 37.85 | 0.25 |
track | 1 | biarc | 0.004 | 74.83 | 161.72 | 0.21 |
track | 1 | dwa | 8.000 | 69.84 | 146.38 | 0.28 |
track | 1 | teb | 9.471 | 72.42 | 165.67 | 0.32 |
VII Conclusions
In this paper, our primary focus was on enhancing planning efficiency by strategically choosing motion primitives. More specifically, we opted for biarcs as our motion primitives, enabling collision detection without the need for extensive sampling of the robot’s trajectory.
We conducted a review of biarcs, paying particular attention to how the selection of the joint point location impacts both path length and curvature discontinuity. Our investigation led us to identify the equal-chord biarc as a favorable compromise between these two factors. Additionally, we introduced a heuristic for determining the joint location when we need a biarc to approximate another pre-defined biarc, which is a common scenario in the incremental updating of plans.
Subsequently, we presented collision detection criteria for robot paths composed of biarcs, considering scenarios with a polygonal hitbox and three types of obstacles: points, line segments, and lines. Our analysis demonstrated that each case demands very limited computational resources.
We conducted an analysis of a conformal lattice motion planner paired with biarc motion primitives within a publicly available benchmarking suite for local motion planners. Our findings indicate that our planner offers performance comparable to commonly used open-source motion planners while significantly reducing computation time.
A significant limitation of the current approach is its exclusive focus on collision detection without considering the minimum distance to obstacles. Depending on the application, incorporating this information in the weights of graph edges may be required. Future work should prioritize extending the results presented in Section V to compute this additional information.
Furthermore, our current approach only considers static objects, and while it is a reasonable assumption in our application, it is crucial to explore this extensions in other fields, such as self-driving cars that navigate in public road traffic.
Another limitation to address is that biarcs are only continuous. This discontinuity in curvature at the joint point could be problematic for Ackermann steering platforms and fast-moving robots, potentially imposing undesired stress on the powertrain. One promising improvement is to replace the central section of the biarc with a clothoid. By limiting the length of the clothoid section, it may be possible to reduce the number of robot positions that need to be sampled and checked for collisions. Future work will involve testing the performance of this solution, which is expected to provide smoother curves without significantly increasing planning time.
References
- [1] T. T. Mac, C. Copot, D. T. Tran, and R. De Keyser, “Heuristic approaches in robot path planning: A survey,” Robotics and Autonomous Systems, vol. 86, pp. 13–28, 2016.
- [2] A. Vagale, R. Oucheikh, R. T. Bye, O. L. Osen, and T. I. Fossen, “Path planning and collision avoidance for autonomous surface vehicles i: a review,” Journal of Marine Science and Technology, pp. 1–15, 2021.
- [3] H. Sun, W. Zhang, R. Yu, and Y. Zhang, “Motion planning for mobile robots—focusing on deep reinforcement learning: A systematic review,” IEEE Access, vol. 9, pp. 69 061–69 081, 2021.
- [4] J. Borenstein and Y. Koren, “Real-time obstacle avoidance for fast mobile robots,” IEEE Transactions on systems, Man, and Cybernetics, vol. 19, no. 5, pp. 1179–1187, 1989.
- [5] J. Borenstein, Y. Koren, et al., “The vector field histogram-fast obstacle avoidance for mobile robots,” IEEE transactions on robotics and automation, vol. 7, no. 3, pp. 278–288, 1991.
- [6] I. Ulrich and J. Borenstein, “Vfh+: Reliable obstacle avoidance for fast mobile robots,” in Proceedings. 1998 IEEE international conference on robotics and automation (Cat. No. 98CH36146), vol. 2. IEEE, 1998, pp. 1572–1577.
- [7] J. Minguez and L. Montano, “Nearness diagram (nd) navigation: collision avoidance in troublesome scenarios,” IEEE Transactions on Robotics and Automation, vol. 20, no. 1, pp. 45–59, 2004.
- [8] L. Singh, H. Stephanou, and J. Wen, “Real-time robot motion control with circulatory fields,” in Proceedings of IEEE International Conference on Robotics and Automation, vol. 3. IEEE, 1996, pp. 2737–2742.
- [9] C. I. Connolly, J. B. Burns, and R. Weiss, “Path planning using laplace’s equation,” in Proceedings., IEEE International Conference on Robotics and Automation. IEEE, 1990, pp. 2102–2106.
- [10] H. Heidari and M. Saska, “Collision-free trajectory planning of multi-rotor uavs in a wind condition based on modified potential field,” Mechanism and Machine Theory, vol. 156, p. 104140, 2021.
- [11] J. Agirrebeitia, R. Avilés, I. F. De Bustos, and G. Ajuria, “A new apf strategy for path planning in environments with obstacles,” Mechanism and Machine Theory, vol. 40, no. 6, pp. 645–658, 2005.
- [12] J. Connors and G. Elkaim, “Analysis of a spline based, obstacle avoiding path planning algorithm,” in 2007 IEEE 65th Vehicular Technology Conference-VTC2007-Spring. IEEE, 2007, pp. 2565–2569.
- [13] B. Lau, C. Sprunk, and W. Burgard, “Kinodynamic motion planning for mobile robots using splines,” in 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2009, pp. 2427–2433.
- [14] C. Sprunk, B. Lau, P. Pfaffz, and W. Burgard, “Online generation of kinodynamic trajectories for non-circular omnidirectional robots,” in 2011 IEEE International Conference on Robotics and Automation. IEEE, 2011, pp. 72–77.
- [15] C. Sprunk, B. Lau, and W. Burgard, “Improved non-linear spline fitting for teaching trajectories to mobile robots,” in 2012 IEEE International Conference on Robotics and Automation. IEEE, 2012, pp. 2068–2073.
- [16] S. Quinlan and O. Khatib, “Elastic bands: Connecting path planning and control,” in [1993] Proceedings IEEE International Conference on Robotics and Automation. IEEE, 1993, pp. 802–807.
- [17] F. Lamiraux, D. Bonnafous, and O. Lefebvre, “Reactive path deformation for nonholonomic mobile robots,” IEEE transactions on robotics, vol. 20, no. 6, pp. 967–977, 2004.
- [18] H. Kurniawati and T. Fraichard, “From path to trajectory deformation,” in IROS 2007, 12 2007, pp. 159 – 164.
- [19] T. Fraichard and V. Delsart, “Navigating dynamic environments with trajectory deformation,” Journal of Computing and Information Technology, vol. 17, no. 1, pp. 27–36, 2009.
- [20] C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann, and T. Bertram, “Efficient trajectory optimization using a sparse model,” in 2013 European Conference on Mobile Robots. IEEE, 2013, pp. 138–143.
- [21] D. Fox, W. Burgard, and S. Thrun, “The dynamic window approach to collision avoidance,” IEEE Robotics & Automation Magazine, vol. 4, no. 1, pp. 23–33, 1997.
- [22] O. Brock and O. Khatib, “High-speed navigation using the global dynamic window approach,” in Proceedings 1999 ieee international conference on robotics and automation (Cat. No. 99CH36288C), vol. 1. IEEE, 1999, pp. 341–346.
- [23] R. Simmons, “The curvature-velocity method for local obstacle avoidance,” in Proceedings of IEEE international conference on robotics and automation, vol. 4. IEEE, 1996, pp. 3375–3382.
- [24] T. M. Quasny, L. D. Pyeatt, and J. L. Moore, “Curvature-velocity method for differentially steered robots.” in Modelling, Identification and Control, 2003, pp. 618–622.
- [25] S. Rabiee and J. Biswas, “Ivoa: Introspective vision for obstacle avoidance,” in 2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2019, pp. 1230–1235.
- [26] Z. Wang, X. Xiao, A. J. Nettekoven, K. Umasankar, A. Singh, S. Bommakanti, U. Topcu, and P. Stone, “From agile ground to aerial navigation: Learning from learned hallucination,” in 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2021, pp. 148–153.
- [27] Z. Xie and P. Dames, “Drl-vo: Learning to navigate through crowded dynamic scenes using velocity obstacles,” arXiv preprint arXiv:2301.06512, 2023.
- [28] A. B. Suryawanshi, M. B. Joshi, B. Dasgupta, and A. Biswas, “Domain mapping as an expeditionary strategy for fast path planning,” Mechanism and machine theory, vol. 38, no. 11, pp. 1237–1256, 2003.
- [29] S. M. LaValle, “Rapidly-exploring random trees : a new tool for path planning,” The annual research report, 1998.
- [30] I. Noreen, A. Khan, and Z. Habib, “Optimal path planning using rrt* based approaches: a survey and future directions,” International Journal of Advanced Computer Science and Applications, vol. 7, no. 11, 2016.
- [31] L. E. Kavraki, P. Svestka, J.-C. Latombe, and M. H. Overmars, “Probabilistic roadmaps for path planning in high-dimensional configuration spaces,” IEEE transactions on Robotics and Automation, vol. 12, no. 4, pp. 566–580, 1996.
- [32] X. Li, X. Gao, W. Zhang, and L. Hao, “Smooth and collision-free trajectory generation in cluttered environments using cubic b-spline form,” Mechanism and Machine Theory, vol. 169, p. 104606, 2022.
- [33] A. B. Essaidi, M. Haddad, and H. Lehtihet, “Minimum-time trajectory planning under dynamic constraints for a wheeled mobile robot with a trailer,” Mechanism and Machine Theory, vol. 169, p. 104605, 2022.
- [34] A. Stentz, “Optimal and efficient path planning for partially known environments,” in Intelligent unmanned ground vehicles. Springer, 1997, pp. 203–220.
- [35] S. Koenig and M. Likhachev, “Incremental a*,” Advances in neural information processing systems, vol. 14, 2001.
- [36] ——, “D^* lite,” Aaai/iaai, vol. 15, pp. 476–483, 2002.
- [37] R. Bohlin and L. E. Kavraki, “Path planning using lazy prm,” in Proceedings 2000 ICRA. Millennium conference. IEEE international conference on robotics and automation. Symposia proceedings (Cat. No. 00CH37065), vol. 1. IEEE, 2000, pp. 521–528.
- [38] B. Cohen, M. Phillips, and M. Likhachev, “Planning single-arm manipulations with n-arm robots,” in Proceedings of Robotics: Science and Systems, Berkeley, USA, July 2014.
- [39] K. Hauser, “Lazy collision checking in asymptotically-optimal motion planning,” in 2015 IEEE international conference on robotics and automation (ICRA). IEEE, 2015, pp. 2951–2957.
- [40] C. Dellin and S. Srinivasa, “A unifying formalism for shortest path problems with expensive edge evaluations via lazy best-first search over paths with edge selectors,” in Proceedings of the International Conference on Automated Planning and Scheduling, vol. 26, 2016, pp. 459–467.
- [41] J. Lim, S. Srinivasa, and P. Tsiotras, “Lazy lifelong planning for efficient replanning in graphs with expensive edge evaluation,” in 2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2022, pp. 8778–8783.
- [42] G. Sandel, “Zur geometrie der korbbögen.” ZAMM-Journal of Applied Mathematics and Mechanics/Zeitschrift für Angewandte Mathematik und Mechanik, vol. 17, no. 5, pp. 301–302, 1937.
- [43] D. Meek and D. Walton, “The family of biarcs that matches planar, two-point g1 hermite data,” Journal of Computational and Applied Mathematics, vol. 212, no. 1, pp. 31–45, 2008.
- [44] Y.-J. Kim, Y.-T. Oh, S.-H. Yoon, M.-S. Kim, and G. Elber, “Precise hausdorff distance computation for planar freeform curves using biarcs and depth buffer,” The Visual Computer, vol. 26, no. 6, pp. 1007–1016, 2010.
- [45] W. Wang and B. Joe, “Orientation interpolation in quaternion space using spherical biarcs,” in Proceedings-Graphics Interface. Canada, 1993.
- [46] K. Bolton, “Biarc curves,” Computer-aided design, vol. 7, no. 2, pp. 89–92, 1975.
- [47] M. A. Sabin, The use of piecewise forms for the numerical representation of shape. MTA Számítástechnikai és Automatizálási Kutató Intézet, 1977, no. 60.
- [48] D. S. Meek and D. J. Walton, “Approximation of discrete data by g1 arc splines,” Computer-Aided Design, vol. 24, no. 6, pp. 301–306, 1992.
- [49] D. Parkinson, “Optimised biarc curves with tension,” Computer Aided Geometric Design, vol. 9, no. 3, pp. 207–218, 1992.
- [50] D. Walton and D. Meek, “Approximation of a planar cubic bézier spiral by circular arcs,” Journal of Computational and Applied Mathematics, vol. 75, no. 1, pp. 47–56, 1996.
- [51] A. Kurnosenko, “Biarcs and bilens,” Computer Aided Geometric Design, vol. 30, no. 3, pp. 310–330, 2013.
- [52] A. Naik, “Arc path collision avoidance algorithm for autonomous ground vehicles,” Ph.D. dissertation, Virginia Tech, 2005.
- [53] H. Ren and F. Katsuki, “Circular arc based obstacle avoiding blending trajectory plan,” in 2020 5th International Conference on Control and Robotics Engineering (ICCRE). IEEE, 2020, pp. 15–18.
- [54] S. Arita and P. Raksincharoensak, “Optimal path construction incorporating a biarc interpolation and smooth path following for automobiles,” SICE Journal of Control, Measurement, and System Integration, vol. 13, no. 2, pp. 23–29, 2020.
- [55] P. R. Wurman, R. D’Andrea, and M. Mountz, “Coordinating hundreds of cooperative, autonomous vehicles in warehouses,” AI magazine, vol. 29, no. 1, pp. 9–9, 2008.
- [56] A. W. Nutbourne and R. R. Martin, Differential geometry applied to curve and surface design. E. Horwood, 1988, vol. 1.
- [57] B.-Q. Su and D.-Y. Liu, Computational geometry: curve and surface modeling. Elsevier, 2014.
- [58] Z. Šír, R. Feichtinger, and B. Jüttler, “Approximating curves and their offsets using biarcs and pythagorean hodograph quintics,” Computer-Aided Design, vol. 38, no. 6, pp. 608–618, 2006.
- [59] J. Schönherr, “Smooth biarc curves,” Computer-Aided Design, vol. 25, no. 6, pp. 365–370, 1993.
- [60] M. McNaughton, C. Urmson, J. M. Dolan, and J.-W. Lee, “Motion planning for autonomous driving with a conformal spatiotemporal lattice,” in 2011 IEEE International Conference on Robotics and Automation. IEEE, 2011, pp. 4889–4895.
- [61] J. Wen, X. Zhang, Q. Bi, Z. Pan, Y. Feng, J. Yuan, and Y. Fang, “Mrpb 1.0: A unified benchmark for the evaluation of mobile robot local planning approaches,” in 2021 IEEE international conference on robotics and automation (ICRA). IEEE, 2021, pp. 8238–8244.