This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Efficient Collision Detection Oriented Motion Primitives for Path Planning

DallaLibera Fabio1, Abe Shinya1, and Ando Takeshi1 1Panasonic Holdings Corporation, Manufacturing Innovation Division, Robotics Promotion Office, Kadoma City, Osaka, Japan [email protected]Digital Object Identifier (DOI): see top of this page.
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, Biarc

I 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 G1G_{1} continuity, whereas G2G_{2} continuity is a prerequisite for Ackermann steering. However, it is worth noting that while G2G_{2} 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 G0G_{0} 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, G1G_{1} 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 CAC_{A} and CBC_{B}, and the point at which the two arcs intersect is marked as joint point JJ. The choice of the two arcs is made so that their tangents at point JJ 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.

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Figure 1: Examples of biarc curves. CAC_{A} and CBC_{B} indicate the two arcs centers. The joint point is denoted by JJ. In panel (c) the point CBC_{B} is at infinity.

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 AA and orientation θA\theta_{A}, and a final position BB and orientation θB\theta_{B} there exists an infinite array of options for the selection of the joint point JJ. To elaborate, let us establish the following definitions (as illustrated in Figure 2):

Refer to caption
Figure 2: Notation used throughout the paper. θA\theta_{A} and θB\theta_{B} are the orientations with respect to the global frame, ϕA\phi_{A} and ϕB\phi_{B} are the orientations with respect to the chord connecting the initial and final position, δA\delta_{A} and δB\delta_{B} are the orientations with respect to the chords connecting the biarc extremes to the joint point. ζ\zeta is the orientation with respect to the radius, γ\gamma is the difference between the final and initial orientation, α\alpha is used to parametrize the joint location, and αHA\alpha_{H_{A}} and αHB\alpha_{H_{B}} are the angles for which the joint is placed along the initial and final orientation, respectively.
  • π<ϕAπ-\pi<\phi_{A}\leq\pi as the angle from the segment ABAB to the orientation of the robot in AA

  • π<ϕBπ-\pi<\phi_{B}\leq\pi as the angle from the segment ABAB to the orientation of the robot in BB

  • γ=ϕBϕA\gamma=\phi_{B}-\phi_{A}

  • The unit vector 𝒖=[uxuy]\bm{u}=\left[\begin{matrix}u_{x}\\ u_{y}\end{matrix}\right] as the direction from AA to BB

  • A unit vector 𝒗\bm{v} orthogonal to 𝒖\bm{u} as 𝒗=[uyux]\bm{v}=\left[\begin{matrix}-u_{y}\\ u_{x}\end{matrix}\right]

  • The length of ABAB as |AB||AB|

  • The midpoint of ABAB as MM, i.e. M=A+|AB|2𝒖M=A+\frac{|AB|}{2}\bm{u}

  • The point CC as

    C\displaystyle C =\displaystyle= {M+|AB|2𝒗tan(γ2)if γkπkMif γ=π+k2π\displaystyle\begin{cases}M+\frac{|AB|}{2}\frac{\bm{v}}{\tan\left(\frac{\gamma}{2}\right)}&\text{if }\gamma\neq k\pi$, $k\in\mathbb{Z}\\ M&\text{if }\gamma=\pi+k2\pi\end{cases} (1)

If the initial and final directions are different, i.e., if γk2π\gamma\neq k2\pi, where kk\in\mathbb{Z}, then JJ can be selected from any of the points situated on the circle with its center at CC and a radius of |AC|=|BC||AC|=|BC|. An example of this is illustrated in Figure 3. Detailed proofs can be found in [56]. In case the directions are the same (γ=k2π\gamma=k2\pi), then JJ can be chosen from any point along the line ABAB.

Refer to caption
Figure 3: A biarc is composed of two arcs. The first arc is part of a circle cAc_{A} with center CAC_{A}. The second arc is part of a circle cBc_{B} with center CBC_{B}. The locus of the joint point is a circle cc with center CC. In the limit case, each of these three circles can have an infinite radius and become a line.

Figure 4a illustrates how various biarcs, corresponding to different choices of JJ, can be employed to transition from an initial position and orientation A,θAA,\theta_{A} to a final position and orientation B,θBB,\theta_{B} when γk2π\gamma\neq k2\pi. In contrast, Figure 4b demonstrates how different biarcs, corresponding to different choices of JJ, can be utilized to move from an initial position and orientation A,θAA,\theta_{A} to a final position with the same orientation B,θAB,\theta_{A}.’

Refer to caption
(a)
Refer to caption
(b)
Figure 4: Examples of potential trajectories between a specific pair of initial and final positions and orientations. (a) illustrates the non-degenerate case (γk2π\gamma\neq k2\pi, kk\in\mathbb{Z}), while (b) presents the degenerate case (kk\in\mathbb{Z}). It is noteworthy that the degenerate case frequently occurs in practical scenarios, where the initial or final orientations are often coincident.

III Choosing the joint location for the initial planning

Next, we shall delve into the process of selecting the optimal JJ. To commence, we will introduce the following additional definitions:

  • lA=|AJ|l_{A}=|\stackrel{{\scriptstyle\frown}}{{AJ}}| denotes the length of the arc from point AA to point JJ.

  • lB=|JB|l_{B}=|\stackrel{{\scriptstyle\frown}}{{JB}}| signifies the length of the arc from point JJ to point BB.

  • ll represents the total length of the biarc, i.e., l=lA+lBl=l_{A}+l_{B}.

  • rAr_{A} is defined as the signed radius of the arc from point AA to point JJ. A positive radius corresponds to counterclockwise rotation, while a negative radius corresponds to clockwise rotation.

  • rBr_{B} is the signed radius of the arc from point JJ to point BB. A positive radius indicates counterclockwise rotation, and a negative radius indicates clockwise rotation.

  • kAk_{A} is defined as the signed curvature of the arc from point AA to point JJ, calculated as kA=1rAk_{A}=\frac{1}{r_{A}}.

  • kBk_{B} represents the signed curvature of the arc from point JJ to point BB, determined by the equation kB=1rBk_{B}=\frac{1}{r_{B}}.

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 JJ to achieve reduced curvature discontinuity, it is essential to concurrently consider the path length. Notably, choices of JJ 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 JJ selections, and elucidate the underlying rationale for the choice of JJ adopted in this study.

In Section III-A, we will scrutinize the non-degenerate scenario where γk2π\gamma\neq k2\pi. Subsequently, in Section III-B, we will delve into the analysis of the degenerate case, characterized by γ=k2π\gamma=k2\pi.

III-A Choosing the joint location for the initial planning, non degenerate case

First, let us assume γk2π\gamma\neq k2\pi. Let us introduce the following additional definitions (as depicted in Figure 2):

  • α\alpha is defined as the angle measured from CMCM to CJCJ.

  • πδA<π-\pi\leq\delta_{A}<\pi represents the angle measured from the segment AJAJ to the orientation of the robot at point AA.

  • πδB<π-\pi\leq\delta_{B}<\pi denotes the angle measured from the segment JBJB to the orientation of the robot at point BB.

  • ζ\zeta is established as the angle measured from ACAC to the orientation of the robot at point AA. This angle is equivalent to the angle measured from BCBC to the orientation of the robot at point BB (as described in [58]).

  • HAH_{A} is defined as the point of intersection with the circle of the line passing through AA with direction equal to the orientation of the robot in AA. Notably, HAH_{A} coincides with AA when ζ=π2+kπ\zeta=\frac{\pi}{2}+k\pi, where kk\in\mathbb{Z}, that is when the orientation is tangential to the circle.

  • HBH_{B} is similarly defined as the point of intersection with the circle of the line passing through BB with direction equal to the orientation of the robot in BB. Again HB=BH_{B}=B for ζ=π2+kπ\zeta=\frac{\pi}{2}+k\pi, kk\in\mathbb{Z}, that is when the orientation is tangential to the circle.

  • ϕM\phi_{M} is used to denote ϕA+ϕB2\frac{\phi_{A}+\phi_{B}}{2}.

  • αHA\alpha_{H_{A}} is designated as the angle from CMCM to CHACH_{A}. It can be established that αHA=ϕM+ϕA\alpha_{H_{A}}=\phi_{M}+\phi_{A}.

  • αHB\alpha_{H_{B}} is defined as the angle from CMCM to CHBCH_{B}. It can be derived that αHB=ϕM+ϕB\alpha_{H_{B}}=\phi_{M}+\phi_{B}.

Given these definitions it can be demonstrated [57] that:

rA\displaystyle r_{A} =\displaystyle= |AB|2sin(γ2)sin(α2+γ4)sin(α2αHA2)\displaystyle\frac{|AB|}{2\sin\left(\frac{\gamma}{2}\right)}\frac{\sin\left(\frac{\alpha}{2}+\frac{\gamma}{4}\right)}{\sin\left(\frac{\alpha}{2}-\frac{\alpha_{H_{A}}}{2}\right)} (2)
rB\displaystyle r_{B} =\displaystyle= |AB|2sin(γ2)sin(α2γ4)sin(α2αHB2)\displaystyle\frac{|AB|}{2\sin\left(\frac{\gamma}{2}\right)}\frac{\sin\left(\frac{\alpha}{2}-\frac{\gamma}{4}\right)}{\sin\left(\frac{\alpha}{2}-\frac{\alpha_{H_{B}}}{2}\right)} (3)
kBkA\displaystyle k_{B}-k_{A} =\displaystyle= 2sin(γ2)|AB|cos(ϕB)cos(ϕA)cos(γ2)cos(α)\displaystyle\frac{2\sin\left(\frac{\gamma}{2}\right)}{|AB|}\frac{\cos\left(\phi_{B}\right)-\cos\left(\phi_{A}\right)}{\cos\left(\frac{\gamma}{2}\right)-\cos\left(\alpha\right)} (4)

Upon examining Eq. 4, it becomes evident that |kBkA||k_{B}-k_{A}| exhibits local minima at α=kπ\alpha=k\pi, where kk\in\mathbb{Z}. Specifically, the minimum occurs at α=k2π\alpha=k2\pi when cos(γ2)<0\cos\left(\frac{\gamma}{2}\right)<0, and at α=π+k2π\alpha=\pi+k2\pi when cos(γ2)>0\cos\left(\frac{\gamma}{2}\right)>0. In cases where γ=π+k2π\gamma=\pi+k2\pi (i.e.  when cos(γ2)=0\cos\left(\frac{\gamma}{2}\right)=0), both points yield the same absolute difference in curvature. As an example, Fig. 5a illustrates the variation in curvature while adjusting α\alpha, with initial orientations set to ϕA=π3\phi_{A}=-\frac{\pi}{3} and ϕB=π2\phi_{B}=\frac{\pi}{2}.

Let us now proceed to analyze the path length by applying the law of sines:

|AJ|\displaystyle|AJ| =\displaystyle= |AB||sin(α2+γ4)sin(γ2)|\displaystyle|AB|\left|\frac{\sin\left(\frac{\alpha}{2}+\frac{\gamma}{4}\right)}{\sin\left(\frac{\gamma}{2}\right)}\right| (5)
|JB|\displaystyle|JB| =\displaystyle= |AB||sin(α2γ4)sin(γ2)|\displaystyle|AB|\left|\frac{\sin\left(\frac{\alpha}{2}-\frac{\gamma}{4}\right)}{\sin\left(\frac{\gamma}{2}\right)}\right| (6)

Denoting by sinc(x)\operatorname*{sinc}(x) the unnormalized sinc function, we can write:

lA\displaystyle l_{A} =|AJ|sinc(δA)\displaystyle=\frac{|AJ|}{\operatorname*{sinc}(\delta_{A})} (7)
lB\displaystyle l_{B} =|JB|sinc(δB)\displaystyle=\frac{|JB|}{\operatorname*{sinc}(\delta_{B})} (8)

If cos(ζ)=0\cos\left(\zeta\right)=0 (which holds for cos(ϕA+ϕB)=1\cos(\phi_{A}+\phi_{B})=1) then

l\displaystyle l =\displaystyle= {|AB|sinc(γ2)cos(α)cos(γ2)|AB|γ2+πsin(γ2)cos(α)<cos(γ2).\displaystyle\begin{cases}\frac{|AB|}{\operatorname*{sinc}\left(\frac{\gamma}{2}\right)}&\cos\left(\alpha\right)\geq\cos\left(\frac{\gamma}{2}\right)\\ \frac{|AB|\frac{\gamma}{2}+\pi}{\sin\left(\frac{\gamma}{2}\right)}&\cos\left(\alpha\right)<\cos\left(\frac{\gamma}{2}\right)\end{cases}. (9)

This reveals that the path length exhibits only two possible values as α\alpha varies. Moreover, the minimum path length is achieved for all values of α\alpha that fulfill the condition cos(α)cos(γ2)\cos(\alpha)\geq\cos\left(\frac{\gamma}{2}\right).

If cos(ζ)<0\cos\left(\zeta\right)<0, for α=αHA\alpha=\alpha_{H_{A}}, lAl_{A} (and consequently, ll) becomes infinite. It can be demonstrated that cos(ζ)<0\cos\left(\zeta\right)<0 is synonymous with cos(ϕB)>cos(ϕA)\cos(\phi_{B})>\cos(\phi_{A}). Likewise, if cos(ζ)>0\cos\left(\zeta\right)>0 (i.e., when cos(ϕB)<cos(ϕA)\cos(\phi_{B})<\cos(\phi_{A})), we encounter infinite values for lBl_{B} (and, consequently, ll) when α=αHB\alpha=\alpha_{H_{B}}. In the case where α=γ2+k2π\alpha=-\frac{\gamma}{2}+k2\pi, corresponding to J=AJ=A, the path length is given by l=|AB|sinc(ϕB)l=\frac{|AB|}{\operatorname*{sinc}(\phi_{B})}. When α=γ2+k2π\alpha=\frac{\gamma}{2}+k2\pi, indicating the choice of J=BJ=B, the path length becomes l=|AB|sinc(ϕA)l=\frac{|AB|}{\operatorname*{sinc}(\phi_{A})}.

The path length is a positive function of α\alpha and exhibits a single discontinuity. It tends to infinity at α=αHA+k2π\alpha=\alpha_{H_{A}}+k2\pi (when cos(ϕB)>cos(ϕA)\cos(\phi_{B})>\cos(\phi_{A})) or at α=αHB+k2π\alpha=\alpha_{H_{B}}+k2\pi (when cos(ϕB)>cos(ϕA)\cos(\phi_{B})>\cos(\phi_{A})). In all other cases, the path length remains finite and reaches a minimum at α=γ2+k2π\alpha=-\frac{\gamma}{2}+k2\pi (when cos(ϕB)>cos(ϕA)\cos(\phi_{B})>\cos(\phi_{A})) or at α=γ2+k2π\alpha=\frac{\gamma}{2}+k2\pi (when cos(ϕB)<cos(ϕA)\cos(\phi_{B})<\cos(\phi_{A})). Fig. 5b shows an example of path lengths obtained for ϕA=π3,ϕB=π2\phi_{A}=-\frac{\pi}{3},\phi_{B}=\frac{\pi}{2}.

Refer to caption
(a)
Refer to caption
(b)
Figure 5: Curvature and path length obtained varying α\alpha for a biarc with ϕA=π3\phi_{A}=-\frac{\pi}{3} and ϕB=π2\phi_{B}=\frac{\pi}{2}. Panel (a) reports the curvature of each arc and the absolute value of their difference. Panel (b) reports the path length for each arc and the total length.

Let us shift our attention to the path length for the two specific values of α\alpha that correspond to local minima in the curvature difference: α=0\alpha=0 and α=π\alpha=\pi. We will refer to the path length for α=0\alpha=0 as lα=0l_{\alpha=0} and to the path length for α=π\alpha=\pi as lα=πl_{\alpha=\pi}. Numerical analysis reveals that, for any given biarc, lα=0<43lα=πl_{\alpha=0}<\frac{4}{3}l_{\alpha=\pi}, and that lα=0l_{\alpha=0} is smaller than lα=πl_{\alpha=\pi} for all biarcs with initial and final orientations in the range of 4041πϕA,ϕB4041π-\frac{40}{41}\pi\leq\phi_{A},\phi_{B}\leq\frac{40}{41}\pi. In contrast, lα=0l_{\alpha=0} exceeds lα=πl_{\alpha=\pi} only in situations where lα=πl_{\alpha=\pi} is already substantially large. To be specific, lα=πl_{\alpha=\pi} surpasses 80|AB|80|AB| in all cases where lα=0l_{\alpha=0} is greater than lα=πl_{\alpha=\pi}. For this reason, although the minimum difference in curvature is achieved when α=π+k2π\alpha=\pi+k2\pi when cos(γ2)>0\cos\left(\frac{\gamma}{2}\right)>0, in the following, we consistently choose α=0\alpha=0 for any biarc. In other terms, we choose the point JJ so that it lies on the segment bisector of ABAB, on the right side of ABAB (facing B) when ϕB>ϕA\phi_{B}>\phi_{A} on the left when ϕB<ϕA\phi_{B}<\phi_{A}, and on ABAB itself when ϕA=ϕB\phi_{A}=\phi_{B}.

This choice, commonly known as the ’equal chord’ biarc in CAD/CAM applications [48, 59, 45], results in the following set of equalities:

Jα=0\displaystyle J_{\alpha=0} =\displaystyle= M|AB|2𝒗tan(γ4)\displaystyle M-\frac{|AB|}{2}\bm{v}\tan\left(\frac{\gamma}{4}\right) (10)
|AJ|α=0\displaystyle|AJ|_{\alpha=0} =\displaystyle= |JB|α=0=|AB|2cos(γ4)\displaystyle|JB|_{\alpha=0}=\frac{|AB|}{2\cos\left(\frac{\gamma}{4}\right)} (11)
lAα=0\displaystyle l_{A_{\alpha=0}} =\displaystyle= |AJ|α=0sinc(αHA2)\displaystyle\frac{|AJ|_{\alpha=0}}{\operatorname*{sinc}\left(\frac{\alpha_{H_{A}}}{2}\right)} (12)
lBα=0\displaystyle l_{B_{\alpha=0}} =\displaystyle= |JB|α=0sinc(αHB2)\displaystyle\frac{|JB|_{\alpha=0}}{\operatorname*{sinc}\left(\frac{\alpha_{H_{B}}}{2}\right)} (13)
kAα=0\displaystyle k_{A_{\alpha=0}} =\displaystyle= 2(sin(ϕM)+sin(ϕA))|AB|\displaystyle-\frac{2\left(\sin(\phi_{M})+\sin(\phi_{A})\right)}{|AB|} (14)
kBα=0\displaystyle k_{B_{\alpha=0}} =\displaystyle= 2(sin(ϕM)+sin(ϕB))|AB|\displaystyle\frac{2\left(\sin(\phi_{M})+\sin(\phi_{B})\right)}{|AB|} (15)
kBα=0kAα=0\displaystyle k_{B_{\alpha=0}}-k_{A_{\alpha=0}} =\displaystyle= 8sin(ϕM)cos2(γ4)|AB|\displaystyle\frac{8\sin(\phi_{M})\cos^{2}\left(\frac{\gamma}{4}\right)}{|AB|} (16)

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 (γ=k2π\gamma=k2\pi), resulting in the locus of JJ forming a line. Let us parameterize JJ in terms of α\alpha\in\mathbb{R}, with JJ defined as

J\displaystyle J =\displaystyle= A(12α)+B(12+α)\displaystyle A\left(\frac{1}{2}-\alpha\right)+B\left(\frac{1}{2}+\alpha\right) (17)

we thus have J=AJ=A for α=12\alpha=-\frac{1}{2} and J=BJ=B for α=12\alpha=\frac{1}{2}.

Let us define ϕ=ϕA=ϕB\phi=\phi_{A}=\phi_{B} and ϕ¯=πϕA+k2π\bar{\phi}=\pi-\phi_{A}+k2\pi with kk such that πϕ¯<π-\pi\leq\bar{\phi}<\pi.

The radii of curvature are

rA\displaystyle r_{A} =\displaystyle= |AB|α+122sin(ϕ)\displaystyle|AB|\frac{\alpha+\frac{1}{2}}{-2\sin\left(\phi\right)} (18)
rB\displaystyle r_{B} =\displaystyle= |AB|α122sin(ϕ)\displaystyle|AB|\frac{\alpha-\frac{1}{2}}{-2\sin\left(\phi\right)} (19)

and the curvature difference is

kBkA\displaystyle k_{B}-k_{A} =\displaystyle= 2sin(ϕ)|AB|(14α2)\displaystyle\frac{2\sin(\phi)}{|AB|\left(\frac{1}{4}-\alpha^{2}\right)} (20)

If ϕ=kπ\phi=k\pi, the radii become infinite, and the curvatures are zero. Consequently, the curvature difference remains zero for any α\alpha. If ϕkπ\phi\neq k\pi, for α=12\alpha=-\frac{1}{2} (i.e., J=AJ=A), the curvature kAk_{A} becomes infinite, and for α=12\alpha=\frac{1}{2} (i.e., J=BJ=B), the curvature kBk_{B} becomes infinite. Thus, the curvature difference is infinite for either of these values of α\alpha. Conversely, the curvature difference tends to zero as |α||\alpha| approaches infinity. It is worth noting that the curvature difference exhibits a local minimum at α=0\alpha=0.

In the degenerate case, the lengths of the two arcs are given by:

lA\displaystyle l_{A} =\displaystyle= {|AB|12αsinc(ϕ¯)α<12ϕ0|AB|12+αsinc(ϕ)α12ϕπotherwise\displaystyle\begin{cases}|AB|\frac{-\frac{1}{2}-\alpha}{\operatorname*{sinc}\left(\bar{\phi}\right)}&\alpha<-\frac{1}{2}\land\phi\neq 0\\ |AB|\frac{\frac{1}{2}+\alpha}{\operatorname*{sinc}\left(\phi\right)}&\alpha\geq-\frac{1}{2}\land\phi\neq\pi\\ \infty&\text{otherwise}\end{cases} (21)
lB\displaystyle l_{B} =\displaystyle= {|AB|12αsinc(ϕ)α12ϕπ|AB|α12sinc(ϕ¯)α>12ϕ0otherwise\displaystyle\begin{cases}|AB|\frac{\frac{1}{2}-\alpha}{\operatorname*{sinc}\left(\phi\right)}&\alpha\leq\frac{1}{2}\land\phi\neq\pi\\ |AB|\frac{\alpha-\frac{1}{2}}{\operatorname*{sinc}\left(\bar{\phi}\right)}&\alpha>\frac{1}{2}\land\phi\neq 0\\ \infty&\text{otherwise}\end{cases} (22)

therefore the total length is:

l\displaystyle l =\displaystyle= {|AB|sinc(ϕ)|α|12ϕπ|AB|π(|α|12)+|ϕ||sin(ϕ)||α|>12ϕkπ,kotherwise\displaystyle\begin{cases}\frac{|AB|}{\operatorname*{sinc}\left(\phi\right)}&\left|\alpha\right|\leq\frac{1}{2}\land\phi\neq\pi\\ |AB|\frac{\pi\left(|\alpha|-\frac{1}{2}\right)+|\phi|}{\left|\sin\left(\phi\right)\right|}&\left|\alpha\right|>\frac{1}{2}\land\phi\neq k\pi,k\in\mathbb{Z}\\ \infty&\text{otherwise}\end{cases}

and clearly for |α||\alpha|\rightarrow\infty we have ll\rightarrow\infty. An example illustrating how the path characteristics vary by changing α\alpha for ϕ=π3\phi=-\frac{\pi}{3} can be seen in Fig. 6.

Refer to caption
(a)
Refer to caption
(b)
Figure 6: Curvature and path length obtained varying α\alpha for a biarc with ϕA=ϕB=π3\phi_{A}=\phi_{B}=-\frac{\pi}{3}. Panel (a) reports the curvature of each arc and the absolute value of their difference. Panel (b) reports the path length for each arc and the total length.

Once again, we select α=0\alpha=0 due to it being a local minimum for the curvature difference while not resulting in an excessively long path. Also with this choice, point JJ lies on the bisector of ABAB. Furthermore, Eq. 10 to 16 remain applicable. In particular, these equations for ϕ=ϕA=ϕB\phi=\phi_{A}=\phi_{B} simplify to:

Jα=0\displaystyle J_{\alpha=0} =\displaystyle= M\displaystyle M (23)
|AJ|α=0=|JB|α=0\displaystyle|AJ|_{\alpha=0}=|JB|_{\alpha=0} =\displaystyle= |AB|2\displaystyle\frac{|AB|}{2} (24)
lAα=0=lBα=0\displaystyle l_{A_{\alpha=0}}=l_{B_{\alpha=0}} =\displaystyle= |AB|2sinc(ϕ)\displaystyle\frac{|AB|}{2\operatorname*{sinc}(\phi)} (25)
kAα=0\displaystyle k_{A_{\alpha=0}} =\displaystyle= 4sin(ϕ)|AB|\displaystyle-\frac{4\sin(\phi)}{|AB|} (26)
kBα=0\displaystyle k_{B_{\alpha=0}} =\displaystyle= 4sin(ϕ)|AB|\displaystyle\frac{4\sin(\phi)}{|AB|} (27)
kBα=0kAα=0\displaystyle k_{B_{\alpha=0}}-k_{A_{\alpha=0}} =\displaystyle= 8sin(ϕ)|AB|\displaystyle\frac{8\sin(\phi)}{|AB|} (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 tit_{i}, a trajectory comprising a sequence of biarcs is generated. The first biarc, denoted as bb, consists of two arcs, AJ\stackrel{{\scriptstyle\frown}}{{AJ}} and JB\stackrel{{\scriptstyle\frown}}{{JB}}, which guide the robot from its pose at (A,θA)(A,\theta_{A}) to its pose at (B,θB)(B,\theta_{B}). At time ti+1t_{i+1}, the robot is at pose (A,θA)(A^{\prime},\theta_{A}^{\prime}). The objective is to plan a new biarc, referred to as bb^{\prime}, from (A,θA)(A^{\prime},\theta_{A}^{\prime}) to (B,θB)(B,\theta_{B}) in a manner that maintains proximity to the previous biarc bb. 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.

Refer to caption
Figure 7: Replanning heuristic example. The previously planned path is represented by AJBAJB. AA^{\prime} indicates the current position. The new point JJ^{\prime} is chosen to ensure an overlap between the segments JBJ^{\prime}B and JBJB.

Let cAc_{A} represent the circle of which arc AJ\stackrel{{\scriptstyle\frown}}{{AJ}} is a part. If AJAJ is a straight segment (with zero curvature), then cAc_{A} denotes the line that contains AJAJ. Similarly, let cBc_{B} denote the circle of which arc JB\stackrel{{\scriptstyle\frown}}{{JB}} is a part or, in the case of JBJB being a straight segment, the line defined by JJ and BB. In instances where cBc_{B} represents a circle, refer to the center of cBc_{B} as CBC_{B}.

Let us consider a potential candidate for a biarc bb^{\prime}, designed to resemble the previous biarc bb. This candidate biarc bb^{\prime} consists of arcs AJ\stackrel{{\scriptstyle\frown}}{{A^{\prime}J^{\prime}}} and JB\stackrel{{\scriptstyle\frown}}{{J^{\prime}B}}, with the condition that JJ^{\prime} lies on cBc_{B} and JBJ^{\prime}\neq B. 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 bb is represented by a dashed line. Biarc bb^{\prime} consists of arc AJA^{\prime}J^{\prime}, illustrated by a solid line, and arc JBJ^{\prime}B, which is a segment of the original arc JBJB.

Let cc^{\prime} represent the locus of points where JJ^{\prime} can be situated. As explained in Section II, if θAθB+k2π\theta_{A}^{\prime}\neq\theta_{B}+k2\pi, then cc^{\prime} takes the form of a circle with the center CC^{\prime}, defined in Eq. 1, passing through point BB. However, if θA=θB+k2π\theta_{A}^{\prime}=\theta_{B}+k2\pi, then cc^{\prime} is represented by the line ABA^{\prime}B. With our definition of a similar biarc, JJ^{\prime} must lie within the intersection of cBc_{B} and cc^{\prime}. This intersection always includes at least one point, which is point BB. In the case where both cBc_{B} and cc^{\prime} are not degenerate and CCBC^{\prime}\neq C_{B}, the position of JJ^{\prime} can be calculated as follows:

𝒘\displaystyle\bm{w} =\displaystyle= [wxwy]=CBC|CBC|\displaystyle\left[\begin{matrix}w_{x}\\ w_{y}\end{matrix}\right]=\frac{C_{B}-C^{\prime}}{|C_{B}C^{\prime}|} (29)
ac\displaystyle a_{c} =\displaystyle= wx2wy2\displaystyle w_{x}^{2}-w_{y}^{2} (30)
as\displaystyle a_{s} =\displaystyle= 2wxwy\displaystyle 2w_{x}w_{y} (31)
J\displaystyle J^{\prime} =\displaystyle= [acasasac]B+[1acasas1+ac]C\displaystyle\left[\begin{matrix}a_{c}&a_{s}\\ a_{s}&-a_{c}\end{matrix}\right]B+\left[\begin{matrix}1-a_{c}&-a_{s}\\ -a_{s}&1+a_{c}\end{matrix}\right]C^{\prime} (32)

The example depicted in Fig. 7 illustrates this situation. If both cBc_{B} and cc^{\prime} are circular and concentric, then cBc_{B} coincides with cc^{\prime}, making any point JcJ^{\prime}\in c^{\prime} a valid choice. In this scenario, we select JJ^{\prime} corresponding to α=0\alpha=0.

If cBc_{B} takes the form of a line, while cc^{\prime} is a circle, then JJ^{\prime} corresponds to the reflection of point BB over an axis that passes through CC^{\prime} and is perpendicular to the line JBJB. This operation can be computed efficiently as

J\displaystyle J =\displaystyle= B+2𝒖𝒃T(CB)𝒖𝒃\displaystyle B+2\bm{u_{b}}^{T}(C^{\prime}-B)\bm{u_{b}} (33)

where 𝒖𝒃\bm{u_{b}} represents the unit vector in the direction of JBJB. An illustrative example can be found in Figure 8a.

In a similar fashion, if cBc_{B} is a circle and cc^{\prime} is a line, then JJ^{\prime} can be determined as the reflection of point BB over an axis that passes through CBC_{B} and is orthogonal to the line ABA^{\prime}B. The computation for finding JJ in this case is also straightforward:

J\displaystyle J =\displaystyle= B+2𝒖T(CbB)𝒖\displaystyle B+2{\bm{{u^{\prime}}}^{T}(C_{b}-B)\bm{{u^{\prime}}}} (34)

where 𝒖\bm{u^{\prime}} is the unit vector in the direction ABA^{\prime}B. An example is presented in Figure 8b.

Refer to caption
(a)
Refer to caption
(b)
Figure 8: Examples of replanning for a degenerate reference arc (left panel) and a degenerate joint point locus (right panel). The non-degenerate case can be seen in Fig. 7.

If both cBc_{B} and cc^{\prime} are lines, their only point of intersection is BB, rendering the existence of bb^{\prime} impossible. In this case, JJ is determined using Eq. 23.

In most cases, selecting the biarc bb^{\prime} using the heuristic defined above results in good biarcs that resemble the original trajectory bb. 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 b=(AJ,JB)b=(\stackrel{{\scriptstyle\frown}}{{AJ}},\stackrel{{\scriptstyle\frown}}{{JB}}) (depicted by a dashed line) is chosen as a reference for generating a biarc from AA^{\prime} to BB, the solid line biarc b=(AJ,JB)b^{\prime}=(\stackrel{{\scriptstyle\frown}}{{A^{\prime}J^{\prime}}},\stackrel{{\scriptstyle\frown}}{{J^{\prime}B}}) is obtained. Conversely, when a biarc is planned from AA^{\prime} to BB using α=0\alpha=0, akin to the initial planning, the much more favorable dotted biarc b′′=(AJ′′,J′′B)b^{\prime\prime}=(\stackrel{{\scriptstyle\frown}}{{A^{\prime}J^{\prime\prime}}},\stackrel{{\scriptstyle\frown}}{{J^{\prime\prime}B}}) is obtained.

Refer to caption
Figure 9: An example for which the heuristic provides an undesirable biarc. (AJ(\stackrel{{\scriptstyle\frown}}{{AJ}},JB)\stackrel{{\scriptstyle\frown}}{{JB}}) is the biarc planned at the previous time step. (AJ(\stackrel{{\scriptstyle\frown}}{{A^{\prime}J^{\prime}}},JB)\stackrel{{\scriptstyle\frown}}{{J^{\prime}B}}) is the biarc obtained using the heuristic. (AJ′′(\stackrel{{\scriptstyle\frown}}{{A^{\prime}J^{\prime\prime}}},J′′B)\stackrel{{\scriptstyle\frown}}{{J^{\prime\prime}B}}) is the biarc from AA^{\prime} to BB obtained for α=0\alpha=0.

Therefore, during the replanning process, a comparative analysis is conducted between the length and curvature difference of biarc bb^{\prime} and those of biarc b′′b^{\prime\prime}. The length of b′′b^{\prime\prime} can be calculated using Equations 12 and 13 when γk2π\gamma\neq k2\pi, or Equation 25 when γ=k2π\gamma=k2\pi. Similarly, the curvature difference of b′′b^{\prime\prime} is determined using Equation 16 when γk2π\gamma\neq k2\pi, and Equation 28 when γ=k2π\gamma=k2\pi. To decide between choosing bb^{\prime} and b′′b^{\prime\prime}, we introduce two parameters, ηl\eta_{l} and ηk\eta_{k}, both greater than 1. The selection criterion is based on the conditions l>ηll′′l^{\prime}>\eta_{l}\cdot l^{\prime\prime} or |kBkA|>ηk|kB′′kA′′||k_{B}^{\prime}-k_{A}^{\prime}|>\eta_{k}\cdot|k_{B}^{\prime\prime}-k_{A}^{\prime\prime}|. In our experimental evaluations, we determined that setting ηl=ηk=2\eta_{l}=\eta_{k}=2 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 AiA_{i} with orientation θAi\theta_{A_{i}} and terminating at position BiB_{i} with orientation θBi\theta_{B_{i}}. In the case of a non-degenerate arc, we define the center of rotation as CiC_{i} and the spanned angle as θdi=θBiθAi\theta_{d_{i}}=\theta_{B_{i}}-\theta_{A_{i}}.

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 HjH_{j}, where 0j<Nh0\leq j<N_{h} when the robot is located at position AiA_{i}. We can further define HNh=H0H_{N_{h}}=H_{0}, and denote each edge as HjHj+1H_{j}H_{j+1}.

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 PkP_{k}, 1iNp1\leq i\leq N_{p}. 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 b0,,bi1,bi,,bnb_{0},\ldots,b_{i-1},b_{i},\ldots,b_{n}. If no collision is detected for biarc bi1b_{i-1}, then it is guaranteed that no point can be inside the hitbox at the beginning of biarc bib_{i}. Therefore, the check for points inside the hitbox at the start of the arc only needs to be performed for the first arc of b0b_{0}. In our setup the initial point of the first arc of b0b_{0} 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 PkP_{k} along the normals of the edges HjHj+1H_{j}H_{j+1}, and checking whether it lies on the half-plane belonging to the hitbox.

Now, we will focus on determining if a point PkP_{k} enters the hitbox through the edge HjHj+1H_{j}H_{j+1} while moving along the arc AiBi\stackrel{{\scriptstyle\frown}}{{A_{i}B_{i}}}. 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 CiC_{i}. In this context, we examine the line ll of which HjHj+1H_{j}H_{j+1} is a segment.

A point 𝒑\bm{p} on this line can be parametrized as follows:

𝒑\displaystyle\bm{p} =\displaystyle= x𝒖+h𝒖\displaystyle x\bm{u}+h\bm{u^{\perp}} (35)

where x,hx,h\in\mathbb{R}, 𝒖2x1\bm{u}\in\mathbb{R}^{2x1} is a unitary vector parallel to the line ll and 𝒖2x1\bm{u^{\perp}}\in\mathbb{R}^{2x1} is the perpendicular vector defined as

𝒖=[0110]𝒖.\displaystyle\bm{u^{\perp}}=\left[\begin{matrix}0&-1\\ 1&0\end{matrix}\right]\bm{u}. (36)

Let xjx_{j} and xj+1x_{j+1} represent the coordinates of HjH_{j} and Hj+1H_{j+1}, respectively. Now, let us examine the points on line ll where a point PkP_{k} might enter the hitbox. If Pk2hj2<0\|P_{k}\|^{2}-h_{j}^{2}<0, there are no such points. If Pk2hj20\|P_{k}\|^{2}-h_{j}^{2}\geq 0, then the only two possible (potentially coincident) entry points have coordinates xk1,xk2=±Pkhj2x_{k1},x_{k2}=\pm\sqrt{\|P_{k}\|-h_{j}^{2}}. Each of these points serves as the entry point if and only if it satisfies the following inequalities:

Let us denote by xjx_{j} and xj+1x_{j+1} the coordinates of HjH_{j} and Hj+1H_{j+1}, respectively. Let us now consider the points of the line ll through which a point PkP_{k} may enter the hitbox. If Pk2hj2<0\|P_{k}\|^{2}-h_{j}^{2}<0 then no such point exists. If Pk2hj20\|P_{k}\|^{2}-h_{j}^{2}\geq 0 then the only two (possibly coincident) possible points of entrance have coordinates xk1,xk2=±Pkhj2x_{k1},x_{k2}=\pm\sqrt{\|P_{k}\|-h_{j}^{2}}. Each of such points is actually the point of entrance if and only if it satisfies the following inequalities:

xj\displaystyle x_{j} \displaystyle\leq xxj+1\displaystyle x\leq x_{j+1} (37)
PkT(x𝒖+h𝒖)\displaystyle P_{k}^{T}(x\bm{u}+h\bm{u^{\perp}}) \displaystyle\geq Pk2cos(ϕd2).\displaystyle\|P_{k}\|^{2}\cos\left(\frac{\phi_{d}}{2}\right). (38)

V-A2 Collision detection for point obstacles, straight movement

Let us denote by HjH^{\prime}_{j} the vertices of the hitbox when the hitbox is at the arrival position BiB_{i}. Consider the convex hull of the points in the set:

HAB={Hj:0jNh}{Hj:0jNh}.H_{AB}=\{H_{j}:0\leq j\leq N_{h}\}\cup\{H^{\prime}_{j}:0\leq j\leq N_{h}\}. (39)

Collision can be detected by checking whether any of the obstacle points PkP_{k} 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 HjHj+1H_{j}H_{j+1} and an obstacle in the form of a line segment SlSl+1S_{l}S_{l+1} or a line. We use aa to denote the line of which HjHj+1H_{j}H_{j+1} is part of, and similarly, let line bb indicate the line of which SlSl+1S_{l}S_{l+1} is part of. If the obstacle is an (infinite) line obstacle, then bb 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 aa rotates around the center of the arc CiC_{i}, while line bb is static. We consider a frame of reference with the origin at the center of rotation CiC_{i}. We apply a parametrization similar to the approach used in Section V-A1. Here, a generic point 𝒑𝒍\bm{p_{l}} on line ll can be expressed as:

𝒑𝒍=xl𝒖𝒍+hl𝒖𝒍.\bm{p_{l}}=x_{l}\bm{u_{l}}+h_{l}\bm{u_{l}^{\perp}}. (40)

In this equation, xlx_{l} represents the displacement of the point along line ll, 𝒖𝒍\bm{u_{l}} is a unitary vector parallel to line ll, and it is chosen such that hlh_{l} is non-negative and denotes the distance of the line from the origin. The perpendicular vector 𝒖𝒍\bm{u_{l}^{\perp}} is defined as:

𝒖𝒍=[0110]𝒖𝒍.\bm{u^{\perp}_{l}}=\left[\begin{matrix}0&-1\\ 1&0\end{matrix}\right]\bm{u_{l}}. (41)

We establish a reference frame with its origin at point CiC_{i}. The rotation acting on line aa can be described by a matrix 𝑹\bm{R}, defined as:

𝑹\displaystyle\bm{R} =\displaystyle= [ctststct][cμsμsμcμ]\displaystyle\left[\begin{matrix}c_{t}&-s_{t}\\ s_{t}&c_{t}\end{matrix}\right]\left[\begin{matrix}c_{\mu}&-s_{\mu}\\ s_{\mu}&c_{\mu}\end{matrix}\right] (42)

where

cμ\displaystyle c_{\mu} =\displaystyle= 𝒖𝒃T𝒖𝒂\displaystyle\bm{u_{b}}^{T}\bm{u_{a}} (43)
sμ\displaystyle s_{\mu} =\displaystyle= 𝒖𝒃T𝒖𝒂=𝒖𝒂T𝒖𝒃\displaystyle-{\bm{u_{b}^{\perp}}}^{T}\bm{u_{a}}={\bm{u_{a}^{\perp}}}^{T}\bm{u_{b}} (44)
ct\displaystyle c_{t} =\displaystyle= 1t21+t2\displaystyle\frac{1-t^{2}}{1+t^{2}} (45)
st\displaystyle s_{t} =\displaystyle= 2t1+t2.\displaystyle\frac{2t}{1+t^{2}}. (46)

In other words, we express 𝑹\bm{R} as a composition of two rotations. First, with the right-hand matrix, we rotate aa to align it parallel to bb. Then, with the left-hand matrix, we apply an additional rotation with an angle whose half tangent is tt.

Let us define

  1. 1.

    IaI_{a} as the set of rotations tt for which HjHj+1H_{j}H_{j+1} intersect bb.

  2. 2.

    IbI_{b} as the set of rotation tt for which line aa intersect SlSl+1S_{l}S_{l+1}.

  3. 3.

    IdiI_{d_{i}} as the set of rotations tt taken when the robot performs the arc of interest.

If the obstacle is a line segment SlSl+1S_{l}S_{l+1}, then collision with HjHj+1H_{j}H_{j+1} occurs if and only if

IaIbIdi.\displaystyle I_{a}\cap I_{b}\cap I_{d_{i}}\neq\emptyset. (47)

If the obstacle is a line bb, the condition simplifies to

IaIdi.\displaystyle I_{a}\cap I_{d_{i}}\neq\emptyset. (48)

The set IdiI_{d_{i}} is determined as follows. Let us define

td={tan(μ+θdi2)if θdi<0tan(μ2)if θdi0\displaystyle t_{d-}=\begin{cases}\tan\left(\frac{-\mu+\theta_{d_{i}}}{2}\right)&\text{if }\theta_{d_{i}}<0\\ \tan\left(\frac{-\mu}{2}\right)&\text{if }\theta_{d_{i}}\geq 0\end{cases} (49)
td+={tan(μ+θdi2)if θdi0tan(μ2)if θdi<0\displaystyle t_{d+}=\begin{cases}\tan\left(\frac{-\mu+\theta_{d_{i}}}{2}\right)&\text{if }\theta_{d_{i}}\geq 0\\ \tan\left(\frac{-\mu}{2}\right)&\text{if }\theta_{d_{i}}<0\end{cases} (50)

where μ\mu is the angle whose cosine is cμc_{\mu} and whose sine is sμs_{\mu} (see Eq. 43 and Eq. 44, respectively). With these definitions we can write:

Idi={[td,td+]if tdtd+(,td+][td,+)if td>td+.\displaystyle I_{d_{i}}=\begin{cases}\left[t_{d-},t_{d+}\right]&\text{if }t_{d-}\leq t_{d+}\\ \left(-\infty,t_{d+}\right]\cup\left[t_{d-},+\infty\right)&\text{if }t_{d-}>t_{d+}\end{cases}. (51)

The determination of sets IaI_{a} and IbI_{b} is more involved. Using the line parametrization from Eq. 40 and the rotation parametrization from Eq.42, for a given rotation tt where t0t\neq 0, the point of intersection between the rotated line aa and line bb is determined as follows:

xa\displaystyle x_{a} =\displaystyle= (ha+hb)t2+hbha2t\displaystyle\frac{\left(h_{a}+h_{b}\right)t^{2}+h_{b}-h_{a}}{2t} (52)
xb\displaystyle x_{b} =\displaystyle= (ha+hb)t2+hahb2t.\displaystyle-\frac{\left(h_{a}+h_{b}\right)t^{2}+h_{a}-h_{b}}{2t}. (53)

In the case of t=0t=0, the lines either coincide and intersect at any point, or they are parallel and have no intersection.

When considering a coordinate xax_{a} such that xa2hb2ha2x_{a}^{2}\geq h_{b}^{2}-h_{a}^{2}, two rotations, denoted as ta+t_{a+} and tat_{a-}, result in this coordinate being an intersection. These rotations are calculated as follows:

ta+\displaystyle t_{a+} =\displaystyle= xa+xa2+ha2hb2ha+hb\displaystyle\frac{x_{a}+\sqrt{x_{a}^{2}+h_{a}^{2}-h_{b}^{2}}}{h_{a}+h_{b}} (54)
ta\displaystyle t_{a-} =\displaystyle= xaxa2+ha2hb2ha+hb\displaystyle\frac{x_{a}-\sqrt{x_{a}^{2}+h_{a}^{2}-h_{b}^{2}}}{h_{a}+h_{b}} (55)

Likewise, a coordinate xbx_{b} with xb2ha2hb2x_{b}^{2}\geq h_{a}^{2}-h_{b}^{2} can be an intersection by performing the rotation:

tb+\displaystyle t_{b+} =\displaystyle= xb+xb2+hb2ha2ha+hb\displaystyle\frac{-x_{b}+\sqrt{x_{b}^{2}+h_{b}^{2}-h_{a}^{2}}}{h_{a}+h_{b}} (56)
tb\displaystyle t_{b-} =\displaystyle= xbxb2+hb2ha2ha+hb.\displaystyle\frac{-x_{b}-\sqrt{x_{b}^{2}+h_{b}^{2}-h_{a}^{2}}}{h_{a}+h_{b}}. (57)

Let us denote the coordinates of the points HjH_{j} and Hj+1H_{j+1} on aa according to Eq. 40 as

xa1\displaystyle x_{a1} =\displaystyle= min{uaTHj,uaTHj+1}\displaystyle\min\left\{u_{a}^{T}H_{j},u_{a}^{T}H_{j+1}\right\} (58)
xa2\displaystyle x_{a2} =\displaystyle= max{uaTHj,uaTHj+1}\displaystyle\max\left\{u_{a}^{T}H_{j},u_{a}^{T}H_{j+1}\right\} (59)

and denote the corresponding values of tt, computed using Eq. 55 and Eq. 54 as ta1,ta1+,ta2,ta2+t_{a1-},t_{a1+},t_{a2-},t_{a2+}. In an analogous way, let us express the coordinates of SlS_{l} and Sl+1S_{l+1} on bb as xb1x_{b1} and xb2x_{b2}, with associated tt values tb1,tb1+,tb2,tb2+t_{b1-},t_{b1+},t_{b2-},t_{b2+}.

Let us now consider how the intersection point moves over the lines when rotating aa. The first order derivatives of xax_{a} and xbx_{b}with respect to tt are given by

dxadt\displaystyle\frac{dx_{a}}{dt} =\displaystyle= (ha+hb)t2+hahb2t2\displaystyle\frac{\left(h_{a}+h_{b}\right)t^{2}+h_{a}-h_{b}}{2t^{2}} (60)
dxbdt\displaystyle\frac{dx_{b}}{dt} =\displaystyle= (ha+hb)t2+hbha2t2\displaystyle-\frac{\left(h_{a}+h_{b}\right)t^{2}+h_{b}-h_{a}}{2t^{2}} (61)

and the second order derivatives are

d2xadt2\displaystyle\frac{d^{2}x_{a}}{dt^{2}} =\displaystyle= d2xbdt2=hbhat3.\displaystyle\frac{d^{2}x_{b}}{dt^{2}}=\frac{h_{b}-h_{a}}{t^{3}}. (62)

From these derivatives we evince that the computation of IaI_{a} and IbI_{b} requires distinguishing three cases based on the values of hah_{a} and hbh_{b}: when ha>hbh_{a}>h_{b}, when ha=hbh_{a}=h_{b}, and when ha<hbh_{a}<h_{b}.

In the case where ha>hbh_{a}>h_{b} (as shown in Fig. 10a), the following holds:

dxadt\displaystyle\frac{dx_{a}}{dt} >\displaystyle> 0t\displaystyle 0\;\forall t (63)
limtxa\displaystyle\lim_{t\to-\infty}x_{a} =\displaystyle= limt0+xa=\displaystyle\lim_{t\to 0^{+}}x_{a}=-\infty (64)
limt0xa\displaystyle\lim_{t\to 0^{-}}x_{a} =\displaystyle= limtxa=+.\displaystyle\lim_{t\to-\infty}x_{a}=+\infty. (65)

Collision occurs inside the segment HjHj+1H_{j}H_{j+1} for the following range of values:

Ia\displaystyle I_{a} =\displaystyle= [ta1,ta2][ta1+,ta2+].\displaystyle[t_{a1-},t_{a2-}]\cup[t_{a1+},t_{a2+}]. (66)

In the case of line bb, we have the following limit values:

limtxb\displaystyle\lim_{t\to-\infty}x_{b} =\displaystyle= limt0xb=+\displaystyle\lim_{t\to 0^{-}}x_{b}=+\infty (67)
limt0+xb\displaystyle\lim_{t\to 0^{+}}x_{b} =\displaystyle= limt+xb=\displaystyle\lim_{t\to+\infty}x_{b}=-\infty (68)

The derivative of xbx_{b} with respect to tt is zero at two points:

tbz\displaystyle t_{bz-} =hahbha+hb\displaystyle=-\sqrt{\frac{h_{a}-h_{b}}{h_{a}+h_{b}}} (69)
tbz+\displaystyle t_{bz+} =hahbha+hb\displaystyle=\sqrt{\frac{h_{a}-h_{b}}{h_{a}+h_{b}}} (70)

with

d2xbdt2|t=tbz+\displaystyle\left.\frac{d^{2}x_{b}}{dt^{2}}\right|_{t=t_{bz+}} <\displaystyle< 0<d2xbdt2|t=tbz.\displaystyle 0<\left.\frac{d^{2}x_{b}}{dt^{2}}\right|_{t=t_{bz-}}. (71)

At tbzt_{bz-}, there is a local minimum with xbz=bx_{bz-}=b^{*}, and at tbz+t_{bz+}, there is a local maximum with xbz+=bx_{bz+}=-b^{*}, where

b\displaystyle b^{*} =\displaystyle= ha2hb2\displaystyle\sqrt{h_{a}^{2}-h_{b}^{2}} (72)

From this analysis, we can deduce that the intervals of rotations tt that result in a collision for segment SlSl+1S_{l}S_{l+1} are as follows:

Ib={[tb1,tb2][tb2+,tb1+]if xb1xb2<b[tb1,tb1+]if xb1bxb2<b[tb2,tb2+][tb1,tb1+]if xb1bbxb2if b<xb1xb2<b[tb2,tb2+]if b<xb1<bxb2[tb2,tb1][tb1+,tb2+]if bxb1xb2.\displaystyle I_{b}=\begin{cases}[t_{b1-},t_{b2-}]\cup[t_{b2+},t_{b1+}]&\text{if }x_{b1}\leq x_{b2}<-b^{*}\\ [t_{b1-},t_{b1+}]&\text{if }x_{b1}\leq-b^{*}\leq x_{b2}<b^{*}\\ [t_{b2-},t_{b2+}]\cup[t_{b1-},t_{b1+}]&\text{if }x_{b1}\leq-b^{*}\leq b^{*}\leq x_{b2}\\ \emptyset&\text{if }-b^{*}<x_{b1}\leq x_{b2}<b^{*}\\ [t_{b2-},t_{b2+}]&\text{if }-b^{*}<x_{b1}<b^{*}\leq x_{b2}\\ [t_{b2-},t_{b1-}]\cup[t_{b1+},t_{b2+}]&\text{if }b^{*}\leq x_{b1}\leq x_{b2}\end{cases}. (73)

In the scenario where ha=hbh_{a}=h_{b}, as depicted in Fig. 10b, the following observations can be made. At t=0t=0, all points intersect because aa and bb overlap. For t0t\neq 0:

xa\displaystyle x_{a} =\displaystyle= xb=hat\displaystyle-x_{b}=h_{a}t (74)
dxadt\displaystyle\frac{dx_{a}}{dt} \displaystyle\geq 0t\displaystyle 0\;\forall t (75)
dxbdt\displaystyle\frac{dx_{b}}{dt} \displaystyle\leq 0t.\displaystyle 0\;\forall t. (76)

Consequently, for the case of ha=hbh_{a}=h_{b}, the intervals of collisions are as follows:

Ia\displaystyle I_{a} =\displaystyle= [xa1ha,xa2ha]{0}\displaystyle\left[\frac{x_{a1}}{h_{a}},\frac{x_{a2}}{h_{a}}\right]\cup\{0\} (77)
Ib\displaystyle I_{b} =\displaystyle= [xb2ha,xb1ha]{0}.\displaystyle\left[-\frac{x_{b2}}{h_{a}},-\frac{x_{b1}}{h_{a}}\right]\cup\{0\}. (78)

The remaining possibility ha<hbh_{a}<h_{b} is depicted in Fig. 10c. In this case the following holds:

dxbdt\displaystyle\frac{dx_{b}}{dt} <0t\displaystyle<0\forall t (79)
limtxa\displaystyle\lim_{t\to-\infty}x_{a} =\displaystyle= limt0xa=\displaystyle\lim_{t\to 0^{-}}x_{a}=-\infty (80)
limt0+xa\displaystyle\lim_{t\to 0^{+}}x_{a} =\displaystyle= limt+xa=+\displaystyle\lim_{t\to+\infty}x_{a}=+\infty (81)

and dxadt=0\frac{dx_{a}}{dt}=0 for

taz\displaystyle t_{az-} =hbhaha+hb\displaystyle=-\sqrt{\frac{h_{b}-h_{a}}{h_{a}+h_{b}}} (82)
taz+\displaystyle t_{az+} =hbhaha+hb\displaystyle=\sqrt{\frac{h_{b}-h_{a}}{h_{a}+h_{b}}} (83)

with

d2xadt2|t=taz\displaystyle\left.\frac{d^{2}x_{a}}{dt^{2}}\right|_{t=t_{az-}} <\displaystyle< 0<d2xadt2|t=taz+.\displaystyle 0<\left.\frac{d^{2}x_{a}}{dt^{2}}\right|_{t=t_{az+}}. (84)

We thus have a local maximum at tazt_{az-} and a local minimum at taz+t_{az+}, with xaz=a,xaz+=ax_{az-}=-a^{*},x_{az+}=a^{*} where

a\displaystyle a^{*} =\displaystyle= hb2ha2.\displaystyle\sqrt{h_{b}^{2}-h_{a}^{2}}. (85)

The intervals of collision for segment HjHj+1H_{j}H_{j+1} are

Ia={[ta1,ta2][ta2+,ta1+]if xa1xa2a[ta1,ta1+]if xa1a<xa2<a[ta1,ta1+][ta2,ta2+]if xa1a<axa2if a<xa1xa2<a[ta2,ta2+]if a<xa1<axa2[ta2,ta1][ta1+,ta2+]if axa1xa2.\displaystyle I_{a}=\begin{cases}[t_{a1-},t_{a2-}]\cup[t_{a2+},t_{a1+}]&\text{if }x_{a1}\leq x_{a2}\leq-a^{*}\\ [t_{a1-},t_{a1+}]&\text{if }x_{a1}\leq-a^{*}<x_{a2}<a^{*}\\ [t_{a1-},t_{a1+}]\cup[t_{a2-},t_{a2+}]&\text{if }x_{a1}\leq-a^{*}<a^{*}\leq x_{a2}\\ \emptyset&\text{if }-a^{*}<x_{a1}\leq x_{a2}<a^{*}\\ [t_{a2-},t_{a2+}]&\text{if }-a^{*}<x_{a1}<a^{*}\leq x_{a2}\\ [t_{a2-},t_{a1-}]\cup[t_{a1+},t_{a2+}]&\text{if }a^{*}\leq x_{a1}\leq x_{a2}\end{cases}. (86)

Considering line bb we have:

dxbdt\displaystyle\frac{dx_{b}}{dt} <\displaystyle< 0t\displaystyle 0\forall t (87)
limt0xb\displaystyle\lim_{t\to 0^{-}}x_{b} =\displaystyle= limt+xb=\displaystyle\lim_{t\to+\infty}x_{b}=-\infty (88)
limtxb\displaystyle\lim_{t\to-\infty}x_{b} =\displaystyle= limt0+xb=+\displaystyle\lim_{t\to 0^{+}}x_{b}=+\infty (89)

and thus

Ib=[tb2,tb1][tb2+,tb1+].\displaystyle I_{b}=[t_{b2-},t_{b1-}]\cup[t_{b2+},t_{b1+}]. (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 IdiI_{d_{i}} (Eq.51), IaI_{a} (Eq.66, Eq.77, or Eq.86), and IbI_{b} (Eq.73, Eq.78, or Eq.90) are computed, Eq.47 or Eq. 48 provides a collision test.

Refer to caption
(a)
Refer to caption
(b)

]

Refer to caption
(c)
Figure 10: Example of xax_{a} and xbx_{b} in terms of tt for ha=2>hb=1h_{a}=2>h_{b}=1 (panel a), ha=hb=1h_{a}=h_{b}=1 (panel b) and ha=1<hb=2h_{a}=1<h_{b}=2 (panel c). The horizontal axis reports the value tt. The vertical axis reports the values of xax_{a} (dashed curve) and xbx_{b} (dotted curve).

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:

ta+\displaystyle t_{a+} =\displaystyle= xa+xa2+ha2hb2ha+hb\displaystyle\frac{x_{a}+\sqrt{x_{a}^{2}+h_{a}^{2}-h_{b}^{2}}}{h_{a}+h_{b}} (91)
=\displaystyle= xaxa2+ha2+xa2+ha2hb2xa2+ha2haxa2+ha2+hbxa2+ha2.\displaystyle\frac{\frac{x_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}+\frac{\sqrt{x_{a}^{2}+h_{a}^{2}-h_{b}^{2}}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}}{\frac{h_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}+\frac{h_{b}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}}. (92)

By introducing the angles

α\displaystyle\alpha =\displaystyle= arcsin(xaxa2+ha2)\displaystyle\arcsin\left(\frac{x_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right) (93)
β\displaystyle\beta =\displaystyle= arccos(hbxa2+ha2)\displaystyle\arccos\left(\frac{h_{b}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right) (94)
=\displaystyle= arccos(hbxb2+hb2)\displaystyle\arccos\left(\frac{h_{b}}{\sqrt{x_{b}^{2}+h_{b}^{2}}}\right) (95)

and noting that

tan(α+β2)\displaystyle\tan\left(\frac{\alpha+\beta}{2}\right) =\displaystyle= sin(α)+sin(β)cos(α)+cos(β)\displaystyle\frac{\sin(\alpha)+\sin(\beta)}{\cos(\alpha)+\cos(\beta)} (96)

we can interpret ta+t_{a+} as the tangent of half of the angle

θa+\displaystyle\theta_{a+} =\displaystyle= α+β.\displaystyle\alpha+\beta. (97)

This interpretation offers a geometric visualization of how ta+t_{a+} relates to angles and trigonometric functions, as illustrated in Figure 11. In a similar manner, tat_{a-}, tbt_{b-}, and tb+t_{b+} can be interpreted as the tangents of half of the following angles:

θa\displaystyle\theta_{a-} =\displaystyle= arcsin(xaxa2+ha2)arccos(hbxa2+ha2)\displaystyle\phantom{+}\arcsin\left(\frac{x_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right)-\arccos\left(\frac{h_{b}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right) (98)
θb\displaystyle\theta_{b-} =\displaystyle= arcsin(xbxb2+hb2)arccos(haxa2+ha2)\displaystyle-\arcsin\left(\frac{x_{b}}{\sqrt{x_{b}^{2}+h_{b}^{2}}}\right)-\arccos\left(\frac{h_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right) (99)
θb+\displaystyle\theta_{b+} =\displaystyle= arcsin(xbxb2+hb2)+arccos(haxa2+ha2)\displaystyle-\arcsin\left(\frac{x_{b}}{\sqrt{x_{b}^{2}+h_{b}^{2}}}\right)+\arccos\left(\frac{h_{a}}{\sqrt{x_{a}^{2}+h_{a}^{2}}}\right) (100)
Refer to caption
Figure 11: Geometric interpretation of Eq. 54.

By employing a similar transformation, the number of trigonometric operations needed for the computation of IdiI_{d_{i}} (given in Eq.49 and Eq.50) can be reduced. Specifically, we have:

tan(μ2)\displaystyle\tan\left(\frac{-\mu}{2}\right) =\displaystyle= sin(μ)cos(μ)+1=sμcμ+1\displaystyle\frac{-\sin(\mu)}{\cos(\mu)+1}=\frac{-s_{\mu}}{c_{\mu}+1} (101)
tan(μ+θdi2)\displaystyle\tan\left(\frac{-\mu+\theta_{d_{i}}}{2}\right) =\displaystyle= sμ+sin(θdi)cμ+cos(θdi).\displaystyle\frac{-s_{\mu}+\sin(\theta_{d_{i}})}{c_{\mu}+\cos(\theta_{d_{i}})}. (102)

where cμc_{\mu} and sμs_{\mu} are computed as shown in Eq. 43 and Eq. 44, respectively.

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 (HjH_{j}) and the final position (HjH^{\prime}_{j}) of the hitbox is computed. Let us denote by KiK_{i}, 0i<Nk0\leq i<N_{k} the vertices of the convex hull (which are a subset of the vertices of HABH_{AB} defined in Eq 39). Let us also order the vertices such that KiKi+1K_{i}K_{i+1} is an edge of the convex hull and define KNk=K0K_{N_{k}}=K_{0}.

If the obstacle is a line segment SlSl+1S_{l}S_{l+1}, the hyperplane separation theorem offers a criterion for collision detection. It is sufficient to find one direction in which the projections of KiK_{i}, 0i<Nk0\leq i<N_{k} and the projection of SlSl+1S_{l}S_{l+1} do not overlap. Candidate directions are given by the normals to KiKi+1,0iNkK_{i}K_{i+1},0\leq i\leq N_{k}, and the normal to SlSl+1S_{l}S_{l+1}. If intersection occurs for all of these directions, collision is confirmed.

If the obstacle is a (infinite) line passing through SlS_{l}, collision detection simplifies. It is sufficient to check the projection of the points in KiK_{i} onto the normal of this line, denoted as 𝒏𝒍\bm{n_{l}}. Collision occurs when there are points on both side of the line, i.e. when

i,1i<Nk:sgn(𝒏𝒍TKi𝒏𝒍TSl)sgn(𝒏𝒍TK0𝒏𝒍TSl).\displaystyle\exists i,1\leq i<N_{k}:\operatorname*{sgn}(\bm{n_{l}}^{T}K_{i}-\bm{n_{l}}^{T}S_{l})\neq\operatorname*{sgn}(\bm{n_{l}}^{T}K_{0}-\bm{n_{l}}^{T}S_{l}).

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 NWN_{W} waypoints, with each waypoint being defined by a 2D position 𝒘i,02\bm{w}_{i,0}\in\mathbb{R}^{2} and an orientation θi\theta_{i}\in\mathbb{R}, ii\in\mathbb{N}, 1iNW1\leq i\leq N_{W}. To create a lattice from this initial set of poses, we establish positions 𝒘i,j\bm{w}_{i,j} according to the formula:

𝒘i,j=𝒘i,0+js[sin(θi)cos(θi)]\displaystyle\bm{w}_{i,j}=\bm{w}_{i,0}+js\left[\begin{matrix}-\sin(\theta_{i})\\ \phantom{-}\cos(\theta_{i})\end{matrix}\right] (103)

where jj\in\mathbb{Z} and ss\in\mathbb{R} represents the step size (in our implementation, s=0.2ms=0.2m). Additionally, we assume that all positions 𝒘i,j\bm{w}_{i,j} should be reached with the same orientation θi\theta{i}.

In the lattice, each node (i,j)(i,j), where 1iNW1\leq i\leq N_{W}, corresponds to a physical world waypoint denoted as 𝒘i,j\bm{w}_{i,j}. Here, we assume that hjh-h\leq j\leq h, with hh representing the maximum expansion of the lattice on each side. We permit only edges in the form of (i,j)(i,j) to (i+1,k)(i+1,k) to exist. To these edges, we assign a cost of 1+|j|+|k|1+|j|+|k| 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 (i,j)(i,j) in the lattice, the heuristic function is set as NWi+|j|N_{W}-i+|j|. We assume the current robot position is connected to all nodes (ib,j)(i_{b},j), with hjh-h\leq j\leq h. The value of ibi_{b}\in\mathbb{N}, with 1ibNW1\leq i_{b}\leq N_{W}, is updated based on the robot’s progress along the lattice. All nodes (ie,j)(i_{e},j), where iei_{e}\in\mathbb{N}, ibieNWi_{b}\leq i_{e}\leq N_{W}, and hjh-h\leq j\leq h, are designated as goal nodes. The specific value of iei_{e} depends on the planning horizon, which is determined as follows: If the distance from 𝒘ib,0\bm{w}{i_{b},0} to 𝒘NW,0\bm{w}{N_{W},0} is less than dhd_{h}, then ie=NWi_{e}=N_{W}. Otherwise, iei_{e} is set as the minimum ii for which the distance from 𝒘ib,0\bm{w}{i_{b},0} to 𝒘i,0\bm{w}{i,0} is greater than dhd_{h}, where dhd_{h}\in\mathbb{R} denotes the planning horizon.

The search is carried out iteratively with increasing values of hh 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 ibi_{b} and iei_{e} to ibi_{b}^{\prime} and iei_{e}^{\prime} 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 𝒘ib,jb\bm{w}_{i_{b}^{\prime},j_{b}^{\prime}}, computed using the algorithm explained in Section IV, using the arc leading to 𝒘ib,jb\bm{w}_{i_{b}^{\prime},j_{b}^{\prime}} as a reference.

  • all the biarcs of the previous plan from 𝒘ib,jb\bm{w}_{i_{b}^{\prime},j_{b}^{\prime}} to 𝒘ie,je\bm{w}_{i_{e},j_{e}}

  • (possibly) new biarcs from that connect 𝒘ie,je\bm{w}_{i_{e},j_{e}} to 𝒘ie,0\bm{w}_{i_{e}^{\prime},0} passing through 𝒘i,0\bm{w}_{i,0} for ie<i<ie{i_{e}<i<i_{e}^{\prime}}.

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 CC in [61]), the path length (represented as SS in [61]), the time required to reach the goal (referred to as TT in [61]), and the closest distance of the robot to the obstacles (listed under the prox column and corresponding to dod_{o} 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.

TABLE I: Evaluation Results for MRPB 1.0
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 G1G_{1} 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.