A Novel Model for 3D Motion Planning for a Generalized Dubins Vehicle with Pitch and Yaw Rate Constraints
thanks: 1 Deepak Prakash Kumar is a Postdoctoral Scholar in the Center of Resilient Autonomous Systems at University of California, Irvine, CA 92697, USA (e-mail: deepakprakash1997@gmail.com).
2 Swaroop Darbha is with the Department of Mechanical Engineering, Texas A&M University, College Station, TX 77843, USA (e-mail: dswaroop@tamu.edu).
3 Satyanarayana Gupta Manyam is with DCS Corporation, Dayton, OH 45431 USA (e-mail: msngupta@gmail.com)
4 David Casbeer is with the Control Science Center, Air Force Research Laboratory, Wright-Patterson Air Force Base, OH 45433 USA (e-mail: david.casbeer@us.af.mil).
DISTRIBUTION STATEMENT A. Approved for public release. Distribution is unlimited. AFRL-2025-3035; Cleared 06/17/2025.

Deepak Prakash Kumar1, Swaroop Darbha2, Satyanarayana Gupta Manyam3, David Casbeer4
Abstract

In this paper, we propose a new modeling approach and a fast algorithm for 3D motion planning, applicable for fixed-wing unmanned aerial vehicles. The goal is to construct the shortest path connecting given initial and final configurations subject to motion constraints. Our work differs from existing literature in two ways. First, we consider full vehicle orientation using a body-attached frame, which includes roll, pitch, and yaw angles. However, existing work uses only pitch and/or heading angle, which is insufficient to uniquely determine orientation. Second, we use two control inputs to represent bounded pitch and yaw rates, reflecting control by two separate actuators. In contrast, most previous methods rely on a single input, such as path curvature, which is insufficient for accurately modeling the vehicle’s kinematics in 3D. We use a rotation minimizing frame to describe the vehicle’s configuration and its evolution, and construct paths by concatenating optimal Dubins paths on spherical, cylindrical, or planar surfaces. Numerical simulations show our approach generates feasible paths within 10 seconds on average and yields shorter paths than existing methods in most cases.

I Introduction

The use of Unmanned Aerial Vehicles (UAVs) is rapidly growing in civilian and military applications, including search and rescue and surveillance. Fixed-wing UAVs are of particular interest due to longer flight times, larger payload capacity, and the ability to fly at higher altitudes[1, 2]. However, they are persistently in motion, i.e., cannot stop or hover mid-air, and cannot change their heading angle instantaneously. Hence, they have a bound on the rate of change of their heading/orientation, which manifests itself as curvature constraints on the path. Motion planning is important for these vehicles, in which the goal is to plan the optimal path to travel from one configuration (i.e., position and orientation together) to another. The objective of interest in this paper is to obtain the minimum-time (or distance) path(s). We seek a finite set of candidate paths that includes the optimal path for any boundary condition. These candidate paths are suitable for constructing paths for fixed-wing aircraft or yaw rate-constrained vehicles.

Motion planning for yaw rate-constrained vehicles is typically addressed by considering a simplified kinematic model, called the Dubins model. This models a vehicle traveling at a constant speed and has a minimum turning radius constraint, which is suitable for UAVs traveling at constant altitude (in 2D). Dubins [3] solved the problem of the shortest path between a pair of configurations on a plane. It was shown that the optimal path is of type CSC,CCC,CSC,CCC, or a degenerate path of the same, where C=L,RC=L,R denotes a left or a right turn of minimum turning radius, and SS denotes a straight line segment. Although Dubins showed this result using geometric techniques, the same result was later derived using Pontryagin’s Minimum Principle [4] in [5] using simpler proofs. Various variants of the planar path planning problem have been explored with variations in the model and/or the objective, such as in [6], where different left and right turning radius was considered.

Motion planning for such vehicles in 3D has also been an area of interest, where the shortest path to travel from one configuration to another, considering their motion constraints, is sought. The 3D problem applies not only to fixed-wing UAVs but also to underwater gliders and robots [7, 8]. Although specifying the heading angle alone uniquely defines the orientation of the vehicle in the 2D problem, the 3D problem requires both the heading angle and the plane in which the UAV lies. The UAV’s plane can be uniquely described using two additional angles (pitch and roll) or by a vector along its lateral or normal direction.

Simple kinematic models have also been used to tackle the 3D problem, where, similar to the 2D problem, the generated path can be tracked using a lower-level controller [9]. Because these paths can be computed very quickly, they can be combined with algorithms such as Rapidly Exploring Random Tree (RRT) to find feasible, obstacle-avoiding routes [10]. This method has also been experimentally demonstrated using an ARDrone in [11].

To our knowledge, the first exploration of the 3D problem was by Sussman [12]. The author showed that the optimal path is of type CSC,CSC, CCC,CCC, or a degenerate111Degenerate paths of CSCCSC and CCCCCC paths are CS,CS, SC,SC, C,C, and SS. version of these paths, or a helicoidal arc to connect a given location and heading direction222We note that in 3D, specifying only the location and heading direction does not fully determine the vehicle’s configuration, since the orientation of the plane containing the vehicle is not uniquely defined. In contrast, for 2D motion planning, location and heading are sufficient to uniquely specify the configuration.. Unlike the 2D problem, there may exist infinitely many CSCCSC paths between the initial and final configurations since the plane containing the CC segments can be freely chosen. Hence, efficient construction of CSCCSC paths has been explored in the literature. In [13], a CSCCSC path was constructed for instances where the initial and final locations are spaced sufficiently far apart using geometric and numerical approaches. In a later work [14], the authors adopted this path as an initial guess for a nonlinear optimization problem that was solved using a multiple-shooting method to improve the solution. The CSCCSC path construction was addressed in [15] as an inverse kinematics problem for a five degrees-of-freedom robotic manipulator. Analytical solutions were obtained for the path parameters to improve computational efficiency.

In [16] the 3D problem was addressed with a model that has two controllable inputs - one for yaw rate, and another for the rate of change of the altitude. In this work, a “Dubins airplane model” was proposed, and it was shown that the optimal trajectory comprises segments with arcs of minimum turning radius, straight lines, or a Dubins path of a certain length. Depending on the altitude difference between the initial and final locations, feasible solutions were generated by introducing additional segments to attain the desired altitude. This model was modified in [17], wherein a pitch angle constraint was introduced. Contrary to [16], this paper generates trajectories by incorporating helicoidal segments to attain the desired altitude when necessary. Additionally, the constructed paths were validated by simulations using a six-degree-of-freedom model (given in [18]) and a vector-field-based guidance law, inspired by [19], for tracking.

The 3D motion planning problem has also been addressed using the 2D Dubins result in [20]. The authors consider a total curvature constraint and a bounded pitch angle for the vehicle. They decouple the CSCCSC path to connect the given initial and final locations and heading vector into horizontal and vertical components. In this regard, they use the horizontal projection of the configurations to connect the locations and heading angles. The obtained path length is utilized as the xx coordinate in the vertical plane, with the desired altitude difference to be attained serving as the zz coordinate. Using iterative optimization of the horizontal and vertical turning radii, a feasible solution is constructed such that the total curvature bound and pitch angle bounds are satisfied. The authors used this solution to provide an initial guess to a non-linear optimization problem to further refine the path in [21].

In the existing literature, we observe that the complete orientation of the vehicle has not been considered for 3D motion planning. This is because the description of the pitch and heading angles alone does not uniquely describe its orientation. For example, Fig. 1 shows two orientations for the same vehicle moving along a straight line trajectory with a pitch angle of 00^{\circ} and a heading angle of 45:45^{\circ}: one where the roll angle is 00^{\circ} and another where the roll angle is 45.45^{\circ}. Infinitely many orientations exist for the same trajectory. However, from these figures, we can observe that prescribing the longitudinal direction and the lateral or normal direction of the vehicle would uniquely describe the orientation.333We remark here that in Fig. 1, unit vectors along the longitudinal, lateral, and normal directions are referred to as tangent, tangent normal, and surface normal vectors, respectively. The latter notation would be used later in the paper to describe the rotation minimizing frame model.  While the study in [22] models the complete configuration of a general robot, it is unclear how their model relates to the kinematics of a fixed-wing UAV.

Refer to caption
(a) Roll angle =0=0^{\circ} (animation available at https://youtu.be/gJ_YxbFJTu8)
Refer to caption
(b) Roll angle =45=45^{\circ} (animation available at https://youtu.be/huxpzSurWNs)
Figure 1: Depiction of two orientations corresponding to the same heading and pitch angle

The literature on path planning for aerial robots has primarily focused on models with a single control input, such as yaw rate, or a single constraint on the path’s curvature. In the 3D generalization of path planning, a single control input alone cannot capture the range of motions. This is because there are two elementary motions of interest for the motion planning of aerial vehicles: pitch and yaw. For fixed-wing UAVs, pitch motion is achieved using elevators, and yaw motion is achieved with rudder and/or aileron444Ailerons control the roll of the UAV, and this roll motion leads to a corresponding yaw motion for the vehicle. [18]. Since yaw and pitch motion are controlled by separate actuators, considering a single control is not sufficient. Hence, it is crucial to consider two control inputs: a bounded pitch rate and a bounded yaw rate. These constraints correspond to the minimum turning radii, RpitchR_{pitch} and RyawR_{yaw}, of the path’s curvature. The bounds on the pitch and yaw rates manifest as locally inaccessible spherical regions of radii RpitchR_{pitch} and RyawR_{yaw}, respectively. 555Imagine a vehicle moving in 3D space with a maximum allowable yaw rate (i.e., how quickly it can turn left or right). Due to this constraint, the vehicle cannot immediately change direction; it needs a certain minimum turning radius to execute a yaw maneuver. A yaw motion sphere is a spherical region around the vehicle that it cannot enter directly unless it has traveled a sufficient distance to allow for the required turning maneuver. This is analogous to the turning circles on the left and right in the 2D Dubins path problem. Similar to the yaw motion spheres that define inaccessible regions in the horizontal plane, pitch constraints define vertical maneuverability limits. Though two control inputs are considered in [16], the second control input is the rate of change of the altitude of the vehicle; furthermore, the pitch angle is not considered in this model, which make it tmore appropriate for a quadcopter.

A demonstration of the limitations of state-of-the-art approaches that rely on a single control input is presented in Fig. 2 for two instances. In both of these cases, paths were generated using the method from [20] - for which the code is publicly available. The minimum turning radius for this model was set to 40 meters to enforce the curvature constraint. In the following, we analyze these examples to explain why this path planning method is either infeasible or inefficient for the proposed (3D) model.

  1. 1.

    The proposed model incorporates two independent control inputs for the yaw and pitch rates. We set the minimum pitch turning radius, RpitchR_{pitch}, to 40 meters666In the paper, we will interchangeably use “m” to denote “meters”. for the first example. This choice is consistent with the parameter used in [20]. Since the yaw turning radius, RyawR_{yaw}, can be chosen independently, we set it to 50 meters. The solution generated by [20], shown in Fig. 2a, violates the yaw rate constraint by entering the yaw motion sphere. Such a maneuver is infeasible as the vehicle must travel a sufficient distance outside the sphere before entering it. This behavior is analogous to the infeasibility of entering the left or right turning circles in the 2D Dubins problem [3].

  2. 2.

    In the second example, we alternately pick RyawR_{yaw} in our model to be the same as the parameter in [20], which is 4040 meters. Since RpitchR_{pitch} is free to choose, we set RpitchR_{pitch} to be equal to 6060 meters. The path obtained using the algorithm from [20] is shown in Fig. 2b. We observe that the path enters one of the pitch motion spheres (which lies at the top of the vehicle), and hence violates the pitch rate constraint.

Alternatively, one could argue that the maximum of RyawR_{yaw} and RpitchR_{pitch} can be chosen as the minimum turning radius in [20]. However, this would lead to inefficient motion planning, since the vehicle would take larger-than-necessary turns in some instances.

Refer to caption
(a) Yaw rate violation for Rpitch=40R_{pitch}=40 m. Ryaw=50R_{yaw}=50 m.
Refer to caption
(b) Pitch rate violation for Ryaw=40R_{yaw}=40 m. Rpitch=60R_{pitch}=60 m.
Figure 2: Issue with single control input

The presented issues were addressed by the authors in [23], where a special case of motion planning on the surface of a sphere was studied. This paper provided insights for the 3D motion planning by considering a vehicle model with bounded yaw rate and pitch rate. Furthermore, the spherical motion planning problem was shown to arise as an intermediary problem to be solved for the 3D problem.

Having identified two major issues in the literature, the contributions of this paper are as follows:

  1. 1.

    We present a novel model using a rotation minimizing frame, also called the Bishop frame, to obtain the shortest path for a vehicle subject to pitch rate and yaw rate constraints. We build on the insights provided in [23] for the 3D problem.

  2. 2.

    We prove that the pitch rate and yaw rate constraints manifest as four spheres around the vehicle that represent temporarily inaccessible regions, thereby appropriately generalizing the 2D Dubins model to 3D.

  3. 3.

    We propose a path construction algorithm that consists of three classes of paths. The main idea is to build path segments on spherical surfaces that are tangent to the initial and final configurations, and these segments are connected by an intermediary surface. This surface could be a cylindrical envelope, a cross-tangent plane, or another spherical surface.

  4. 4.

    We pose and solve a Dubins-type path planning problem subject to curvature constraints on a cylindrical surface. To the best of our knowledge, the cylindrical motion planning problem has not been addressed in the literature. The proposed solution method involves unwrapping the surface to a two-dimensional plane, computing the optimal Dubins path, and then mapping back onto the cylindrical surface.

  5. 5.

    We present extensive numerical results on several instances. We show the effect of (i)(i) model that defines the complete configuration of the vehicle, (i.e., heading and lateral orientation and (ii)(ii) the impact of minimum turning radii on the best feasible path. We also observe that our algorithm can produce a high-quality feasible solution within 10 seconds. Additionally, we provide the code in a publicly available repository.777The code is available at https://github.com/DeepakPrakashKumar/3D-Motion-Planning-for-Generalized-Dubins-with-Pitch-Yaw-constraints.

II Modeling and Geometric Preliminaries

Let tt and ss denote the time and arc length, respectively, and 𝐗(s)\mathbf{X}(s) denote the instantaneous location of the vehicle. We consider a Rotation-Minimizing frame, also called a Bishop frame [24], attached to the center of mass of the UAV. Let 𝐓,𝐘,𝐔\mathbf{T},\mathbf{Y},\mathbf{U} denote the unit vectors of the Bishop frame with 𝐓,𝐘\mathbf{T},\mathbf{Y} directed along the longitudinal and lateral directions of the vehicle, respectively. The vector 𝐔:=𝐓×𝐘\mathbf{U}:=\mathbf{T}\times\mathbf{Y} is along the normal direction of the vehicle. Fig. 3 shows the vehicle configuration with the vectors 𝐓,𝐘\mathbf{T},\mathbf{Y} and 𝐔\mathbf{U}.

Refer to caption
Figure 3: The configuration of the vehicle defined by the three vectors 𝐓,𝐘\mathbf{T},\mathbf{Y} and 𝐔\mathbf{U}

The instantaneous angular velocity of the frame can be written as

ω(t)=ωx(t)𝐓(t)+ωy(t)𝐘(t)+ωz(t)𝐔(t),\displaystyle\omega(t)=\omega_{x}(t){\bf T}(t)+\omega_{y}(t){\bf Y}(t)+\omega_{z}(t){\bf U}(t),

with ωx,ωy,ωz\omega_{x},\omega_{y},\omega_{z} denoting the components in the 𝐓,𝐘{\bf T},{\bf Y}, and 𝐔{\bf U} directions, respectively. One may think of them as the roll, pitch, and yaw rates of the body, respectively. Notably, the Rotation Minimizing Frame (RMF) is constructed so that ωx(t)=0\omega_{x}(t)=0: there is no rotation about the tangent, minimizing frame twisting (essentially, the roll rate is set to zero). The kinematics of the frame then satisfy:

d𝐓dt\displaystyle\frac{d{\bf T}}{dt} =ω(t)×𝐓(t)=ωz(t)𝐘(t)ωy(t)𝐔(t),\displaystyle=\omega(t)\times{\bf T}(t)=\omega_{z}(t){\bf Y}(t)-\omega_{y}(t){\bf U}(t),
d𝐘dt\displaystyle\frac{d{\bf Y}}{dt} =ω(t)×𝐘(t)=ωz(t)𝐓(t),\displaystyle=\omega(t)\times{\bf Y}(t)=-\omega_{z}(t){\bf T}(t),
d𝐔dt\displaystyle\frac{d{\bf U}}{dt} =ω(t)×𝐔(t)=ωy(t)𝐓(t).\displaystyle=\omega(t)\times{\bf U}(t)=\omega_{y}(t){\bf T}(t).

A key property of an RMF is that 𝐘(t){\bf Y}(t) and 𝐔(t){\bf U}(t) change only in the direction of 𝐓(t){\bf T}(t).

Assume that the vehicle moves at a constant, nonzero longitudinal speed V0V_{0}. Defining

κg(s):=ωz(s)V0,κn(s):=ωy(s)V0,\displaystyle\kappa_{g}(s):=\frac{\omega_{z}(s)}{V_{0}},\qquad\kappa_{n}(s):=\frac{\omega_{y}(s)}{V_{0}}, (1)

the kinematic equations parameterized in terms of ss become

d𝐗(s)ds\displaystyle\frac{d\mathbf{X}(s)}{ds} =1V0d𝐗dt=𝐓(s),\displaystyle=\frac{1}{V_{0}}\frac{d{\bf X}}{dt}=\mathbf{T}(s),\quad (2)
d𝐓(s)ds\displaystyle\frac{d\mathbf{T}(s)}{ds} =κg(s)𝐘(s)+κn(s)𝐔(s),\displaystyle=\kappa_{g}(s)\mathbf{Y}(s)+\kappa_{n}(s)\mathbf{U}(s), (3)
d𝐘(s)ds\displaystyle\frac{d\mathbf{Y}(s)}{ds} =κg(s)𝐓(s),\displaystyle=-\kappa_{g}(s)\mathbf{T}(s),\quad (4)
d𝐔(s)ds\displaystyle\frac{d\mathbf{U}(s)}{ds} =κn(s)𝐓(s).\displaystyle=-\kappa_{n}(s)\mathbf{T}(s). (5)

The bounds for control inputs κg\kappa_{g} and κn\kappa_{n}, which we refer to as geodesic curvature and normal curvature, respectively, are stated as shown below,888We use the notation κg\kappa_{g} and κn\kappa_{n}, since they have the same form as that of the geodesic and normal curvatures in the Darboux frame model, a differential geometric model.

|κn|1Rpitch,|κg|1Ryaw.\displaystyle|\kappa_{n}|\leq\frac{1}{R_{pitch}},\quad|\kappa_{g}|\leq\frac{1}{R_{yaw}}. (6)

We shall later show that RpitchR_{pitch} is the minimum turning radius corresponding to pitch motion and RyawR_{yaw} is the minimum turning radius corresponding to the yaw motion. The objective is to compute the minimum distance trajectory from the initial to final configuration, defined by 𝐗,\mathbf{X}, 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔\mathbf{U}. Hence, the cost to minimize is J=1𝑑s.J=\int 1ds. Geometrically, the path planning problem can be depicted as shown in Fig. 4. A detailed description of this figure follows.

Refer to caption
Figure 4: Depiction of spheres corresponding to pitch motion (in orange and magenta) and yaw motion (in blue and green) at the initial and final configuration

In Fig. 4, it can be observed that four spheres are constructed, which are tangential to the vehicle configuration. To understand how they appear, we need to understand the geometric impact of the curvatures, κn\kappa_{n} and κg.\kappa_{g}. To this end, we derive the closed-form expression for 𝐗,\mathbf{X}, 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔\mathbf{U} over an interval wherein κg\kappa_{g} and κn\kappa_{n} are constants. The obtained expressions are shown in Appendix -A.

We remark here that since the control inputs appear linearly in the differential equations (3)-(5), and a minimum time problem is considered, the optimal control actions are expected to be bang-bang from Pontryagin’s minimum principle [4]. Therefore, it is sufficient to consider intervals in which κg\kappa_{g} and κn\kappa_{n} are constant. Furthermore, it suffices to consider κg{1Ryaw,0,1Ryaw}\kappa_{g}\in\{-\frac{1}{R_{yaw}},0,\frac{1}{R_{yaw}}\} and κn{1Rpitch,0,1Rpitch}\kappa_{n}\in\{-\frac{1}{R_{pitch}},0,\frac{1}{R_{pitch}}\}.

Using the closed-form expressions derived in Appendix -A, we state and prove the following two Lemmas.

Lemma 1.

When κn=1Rpitch\kappa_{n}=\frac{1}{R_{pitch}} or 1Rpitch-\frac{1}{R_{pitch}} the corresponding segment lies on spheres with radius RpitchR_{pitch} whose center lies along 𝐔\mathbf{U} or 𝐔-\mathbf{U}, respectively. Furthermore, such segments correspond to a maximum ascent or descent motion of the vehicle with a turning radius of 1κg2+1Rpitch2.\frac{1}{\sqrt{\kappa_{g}^{2}+\frac{1}{R_{pitch}^{2}}}}.

Proof.

The proof is provided in Appendix -B. ∎

The following lemma states a similar result in a different axis, and the proof follows the same reasoning.

Lemma 2.

When κg=±1Ryaw,\kappa_{g}=\pm\frac{1}{R_{yaw}}, the corresponding segment lies on spheres with radius RyawR_{yaw} whose center lies along 𝐘\mathbf{Y} or 𝐘-\mathbf{Y}. Furthermore, such segments correspond to maximum turn (left or right) motion of the vehicle with a turning radius of 11Ryaw2+κn2.\frac{1}{\sqrt{\frac{1}{R_{yaw}^{2}}+\kappa_{n}^{2}}}.

From these two lemmas, we see that the normal curvature κn\kappa_{n} governs the pitch motion, while the geodesic curvature κg\kappa_{g} governs the yaw motion. In fact, these curvatures directly correspond to the vehicle’s pitch rate and yaw rate, respectively (which is expected based on the Bishop frame setup and the definitions in (1)). When the vehicle moves with its maximum pitch rate and zero yaw rate, it follows a great circle of radius RpitchR_{pitch} on the orange or purple sphere shown in Fig. 4. This result comes from Lemma 1. Since the vehicle travels at unit speed, the time to complete the circle is tpitch=2πRpitch.t_{pitch}=2\pi R_{pitch}. Over this time, the pitch angle changes by 2π2\pi, so the pitch rate is 2πtpitch=1Rpitch.\frac{2\pi}{t_{pitch}}=\frac{1}{R_{pitch}}. A similar argument holds for the yaw rate, giving a maximum value of 1Ryaw\frac{1}{R_{yaw}}. Therefore, κn\kappa_{n} and κg\kappa_{g} represent the vehicle’s pitch and yaw rates, respectively.

By varying κn{1Rpitch,0,1Rpitch}\kappa_{n}\in\{-\frac{1}{R_{pitch}},0,\frac{1}{R_{pitch}}\} and κg{1Ryaw,0,1Ryaw}\kappa_{g}\in\{-\frac{1}{R_{yaw}},0,\frac{1}{R_{yaw}}\}, we obtain nine distinct motion primitives, shown in Fig. 5. These were generated using the closed-form expressions, presented in Appendix -A. Using Lemma 1, we find that the segments Lsi,L_{si}, Rsi,R_{si}, Lso,L_{so}, and RsoR_{so} have radius 11Ryaw2+1Rpitch2\frac{1}{\sqrt{\frac{1}{R_{yaw}^{2}}+\frac{1}{R_{pitch}^{2}}}}, corresponding to motion with maximum absolute pitch and yaw rates. Here, LL and RR denote a left turn and right turn, respectively, which correspond to κg=1Ryaw\kappa_{g}=\frac{1}{R_{yaw}} and κg=1Ryaw,\kappa_{g}=-\frac{1}{R_{yaw}}, respectively. Additionally, subscripts “sisi” and “soso” are used to refer to the segments that lie on the “inner” sphere and “outer” sphere, respectively; the inner sphere corresponds to κn=1Rpitch,\kappa_{n}=\frac{1}{R_{pitch}}, and the outer sphere corresponds to κn=1Rpitch.\kappa_{n}=-\frac{1}{R_{pitch}}. The segments GsiG_{si} and GsoG_{so} result from pure pitch motion (κg=0\kappa_{g}=0), while LpL_{p} and RpR_{p} result from pure yaw motion. When both curvatures are zero (κn=κg=0\kappa_{n}=\kappa_{g}=0), the vehicle moves in a straight line segment SS.

Using the obtained motion primitives and the observation that κn\kappa_{n} and κg\kappa_{g} attaining values of ±1Rpitch\pm\frac{1}{R_{pitch}} and ±1Ryaw\pm\frac{1}{R_{yaw}} yields two spheres each (a pair along 𝐔\mathbf{U} and a pair along 𝐘\mathbf{Y}), we can observe that at both the initial and final configuration, four spheres exist around the vehicle. Additionally, portions of the optimal path will lie on one of the four spheres at the initial configuration and one of the four spheres at the final configuration999The only motion primitive that does not lie on a sphere is a straight line segment S.S. However, even in this case, a portion of the optimal path can be modeled to lie on one of the four spheres; however, the path will be trivial, i.e., of zero length.. Hence, we propose three classes of paths to construct a feasible path connecting one of the initial spheres with one of the final spheres. We construct the path using three types of intermediary surfaces (or classes): a cylindrical envelope, a planar surface, or a spherical surface. These three classes of paths are a generalization of the classical CSCCSC and CCCCCC paths for the planar Dubins problems. In our algorithm, we consider a sphere at the initial or final configuration to serve as a generalization of the turn segment (CC) in a plane; furthermore, we consider the cylindrical envelope and planar surface to generalize the SS segment. In the following section, we describe the three classes of paths in more detail.

Refer to caption
(a) Segments on spheres corresponding to max. pitch rate
Refer to caption
(b) Segments on spheres corresponding to max. yaw rate (and straight line segment)
Figure 5: Visualization of segments [23]. We note that Lsi,L_{si}, Rsi,R_{si}, Lso,L_{so}, and RsoR_{so} are shown in both subfigures, since each of these segments lies on two spheres.

Remark: In general, the yaw and pitch rates for different UAVs may vary and can be coupled. The problem posed here is still of significant interest in obtaining lower and upper bounds for the shortest path length. One such case is illustrated by the region within the boundaries, shown in brown, in Fig. 6. However, by replacing the boundary with a rectangular region inscribed within this area, one can derive an upper bound that is a feasible solution. Similarly, by outer approximating the allowable region with a larger rectangular region, shown in green in Fig. 6, a lower bound for the optimal path length can be obtained.

Refer to caption
Figure 6: Generic control inputs region and obtaining bounds for rectangular control input region considered in this paper

III Shortest Path Construction

The constructed paths start and end on a spherical surface at the initial and final configurations. Three distinct classes of paths are presented, each using a different intermediary surface for the sub-path between the spheres, which can be cylindrical, planar, or spherical. We refer to the spheres centered along the 𝐔\mathbf{U}-axis as the inner (orange, along 𝐔\mathbf{U}) and outer (purple, along 𝐔-\mathbf{U}) spheres, as shown in Fig. 4. Similarly, the spheres centered along the 𝐘\mathbf{Y}-axis are called the left (green, along 𝐘\mathbf{Y}) and right (blue, along 𝐘-\mathbf{Y}) spheres.

The intermediary sub-paths considered are as follows:

  1. 1.

    In the first class, the sub-path is constructed using a cylindrical envelope. In this case, we connect the pair of spheres of the same type at the initial and final configurations. There are four such pairs: inner-to-inner, outer-to-outer, left-to-left, and right-to-right. Fig. 7a illustrates the cylindrical envelope between inner and outer spheres. We will later show that these paths satisfy the curvature constraints (6). The full construction is detailed in Section IV.

  2. 2.

    In the second class of paths, a sub-path between a pair of spheres is constructed on a cross-tangent plane. For spheres of opposite type, such as inner-to-outer, outer-to-inner, left-to-right, or right-to-left, a path through a cylindrical envelope is not feasible. This is because the normal vector of the cylindrical surface, 𝐔\mathbf{U} for pitch spheres and 𝐘\mathbf{Y} for yaw spheres, remains constant along the envelope and does not support a continuous feasible orientation between opposing directions. An example for the inner-to-outer case is shown in Fig. 7b. Details of this construction are provided in Section V.

  3. 3.

    In the third class of paths, we construct sub-paths between pairs of spheres of the same type using an intermediary sphere. There are four such configurations: inner–outer–inner, outer–inner–outer, left–right–left, and right–left–right. These paths are designed for initial and final locations that are close to each other. An example of this type is illustrated in Fig. 7c, and the full construction is described in Section VI.

Refer to caption
(a) Cylindrical envelope
Refer to caption
(b) Sample cross-tangent plane
Refer to caption
(c) Connection through an intermediary sphere
Figure 7: Depiction of surfaces used to connect spheres at the initial and final configurations
Remark.

Note that only the listed classes are possible using a single intermediary surface. For example, connecting an inner sphere at the initial configuration with a left sphere at the final configuration is not possible. A cylindrical surface cannot be used because the outward normal directions differ: 𝐔-\mathbf{U} for the inner sphere and 𝐘-\mathbf{Y} for the left sphere. Since the normal vector remains constant across cylindrical, spherical, and frustum surfaces, none of these can bridge the two spheres. A planar surface also doesn’t work, as there is no common tangent plane between the two. For instance, the 𝐓𝐘\mathbf{T}-\mathbf{Y} plane is tangent to the inner sphere but not to the left sphere (see Fig. 4). Therefore, using a single intermediary surface, we can only connect either a pair of pitch spheres or a pair of yaw spheres, not a mix of both.

Remark.

Although it is possible to connect a pair of spheres of the same type (e.g., inner–inner) using a plane, we do not consider such paths in this paper. This is because the planar connection is a special case of the cylindrical connection. This is because a plane can be wrapped into a cylinder without changing the path length or violating the curvature constraints. We discuss this preservation property in more detail when introducing the cylindrical path construction in the next section.

IV Path Synthesis on Cylindrical Envelope

To generate a feasible path connecting two spheres of the same radius and type via a cylindrical envelope (as shown in Fig. 7a), the vehicle follows this sequence:

  • Step 1: The path starts on the initial sphere and transitions to the cylindrical surface. The transition point, 𝐗ic\mathbf{X}_{ic}, lies on the boundary circle formed by the intersection of the sphere and the cylindrical envelope. At this point, its longitudinal direction aligns with 𝐓ic,\mathbf{T}_{ic}, as illustrated in Fig. 8.

  • Step 2: The path exits the cylindrical envelope at 𝐗oc\mathbf{X}_{oc}, with longitudinal direction 𝐓oc\mathbf{T}_{oc}.

  • Step 3: Finally, the path continues on the final sphere to reach the desired final configuration.

Refer to caption
Figure 8: Notation for discretization of position and headings on a cylinder connecting two spheres

Note that the entry and exit points on the cylinder, along with their corresponding tangent directions, are not fixed and can be freely chosen. We parameterize these directions using four angles: θic,\theta_{ic}, ϕic,\phi_{ic}, θoc,\theta_{oc}, and ϕoc.\phi_{oc}. The following section describes how the path on the spheres and the cylinder is constructed based on these four parameters.

IV-A Origins of the Spheres and Axes of the Cylinders

We begin by deriving expressions for the centers of the spheres at the initial and final configurations, denoted by 𝐫i\mathbf{r}_{i} and 𝐫f,\mathbf{r}_{f}, respectively. These vectors are given by

𝐫i\displaystyle\mathbf{r}_{i} =𝐗i+δi,oinitialRpitch𝐔i+δl,rinitialRyaw𝐘i,\displaystyle=\mathbf{X}_{i}+\delta^{initial}_{i,o}R_{pitch}\mathbf{U}_{i}+\delta^{initial}_{l,r}R_{yaw}\mathbf{Y}_{i}, (7)
𝐫f\displaystyle\mathbf{r}_{f} =𝐗f+δi,ofinalRpitch𝐔f+δl,rfinalRyaw𝐘f.\displaystyle=\mathbf{X}_{f}+\delta^{final}_{i,o}R_{pitch}\mathbf{U}_{f}+\delta^{final}_{l,r}R_{yaw}\mathbf{Y}_{f}. (8)

Here, δi,oinitial=1,1\delta^{initial}_{i,o}=1,-1 or 0 depending on whether the inner sphere, outer sphere, or one of the left/right spheres is selected at the initial configuration, respectively. Similarly, δl,rinitial=1,1,0\delta^{initial}_{l,r}=1,-1,0 if the left sphere, right sphere, or one of the inner/outer spheres is chosen. The same interpretation applies for δi,ofinal\delta^{final}_{i,o} and δl,rfinal.\delta^{final}_{l,r}. For cylindrical envelope constructions, we require that δi,oinitial=δi,ofinal\delta^{initial}_{i,o}=\delta^{final}_{i,o} and δl,rinitial=δl,rfinal\delta^{initial}_{l,r}=\delta^{final}_{l,r}.

We can obtain the axis of the cylinder that connects the selected pair of spheres as (refer to Fig. 7a)

𝐤\displaystyle\mathbf{k} =𝐫f𝐫i𝐫f𝐫i2.\displaystyle=\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}. (9)

Furthermore, the length of the cylinder is given by h=𝐫f𝐫i2.h=\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}. Since the radius of the cylinder is the same as the radius of the selected pair of spheres, the cylinder’s radius is RpitchR_{pitch} if δi,oinner0\delta^{inner}_{i,o}\neq 0 and RyawR_{yaw} if δl,rinner0.\delta^{inner}_{l,r}\neq 0.

We now derive expressions for the entry and exit points on the cylinder (𝐗ic\mathbf{X}_{ic} and 𝐗oc\mathbf{X}_{oc}) as well as their corresponding tangent directions (𝐓ic\mathbf{T}_{ic} and 𝐓oc\mathbf{T}_{oc}).

IV-B Parameters for the location and tangent vector on the cylinder

On the cylindrical envelope, we parameterize the entry point 𝐗ic\mathbf{X}_{ic} and the tangent 𝐓ic\mathbf{T}_{ic} by two angles, θic\theta_{ic} and ϕic\phi_{ic} (see Fig. 8). Likewise, θoc\theta_{oc} and ϕoc\phi_{oc} parameterize the exit point 𝐗oc\mathbf{X}_{oc} and the corresponding tangent 𝐓oc\mathbf{T}_{oc}. To derive these expressions, we introduce a body frame (OB,x,y,z)\mathcal{B}(O_{B},x,y,z) centered at the cylinder’s base point 𝐫i\mathbf{r}_{i}, with its zz‑axis aligned along the cylinder axis (also shown in Fig. 8).101010Since the cylinder’s zz-axis is known, but the xx- and yy-axes of the body frame are not, we begin by aligning the xx-axis with the global XX-axis. We then apply Gram–Schmidt orthogonalization to compute a unit vector perpendicular to the zz-axis. If the dot product between the global XX-axis and the cylinder’s zz-axis is close to one (i.e., they are nearly aligned), we instead use the global YY-axis to initialize the process.

The expressions for 𝐗ic\mathbf{X}_{ic} and 𝐗oc\mathbf{X}_{oc} can be derived in the body frame \mathcal{B} to be

𝐗ic\displaystyle\mathbf{X}_{ic}^{\mathcal{B}} =(R¯cosθicR¯sinθic0),𝐗oc=(R¯cosθocR¯sinθoch),\displaystyle=\begin{pmatrix}\overline{R}\cos{\theta_{ic}}\\ \overline{R}\sin{\theta_{ic}}\\ 0\end{pmatrix},\quad\mathbf{X}_{oc}^{\mathcal{B}}=\begin{pmatrix}\overline{R}\cos{\theta_{oc}}\\ \overline{R}\sin{\theta_{oc}}\\ h\end{pmatrix}, (10)

where R¯\overline{R} is the radius of the cylinder, and is given by

R¯=Rpitch|δi,oinitial|+Ryaw|δl,rinitial|.\displaystyle\overline{R}=R_{pitch}|\delta^{initial}_{i,o}|+R_{yaw}|\delta^{initial}_{l,r}|. (11)

We can derive the direction cosines of the tangent vector when it enters and exits the cylinder as (refer to Fig. 8)

𝐓ic\displaystyle\mathbf{T}_{ic}^{\mathcal{B}} =𝐑z(θic)𝐑x(ϕic)(010)=(sinθiccosϕiccosθiccosϕicsinϕic),\displaystyle=\mathbf{R}_{z}(\theta_{ic})\mathbf{R}_{x}(\phi_{ic})\begin{pmatrix}0\\ 1\\ 0\end{pmatrix}=\begin{pmatrix}-\sin{\theta_{ic}}\cos{\phi_{ic}}\\ \cos{\theta_{ic}}\cos{\phi_{ic}}\\ \sin{\phi_{ic}}\end{pmatrix},
𝐓oc\displaystyle\mathbf{T}_{oc}^{\mathcal{B}} =𝐑z(θoc)𝐑x(ϕoc)(010)=(sinθoccosϕoccosθoccosϕocsinϕoc).\displaystyle=\mathbf{R}_{z}(\theta_{oc})\mathbf{R}_{x}(\phi_{oc})\begin{pmatrix}0\\ 1\\ 0\end{pmatrix}=\begin{pmatrix}-\sin{\theta_{oc}}\cos{\phi_{oc}}\\ \cos{\theta_{oc}}\cos{\phi_{oc}}\\ \sin{\phi_{oc}}\end{pmatrix}.

Here, 𝐑z\mathbf{R}_{z} and 𝐑x\mathbf{R}_{x} are standard elementary rotation matrices for rotation about the zz and xx axis, respectively.

The entry position 𝐗ic\mathbf{X}_{ic} and tangent direction 𝐓ic\mathbf{T}_{ic} in the global frame 𝒢(O,X,Y,Z)\mathcal{G}(O,X,Y,Z) can be expressed as

𝐗ic𝒢\displaystyle\mathbf{X}_{ic}^{\mathcal{G}} =(𝐱𝐲𝐳)𝐗ic+(XOYOZO),\displaystyle=\begin{pmatrix}\mathbf{x}&\mathbf{y}&\mathbf{z}\end{pmatrix}\mathbf{X}_{ic}^{\mathcal{B}}+\begin{pmatrix}X_{O_{\mathcal{B}}}\\ Y_{O_{\mathcal{B}}}\\ Z_{O_{\mathcal{B}}}\end{pmatrix}, (12)
𝐓ic𝒢\displaystyle\mathbf{T}_{ic}^{\mathcal{G}} =(𝐱𝐲𝐳)𝐓ic,\displaystyle=\begin{pmatrix}\mathbf{x}&\mathbf{y}&\mathbf{z}\end{pmatrix}\mathbf{T}_{ic}^{\mathcal{B}}, (13)

where 𝐱,𝐲,\mathbf{x},\mathbf{y}, and 𝐳\mathbf{z} are unit vectors along the x,y,x,y, zz axes of the body frame ,\mathcal{B}, and XO,YO,ZOX_{O_{\mathcal{B}}},Y_{O_{\mathcal{B}}},Z_{O_{\mathcal{B}}} is the location of the body frame’s origin. Analogous expressions hold for 𝐗oc\mathbf{X}_{oc} and 𝐓oc\mathbf{T}_{oc}.

With the expressions for the entry and exit locations and their corresponding tangent vectors on the cylindrical envelope now established, we proceed to construct the optimal path on the initial and final spheres, as well as on the cylindrical envelope.

IV-C Generation of paths on initial and final spheres

Consider the chosen sphere at the initial configuration. We need to obtain the optimal path connecting the initial configuration to the location 𝐗ic𝒢\mathbf{X}_{ic}^{\mathcal{G}} with heading direction given by 𝐓ic𝒢\mathbf{T}_{ic}^{\mathcal{G}} to enter the cylindrical envelope (as shown in Fig. 8). We simplify this problem by translating the sphere’s center to the origin. This allows us to analyze the motion using a Sabban frame [25, 23]. The task becomes finding the optimal path on the sphere’s surface that connects an initial location 𝐗sp,0\mathbf{X}_{sp,0} and tangent 𝐓sp,0\mathbf{T}_{sp,0} to a final location and tangent.

In [25, 23], the Sabban frame model was used to study motion planning on a unit sphere. The configuration of the vehicle was specified by a location 𝐗^sp\hat{\mathbf{X}}_{sp} (which is a unit vector pointing radially outwards), a tangent vector 𝐓sp\mathbf{T}_{sp} along the longitudinal direction of the vehicle, and a normal vector 𝐍sp\mathbf{N}_{sp} along the lateral direction. Additionally, the path was parametrized in terms of arc length s^.\hat{s}. The evolution equations for these vectors are given by

d𝐗^spds^(s^)=𝐓sp(s^),d𝐓spds^(s^)=𝐗^sp(s^)+u^g𝐍sp(s^),\displaystyle\frac{d\hat{\mathbf{X}}_{sp}}{d\hat{s}}(\hat{s})=\mathbf{T}_{sp}(\hat{s}),\quad\frac{d\mathbf{T}_{sp}}{d\hat{s}}(\hat{s})=-\hat{\mathbf{X}}_{sp}(\hat{s})+\hat{u}_{g}\mathbf{N}_{sp}(\hat{s}),
d𝐍spds^(s^)=u^g𝐓sp(s^),\displaystyle\frac{d\mathbf{N}_{sp}}{d\hat{s}}(\hat{s})=-\hat{u}_{g}\mathbf{T}_{sp}(\hat{s}), (14)

where u^g[U^max,U^max]\hat{u}_{g}\in[-\hat{U}_{max},\hat{U}_{max}] is the geodesic curvature on the unit sphere and serves as the control input. It relates to the minimum turning radius r^\hat{r} on the unit sphere by r^=11+U^max2.\hat{r}=\frac{1}{\sqrt{1+\hat{U}_{max}^{2}}}.

We can adapt the previous results for motion planning on a sphere of any radius (R¯\overline{R}) by scaling the problem to a unit sphere problem.111111We note here that we perform this scaling since 𝐗sp,𝐓sp,\mathbf{X}_{sp},\mathbf{T}_{sp}, and 𝐍sp\mathbf{N}_{sp} do not form a rotation matrix as 𝐗sp\mathbf{X}_{sp} is not a unit vector. However, when the problem is scaled to motion planning on a unit sphere, these vectors form a rotation matrix; therefore, the path can be constructed easily.  First, we compute the normal vector 𝐍sp:=1R¯𝐗sp×𝐓sp.\mathbf{N}_{sp}:=\frac{1}{\overline{R}}\mathbf{X}_{sp}\times\mathbf{T}_{sp}. While scaling does not affect the tangent vector 𝐓sp\mathbf{T}_{sp} or the normal vector 𝐍sp\mathbf{N}_{sp}, other parameters change. The location on the unit sphere becomes 𝐗^sp:=1R¯𝐗sp\hat{\mathbf{X}}_{sp}:=\frac{1}{\overline{R}}\mathbf{X}_{sp}, and the corresponding minimum turning radius becomes r^=1R¯r.\hat{r}=\frac{1}{\overline{R}}r. A detailed derivation of this scaling is available in Appendix -C.

Refer to caption
Figure 9: Motion planning on sphere with radius R¯\overline{R} and on a unit sphere

From [23], the candidate optimal paths on a unit sphere are of type CGC,CCCCGC,CCC for r^12,\hat{r}\leq\frac{1}{2}, CGC,CCCC,CGC,CCCC, or a degenerate path for 12<r^12,\frac{1}{2}<\hat{r}\leq\frac{1}{\sqrt{2}}, and CGC,CGC, CCCCC,CCCCC, or CCπCCC_{\pi}C for 12<r^32.\frac{1}{\sqrt{2}}<\hat{r}\leq\frac{\sqrt{3}}{2}. The analytical computation of the arc angles for each path is provided in [26]. We note here that the arc angles of the segments of a path on the unit sphere and the corresponding path on the sphere with radius R¯\overline{R} would be the same. Hence, we can obtain the arc angles of the segments for each candidate path on the sphere with radius R¯\overline{R} using [26].

Remark: The arc angle ϕ\phi is related to the segment length ll by l=r^ϕl=\hat{r}\phi for LL and RR segments, and l=ϕl=\phi for a GG segment on a unit sphere.

Finally, we want to obtain the expressions for 𝐗sp,\mathbf{X}_{sp}, 𝐓sp,\mathbf{T}_{sp}, and 𝐍sp\mathbf{N}_{sp} along the path to describe the instantaneous configuration of the vehicle along the sphere. We can obtain these expressions by solving the Sabban frame equations, derived in Appendix -C, using the Euler-Rodriguez formula. Therefore, the configuration of the vehicle on the sphere along the path can be obtained.

The last step to be performed is to obtain the configuration of the vehicle in 3D (which utilizes the rotation minimizing frame). Since we had shifted the origin of the sphere to coincide with the origin of the global frame 𝒢,\mathcal{G}, the location (𝐗\mathbf{X}) and longitudinal direction (𝐓\mathbf{T}) can be easily obtained as

𝐗(s)=𝐗sp(s)+𝐫i,𝐓(s)=𝐓sp(s).\displaystyle\mathbf{X}(s)=\mathbf{X}_{sp}(s)+\mathbf{r}_{i},\quad\mathbf{T}(s)=\mathbf{T}_{sp}(s).

Furthermore, depending on the type of sphere chosen at the initial configuration, 𝐘\mathbf{Y} and 𝐔\mathbf{U} can be computed (refer to Fig. 9). If δi,oinitial0\delta_{i,o}^{initial}\neq 0 or δl,rinitial0,\delta_{l,r}^{initial}\neq 0, the expressions for 𝐔\mathbf{U} (the surface normal) and 𝐘\mathbf{Y} (the tangent normal) are obtained, respectively, as (refer to Figs. 4 and 9)

𝐔(s)\displaystyle\mathbf{U}(s) =δi,oinitial1R¯𝐗sp(s),δi,oinitial0,\displaystyle=-\delta_{i,o}^{initial}\frac{1}{\overline{R}}\mathbf{X}_{sp}(s),\quad\delta_{i,o}^{initial}\neq 0,
𝐘(s)\displaystyle\mathbf{Y}(s) =δl,rinitial1R¯𝐗sp(s),δl,rinitial0.\displaystyle=-\delta_{l,r}^{initial}\frac{1}{\overline{R}}\mathbf{X}_{sp}(s),\quad\delta_{l,r}^{initial}\neq 0.

When δi,oinitial0,\delta_{i,o}^{initial}\neq 0, 𝐘=𝐔×𝐓;\mathbf{Y}=\mathbf{U}\times\mathbf{T}; when δl,rinitial0,\delta_{l,r}^{initial}\neq 0, 𝐔=𝐓×𝐘.\mathbf{U}=\mathbf{T}\times\mathbf{Y}. The path on the sphere at the final configuration is constructed similarly.

IV-D Generation of path on cylinder

In this section, we describe the construction of the optimal Dubins path on a cylinderical surface. This path connects an initial and final configuration on the cylinder, which we had previously parameterized in terms of θic,\theta_{ic}, ϕic,\phi_{ic}, θoc,\theta_{oc}, and ϕoc.\phi_{oc}. The path we construct on the cylinder must obey the geodesic curvature (yaw rate) and normal curvature (pitch rate) constraints for the 3D model. We note that the radius of the cylinder is R¯,\overline{R}, whose definition is given in (11). We choose the bound on the geodesic curvature for motion over the cylinder to be

|κg,cyc|{1Rpitch,δi,oinitial=0,1Ryaw,δl,rinitial=0.\displaystyle|\kappa_{g,cyc}|\leq\begin{cases}\frac{1}{R_{pitch}},&\delta_{i,o}^{initial}=0,\\ \frac{1}{R_{yaw}},&\delta_{l,r}^{initial}=0.\end{cases} (15)

We claim that the considered radius for the cylinder and the geodesic curvature bounds satisfy the geodesic curvature and normal curvature constraints for the 3D problem.

Lemma 3.

The optimal path on a cylinder of radius R¯,\overline{R}, defined in (11), with geodesic curvature bounds given by (15) satisfies the geodesic curvature and normal curvature bounds for the proposed rotation minimizing frame model.

Proof.

The proof is provided in Appendix -D. ∎

We present the construction of the optimal path on the cylinder. Note that geodesic curvature is bending invariant [27]. Hence, we can unwrap the cylinder onto a plane, as shown in Fig. 10, and construct the optimal path on the plane. Finally, the constructed path on the plane can be wrapped back onto the cylinder.

IV-D1 Unwrapping frame for cylinder

For unwrapping the cylinder, we consider a frame 𝒰,\mathcal{U}, referred to as the unwrapping frame, with axes x𝒰,x_{\mathcal{U}}, y𝒰,y_{\mathcal{U}}, and z𝒰z_{\mathcal{U}}. The origin for 𝒰\mathcal{U} is at the point of entry of the cylinder (𝐗ic\mathbf{X}_{ic}). Furthermore, z𝒰z_{\mathcal{U}} is parallel to zz and y𝒰y_{\mathcal{U}} points radially inwards to the cylinder. We will use the unwrapping frame for constructing the path on the plane. Once we construct such a path, we will represent it in the body frame ,\mathcal{B}, and finally obtain the vehicle’s configuration in the global frame 𝒢\mathcal{G} for the 3D problem.

Consider a point QQ on the cylinder. The relationship between its location in the unwrapping frame (𝐗Q𝒰\mathbf{X}_{Q}^{\mathcal{U}}) and the body frame (𝐗Q\mathbf{X}_{Q}^{\mathcal{B}}) is given by121212For motion planning on a cylinder where the initial location (equivalent to the origin of 𝒰\mathcal{U}) is not in the xyxy plane, the last term in (16) can be replaced with (R¯cosθic,R¯sinθic,dic)T.(\overline{R}\cos{\theta_{ic}},\overline{R}\sin{\theta_{ic}},d_{ic})^{T}. Here, dicd_{ic} is the distance from the xyxy plane.

𝐗Q\displaystyle\mathbf{X}_{Q}^{\mathcal{B}} =(sinθiccosθic0cosθicsinθic0001)𝐗Q𝒰+(R¯cosθicR¯sinθic0).\displaystyle=\begin{pmatrix}-\sin{\theta_{ic}}&-\cos{\theta_{ic}}&0\\ \cos{\theta_{ic}}&-\sin{\theta_{ic}}&0\\ 0&0&1\end{pmatrix}\mathbf{X}_{Q}^{\mathcal{U}}+\begin{pmatrix}\overline{R}\cos{\theta_{ic}}\\ \overline{R}\sin{\theta_{ic}}\\ 0\end{pmatrix}. (16)
Refer to caption
(a) Unwrapping frame chosen
Refer to caption
(b) Unwrapping plane chosen
Figure 10: Frames on the cylinder and the unwrapping plane chosen for the cylinder

Using (16), we can represent the entry location 𝐗ic\mathbf{X}_{ic} and the exit location 𝐗oc\mathbf{X}_{oc} in the unwrapping frame 𝒰\mathcal{U} as 𝐗ic𝒰=(0,0,0)T\mathbf{X}_{ic}^{\mathcal{U}}=(0,0,0)^{T} and 𝐗oc𝒰=(R¯sinδθ,R¯(1cosδθ),h)T.\mathbf{X}_{oc}^{\mathcal{U}}=(\overline{R}\sin{\delta\theta},\overline{R}(1-\cos{\delta\theta}),h)^{T}. Here, the expression for 𝐗oc\mathbf{X}_{oc}^{\mathcal{B}} from (10) was used, and δθ:=θocθic.\delta\theta:=\theta_{oc}-\theta_{ic}.

We now aim to unwrap the cylindrical surface onto a plane, selecting the tangent plane at 𝐗ic\mathbf{X}_{ic} as reference. Therefore, the unwrapping plane is defined by x𝒰x_{\mathcal{U}} and z𝒰z_{\mathcal{U}} axes, as shown in Fig. 10b. We will now describe the mapping of the initial and final configurations of the cylinder to the unwrapping plane.

IV-D2 Configurations after unwrapping cylinder

Consider unwrapping a point on the cylinder as shown in Fig. 11. A point P,P, whose coordinates are (R¯sinδθ,R¯(1cosδθ),δd)(\overline{R}\sin{\delta\theta},\overline{R}(1-\cos{\delta\theta}),\delta d) in 𝒰,\mathcal{U}, gets mapped to two points on the plane due to periodicity of the angle δθ(π,π]\delta\theta\in(-\pi,\pi]131313In principle, there are infinitely many images due to the periodicity of the angle δθ.\delta\theta. However, we consider only two images for simplicity.. Hence, the two images of PP obtained on the plane, shown in Fig. 11, are given by P1(R¯θ1,δd)P_{1}(\overline{R}\theta_{1},\delta d) and P2(R¯θ2,δd),P_{2}(\overline{R}\theta_{2},\delta d), where

θ1\displaystyle\theta_{1} ={δθ,δθ0δθ+2π,δθ<0,θ2={δθ2π,δθ>0δθ,δθ0.\displaystyle=\begin{cases}\delta\theta,&\delta\theta\geq 0\\ \delta\theta+2\pi,&\delta\theta<0\end{cases},\quad\theta_{2}=\begin{cases}\delta\theta-2\pi,&\delta\theta>0\\ \delta\theta,&\delta\theta\leq 0\end{cases}. (17)
Refer to caption
Figure 11: Unwrapping point lying on the cylinder

The two images corresponding to the final configuration, which is the exit location of the cylinder, obtained on the unwrapping plane, are shown in Fig. 12. It can be observed that the heading angles for the entry and exit locations are ϕic\phi_{ic} and ϕoc\phi_{oc} on the plane, respectively (compare with Fig. 10).

Refer to caption
Figure 12: Initial configuration and two images of the final configuration obtained on the unwrapping plane

We can now plan the optimal path to each image of the final configuration on the plane. To this end, we generate the six 2D Dubins candidate paths (CSCCSC and CCCCCC) using the analytical expressions provided in [28] to each image, and pick the shortest path. Let this shortest path be

𝐗plane(s)=(u(s),v(s))T,\displaystyle\mathbf{X}_{plane}(s)=(u(s),v(s))^{T}, (18)

where ss is the arc length. Additionally, let the instantaneous heading angle on the plane be ψ(s),\psi(s), which is the angle made with respect to x𝒰.x_{\mathcal{U}}.

IV-D3 Wrapping path onto cylinder

After the path is generated on the unwrapped plane, the corresponding path on the cylinder is retrieved by inverse mapping. To this end, consider a point given by (R¯θ,d)(\overline{R}\theta,d) on the unwrapping plane. The corresponding image of this point on the cylinder will be (R¯sinθ,R¯(1cosθ),d)(\overline{R}\sin{\theta},\overline{R}(1-\cos{\theta}),d) in 𝒰\mathcal{U} using the previously established procedure (refer to Fig. 11).

Now, consider the curve on the plane given by (18). Using the previous argument, the corresponding curve obtained on the cylinder in the unwrapping frame 𝒰\mathcal{U} is given by

𝐗cyl𝒰(s)=(R¯sin(u(s)R¯),R¯(1cos(u(s)R¯)),v(s))T.\displaystyle\mathbf{X}_{cyl}^{\mathcal{U}}(s)=\left(\overline{R}\sin{\left(\frac{u(s)}{\overline{R}}\right)},\overline{R}\left(1-\cos{\left(\frac{u(s)}{\overline{R}}\right)}\right),v(s)\right)^{T}. (19)

We now prove that the proposed mapping preserves the length of the curve.

Lemma 4.

The proposed mapping between a planar curve and the wrapped curve on the cylindrical surface preserves the length of the curve.

Proof.

The proof is provided in Appendix -E. ∎

Using (16), the equation of the considered curve in (19) can be obtained in the body frame \mathcal{B} as

𝐗(s)=(R¯cos(θic+u(s)R¯)R¯sin(θic+u(s)R¯)v(s)).\displaystyle\begin{split}\mathbf{X}^{\mathcal{B}}(s)&=\begin{pmatrix}\overline{R}\cos{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)}\\ \overline{R}\sin{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)}\\ v(s)\end{pmatrix}.\end{split} (20)

We compute the tangent vector along the path using the instantaneous heading angle ψ(s)\psi(s) obtained from the 2D Dubins path on the x𝒰z𝒰x_{\mathcal{U}}z_{\mathcal{U}} plane. Hence, the angle made by 𝐓\mathbf{T} in the unwrapped plane with respect to x𝒰x_{\mathcal{U}}, which is the heading angle, is known (refer to Fig. 12). From Fig. 10a, the direction cosines of 𝐓\mathbf{T} expressed in the body frame can be obtained as

𝐓(s)=(sin(θic+u(s)R¯)cos(ψ(s))cos(θic+u(s)R¯)cos(ψ(s))sin(ψ(s))).\displaystyle\mathbf{T}^{\mathcal{B}}(s)=\begin{pmatrix}-\sin{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)}\cos{\left(\psi(s)\right)}\\ \cos{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)}\cos{\left(\psi(s)\right)}\\ \sin{\left(\psi(s)\right)}\end{pmatrix}.

If the inner or outer sphere was chosen at the initial configuration, the expression for 𝐔\mathbf{U} in \mathcal{B} can be obtained by noting that it is radially outwards or inwards to the cylinder, as (refer to Fig. 7a)

𝐔=δi,oinitial(cos(θic+u(s)R¯),sin(θic+u(s)R¯),0)T.\displaystyle\mathbf{U}^{\mathcal{B}}=-\delta_{i,o}^{initial}\left(\cos{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)},\sin{\left(\theta_{ic}+\frac{u(s)}{\overline{R}}\right)},0\right)^{T}.

Alternatively, if the left or right spheres were chosen, the same expression for 𝐘\mathbf{Y}^{\mathcal{B}} is obtained with δi,oinitial\delta_{i,o}^{initial} replaced with δl,rinitial.\delta_{l,r}^{initial}. The expression for 𝐘\mathbf{Y} when δi,oinitial0\delta_{i,o}^{initial}\neq 0 and 𝐔\mathbf{U} when δl,rinitial0\delta_{l,r}^{initial}\neq 0 can be obtained as 𝐘=𝐔×𝐓\mathbf{Y}^{\mathcal{B}}=\mathbf{U}^{\mathcal{B}}\times\mathbf{T}^{\mathcal{B}} and 𝐔=𝐓×𝐘,\mathbf{U}^{\mathcal{B}}=\mathbf{T}^{\mathcal{B}}\times\mathbf{Y}^{\mathcal{B}}, respectively.

Finally, the expressions for 𝐗,\mathbf{X}, 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔\mathbf{U} can be obtained in the global frame 𝒢\mathcal{G} using (12) and (13) (refer to Fig. 8)141414Similar to the transformation for the tangent vector in (13) between the body and global frames, equations for the tangent-normal and surface-normal vectors can be obtained..  Hence, we have obtained the configuration of the vehicle along the shortest path on the cylinder for chosen θic,\theta_{ic}, ϕic,\phi_{ic}, θoc,\theta_{oc}, and ϕoc\phi_{oc} values; this path satisfies the pitch and yaw rate constraints of the vehicle.

Remark: Though four parameters were introduced for path construction using a cylindrical envelope in the beginning of Section IV, the initial and final sphere computations depend only on two parameters each (θic\theta_{ic} and ϕic,\phi_{ic}, or θoc\theta_{oc} and ϕoc\phi_{oc}). Furthermore, the motion planning on the cylinder depends on ϕic,\phi_{ic}, ϕoc,\phi_{oc}, and the difference between θic\theta_{ic} and θoc.\theta_{oc}.

To compute the best feasible path for a selected pair of spheres at the initial and final configuration, we discretize θic\theta_{ic} and θoc\theta_{oc} in [0,2π).[0,2\pi). We discretize ϕic\phi_{ic} and ϕoc\phi_{oc} over the interval [0,π][0,\pi], representing the feasible interval of heading angles that allow the path to enter the cylinder at 𝐗ic\mathbf{X}_{ic} and exit at 𝐗oc\mathbf{X}_{oc} (refer to Fig. 8). The number of discretizations of θic\theta_{ic} and θoc\theta_{oc} are dertermined by a parameter θdisc,\theta_{disc}, whereas ϕdisc\phi_{disc} dictates the number of discretizations for ϕic\phi_{ic} and ϕoc\phi_{oc}. We choose the combination that yields the shortest feasible path.

V Constructing Feasible Solution using Cross-Tangent Plane

In this section, we describe the second class of paths where the sub-path between the initial and final spheres is constructed on a cross-tangent plane. There exist infinitely many cross-tangent planes between these two spheres; the locus of the point of intersection of these cross-tangent planes with the initial/final sphere will be a circle, as shown in Fig. 7b. To uniquely define a cross-tangent plane, we use angle θ\theta as a parameter (see Fig. 13).

Refer to caption
Figure 13: Parameterization of family of planes and configurations at entry and exit from cross-tangent plane

Remark: From Fig. 13, we can observe that the considered cross-tangent plane exists when 𝐫f𝐫i22R¯,\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}\geq 2\overline{R}, i.e., when the spheres at the initial and final configurations do not intersect.

We denote the center of the locus at the initial and final spheres by 𝐀\mathbf{A} and 𝐁\mathbf{B}, respectively, as shown in Fig. 13. The location of 𝐀\mathbf{A} and 𝐁\mathbf{B} can be obtained as

𝐀\displaystyle\mathbf{A} =𝐫i+R¯cosα(𝐫f𝐫i𝐫f𝐫i2),\displaystyle=\mathbf{r}_{i}+\overline{R}\cos{\alpha}\left(\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}\right), (21)
𝐁\displaystyle\mathbf{B} =𝐫fR¯cosα(𝐫f𝐫i𝐫f𝐫i2),\displaystyle=\mathbf{r}_{f}-\overline{R}\cos{\alpha}\left(\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}\right), (22)

where α:=cos1(2R¯𝐫f𝐫i2)\alpha:=\cos^{-1}\left(\frac{2\overline{R}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}\right). Here, the expressions for 𝐫i\mathbf{r}_{i} and 𝐫f\mathbf{r}_{f} are given in (7) and (8), respectively, and R¯\overline{R} is given in (11). The cross-tangent plane between the initial and final spheres is needed for inner-outer, outer-inner, left-right, and right-left pairings. It follows that δi,oinitial=δi,ofinal\delta^{initial}_{i,o}=-\delta^{final}_{i,o} and δl,rinitial=δl,rfinal.\delta^{initial}_{l,r}=-\delta^{final}_{l,r}.

To define the parameter θ\theta, we first designate a unit vector 𝐱\mathbf{x} perpendicular to 𝐫f𝐫i\mathbf{r}_{f}-\mathbf{r}_{i}, as shown in Fig. 13.151515The generation of 𝐱\mathbf{x} is similar to the procedure described for the cylindrical envelope. The angle θ\theta specifies the point of tangency on the initial sphere, with respect to 𝐱\mathbf{x}. We then define another unit vector 𝐲:=(𝐫f𝐫i𝐫f𝐫i2)×𝐱\mathbf{y}:=\left(\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}\right)\times\mathbf{x}, which is orthogonal to both 𝐱\mathbf{x} and the axis (𝐤\mathbf{k}, defined in (9)) between the spheres. Using 𝐱\mathbf{x} and 𝐲\mathbf{y}, we now express the entry and exit points 𝐗ic\mathbf{X}_{ic} and 𝐗oc\mathbf{X}_{oc}, which are the points of tangency (see Fig. 13).

𝐗ic(θ)\displaystyle\mathbf{X}_{ic}(\theta) =𝐀+R¯sinαcosθ𝐱+R¯sinαsinθ𝐲,\displaystyle=\mathbf{A}+\overline{R}\sin{\alpha}\cos{\theta}\mathbf{x}+\overline{R}\sin{\alpha}\sin{\theta}\mathbf{y},
𝐗oc(θ)\displaystyle\mathbf{X}_{oc}(\theta) =𝐁+R¯sinαcos(θ+π)𝐱+R¯sinαsin(θ+π)𝐲.\displaystyle=\mathbf{B}+\overline{R}\sin{\alpha}\cos{(\theta+\pi)}\mathbf{x}+\overline{R}\sin{\alpha}\sin{(\theta+\pi)}\mathbf{y}.

Next, we parameterize the tangent vectors at the entry and exit points using angles ϕic\phi_{ic} and ϕoc\phi_{oc}, defined relative to the axis 𝐭\mathbf{t}, where 𝐭\mathbf{t} is a unit vector pointing from 𝐗ic(θ)\mathbf{X}_{ic}(\theta) to 𝐗oc(θ)\mathbf{X}_{oc}(\theta) (see Fig. 13). The tangent vectors 𝐓ic\mathbf{T}_{ic} and 𝐓oc\mathbf{T}_{oc} at the entry and exit points are derived as below:

𝐓ic(ϕic)\displaystyle\mathbf{T}_{ic}(\phi_{ic}) =cosϕic𝐭(θ)+sinϕic(𝐗ic(θ)𝐫iR¯×𝐭(θ)),\displaystyle=\cos{\phi_{ic}}\mathbf{t}(\theta)+\sin{\phi_{ic}}\left(\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}}\times\mathbf{t}(\theta)\right),
𝐓oc(ϕoc)\displaystyle\mathbf{T}_{oc}(\phi_{oc}) =cosϕoc𝐭(θ)+sinϕoc(𝐗ic(θ)𝐫iR¯×𝐭(θ)).\displaystyle=\cos{\phi_{oc}}\mathbf{t}(\theta)+\sin{\phi_{oc}}\left(\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}}\times\mathbf{t}(\theta)\right).

Given the location and tangent vectors at the exit point from the initial sphere and the entry point of the final sphere, we can construct the optimal path over each sphere using the approach in Section IV-C. We can also construct the path on the cross-tangent plane using the 2D Dubins result [3, 28], illustrated in Fig. 14. In this figure, the minimum turning radius RplaneR_{plane} is dictated by the type of spheres considered at the initial and final configurations. If we are considering inner-outer or outer-inner connections, Rplane=RyawR_{plane}=R_{yaw} since the vehicle moves in the 𝐓𝐘\mathbf{T}-\mathbf{Y} plane (as observed from Fig. 13). Alternatively, Rplane=RpitchR_{plane}=R_{pitch} if left-right or right-left sphere connections are considered.

Refer to caption
Figure 14: Configurations on cross-tangent plane

After the path on the plane is constructed, the vehicle’s coordinates (uu and vv) and the heading angle (ψ\psi) are defined. We can reconstruct the configuration of the vehicle along the path in 3D. First, we compute the location and the tangent vector along the plane as

𝐗(s)\displaystyle\mathbf{X}(s) =𝐗ic+u(s)𝐭(θ)+v(s)(𝐗ic(θ)𝐫iR¯×𝐭(θ)),\displaystyle=\mathbf{X}_{ic}+u(s)\mathbf{t}(\theta)+v(s)\left(\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}}\times\mathbf{t}(\theta)\right),
𝐓(s)\displaystyle\mathbf{T}(s) =cos(ψ(s))𝐭(θ)\displaystyle=\cos{\left(\psi(s)\right)}\mathbf{t}(\theta)
+sin(ψ(s))(𝐗ic(θ)𝐫iR¯×𝐭(θ)).\displaystyle\quad\,+\sin{\left(\psi(s)\right)}\left(\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}}\times\mathbf{t}(\theta)\right).

The vectors 𝐔\mathbf{U} and 𝐘\mathbf{Y} are computed depending on δi,oinitial0\delta_{i,o}^{initial}\neq 0 or δl,rinitial0,\delta_{l,r}^{initial}\neq 0, as shown below:

𝐔(s)=δi,oinitial𝐗ic(θ)𝐫iR¯,δi,oinitial0,\displaystyle\mathbf{U}(s)=-\delta_{i,o}^{initial}\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}},\quad\delta_{i,o}^{initial}\neq 0,
𝐘(s)=δl,rinitial𝐗ic(θ)𝐫iR¯,δl,rinitial0.\displaystyle\mathbf{Y}(s)=-\delta_{l,r}^{initial}\frac{\mathbf{X}_{ic}(\theta)-\mathbf{r}_{i}}{\overline{R}},\quad\delta_{l,r}^{initial}\neq 0.

Further, we can compute these vectors as 𝐘=𝐔×𝐓\mathbf{Y}=\mathbf{U}\times\mathbf{T} when δi,oinitial0,\delta_{i,o}^{initial}\neq 0, and 𝐔=𝐓×𝐘\mathbf{U}=\mathbf{T}\times\mathbf{Y} when δl,rinitial0\delta_{l,r}^{initial}\neq 0. Thus, the vehicle’s configuration in 3D is completely described on the initial sphere, cross-tangent plane, and final sphere.

Note that the path construction for this class is a function of the three parameters: θ,\theta, ϕic,\phi_{ic}, and ϕoc\phi_{oc}. However, motion planning on each of the surfaces depends only on two parameters, similar to the class of paths constructed using a cylindrical envelope in the previous section. We optimize on these parameters by discretizing θ[0,2π),\theta\in[0,2\pi), and ϕic\phi_{ic} and ϕoc\phi_{oc} in [π2,π2]\left[-\frac{\pi}{2},\frac{\pi}{2}\right] (refer to Fig. 13). The number of discretizations of θ\theta is dictated by θdisc,\theta_{disc}, whereas ϕdisc\phi_{disc} represents the number of discretizations for ϕic\phi_{ic} and ϕoc\phi_{oc}. We choose the parameter set that yields the shortest path length for each pairing of the initial and final spheres.

VI Constructing Feasible Solution using Intermediary Sphere

In this section, we present the construction of the third class of paths. When the initial and the final positions are sufficiently close, we construct a path that goes through an intermediary spherical surface. We consider the four possible combinations in this regard, as outlined in Section III. This class of paths exists only when the Euclidean distance between the initial and final position satisfies 𝐫f𝐫i24R¯\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}\leq 4\overline{R}, as illustrated in Fig. 7c.

We parameterize the center of the intermediary sphere using a parameter α\alpha. The locus of the center of the intermediary sphere is a circle, as shown in Fig. 7c. The value of α\alpha is related to the radius of this circular locus, and can be derived to be

α=cos1(𝐫f𝐫i24R¯),\displaystyle\alpha=\cos^{-1}\left(\frac{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}{4\overline{R}}\right),

and the radius of the circular locus is 2R¯sinα.2\overline{R}\sin{\alpha}.

To parameterize the center of the intermediary sphere, we generate a unit vector 𝐱\mathbf{x} perpendicular to 𝐫f𝐫i\mathbf{r}_{f}-\mathbf{r}_{i} (similar to the one in Section IV). We define θ[0,2π)\theta\in[0,2\pi) as the angle made by the center of the intermediary sphere on the circular locus with respect to 𝐱,\mathbf{x}, similar to the definition for the cross-tangent plane case. This parameter specifies the location of the intermediary sphere. Hence, we can define the center of the intermediary sphere as (refer to Fig. 7c)

𝐗c(θ)\displaystyle\mathbf{X}_{c}(\theta) =𝐫i+12(𝐫f𝐫i)\displaystyle=\mathbf{r}_{i}+\frac{1}{2}(\mathbf{r}_{f}-\mathbf{r}_{i})
+2R¯sinα(cosθ𝐱+sinθ(𝐫f𝐫i𝐫f𝐫i2×𝐱)).\displaystyle\quad+2\overline{R}\sin{\alpha}\left(\cos{\theta}\mathbf{x}+\sin{\theta}\left(\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}\times\mathbf{x}\right)\right).

Given 𝐗c\mathbf{X}_{c}, entry point (𝐗ic\mathbf{X}_{ic}), and exit point (𝐗oc\mathbf{X}_{oc}) for the intermediary sphere are derived as shown below,

𝐗ic(θ)\displaystyle\mathbf{X}_{ic}(\theta) =12(𝐫i+𝐗c(θ)),𝐗oc(θ)=12(𝐫f+𝐗c(θ)).\displaystyle=\frac{1}{2}\left(\mathbf{r}_{i}+\mathbf{X}_{c}(\theta)\right),\quad\mathbf{X}_{oc}(\theta)=\frac{1}{2}\left(\mathbf{r}_{f}+\mathbf{X}_{c}(\theta)\right).

Finally, to parameterize the tangent vectors at 𝐗ic\mathbf{X}_{ic} and 𝐗oc\mathbf{X}_{oc}, we define the unit vectors 𝐱ic\mathbf{x}_{ic} and 𝐱fc\mathbf{x}_{fc}. These vectors are perpendicular to 𝐗ic𝐫i\mathbf{X}_{ic}-\mathbf{r}_{i} and 𝐗oc𝐫f,\mathbf{X}_{oc}-\mathbf{r}_{f}, as illustrated in Fig. 15, and are derived as follows:

𝐱ic\displaystyle\mathbf{x}_{ic} =R¯cosα𝐫f𝐫i𝐫f𝐫i2(𝐗ic𝐫i)R¯tanα,\displaystyle=\frac{\frac{\overline{R}}{\cos{\alpha}}\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}-\left(\mathbf{X}_{ic}-\mathbf{r}_{i}\right)}{\overline{R}\tan{\alpha}},
𝐱oc\displaystyle\mathbf{x}_{oc} =R¯cosα𝐫f𝐫i𝐫f𝐫i2(𝐗oc𝐫f)R¯tanα.\displaystyle=\frac{-\frac{\overline{R}}{\cos{\alpha}}\frac{\mathbf{r}_{f}-\mathbf{r}_{i}}{\|\mathbf{r}_{f}-\mathbf{r}_{i}\|_{2}}-\left(\mathbf{X}_{oc}-\mathbf{r}_{f}\right)}{\overline{R}\tan{\alpha}}.

We parameterize the tangent vectors at 𝐗ic\mathbf{X}_{ic} and 𝐗oc\mathbf{X}_{oc} denoted by 𝐓ic\mathbf{T}_{ic} and 𝐓oc\mathbf{T}_{oc} respectively, using the parameters ϕic\phi_{ic} and ϕoc,\phi_{oc}, as shown below:

𝐓ic(ϕic)\displaystyle\mathbf{T}_{ic}(\phi_{ic}) =cos(ϕic)𝐱ic+sin(ϕic)((𝐗ic𝐫i)×𝐱ic)R¯,\displaystyle=\cos{\left(\phi_{ic}\right)}\mathbf{x}_{ic}+\sin{\left(\phi_{ic}\right)}\frac{\left(\left(\mathbf{X}_{ic}-\mathbf{r}_{i}\right)\times\mathbf{x}_{ic}\right)}{\overline{R}},
𝐓oc(ϕoc)\displaystyle\mathbf{T}_{oc}(\phi_{oc}) =cos(ϕoc)𝐱oc+sin(ϕoc)((𝐗oc𝐫f)×𝐱oc)R¯.\displaystyle=\cos{\left(\phi_{oc}\right)}\mathbf{x}_{oc}+\sin{\left(\phi_{oc}\right)}\frac{\left(\left(\mathbf{X}_{oc}-\mathbf{r}_{f}\right)\times\mathbf{x}_{oc}\right)}{\overline{R}}.
Refer to caption
Figure 15: Computation of 𝐱ic\mathbf{x}_{ic} for constructing a feasible path using an intermediary sphere

We optimize the path length over the parameters θ[0,2π),\theta\in[0,2\pi), ϕic[0,2π),\phi_{ic}\in[0,2\pi), and ϕoc[0,2π)\phi_{oc}\in[0,2\pi). For a given set of parameters, we can compute 𝐗ic,\mathbf{X}_{ic}, 𝐗oc,\mathbf{X}_{oc}, 𝐓ic,\mathbf{T}_{ic}, and 𝐓oc\mathbf{T}_{oc}. Similar to the methodology in Section IV-C, we generate the optimal path on the initial sphere, intermediary sphere, and the final sphere. Note that motion planning on each of the surfaces depends only on two parameters. For instance, in the case of the intermediary sphere, the path length depends only on ϕic\phi_{ic} and ϕoc\phi_{oc}. Similar to the path constructing using an intermediary plane, θdisc\theta_{disc} dictates the number of discretizations of θ\theta and ϕdisc\phi_{disc} represents the number of discretizations for ϕic\phi_{ic} and ϕoc\phi_{oc}. Finally, among all the combinations of the discretized parameter values, we select the path with the minimal total length.

VII Summary of Path Construction Algorithm

In this section, we summarize the path construction comprising the three classes of paths, presented in Sections IV, V, and VI as a pseudocode in Algorithm 1.

The initial configuration and final configuration, each of which is defined by the four vectors 𝐗,\mathbf{X}, 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔,\mathbf{U}, are the inputs to the algorithm. We compactly represent them by the homogeneous transformation matrices 𝐇0\mathbf{H}_{0} and 𝐇f,\mathbf{H}_{f}, respectively.161616The homogeneous transformation matrix 𝐇\mathbf{H} in terms of 𝐗,\mathbf{X}, 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔\mathbf{U} is given by 𝐇=[𝐓𝐘𝐔𝐗0001]\mathbf{H}=\begin{bmatrix}\mathbf{T}&\mathbf{Y}&\mathbf{U}&\mathbf{X}\\ 0&0&0&1\end{bmatrix}.  The other inputs to the algorithm include the pitch rate (RpitchR_{pitch}), yaw rate (RyawR_{yaw}), and the discretization parameters, (θdisc\theta_{disc} and ϕdisc\phi_{disc}). Recall that θdisc\theta_{disc} and ϕdisc\phi_{disc} are the discretization parameters corresponding to the position and the heading, respectively (which were discussed in Sections IV, V, and VI).

In line 1 of the algorithm, the minimum cylinder path is computed, which constructs the shortest path through an intermediary cylindrical envelope (described in Section IV). The function returns the length of the shortest path and the configuration of the vehicle along the path. Similarly, paths through a cross-tangent plane (described in Section V) and through an intermediary sphere (described in Section VI), are constructed in lines 22 and 33, respectively. Finally, the shortest of all the three classes of paths is determined in line 44, and the configuration of the vehicle along the shortest path is returned by the algorithm.

Algorithm 1 Path construction algorithm for 3D Dubins
0:𝐇0,\mathbf{H}_{0}, 𝐇f,\mathbf{H}_{f}, Rpitch,R_{pitch}, Ryaw,R_{yaw}, θdisc,\theta_{disc}, ϕdisc\phi_{disc}
0:/* Computing the shortest path through cylindrical envelope */
1:lSCS,𝐇SCSl_{SCS},\mathbf{H}_{SCS} \leftarrow MinimumCylinderPath(𝐇0,\mathbf{H}_{0}, 𝐇f,\mathbf{H}_{f}, Rpitch,R_{pitch}, Ryaw,R_{yaw}, θdisc,\theta_{disc}, ϕdisc\phi_{disc})
1:/* Computing the shortest path through cross-tangent plane */
2:lSPSl_{SPS}, 𝐇SPS\mathbf{H}_{SPS} \leftarrow MinimumPlanePath(𝐇0,\mathbf{H}_{0}, 𝐇f,\mathbf{H}_{f}, Rpitch,R_{pitch}, Ryaw,R_{yaw}, θdisc,\theta_{disc}, ϕdisc\phi_{disc})
2:/* Computing the shortest path through intermediary spherical envelope */
3:lSSSl_{SSS}, 𝐇SSS\mathbf{H}_{SSS} \leftarrow MinimumSpherePath(𝐇0,\mathbf{H}_{0}, 𝐇f,\mathbf{H}_{f}, Rpitch,R_{pitch}, Ryaw,R_{yaw}, θdisc,\theta_{disc}, ϕdisc\phi_{disc})
3:/* Computing the shortest overall path */
4:l,l^{*}, 𝐇\mathbf{H}^{*}\leftarrow MinimumLength (𝐇SCS\mathbf{H}_{SCS}, 𝐇SPS\mathbf{H}_{SPS}, 𝐇SSS)\mathbf{H}_{SSS})
5:return ll^{*}, 𝐇\mathbf{H}^{*}

VIII Results

In this section, we present computational results to study the performance of Algorithm 1 and the effect of the vehicle’s configuration and the motion constraints on the path. To this end, we consider the scenarios provided in [20], where five “Long” and five “Short” instances were considered depending on the distance between the initial and final configurations. The minimum turning radius was chosen to be 4040 m in [20], and correspondingly, we consider Rpitch=40R_{pitch}=40 m. In [20], the orientation is defined by only the pitch and heading angles. To describe the complete orientation, we additionally specify the roll angle at the initial and final positions to be one of the values from the set {15,0,15}\{-15^{\circ},0^{\circ},15^{\circ}\}171717It should be noted that the orientation of the vehicle can be uniquely prescribed by the vectors 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔,\mathbf{U}, or by specifying the yaw (rotation about zz), pitch (rotation about yy), and roll (rotation about xx) angles. Fixing a ZYXZYX rotation sequence, one can uniquely compute the expressions for 𝐓,\mathbf{T}, 𝐘,\mathbf{Y}, and 𝐔\mathbf{U} for given angles. It should be noted that positive pitch angle is considered to be about y-y axis since geometrically, when the vehicle has its nose pointing up, the pitch angle is desired to be considered to be positive.. To study the effect of the motion constraints, we run the experiments for different values of Ryaw{30m,40m,50m}R_{yaw}\in\{30\,\text{m},40\,\text{m},50\,\text{m}\}.

Furthermore, we consider two sets of scenarios referred to as “Additional 1” and “Additional 2” described shortly, based on Figs. 2a and 2b, respectively. In the first set of scenarios, the vehicle needs to perform a turn maneuver with a marginal altitude change. The initial location is (120,40,20)(120,40,20) with initial heading and pitch angles of 9090^{\circ} and 5,-5^{\circ}, and the final location is (300,40,15)(300,40,15) with heading and pitch angles of 90-90^{\circ} and 5-5^{\circ}. In “Additional 2”, the vehicle needs to perform an ascent maneuver from an initial location of (120,40,20)(120,40,20) with initial heading and pitch angles of 9090^{\circ} and 15-15^{\circ} to a final location of (130,120,41)(130,120,41) with heading and pitch angles of 8585^{\circ} and 2020^{\circ}.181818All coordinates specified in this paragraph are in meters.

To optimize the path length with respect to the parameters, we consider 1515 discretizations for all parameters that describe the positions and tangent vectors for entry and exit between the intermediary surfaces. We implemented the algorithms in Python 3.83.8 on a computer with AMD Ryzen 99 59005900HS CPU running at 3.303.30 GHz with 1616 GB RAM. For all the classes of the paths constructed, we parallelized the functions that compute the sub-paths on each individual surface. The computational results of the algorithm are summarized in Table I. 191919The first instance of running each function takes a higher time than the reported times in Table I, due to the overheads associated with spawning different processes to implement the functions in a parallel manner. To circumvent this issue, we “warm start” our algorithm using a dummy instance.

TABLE I: Summary of best feasible path and computation time for different instances with varying initial roll angle, final roll angle, and Ryaw.R_{yaw}. Path length obtained using algorithm from [20] is shown under the instance name.
Inst.
Length
(m)
Path type
Time
(s)
Inst.
Length
(m)
Path type
Time
(s)
Inst.
Length
(m)
Path type
Time
(s)
Long 1
446.04
478.06a pl_right_left 9.91
Long 5
2214.54
2187.58a cyc_right 10.91
Short 4
1169.80
425.17a cyc_left 9.77
510.64b pl_outer_inner 9.60 2201.98b 10.79 425.65b 9.53
533.24c 9.77 2211.11c 11.00 421.25c 9.75
475.98d pl_right_left 9.87 2189.22d 11.17 420.89d 9.94
412.17e cyc_left 10.17 2201.75e 10.79 422.72e 9.47
545.09f pl_right_left 10.46 2212.44f 11.14 447.19f 9.68
447.36g cyc_inner 9.68 2192.96g 10.86 445.42g pl_outer_inner 9.62
470.08h 9.53 2209.89h 10.59 493.81h 9.55
473.59i 9.87 2225.56i 11.04 512.31i cyc_left 9.84
Long 2
638.45
587.86a cyc_right 9.72
Short 1
580.79
289.67a cyc_right 9.75
Short 5
1362.91
444.24a pl_outer_inner 9.62
606.64b 9.66 376.88b cyc_outer 9.47 463.42b 9.53
614.57c 9.90 394.71c 9.72 477.80c 9.66
590.12d 12.03 355.38d pl_outer_inner 9.58 440.33d 9.60
601.87e 10.29 375.31e cyc_right 9.54 446.09e 9.33
620.67f 10.87 389.47f 9.54 520.75f cyc_left 9.77
583.47g 10.18 352.59g cyc_outer 9.58 453.28g cyc_right 9.66
603.90h 10.29 380.83h cyc_right 9.44 447.54h 9.52
612.32i 10.83 360.12i sphere_right 10.18 467.20i 9.88
Long 3
1068.34
1032.72a cyc_inner 10.97
Short 2
668.17
302.02a pl_outer_inner 9.54
Add. 1
225.89
212.63a cyc_right 9.43
1141.58b 10.90 323.47b 9.34 223.18b 9.83
1161.82c cyc_left 11.23 356.72c 9.50 233.88c 10.26
1026.87d cyc_inner 11.30 298.45d 9.59 213.34d 9.58
1045.90e 11.14 313.69e 9.33 223.83e 10.00
1048.38f 11.30 335.89f 9.51 234.02f 10.11
1037.06g 11.06 313.70g 9.44 211.93g 9.48
1040.40h 10.91 336.86h 9.79 222.00h 9.85
1058.79i 12.67 349.95i 10.14 232.53i 10.10
Long 4
1788.80
1744.87a cyc_left 11.52
Short 3
976.79
364.92a pl_outer_inner 9.83
Add. 2
84.55
107.59a sphere_left 11.86
1758.23b 12.05 386.80b 9.37 91.54b 11.63
1773.09c 11.29 400.55c 9.62 274.51c cyc_inner 11.95
1747.76d 10.65 356.75d 9.49 87.17d sphere_inner 12.00
1759.44e 10.60 368.52e 9.37 250.06e sphere_right 11.52
1776.86f 10.65 384.82f 10.03 280.35f cyc_inner 12.07
1744.13g 10.87 349.90g 10.84 95.39g sphere_right 11.82
1763.51h 10.86 416.92h cyc_right 10.29 259.63h cyc_inner 11.61
1768.64i 10.61 408.28i 9.79 280.38i pl_inner_outer 12.13

In Table I, we use superscripts a,d,ga,d,g to refer to instances with Ryaw=30R_{yaw}=30 m. On the other hand, b,e,hb,e,h are used to refer to instances with Ryaw=40R_{yaw}=40 m, and c,f,ic,f,i are used to refer to instances with Ryaw=50R_{yaw}=50 m. Furthermore, a,b,ca,b,c correspond to instances with initial and final roll angles of 15-15^{\circ} and 0,0^{\circ}, respectively, d,e,fd,e,f correspond to instances with initial and final roll angles of 00^{\circ} and 15,15^{\circ}, respectively, and g,h,ig,h,i correspond to instances with initial and final roll angles of 1515^{\circ} and 15,-15^{\circ}, respectively. Additionally, in this table, we show the length of the path obtained using the algorithm from [20] under the instance name. We consider the same parameter values used in [20], which are a minimum turning radius of 4040 m and a bounded pitch angle in [15,20][-15^{\circ},20^{\circ}].

From this table, we can observe that

  • The path lengths obtained from our model are comparable to those from [20] for all “Long” maneuvers. In particular, our path length is shorter for a majority of “Long 2”, “Long 3”, “Long 4”, and “Long 5” instances. The generated paths satisfy both pitch and yaw rate constraints while connecting the initial and final configurations, which include the vehicle’s roll angle.

  • For “Short” maneuvers, the length of the paths generated by the proposed algorithm is two to three times shorter than the path obtained from [20].

  • The computation time is around 1010 seconds for most of the instances.

These results show the impact of the model and the control inputs on the resulting trajectory. We further expand upon these results to showcase the effect of the motion constraints and the configurations in the following subsections, along with additional examples.

VIII-A Effect of motion constraints

From Table I, we can observe that increasing RyawR_{yaw} changes the path length and also the best feasible path type. For instance, consider the “Short 4” instance with initial and final roll angles of 1515^{\circ} and 15,-15^{\circ}, respectively. The path generated for Ryaw=30R_{yaw}=30 m, 4040 m, and 5050 m is illustrated in Fig. 16. We can observe that increasing RyawR_{yaw} from 4040 m to 5050 m changes the path obtained from our algorithm from a cross-tangent connection to a path through the left spheres at the initial and final configurations connected by a cylinder. Additionally, while increasing RyawR_{yaw} from 3030 m to 4040 m retains the same path type as the best path, the points of departure and arrival at the initial and final spheres have changed significantly. This is because RyawR_{yaw} particularly affects the turning capability of the vehicle on the cross-tangent plane, as can be observed from Figs. 16a and 16b.

For an instance of the “Short 4” case where the path length is around 400400 m, the change in path length is around 5050 to 7070 m when RyawR_{yaw} is varied. The effect of RyawR_{yaw} is more pronounced for “Additional 2”, where the vehicle needs to perform an ascent motion. For this instance, the path length may vary from 100100 m to as high as 280280 m depending on Ryaw.R_{yaw}. An illustration of the paths for increasing RyawR_{yaw} from 3030 m to 5050 m is shown in Fig. 17.

These effects may not be captured by the existing models, including [20], due to the single control input considered in these models. Illustrations of the paths obtained using the result from [20] for the scenarios “Short 4” and “Additional 2” are shown in Figs. 18 and 2b, respectively.

Refer to caption
(a) Ryaw=30R_{yaw}=30 m (path through intermediary cross-tangent plane)
Refer to caption
(b) Ryaw=40R_{yaw}=40 m (path through intermediary cross-tangent plane)
Refer to caption
(c) Ryaw=50R_{yaw}=50 m (path through intermediary cylindrical envelope)
Figure 16: Depiction of varying paths with RyawR_{yaw} for “Short 4” with initial roll angle of 1515^{\circ} and final roll angle of 15-15^{\circ} and instantaneous configuration of the vehicle
Refer to caption
(a) Ryaw=30R_{yaw}=30 m (path through intermediary sphere envelope)
Refer to caption
(b) Ryaw=40R_{yaw}=40 m (path through intermediary cylindrical envelope)
Refer to caption
(c) Ryaw=50R_{yaw}=50 m (path through intermediary cross-tangent plane)
Figure 17: Depiction of varying paths with RyawR_{yaw} for “Additional 2” with initial roll angle of 1515^{\circ} and final roll angle of 15-15^{\circ} and instantaneous configuration of the vehicle
Refer to caption
Figure 18: Solution from [20] for “Short 4”

VIII-B Effect of considering complete configuration

From Table I, we can observe that the roll angle at the initial and final locations impacts the path length and the path type as well. For instance, consider “Long 1” with Ryaw=40R_{yaw}=40 m. We illustrate the change in the path type with changing roll angles across the three subfigures in Fig. 19. We observe that for initial and final roll angles of 15-15^{\circ} and 0,0^{\circ}, the vehicle travels on the outer sphere, followed by traveling on the cross-tangent plane and an inner sphere. However, changing the initial and final roll angles changes the minimum cost path from our algorithm to travel along a cylindrical envelope connecting the left spheres for initial and final roll angles of 00^{\circ} and 15.15^{\circ}. For initial and final roll angles of 1515^{\circ} and 15,-15^{\circ}, the best feasible path is a cylindrical envelope connecting inner spheres.

In contrast, the path obtained from [20] is shown in Fig. 20, which is longer than our path by nearly three times. The algorithm in [20] produced the same path for any values of RyawR_{yaw} and for any of the three combinations of initial and final roll angles we considered in this subsection. This is due to the fact that the generated path does not account for the complete orientation of the vehicle at the initial and final locations; this highlights the novelty of our approach considering the full orientation of the vehicle.

We also note here that the path obtained using [20] satisfies the pitch and yaw rate constraints close to the initial configuration when Ryaw=40R_{yaw}=40 m. However, it violates the yaw rate constraints at the initial configuration for Ryaw=50R_{yaw}=50 m since it enters the left sphere (similar to Fig. 2a). These results reaffirm the importance of the model and control inputs presented in the current paper.

Refer to caption
(a) Initial roll =15,=-15^{\circ}, final roll =0=0^{\circ} (path through cross-tangent plane)
Refer to caption
(b) Initial roll =0,=0^{\circ}, final roll =15=15^{\circ} (path through cylindrical envelope)
Refer to caption
(c) Initial roll =15,=15^{\circ}, final roll 15-15^{\circ} (path through cylindrical envelope)
Figure 19: Depiction of varying paths with initial and final roll angles for “Long 1” with Ryaw=40R_{yaw}=40 m and instantaneous configuration of the vehicle
Refer to caption
Figure 20: Feasible path from [20] for “Long 1”

VIII-C Additional examples

In addition to the previous instances, we consider two additional instances. First, we consider an instance where the final location is inside the “inner” sphere of the vehicle, i.e., one of the pitch spheres. In this instance, the vehicle needs to depart from the origin with a heading, pitch, and yaw angle of 30,30^{\circ}, 10,10^{\circ}, and 15,15^{\circ}, respectively. The desired final location is (5,10,15)(5,10,15) with a desired heading, pitch, and yaw angle of 190,190^{\circ}, 10,10^{\circ}, and 15,-15^{\circ}, respectively. Furthermore, we chose RpitchR_{pitch} and RyawR_{yaw} to be 4040 m and 5050 m, respectively. The minimum cost path obtained using Algorithm 1 and from [20] is shown in Figs. 21a and 21b, respectively. From our algorithm, the vehicle leverages the pitch and yaw rate bounds to make a sharper turn, leading to a path with a length of 253.36253.36 m, which traverses through an intermediary sphere. On the other hand, due to the pitch angle bounds in [20], the vehicle takes a longer path of length 290.57290.57 m.

A similar result was obtained in the second instance, where the final location was chosen inside the right sphere (one of the yaw spheres). The initial configuration and vehicle parameters were chosen to be the same as the first instance, the final location is chosen to be (0,30,5)(0,-30,5), and the desired final heading, pitch, and roll angles are 190,190^{\circ}, 10,10^{\circ}, and 15,-15^{\circ}, respectively. The path length from our algorithm was 257.27257.27 m, whereas the path length with the algorithm from [20] was 292.44292.44 m.

Refer to caption
(a) Maneuver with final location inside pitch sphere
Refer to caption
(b) Maneuver for same configuration from [20]
Figure 21: Depiction of path for final location lying inside pitch sphere
Refer to caption
(a) Maneuver with final location inside yaw sphere
Refer to caption
(b) Maneuver for same configuration from [20]
Figure 22: Depiction of path for final location lying inside yaw sphere

IX Conclusion

In this paper, we propose a novel model for 3D motion planning and a methodology for generating high-quality feasible trajectories. The proposed model and the approach address two key limitations of the existing methods: the incomplete representation of vehicle configuration, and inadequate modeling of the motion constraints. We highlight these issues using illustrative examples. To address these, we proposed a model using a rotation-minimizing frame to uniquely represent the vehicle’s configuration, and the model includes two control inputs corresponding to the pitch rate and yaw rate of the vehicle. We proved that the pitch rate and yaw rate bounds yield a total of four distinct spheres tangential to the vehicle’s configuration, viz. inner, outer, left and right, which represent temporarily inaccessible regions.

We proposed three classes of curvature-constrained paths beginning and ending on the surface of the spheres, tangential to the initial and final configurations. The three classes differ in the transition mechanism from the initial to the final sphere. These transitions involve a path on the surface of a cylindrical envelope, a cross-tangent plane, or another spherical surface. Finally, we presented extensive computational experiments to evaluate the impact of the motion constraints and the vehicle’s configuration on the path length and the path classification. Additionally, a comparison of the proposed methodology with the algorithm in [20] underscored the advantages of modeling with complete orientation. The proposed model and path generation methodology offer a novel perspective on the 3D motion planning problem.

References

  • [1] Fixed Wing Drone: The Complete Guide for Professionals (Accessed Apr 2025). [Online]. Available: https://quantum-systems.com/blog/2025/02/05/fixed-wing-drone-guide/#:~:text=Superior%20Range%20%26%20Coverage%3A%20The%20design,to%20survey%20extensive%20landscapes%20quickly.
  • [2] What Is A Fixed Wing Drone? — Advantages And Uses Of Fixed Wing Drones (Accessed Apr 2025). [Online]. Available: https://uavsystemsinternational.com/blogs/drone-guides/what-is-a-fixed-wing-drone-advantages-and-uses-of-fixed-wing-drones?srsltid=AfmBOorCTIkSZHuUP3N4YbgcjBHHJoqQUL_wTsxMGUmw4nzJpJ1lvfb_
  • [3] L. E. Dubins, “On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents,” American Journal of Mathematics, vol. 79, 1957.
  • [4] L. S. Pontryagin, V. G. Boltyanskii, R. V. Gamkrelidze, and E. F. Mishchenko, The mathematical theory of optimal processes. Interscience Publishers, 1962.
  • [5] X.-N. Bui, J.-D. Boissonnat, P. Soueres, and J.-P. Laumond, “Shortest path synthesis for dubins non-holonomic robot,” in Proceedings of the 1994 IEEE International Conference on Robotics and Automation, 1994, pp. 2–7.
  • [6] E. Bakolas and P. Tsiotras, “The asymmetric sinistral/dextral markov-dubins problem,” in Proceedings of the 48h IEEE Conference on Decision and Control (CDC), 2009, pp. 5649–5654.
  • [7] Y. Wang and Y. R. Zheng, “3-dimensional path planning for autonomous underwater vehicle,” in OCEANS 2018 MTS/IEEE Charleston, 2018, pp. 1–6.
  • [8] H. Marino, M. Bonizzato, R. Bartalucci, P. Salaris, and L. Pallottino, “Motion planning for two 3D-Dubins vehicles with distance constraint,” in 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2012, pp. 4702–4707.
  • [9] G. Ambrosino, M. Ariola, U. Ciniglio, F. Corraro, E. De Lellis, and A. Pironti, “Path generation and tracking in 3-d for uavs,” IEEE Transactions on Control Systems Technology, vol. 17, no. 4, pp. 980–988, 2009.
  • [10] R. Hurley, R. Lind, and J. Kehoe, “A mixed local-global solution to motion planning within 3-d environments,” in AIAA Guidance, Navigation, and Control Conference, 2009. [Online]. Available: https://arc.aiaa.org/doi/abs/10.2514/6.2009-6297
  • [11] Y. Lin and S. Saripalli, “Path planning using 3D Dubins curve for unmanned aerial vehicles,” in 2014 International Conference on Unmanned Aircraft Systems (ICUAS), 2014, pp. 296–304.
  • [12] H. Sussmann, “Shortest 3-dimensional paths with a prescribed curvature bound,” in IEEE Conference on Decision and Control, 1995, pp. 3306–3312.
  • [13] S. Hota and D. Ghose, “Optimal geometrical path in 3D with curvature constraint,” in 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, 2010, pp. 113–118.
  • [14] ——, “Optimal path planning for an aerial vehicle in 3D space,” in 49th IEEE Conference on Decision and Control (CDC), 2010, pp. 4902–4907.
  • [15] V. M. Baez, N. Navkar, and A. T. Becker, “An analytic solution to the 3D csc Dubins path problem,” in 2024 IEEE International Conference on Robotics and Automation (ICRA), 2024, pp. 7157–7163.
  • [16] H. Chitsaz and S. M. LaValle, “Time-optimal paths for a Dubins airplane,” in 2007 46th IEEE Conference on Decision and Control, 2007, pp. 2379–2384.
  • [17] M. Owen, R. W. Beard, and T. W. McLain, Implementing Dubins Airplane Paths on Fixed-Wing UAVs*. Dordrecht: Springer Netherlands, 2015, pp. 1677–1701. [Online]. Available: https://doi.org/10.1007/978-90-481-9707-1_120
  • [18] R. W. Beard and T. W. McLain, Small Unmanned Aircraft: Theory and Practice. Princeton University Press, 2012.
  • [19] V. M. Goncalves, L. C. A. Pimenta, C. A. Maia, B. C. O. Dutra, and G. A. S. Pereira, “Vector fields for robot navigation along time-varying curves in nn -dimensions,” IEEE Transactions on Robotics, vol. 26, no. 4, pp. 647–659, 2010.
  • [20] P. Váňa, A. Alves Neto, J. Faigl, and D. G. Macharet, “Minimal 3D Dubins path with bounded curvature and pitch angle,” in 2020 IEEE International Conference on Robotics and Automation (ICRA), 2020, pp. 8497–8503.
  • [21] J. Herynek, P. Váňa, and J. Faigl, “Finding 3D Dubins paths with pitch angle constraint using non-linear optimization,” in 2021 European Conference on Mobile Robots (ECMR), 2021, pp. 1–6.
  • [22] W. Wang and P. Li, “Towards finding the shortest-paths for 3D rigid bodies,” in Robotics: Science and Systems 2021, 2021.
  • [23] D. P. Kumar, S. Darbha, S. G. Manyam, and D. Casbeer, “A new approach to motion planning in 3D for a dubins vehicle: Special case on a sphere,” 2025. [Online]. Available: https://arxiv.org/abs/2504.01215
  • [24] R. L. Bishop, “There is more than one way to frame a curve,” The American Mathematical Monthly, vol. 82, no. 3, pp. 246–251, 1975.
  • [25] S. Darbha, A. Pavan, R. Kumbakonam, S. Rathinam, D. W. Casbeer, and S. G. Manyam, “Optimal geodesic curvature constrained dubins’ paths on a sphere,” Journal of Optimization Theory and Applications, vol. 197, pp. 966–992, 2023.
  • [26] D. P. Kumar, S. Darbha, S. G. Manyam, and D. Casbeer, “Generation of paths for motion planning for a dubins vehicle on sphere,” 2025. [Online]. Available: https://arxiv.org/abs/2504.11832
  • [27] D. J. Struik, Lectures on Classical Differential Geometry, 2nd ed. Dover, 1988, ch. 4.
  • [28] A. M. Shkel and V. Lumelsky, “Classification of the dubins set,” Robotics and Autonomous Systems, vol. 34, pp. 179–202, 2001.
  • [29] M. P. D. Carmo, Differential Geometry of Curves & Surfaces, 2nd ed. Dover, 2016, ch. 3.

-A Construction of segments

Consider an interval s[s0,s1]s\in[s_{0},s_{1}] in which κg\kappa_{g} and κn\kappa_{n} are constants. In this case, noting that 𝐑(s):=[𝐓(s)𝐘(s)𝐔(s)]\mathbf{R}(s):=\begin{bmatrix}\mathbf{T}(s)&\mathbf{Y}(s)&\mathbf{U}(s)\end{bmatrix} is a rotation matrix, a portion of (2) can be rewritten as

𝐑(s)\displaystyle\mathbf{R}^{\prime}(s) =𝐑(s)(0κgκnκg00κn00)Ω.\displaystyle=\mathbf{R}(s)\underbrace{\begin{pmatrix}0&-\kappa_{g}&-\kappa_{n}\\ \kappa_{g}&0&0\\ \kappa_{n}&0&0\end{pmatrix}}_{\Omega}. (23)

Suppose at least one of κg\kappa_{g} and κn\kappa_{n} is non-zero. The solution for the above differential equation is given by 𝐑(s)=𝐑(s0)eΩ(ss0),\mathbf{R}(s)=\mathbf{R}(s_{0})e^{\Omega(s-s_{0})}, where the expression for the exponential of the skew-symmetric matrix can be obtained using the Euler-Rodriguez formula. Furthermore, using the obtained expression for 𝐓(s),\mathbf{T}(s), the solution for 𝐗(s)\mathbf{X}(s) can be obtained by integrating 𝐗(s)\mathbf{X}^{\prime}(s) from (2). Hence, the solution for the evolution of the four vectors can be written as

[𝐑(ϕ)𝐗(ϕ)𝟎3×11]=[𝐑(0)𝐗(0)𝟎3×11]𝐇(ϕ).\displaystyle\begin{bmatrix}\mathbf{R}(\phi)&\mathbf{X}(\phi)\\ \mathbf{0}_{3\times 1}&1\end{bmatrix}=\begin{bmatrix}\mathbf{R}(0)&\mathbf{X}(0)\\ \mathbf{0}_{3\times 1}&1\end{bmatrix}\mathbf{H}(\phi). (24)

Here, ϕ:=(ss0)κn2+κg2\phi:=(s-s_{0})\sqrt{\kappa_{n}^{2}+\kappa_{g}^{2}} and denotes the arc angle of the considered segment, and 𝐇(ϕ)\mathbf{H}(\phi) is given by

𝐇=(cϕκgsϕKκnsϕKsϕKκgsϕKκn2+cϕκg2K2κgκn(1cϕ)K2κg(1cϕ)K2κnsϕKκgκn(1cϕ)K2κg2+κn2cϕK2κn(1cϕ)K20001),\displaystyle\mathbf{H}=\begin{pmatrix}c{\phi}&\frac{-\kappa_{g}s{\phi}}{K}&\frac{-\kappa_{n}s{\phi}}{K}&\frac{s{\phi}}{K}\\ \frac{\kappa_{g}s{\phi}}{K}&\frac{\kappa_{n}^{2}+c{\phi}\kappa_{g}^{2}}{K^{2}}&\frac{-\kappa_{g}\kappa_{n}(1-c{\phi})}{K^{2}}&\frac{\kappa_{g}\left(1-c{\phi}\right)}{K^{2}}\\ \frac{\kappa_{n}s{\phi}}{K}&\frac{-\kappa_{g}\kappa_{n}(1-c{\phi})}{K^{2}}&\frac{\kappa_{g}^{2}+\kappa_{n}^{2}c{\phi}}{K^{2}}&\frac{\kappa_{n}\left(1-c{\phi}\right)}{K^{2}}\\ 0&0&0&1\end{pmatrix}, (25)

where K:=κn2+κg2K:=\sqrt{\kappa_{n}^{2}+\kappa_{g}^{2}} and cϕ:=cosϕ,sϕ:=sinϕ.c\phi:=\cos{\phi},s\phi:=\sin{\phi}. We can observe that the solution is periodic with a period of 2π.2\pi.

In the case of κg=κn=0,\kappa_{g}=\kappa_{n}=0, 𝐓,𝐘,\mathbf{T},\mathbf{Y}, and 𝐔\mathbf{U} remain constant (from (2)); furthermore, 𝐗(s)=𝐗(0)+s𝐓(0)\mathbf{X}(s)=\mathbf{X}(0)+s\mathbf{T}(0) is obtained.

-B Proof for Lemma 1

Without loss of generality, consider the initial rotation matrix 𝐑(0)\mathbf{R}(0) to be the identity matrix and the initial location 𝐗(0)\mathbf{X}(0) to coincide with the origin. Hence, using the closed-form expressions in Appendix -A, the position is given by

𝐗(ϕ)=(sϕKκg(1cϕ)K2κn(1cϕ)K2)T,\displaystyle\mathbf{X}(\phi)=\begin{pmatrix}\frac{s\phi}{K}&\frac{\kappa_{g}\left(1-c\phi\right)}{K^{2}}&\frac{\kappa_{n}\left(1-c\phi\right)}{K^{2}}\end{pmatrix}^{T}, (26)

where K=κn2+κg2.K=\sqrt{\kappa_{n}^{2}+\kappa_{g}^{2}}. Consider κn=1Rpitch.\kappa_{n}=\frac{1}{R_{pitch}}. We claim that the obtained position 𝐗(ϕ)\mathbf{X}(\phi) lies on a sphere centered at (0,0,Rpitch)T,(0,0,R_{pitch})^{T}, which is along 𝐔,\mathbf{U}, with radius Rpitch.R_{pitch}. To this end, we can show that 𝐗(ϕ)(0,0,Rpitch)T22=Rpitch2,\|\mathbf{X}(\phi)-(0,0,R_{pitch})^{T}\|_{2}^{2}=R_{pitch}^{2}, for all κg[1Ryaw,1Ryaw].\kappa_{g}\in\left[-\frac{1}{R_{yaw}},\frac{1}{R_{yaw}}\right]. Hence, all segments corresponding to κn=1Rpitch\kappa_{n}=\frac{1}{R_{pitch}} lie on a sphere centered at (0,0,Rpitch)T,(0,0,R_{pitch})^{T}, with radius Rpitch.R_{pitch}. A similar argument can be made for κn=1Rpitch,\kappa_{n}=-\frac{1}{R_{pitch}}, where all segments lie on a sphere centered at (0,0,Rpitch)T(0,0,-R_{pitch})^{T} with radius of Rpitch.R_{pitch}. Therefore, we can observe that κn\kappa_{n} controls the pitch motion of the vehicle; furthermore, κn=±1Rpitch\kappa_{n}=\pm\frac{1}{R_{pitch}} yield maximum ascent or descent motion for the vehicle.

The radius of a segment corresponding to when κg\kappa_{g} is constant in [1Ryaw,1Ryaw]\left[-\frac{1}{R_{yaw}},\frac{1}{R_{yaw}}\right] can be obtained using the expression for 𝐗(ϕ)\mathbf{X}(\phi) as 12𝐗(π)𝐗(0)2.\frac{1}{2}\|\mathbf{X}(\pi)-\mathbf{X}(0)\|_{2}. Using the expression for 𝐗(ϕ)\mathbf{X}(\phi) given in (26), it follows that 12𝐗(π)𝐗(0)2=1κg2+1Rpitch2.\frac{1}{2}\|\mathbf{X}(\pi)-\mathbf{X}(0)\|_{2}=\frac{1}{\sqrt{\kappa_{g}^{2}+\frac{1}{R_{pitch}^{2}}}}.

-C Sabban frame equations for sphere with radius R¯\overline{R} and path obtained in 3D

The evolution equations for the Sabban frame on a unit sphere, described in Section IV-C, can be generalized to a sphere with radius R¯.\overline{R}. To this end, the arc length ss on the sphere with radius R¯\overline{R} is defined to be s:=R¯s^,s:=\overline{R}\hat{s}, where s^\hat{s} is the arc length on the unit sphere. Furthermore, 𝐗sp:=R¯𝐗^sp\mathbf{X}_{sp}:=\overline{R}\hat{\mathbf{X}}_{sp} depicts the location on the new sphere; here, 𝐗^sp\hat{\mathbf{X}}_{sp} denotes the location on the unit sphere (refer to Fig. 9). Additionally, the bound for the control input from the unit sphere (=U^max=\hat{U}_{max}) is scaled to obtain Umax:=(R¯)1U^max.U_{max}:=\left(\overline{R}\right)^{-1}\hat{U}_{max}. Following a similar process as Lemma 3.2 in [25], we can show that the minimum turning radius rr on the sphere of radius R¯\overline{R} is given by r=R¯r^.r=\overline{R}\hat{r}. A depiction of the scaling for the initial configuration is shown in Fig. 9.

The evolution equations for the sphere with radius R¯\overline{R} can therefore be obtained as

d𝐗spds(s)=𝐓sp(s),d𝐓spds(s)=1R¯2𝐗sp(s)+ug𝐍sp(s),d𝐍spds(s)=ug𝐓sp(s),\displaystyle\begin{split}\frac{d\mathbf{X}_{sp}}{ds}(s)&=\mathbf{T}_{sp}(s),\quad\frac{d\mathbf{T}_{sp}}{ds}(s)=-\frac{1}{\overline{R}^{2}}\mathbf{X}_{sp}(s)+u_{g}\mathbf{N}_{sp}(s),\\ \frac{d\mathbf{N}_{sp}}{ds}(s)&=-u_{g}\mathbf{T}_{sp}(s),\end{split} (27)

where ug[Umax,Umax]u_{g}\in[-U_{max},U_{max}] is the geodesic curvature on the sphere of radius R¯\overline{R} and relates to the minimum turning radius rr on the sphere by r=R¯1+Umax2R¯2.r=\frac{\overline{R}}{\sqrt{1+U_{max}^{2}\overline{R}^{2}}}. The evolution of these three vectors for ugUmax,0,u_{g}\equiv U_{max},0, or Umax,-U_{max}, which correspond to left turn, great circular arc, and right turns on the sphere, can be obtained using the Euler-Rodriguez formula.

-D Proof for Lemma 3

Consider cylinders connecting a pair of inner or outer spheres, which are shown in Fig. 7a. The tangent plane for these cylinders is the 𝐓𝐘\mathbf{T}-\mathbf{Y} plane. Consider the bound chosen for the geodesic curvature on the cylinder (κg,cyc\kappa_{g,cyc}) from (15), which is 1Ryaw.\frac{1}{R_{yaw}}. We note that κg,cyc\kappa_{g,cyc} denotes the magnitude of the projection of the curvature vector on the tangent plane [27]. Since the tangent plane of this cylinder is the 𝐓𝐘\mathbf{T}-\mathbf{Y} plane, κg,cyc\kappa_{g,cyc} also represents the geodesic curvature for the rotation minimizing frame model. This is because geodesic curvature for the minimizing frame model (κg\kappa_{g}) controls the yaw motion (in the 𝐓𝐘\mathbf{T}-\mathbf{Y} plane) for the vehicle. Hence, the geodesic curvature bound for the rotation minimizing frame model is automatically satisfied for the chosen bound for κg,cyc.\kappa_{g,cyc}..

On the other hand, the normal curvature of a cylinder depends on the direction of traversal along the cylinder. If the curve is along a direction parallel to the axis of the cylinder, κn,cyc=0;\kappa_{n,cyc}=0; however, if the curve is perpendicular to the axis, κn,cyc=1R¯,\kappa_{n,cyc}=\frac{1}{\overline{R}}, since the curve is along the circular cross-section [29]. Since these curvatures of 0 and 1R¯\frac{1}{\overline{R}} are the principal curvatures, the normal curvature for any intermediary direction of motion lies between the two through Euler’s theorem [27]. Noting that the normal curvature is along the surface normal for the cylinder, which is along 𝐔\mathbf{U} for the rotation minimizing frame model, the normal curvature bounds for the rotation minimizing frame model are automatically satisfied. A similar argument applies for the selected bound for κg,cyc\kappa_{g,cyc} for the left and right cylinders, with the only difference arising in considering 𝐓𝐔\mathbf{T}-\mathbf{U} as the tangent plane and the surface normal for the cylinders being 𝐘\mathbf{Y}.

-E Proof for Lemma 4

Consider a cylinder that is parameterized in terms of uu and vv through (19). It suffices to show that the first fundamental form for the cylinder is the same as that for the plane, parameterized using uu and vv as given in (18). The first fundamental form coefficients are given by ([27]) Ecyl=𝐗cyl𝒰(s)u𝐗cyl𝒰(s)u=1,E_{cyl}=\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial u}\cdot\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial u}=1, Fcyl=𝐗cyl𝒰(s)u𝐗cyl𝒰(s)v=0,F_{cyl}=\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial u}\cdot\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial v}=0, and Gcyl=𝐗cyl𝒰(s)v𝐗cyl𝒰(s)v=1G_{cyl}=\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial v}\cdot\frac{\partial\mathbf{X}_{cyl}^{\mathcal{U}}(s)}{\partial v}=1. Similarly, Eplane,Fplane,E_{plane},F_{plane}, and GplaneG_{plane} can be obtained to be 1,1, 0,0, and 1.1. Since the first fundamental form coefficients of the cylinder and the plane are equal, the length of the curve is preserved. This is because the distance between two closely spaced points on the curve on the cylinder that are initially separated by dudu and dvdv on the plane is given by dscyl2=Ecyldu2+2Fcyldudv+Gcyldv2=dsplane2.ds_{cyl}^{2}=E_{cyl}du^{2}+2F_{cyl}dudv+G_{cyl}dv^{2}=ds_{plane}^{2}.