## Abstract

This paper presents a robust method for controlling the terrestrial motion of a bimodal multirotor vehicle that can roll and fly. Factors influencing the mobility and controllability of the vehicle are explored and compared to strictly flying multirotor vehicles; the differences motivate novel control and control allocation strategies that leverage the non-standard configuration of the bimodal design. A fifth-order dynamic model of the vehicle subject to kinematic rolling constraints is the basis for a nonlinear, multi-input, multi-output, sliding mode controller. Constrained optimization techniques are used to develop a novel control allocation strategy that minimizes power consumption while rolling. Simulations of the vehicle under closed-loop control are presented. A functional hardware embodiment of the vehicle is constructed onto which the controllers and control allocation algorithm are deployed. Experimental data of the vehicle under closed-loop control demonstrate good performance and robustness to parameter uncertainty. Data collected also demonstrate that the control allocation algorithm correctly determines a thrust-minimizing solution in real-time.

## 1 Introduction

*Bimodal* vehicles continue to draw the attention of researchers because of their potential for autonomous operations in unknown environments [1–5]. Bimodal vehicles can adapt to their environment by combining complementary locomotion mechanisms in a single vehicle or by altering the operation of locomotion mechanisms in accordance with the terrain. Additionally, bimodality promises superior efficiency, as different locomotion mechanisms often present a tradeoff in energetic cost. Aerial bimodal vehicles have been the focus of research efforts due to their unmatched mobility in uncertain and changing environments. As a result, several classes of aerial bimodal vehicles have emerged, including rolling–flying [6–10], walking–flying [11,12], and swimming–flying ([13–15]). Each of these classes utilizes various mechanisms for propulsion and lift.

Figure 1 illustrates an embodiment of a rolling–flying vehicle (RFV) that utilizes rotary wings for both rolling locomotion and lift generation. This class of vehicles was first conceived by Ref. [6] when they created a Hybrid Terrestrial/Aerial Quadrotor (HyTAQ), consisting of a quadrotor suspended within a single rolling cage that may roll along the ground and fly. A successful commercial embodiment of this vehicle architecture is the Parrot Rolling Spider (Parrot Drones sas). Here, rolling is accomplished via two independent, passive wheels on either side of the vehicle. The pitch angle of the rotor plane is independent of the wheels’ angular orientation so that the wheels are freely towed by the rotors. This configuration combines the efficiency of rolling locomotion with the mobility and maneuverability of rotary-wing flight; the energetic efficiency of the RFV compared to a conventional flying multirotor vehicle (CFMV) has been established by Ref. [16].

For example, the cost-of-transport (COT) of the RFV is less than 15% of the COT of a CFMV of comparable mass at low velocities (<5 m/s), while the operating times of the RFV are an order of magnitude higher.

As with nearly any exploratory mobile robot, closed-loop control of the RFV’s heading is necessary for basic operation. In contrast to other mobile robots, however, control of the pitch angle is critical to realizing the energetic benefits of the RFV. CFMVs and their control have been studied extensively [17–20], along with effective methods for control allocation [21–23]. However, the methods and assumptions used to develop controllers for CFMVs are not valid for an RFV, despite the RFV utilizing the same multirotor mechanism for both rolling and flying. Atay et al. [24] reveal that the dynamic model, flat outputs, and exogenous forces associated with the RFV’s rolling mode differ substantially from those of a CFMV due to the presence of kinematic constraints on the RFV. Furthermore, the RFV’s pitch angle range is considerably greater than that of a CFMV, invalidating any small-angle assumptions based on near-horizontal nominal operating conditions. Such assumptions are common in the CFMV literature as they permit significant simplification of the dynamic models used to design control systems [17,18].

Furthermore, the ability to roll permits the RFV to operate with small rotor thrusts compared to a CFMV because the RFV’s weight is partially supported by the ground when rolling. While this results in reduced power consumption, this also precludes the use of traditional control allocation methods which typically do not constrain the rotor thrusts to be positive. Because the RFV body forces are so small, synthesizing even modest body torques causes traditional control allocation methods to prescribe negative thrusts. However, negative thrusts cannot be efficiently produced by standard rotors, which are designed to always rotate in a single direction. Producing negative thrusts requires either variable pitch propellers, such as those used by Ref. [10], or symmetric (and therefore less efficient) propellers paired with motor drivers capable of reversing direction. Therefore, to avoid prescribing negative thrusts, the RFV requires control allocation methods that cope with actuator constraints and that can be executed rapidly on a real-time microprocessor. As will be shown, constrained control allocation is critical to realizing the energy efficiency of the RFV’s rolling mode of locomotion due to intermittent coupling that exists between the RFV pitch angle and forward velocity.

Kalantari and Spenko [6] invented and patented HyTAQ, consisting of a quadrotor suspended within a single rolling cage. The RFV presented here is one of the many embodiments covered by their patent [25]; specifically, the RFV uses two independently passive rotating wheels rather than a single monolithic cage. In Ref. [6], a model of a single-wheeled vehicle is developed, though the model is not used to design a control system. Takahashi et al. [7] developed the All-Round Two-Wheeled unmanned aerial vehicle (UAV) that contains hemispherical wheels that envelop a UAV suspended along the wheels’ axle. They design a position tracking controller based on a simplified dynamic model wherein the rotational dynamics and nonholonomic constraints are ignored. Mizutani et al. [26] develop a spherical shell permitting a quadrotor placed within to roll. Here, an off-the-shelf quadrotor is used, so no control system nor control allocation design is attempted. Takahashi et al. [7] do not address control allocation, while Ref. [6] uses an open-source multirotor embedded system to control their vehicle (Arduino Arducopter) which uses proportional-integral-derivative (PID) controllers and traditional unconstrained control allocation methods, which are suboptimal for the RFV.

This paper builds on the work of Refs. [6] and [7] by developing model-based control systems and a control allocation strategy for the RFV of Fig. 1. The controller design is based upon the dynamic model developed by Ref. [24], which takes into consideration the various constraints imposed upon the vehicle while in contact with the ground, and does not make any small-angle assumptions. The implications of the constraints as they relate to differential flatness, controllability, and control allocation are explored. This reveals limitations in the extent to which the system outputs can be decoupled and independently controlled. RFV and CFMV characteristics that influence control system development are discussed, and key differences are identified. Consideration of these differences motivates the development of novel closed-loop control systems for the RFV. A model-based, nonlinear, multi-input, multi-output (MIMO), sliding mode controller is designed. The controller’s robustness to bounded parameter uncertainties is proven using Lyapunov’s direct method. A novel constrained control allocation method is developed which determines the required rotor thrusts that will synthesize the desired input forces and moments while minimizing the total thrust produced and ensuring that all thrusts are positive. The solution is proved to be minimal. A hardware embodiment of the RFV is developed, including a custom real-time controller, permitting novel control and control allocation methods to be deployed and tested. The mechanical, electrical, and software subsystems of the RFV prototype are briefly discussed, and empirical results from the hardware are presented alongside simulation results.

This paper is organized as follows: First, the dynamic model of an RFV is briefly presented. Second, the RFV and CFMVs are compared in the context of control system development. Third, a procedure for designing closed-loop controllers for the RFV’s flat outputs is presented. Fourth, a method for control allocation is developed. Fifth, a hardware embodiment of the RFV is described. Sixth, simulation and experimental results are presented. Lastly, the results are discussed along with opportunities for future work.

## 2 Methods

### 2.1 Dynamic Model of the Rolling–Flying Vehicle.

Figure 2 shows a schematic illustration of the RFV that identifies the generalized coordinates, constraints, impressed forces and moments, and various frames of reference which define the model. Point *b* is located at the center of the RFV body *B*, midway between two wheels *W*_{1} and *W*_{2}, and is the origin of body reference frame $B$ which is rigidly fixed in *B*. Point *i* is located at the origin of an inertially fixed reference frame $I$. Referring to Fig. 2(c), an intermediate reference frame $F$ is defined with respect to $I$, the origin of which is collocated with the origin of frame $B$ at point *b*. As a result, the $x^$-axes of $F$ and $B$ are parallel, and $F$ is free to rotate about the $x^$-axis of $B$. Wheels *W*_{1} and *W*_{2} contact the ground at points *c*_{1} and *c*_{2}, respectively. $W$_{1} and $W$_{2} are free to rotate about the $x^$-axis of $B$. Referring to Fig. 2(b), the control inputs to the system are a force $FzB$ in the $B$ frame $z^$-direction and three moments $MxB,MyB$, and $MzB$ resolved in the $B$ frame $x^$-, $y^$- and $z^$-directions, respectively.

*x*,

*y*,

*σ*,

*α*,

*θ*

_{1}, and

*θ*

_{2}), the wheel constraints reduce the RFV to a three-degree-of-freedom (DOF) system for which the equations of motion are

*b*resolved in the $F$ frame,

*σ*and

*α*are Euler angles specifying the yaw angle and pitch angle, respectively, of the $B$ frame with respect to the $I$ frame, and $Dy,D\sigma $, and $D\alpha $ are nonconservative dissipation terms that are functions of rolling resistance, viscous damping, and aerodynamic drag. The input force and moments are rotated from the $B$ frame into the $F$ frame so that

*g*, wheel radius

*R*, distance from point

*b*to the center of each wheel

*L*, body mass

*m*

_{B}, body principal moments of inertia

*I*

_{x},

*I*

_{y},

*I*

_{z}, wheel mass

*m*

_{W}, wheel principal moments of inertia

*I*

_{xw},

*I*

_{yw}, and the location of the center of mass

*G*(which is fixed in $B$) relative to point

*b*in the $B$ frame $z^$-direction,

*h*.

### 2.2 Comparison of the Rolling–Flying Vehicle and CFMV.

The RFV described in this paper differs substantially from a CFMV, and these differences warrant new approaches to control and control allocation. First, the constraints imposed upon the RFV and CFMV differ. Several constraints occur where the RFV’s wheels contact the ground. This contrasts with a CFMV which is subject to no constraints; the six degrees-of-freedom that describe a CMFV (three position coordinates and three Euler angles) are independent of one another. Constraints influence what subset of generalized coordinates can be independently prescribed and therefore controlled.

To see this, consider the CFMV shown in Fig. 3(a), which can produce a positive horizontal force *F*_{y} by operating at a pitch angle *α* < 0, where *F*_{y} is the horizontal component of the net thrust *T*. To maintain a constant altitude in the $z^$-direction, the vertical component of thrust must always exactly counteract the weight of the vehicle *W*. This has the effect of coupling *α* and *F*_{y}. Since *F*_{y} is the control for the forward velocity $y\u02d9$, there exists a coupling between *α* and $y\u02d9$. As a result, one cannot specify *α* independently of $y\u02d9$.

This intuitive explanation can be rigorously demonstrated using the notion of differential flatness. If a dynamic system’s states and inputs can be written as a function of the system’s outputs and their derivatives, then the system is said to be differentially flat and the outputs are referred to as flat outputs [27]. A consequence of being differentially flat is that any trajectory specified in terms of the flat outputs can be directly mapped to the inputs and thus used to specify feasible motion trajectories. Several researchers [28,29] demonstrate that the flat outputs of a CFMV are $x\u02d9$ (velocity normal to the page), $y\u02d9,z\u02d9$ (vertical velocity), and the yaw angle *σ* (not shown); in particular, the pitch angle *α* is not a flat output. This contrasts with the RFV, whose flat outputs are *σ*, *α*, and $y\u02d9F$ [24]. Referring to Fig. 3(b), the difference in flat outputs is due to the normal constraints on the RFV’s wheels, which result in normal forces that partially support the vehicle’s weight. As a result, the vertical component of the thrust force is not required to support the vehicle’s weight, meaning that *T*, and therefore $FyF$, can be prescribed independently of *α*. The difference in flat outputs reveals that CFMV control algorithms are not ideal for controlling the RFV, as they will simultaneously inhibit independent control of the flat output *α* while attempting to control non-flat outputs $x\u02d9$ and $y\u02d9$ and the non-output $z\u02d9$. Rather, RFV control algorithms should be based on the dynamic model of Eqs. (1)–(3), which permits control of the flat outputs *σ*, *α*, and $y\u02d9F$. In general, the independence of *α* and $y\u02d9F$ can be leveraged to optimize the RFV operation for maximum range, while control of *α* alone enables optimization for minimum power consumption [16]. This occurs because control of *α* permits control of wheel normal force, and therefore wheel rolling resistance. This in turn influences power consumption and range. The optimal *α* at which to operate depends on terrain, highlighting the importance of a broad range for *α* control.

Furthermore, the difference in flat outputs reveals that the RFV is over-actuated while rolling; the RFV’s four rotors, which are capable of controlling the four flat outputs of a CFMV (i.e., $x\u02d9,y\u02d9,z\u02d9$ and *σ*), only need to control three flat outputs while rolling: *σ*, *α*, and $y\u02d9F$. As a consequence, the rolling operation may require fewer than four rotors to operate at a time. This is accomplished via a thrust-minimizing control allocation method described further in Secs. 2.4 and 3.2.2.

Another difference between the RFV and CFMVs is the exogenous dissipative forces acting upon the vehicles. In addition to aerodynamic drag forces, the RFV must overcome rolling resistance due to unmodeled terrain and viscous friction present in the wheel bearings. These dissipative forces and the outputs which they affect are captured by $Dy,D\sigma $, and $D\alpha $. Additionally, the proximity of the rotors to the ground at low *α* creates uncertain ground effect disturbances which the *α* control system must reject.

Finally, CFMVs and the RFV admit different simplifying assumptions. The nominal operating condition of a CFMV is typically horizontal. As a result, many attitude control systems are developed by linearizing the system dynamics about the horizontal configuration and making a small-angle assumption [18,28,30]. Linearization and/or small-angle strategies are unsuitable for the RFV as *α* is unrestricted and may assume values far from horizontal for extended periods. One consequence of large *α* values is the inertial cross-coupling that occurs due to the sin(*α*) and sin(2*α*) terms appearing in Eqs. (1)–(3). These terms create significant inertial torques that must be overcome by the controller. Large *α* values also mean that transforming forces and moments from the $F$ frame (in which the flat outputs are defined) to the $B$ frame (in which the actuators reside) depend on the value of *α*. As will be shown in Sec. 2.4, the $B$ frame moments required to achieve a given yawing torque are modulated by sin*α* and cos*α*.

Several researchers relax the small-angle assumption and develop model-based nonlinear controllers for CFMVs [17,18,20]. These controllers control orientation by generating moments about an arbitrary axis of a CFMV. This strategy is effective because the CFMV is unconstrained and so free to rotate about any axis. However, the RFV is constrained in multiple ways and so cannot rotate about an arbitrary axis. For example, the RFV cannot undergo lateral rolling (rotation about the $F$ frame $y^$-axis) without one or both wheels leaving the ground. Were the RFV’s attitude controlled in the same manner a CFMV’s then energy could be wasted trying to rotate the RFV against a constraint. In fact, it is unclear what the commanded lateral roll should be as the slope of the terrain may change. Instead, *α* and *σ* (which are flat outputs) are controlled to track a trajectory while lateral rolling can either be uncontrolled or suppressed using active damping (see Sec. 2.4).

### 2.3 Control System Development.

*c*

_{10}= 2

*I*

_{xw}/

*R*

^{2}+

*m*

_{B}+ 2

*m*

_{W}, and

*δ*

_{1}and

*δ*

_{2}are the remaining unaccounted for terms in Eqs. (3) and (1), respectively. Here, we assume that the

*δ*

_{1}and

*δ*

_{2}terms are considerably smaller than the other terms in Eqs. (3) and (1) for reasonable values of the state and inputs. Therefore, we treat these terms as modeling uncertainties that can be bounded. This assumption simplifies the subsequent control system development by leading to complete input–output decoupling. A result, however, is that the stability properties are only semi-global.

The control objective is to independently control *z*_{i} for *i* = 1, 2 (i.e., *σ* and *α*) such that *z*_{i} → *r*_{i} as *t* → ∞, where *r*_{i} is the reference trajectory to be tracked by the *i*th output and *t* is the time. This is accomplished using feedback linearization augmented with sliding mode control. Sliding mode control will ensure closed-loop stability in the presence of bounded modeling uncertainties provided that the uncertainties are matched [31,32]. Formulating the model as in (5) rather than in a more general form permits the uncertainty in the individual nonlinear terms to be bounded, which will result in a less conservative controller; i.e., the control action will be smaller [32].

*u*

_{i}can be used to linearize and control

*z*

_{i}for

*i*= 1, 2, 3. Moreover, the uncertainties appearing in (5) are matched. With the system input–output decoupled, the control system for each input–output pair can be developed independently [32]. Partitioning (5) into three subsystems results in a second-order subsystem for controlling

*z*

_{1}(i.e.,

*σ*), a second-order subsystem for controlling

*z*

_{2}(i.e.,

*α*), and a first-order subsystem for controlling

*z*

_{3}(i.e., $y\u02d9F$). The objective here is to develop controllers for the

*z*

_{1}and

*z*

_{2}subsystems, which have the following form:

*ρ*:ℝ

^{2}→ ℝ is the scalar output function,

*ψ*

_{1}:ℝ

^{5}→ ℝ and

*ψ*

_{2}:ℝ

^{5}→ ℝ represent static nonlinearities,

*u*is the scalar input, and

*κ*

_{1},

*κ*

_{2},

*κ*

_{3},

*κ*

_{4}, and

*δ*are uncertain parameters, e.g.,

*κ*

_{1}=

*c*

_{1},

*κ*

_{2}=

*c*

_{2},

*κ*

_{3}=

*c*

_{3},

*κ*

_{4}=

*c*

_{4}, and

*δ*= 0 for the

*z*

_{1}controller. The error associated with the system (6) is

*r*and $r\u02d9$ are the desired output and its time derivative. Therefore,

*e*

_{0}is the integrated output tracking error,

*e*

_{1}is the output tracking error, and

*e*

_{2}is the output tracking error rate. Differentiating (7) yields the following error system

*ϕ*is defined for the two-dimensional subsystem of $\zeta \u21c0\u2261[e0e1]T$

*t*→ ∞. A state feedback control law is chosen so that $\varphi =\u2212K\u21c0T\zeta \u21c0$, where $K\u21c0=[K0K1]T$ are state feedback gains. If pole placement is used, then

*K*

_{0}=

*λ*

_{0}

*λ*

_{1}and

*K*

_{1}= −

*λ*

_{0}−

*λ*

_{1}, where

*λ*

_{0}and

*λ*

_{1}are complex-valued pole locations in the left-half plane. Alternatively, an optimal solution using a linear quadratic regulator (LQR) can be used to determine the state feedback gains $K\u21c0$. If

*e*

_{2}can be controlled such that $e2=\varphi (\zeta \u21c0)$, then $\zeta \u21c0\u21920\u21d2e2\u21920$, and (8) is stabilized. The error between

*e*

_{2}and

*ϕ*is defined as

*s*= 0 is the so-called sliding surface and the dynamics

*s*= 0. Now, the problem of stabilizing the origin of (8) is reduced to stabilizing the origin of

*s*, which is accomplished using Lyapunov’s direct method. A positive-definite Lyapunov function is defined as

*V*(

*s*) =

*s*

^{2}/2. If a control law for

*u*can be developed such that $V\u02d9(s)$ is negative definite, then

*s*→ 0 as

*t*→ ∞. The derivative of

*V*(

*s*) is

*u*can be chosen such that

*η*> 0, then $V\u02d9(s)=\u2212\eta |s|\u22640$ making

*s*= 0 an invariant set [32]. That is,

*s*will asymptotically approach and remain at the origin. However, a control law based on (14) assumes perfect knowledge of the parameters

*κ*

_{1},

*κ*

_{2},

*κ*

_{3},

*κ*

_{4}, and

*δ*. In reality, the parameters’ exact values are uncertain, meaning that a control law based on (14) alone cannot guarantee

*s*→ 0. Instead, choose

*u*such that

*κ*

_{i}and

*δ*, respectively, and

*β*is a to-be-determined switching gain. The goal now is to select a value of

*β*that guarantees that $V\u02d9(s)\u2264\u2212\eta |s|$ given bounds on the uncertainty in the parameters. Solving (15) for

*u*results in the control law

*β*must be chosen assuming the worst-case uncertainty in the parameters

*κ*

_{i}and disturbance

*δ*. Assume the

*κ*

_{i}are bounded such that

*κ*

_{i,min}≤

*κ*

_{i}≤

*κ*

_{i,max}. If the estimates of

*κ*

_{1},

*κ*

_{2}, and

*κ*

_{3}are the arithmetic mean of their respective maximum and minimum values such that $\kappa ^j=(\kappa j,min+\kappa j,max)/2$ for

*j*= 1, 2, 3, then |Δ

*κ*

_{j}| ≤ (

*κ*

_{j,max}−

*κ*

_{j,min})/2 ≡ |Δ

*κ*

_{j}|

_{max}. Furthermore, an inspection of (1)–(3) reveal that

*κ*

_{4}is always positive. This permits the use of a technique suggested by Ref. [32] wherein the estimate of

*κ*

_{4}is the geometric mean of its maximum and minimum values such that $\kappa ^4=\kappa 4,max\kappa 4,min$. Therefore, $\kappa 4/\kappa ^4\u2264\kappa 4,max/\kappa 4,min\u2261(\kappa 4/\kappa ^4)max$. Additionally, $\delta ^$ is assumed to be zero and |Δ

*δ*|

_{max}is selected to be large enough to account for the uncertainty in

*δ*. Substituting |Δ

*κ*

_{j}|

_{max}, $(\kappa 4/\kappa ^4)max$, and |Δ

*δ*|

_{max}into (18) results in an expression for

*β*that ensures asymptotic stability of (8)

Note that for the *z*_{1} subsystem, *κ*_{4} = *c*_{4} = 2(*L*^{2}*I*_{xw}/*R*^{2} + *I*_{yw} + *m*_{W}*L*^{2}) + *I*_{y} sin ^{2}*α* + *I*_{z} cos ^{2}*α* + *m*_{B} + 2*m*_{W}, which is not constant, but varies with *α*. However, *c*_{4} is still bounded because min(*I*_{y}, *I*_{z}) ≤ *I*_{y} sin^{2}*α* + *I*_{z} cos^{2}*α* ≤ max(*I*_{y}, *I*_{z}).

*a*is a small number that defines the width of the transition region over which tanh(

*s*/

*a*) changes sign. The stability proof culminating in (19) assumes that sgn(

*s*) is used, rather than tanh(

*s*/

*a*). The effect of this substitution, discussed by [31], is a nonzero steady-state tracking error. This occurs because the transition region (defined by

*a*) softens the influence of

*β*, which would otherwise act as a large gain. Thus, there is a tradeoff between a smooth control signal and achieving zero steady-state error. Fortunately, the error integrator can bring the steady-state error to zero as

*s*→ 0, which helps obviate the tradeoff between chattering and steady-state error. Nonetheless, the presence of the boundary layer can still prevent

*s*from reaching the origin, resulting in a nonzero steady-state error integrator value even when the error is zero. For example, if the model is uncertain, then some nonzero integrator action may be required to achieve

*e*

_{1}= 0 if the

*β*switching term alone cannot eliminate

*e*

_{1}when

*s*is within the transition region. If small errors due to the transition region can be tolerated, or if the error integrator is otherwise not desired, it can be eliminated by assigning

*λ*

_{0}= 0 so that

*K*

_{0}= 0 and

*K*

_{1}= −

*λ*

_{1}. Note that the $\zeta \u21c0$ dynamics, which are prescribed via the state feedback control law $\varphi =\u2212K\u21c0T\zeta \u21c0$, are only fully realized when

*e*

_{2}=

*ϕ*, or equivalently, when

*s*= 0. Stability notwithstanding, during the period where

*s*is approaching but not equal to zero (the so-called “reaching phase”), the integrator may wind up, causing undesirable overshoot. A solution is to only activate the integrator when |

*s*| ≤

*a*, where

*a*defines the width of the transition region (Eq. (20)). This prevents the integrator from winding up, and the $\zeta \u21c0$ dynamics become $\zeta \u02d9=\lambda 1\zeta $ when |

*s*| >

*a*, where

*λ*

_{1}< 0. Additionally, the controller can pause integration if the control output saturates or if the integrator exceeds a predetermined bound. The control law (20) combined with the gain Eq. (19) and the definition of the sliding surface (11) define the feedback linearized sliding mode controller for the

*z*

_{1}and

*z*

_{2}subsystems. Simulation results of these controllers applied to the RFV are provided in Sec. 4.1.

### 2.4 Control Allocation.

*α*= 0 because the $F$ frame $y^$- and $B$ frame $z^$-axes are orthogonal. This affects Eq. (1) wherein the control is $FyF$, and therefore, $y\u02d9F$ cannot be controlled when

*α*=

*nπ*,

*n*= 0, 1, 2, …, ∞. Moreover, as

*α*approaches zero, the value of $FzB$ increases dramatically. This singularity represents a limitation in the independence of $y\u02d9F$ and

*α*due to the under-actuation of the system. The consequences of this limitation are discussed later in this section.

*σ*, (2)) influences both $MzB$ and $MyB$, and

*α*determines the relative contribution of each in synthesizing $MzF$. Also, $MyF$ is an additional control that does not appear in the equations of motion. $MyF$ can be assigned to zero or used to suppress lateral rolling about the $F$ frame $y^$-axis. For example, a lateral roll damping controller of the form

*T*

_{p}and

*Q*

_{p}are the thrust generated by and load torque impressed upon the

*p*th rotor, respectively, and

*L*

_{r}is the perpendicular distance measured along the $B$ frame $x^$- and $y^$-axes from point

*b*to the center of each rotor.

*Q*

_{p}results from the aerodynamic drag encountered by the rotor and acts to oppose the rotation of the rotor. A typical assumption is that the rotors operate in a constant state of hover in the sense that the freestream velocity of the air upstream of the rotors is zero. This leads to quadratic relationships between the rotor angular velocity and

*T*

_{p}and

*Q*

_{p}

_{p}is the angular velocity of the

*p*th rotor with respect to the $I$ (which is approximately the same as the angular velocity with respect to $B$) in the $B$ frame $z^$-axis direction, and

*k*

_{T}and

*k*

_{Q}are appropriately dimensioned rotor thrust and torque constants, respectively. Combining these relationships with (23) yields

This is a standard model used by many researchers [18,28–30] to map rotor thrusts to vehicle force and moments. Equation (25) can be written in a compact form as $\tau \u21c0=AT\u21c0$, where $\tau \u21c0=[FzBMxBMyBMzB]T$ and $T\u21c0=[T1T2T3T4]T$. The process of inverting (25) to obtain the rotor thrusts $T\u21c0$ that will synthesize the desired $B$ frame force and moments $\tau \u21c0$ is called control allocation. Control allocation for CFMVs is typically accomplished [18] using matrix inversion so that $T\u21c0=A\u22121\tau \u21c0$, which has a simple, closed-form solution. However, this solution does not take into consideration any constraints imposed on the solution, e.g., that the thrusts be positive. This is typically not a concern for CFMVs because the nominal positive thrust required to support the weight of a CFMV is considerably greater than the perturbations in thrust required to change its orientation. That is, $FzB$ is “large” compared to $|M\u21c0B|$. However, this is not true for the RFV because $FzB$ can be zero; the weight of the RFV can be supported by the ground rather than the rotor thrusts. If $FzB=0$, inspection of (25) reveals that there is no solution wherein every element of $T\u21c0$ is non-negative other than $T\u21c0=0$. Therefore, the standard approach to control allocation for CFMVs cannot be applied to the RFV. Rather, the constraint that every element of $T\u21c0$ is non-negative must be taken into consideration.

Control allocation subject to constraints has been studied extensively [33,34]. Both Monteiro et al. [23] and Guillaume et al. [22] demonstrate how constrained optimization techniques can solve the control allocation problem for multirotor vehicles. This is typically in the context of over-actuated vehicles, or to design a fault-tolerant control allocation solution [21]. Analytical techniques include pseudo-inverse methods, which minimize the norm of $T\u21c0$, or weighted least squares methods, which allow individual penalties to be assigned to actuators. Numerical optimization techniques such as linear programming and quadratic programming can be used to solve the control allocation problem subject to constraints [33]. Reyhanolgu et al. [35] perform control allocation for a three-degree-of-freedom quadrotor hover system. Their method guarantees that all thrusts are greater than a minimum positive value, although they do not demonstrate whether their solution is minimal.

*T*

_{min}.

*T*

_{min}is based on the lowest achievable rotor speed so that $Tmin=kT\Omega min2$. Second, specify a desired force in the body $z^$-direction $Fz,desB,$ and modify the elements of $T\u21c0$ to realize $Fz,desB$ provided that the constraints are not violated. The minimization is stated formally as

*f*so that

*I*

_{4x4}is the identity matrix. The Hessian $\u22022f\xaf/\u2202T\u21c02=I4x4$ is positive-definite, indicating that the above conditions are also sufficient conditions for a minimum [36]. Simultaneously solving Eqs. (29), (30) and (31) yields five non-trivial solutions for $T\u21c0*,\lambda \u21c0ineq$, and $\lambda \u21c0eq$. The solutions for $\lambda \u21c0ineq$ reveal that there is only one nonzero solution for each element of $\lambda \u21c0ineq$, and each of these corresponds to a different solution. The solutions are

*p*th constraint could be active, which corresponds to the

*p*th rotor producing minimum thrust

*T*

_{min}. The five thrust solutions for each rotor are

*p*= 1, 2, …, 4, which guarantees that $FzB=Fz,desB$ and yields the same solution as inverting (25) via matrix inversion.

*α*as $MxB$ is the output of the

*α*closed-loop controller. In fact, the equilibrium value of $MxB$ is $Mx,eqF(\alpha )\u2248\u2212mBghsin\alpha $, indicating that a nonzero $MxB$ is required to control

*α*when

*α*≠ 0 and

*h*≠ 0. Therefore, $y\u02d9F$ and

*α*are intermittently coupled due to the positive thrust constraint, particularly when $Fz,desB$ is small. As $Fz,desB$ increases, the constraint activity, and therefore the coupling, decreases. Reducing the value of

*h*(i.e., locating the center of mass nearer to the $B$-frame $x^$-axis) also reduces the $y\u02d9F\u2212\alpha $ coupling.

In addition to the coupling just described, two other forms of $y\u02d9F\u2212\alpha $ coupling exist: First, a singularity in (36) occurs when *α* is a multiple of *π*, and $FyF$ cannot be specified. Second, because the positive thrust constraint always results in $FzB>0$, the sign of $FyF$ is determined exclusively by the sign of *α*. As a result, $FyF>0$ can only be synthesized if sin*α* < 0, and vice versa. This coupling between $FyF$ and *α* is unavoidable if the rotor thrusts are constrained to be positive.

## 3 Hardware Embodiment

A hardware embodiment of the RFV is built to demonstrate the efficacy of the control and control allocation algorithms. This permits the evaluation of the control system performance while ensuring that the algorithms are computationally suitable for implementation on a real-time embedded system. A photograph of the hardware RFV hardware is shown in Fig. 1. A carbon fiber rod serves as the RFV axle, onto which a 3D-printed boom is attached. The boom supports four rotors and all avionics. Also attached to the axle are two quadrature encoder sensors used to resolve the angular position and angular rate of the two wheels. The avionics consist of a battery, a central processing unit (CPU), a power measurement printed circuit board (PCB), two 2.4 GHz radio transceivers, four brushless direct current (DC) (BLDC) motor drivers, and an inertial measurement system (INS) for obtaining the orientation of the RFV. The CPU is an ARM cortex-M7 microcontroller programmed to the following:

Communicate serially with both radio transceivers, including receiving commands from a base station and transmitting real-time telemetry data.

Communicate serially with the INS to obtain orientation and angular rate information.

Measure the position and speed of the wheels via the quadrature encoders.

Sample the voltage of and current from the battery via the power measurement PCB.

Execute the

*α*and*σ*control algorithms described in Sec. 2.3.Execute the control allocation algorithm described in Sec. 2.4.

Compute the required voltage for each of the four BLDC motors and generates pulse-width modulated (PWM) signals to control the voltage applied by each BLDC motor driver.

All *σ* and *α* commands are transmitted wirelessly from a base station to the RFV every 100 ms. The base station consists of an Xbox 360 handset (Microsoft Xbox 360), a laptop computer executing a custom WinForms GUI, and two 2.4 GHz radio transceivers. Telemetry data (including $\sigma ,\alpha ,y\u02d9F,M\u21c0B$, and $FzB$) are transmitted wirelessly from the RFV to the base station every 2 ms. The interconnections between the various avionic subsystems of the RFV are illustrated in Fig. 5. The avionics components and RFV dimensions are recorded in Tables 1 and 2, respectively.

Component | Manufacturer and part name |
---|---|

CPU | ST Microelectronics STM32F767ZIT6U (Nucleo F767ZI) |

Encoders (2x) | US Digital E3-500-984-NE-H-D-B |

Radios (2x) | Digi International XBee-PRO S2C (XBP24CDMWIT-001) |

Inertial sensor | VectorNav VN-100 Rugged |

BLDC drivers (4x) | Crazepony BL Heli 32 |

Current sensor | Analog Devices AD8210 |

Battery | Turnigy 2200 mAh 2S 25C Lipo Pack |

Motors (4x) | EMax RS2206 |

Rotors (4x) | EMax Avan-R |

Component | Manufacturer and part name |
---|---|

CPU | ST Microelectronics STM32F767ZIT6U (Nucleo F767ZI) |

Encoders (2x) | US Digital E3-500-984-NE-H-D-B |

Radios (2x) | Digi International XBee-PRO S2C (XBP24CDMWIT-001) |

Inertial sensor | VectorNav VN-100 Rugged |

BLDC drivers (4x) | Crazepony BL Heli 32 |

Current sensor | Analog Devices AD8210 |

Battery | Turnigy 2200 mAh 2S 25C Lipo Pack |

Motors (4x) | EMax RS2206 |

Rotors (4x) | EMax Avan-R |

Parameter | Actual value | Simulated value |
---|---|---|

L (m) | 0.262 | 0.3275 |

R (m) | 0.3480 | 0.261 |

m_{B} (kg) | 1.5 | 1.875 |

m_{W} (kg) | 0.5 | 0.375 |

I_{x} (kg-m^{2}) | 0.0181 | 0.0226 |

I_{y} (kg-m^{2}) | 0.0181 | 0.0136 |

I_{z} (kg-m^{2}) | 0.0217 | 0.0271 |

I_{xw} (kg-m^{2}) | 0.0303 | 0.0096 |

I_{yw} (kg-m^{2}) | 0.0151 | 0.008 |

g (m/s^{2}) | 9.81 | 9.81 |

h (m) | −0.01 | −0.0125 |

μ_{rr} | – | 0.05 |

μ_{visc} (N-m-s) | – | 0.005 |

C_{D} (kg/m) | – | 0.01 |

L_{r} (m) | 0.14 | 0.14 |

k_{T} (N/(rad/s)^{2}) | 1.6351 × 10^{−5} | 1.6351 × 10^{−5} |

k_{Q} (Nm/(rad/s)^{2}) | 2.7033 × 10^{−7} | 2.7033 × 10^{−7} |

Parameter | Actual value | Simulated value |
---|---|---|

L (m) | 0.262 | 0.3275 |

R (m) | 0.3480 | 0.261 |

m_{B} (kg) | 1.5 | 1.875 |

m_{W} (kg) | 0.5 | 0.375 |

I_{x} (kg-m^{2}) | 0.0181 | 0.0226 |

I_{y} (kg-m^{2}) | 0.0181 | 0.0136 |

I_{z} (kg-m^{2}) | 0.0217 | 0.0271 |

I_{xw} (kg-m^{2}) | 0.0303 | 0.0096 |

I_{yw} (kg-m^{2}) | 0.0151 | 0.008 |

g (m/s^{2}) | 9.81 | 9.81 |

h (m) | −0.01 | −0.0125 |

μ_{rr} | – | 0.05 |

μ_{visc} (N-m-s) | – | 0.005 |

C_{D} (kg/m) | – | 0.01 |

L_{r} (m) | 0.14 | 0.14 |

k_{T} (N/(rad/s)^{2}) | 1.6351 × 10^{−5} | 1.6351 × 10^{−5} |

k_{Q} (Nm/(rad/s)^{2}) | 2.7033 × 10^{−7} | 2.7033 × 10^{−7} |

*γ*about the $F$ frame $y^$-axis is measured, and the Euler angle rates are computed from the angular velocity of the $B$ frame with respect to the $I$ frame $\omega \u21c0IBB$ according to

*σ*,

*γ*,

*α*, and $\omega \u21c0IBB$ are obtained from the INS. As described in Ref. [24], $y\u02d9F$ is computed from $\theta \u02d91$ and $\theta \u02d92$ (measured by the encoders) and $\omega \u21c0IBB$ as

*V*

_{p},

*I*

_{p},

*R*

_{e},

*k*

_{e}, and

*I*

_{nl}are the applied voltage, applied current, electrical resistance, back-electromotive force (EMF) constant, and no-load current, respectively, of the

*p*th motor. Therefore

Equation (40) is used to compute the voltage required to rotate the *p*th motor at an angular velocity of Ω_{p}. The desired Ω_{p} are calculated based on the desired *T*_{p} from (24). The rotor parameters *k*_{T} and *k*_{Q} are determined empirically by measuring the thrust force and reaction torque on a motor driving a rotor while operating at different angular velocities. The motor parameters *R*_{e}, *k*_{e}, and *I*_{nl} are obtained from the manufacturer’s data.

## 4 Results and Discussion

### 4.1 Numerical Simulation Results.

*σ*and

*α*controlled in closed-loop using the control systems developed in Sec. 2.3 and the control allocation algorithm developed in Sec. 2.4. The simulation uses matlab’s ode45 function (fourth-order Runge–Kutta with variable time-step) to numerically integrate (1)–(3), along with expressions for $\theta \u02d91$ and $\theta \u02d92$ from Ref. [24] as follows:

*σ*and

*α*controllers ($MzF$ and $MxF$, respectively) are generated. A block diagram of the simulated system appears in Fig. 6.

Simulation parameters are displayed in Table 2. *μ*_{rr}, *μ*_{visc}, and *C*_{D} are coefficients of rolling resistance, viscous damping, and aerodynamic drag, respectively, which are manifested in $Dy,D\sigma $, and $D\alpha $ [24].

To demonstrate the robustness of the sliding mode control system to parameter uncertainty, the model parameters used to simulate the RFV system are intentionally varied from those used to design the *α* and *σ* controllers, the latter being based on the actual hardware RFV parameters. Specifically, the simulated values are varied by plus or minus 25%.

The sliding mode controller parameters are listed in Table 3. The state feedback gains are obtained via pole placement, and the uncertainty bounds are based on parameter estimates. *a* is chosen based on empirical observations of chattering and response time.

Parameter | σ Controller | α Controller |
---|---|---|

η (s^{−2}) | 1 | 1 |

K_{0} (s^{−2}) | 0 | 5.25 |

K_{1} (s^{−1}) | 4 | 5 |

a | 1.5 | 1 |

|Δκ_{1}|_{max} | 0.0054 (kg-m^{2}) | 0.0027 (kg-m^{2}) |

|Δκ_{2}|_{max} | 0.05 (kg-m) | 0.3 (N-m) |

|Δκ_{3}|_{max} | 0.2 (N-m) | 0.15 (N-m) |

$(\kappa 4/\kappa ^4)max$ | 3 | 1.73 |

|Δδ|_{max} | 0 | 1 |

Parameter | σ Controller | α Controller |
---|---|---|

η (s^{−2}) | 1 | 1 |

K_{0} (s^{−2}) | 0 | 5.25 |

K_{1} (s^{−1}) | 4 | 5 |

a | 1.5 | 1 |

|Δκ_{1}|_{max} | 0.0054 (kg-m^{2}) | 0.0027 (kg-m^{2}) |

|Δκ_{2}|_{max} | 0.05 (kg-m) | 0.3 (N-m) |

|Δκ_{3}|_{max} | 0.2 (N-m) | 0.15 (N-m) |

$(\kappa 4/\kappa ^4)max$ | 3 | 1.73 |

|Δδ|_{max} | 0 | 1 |

Figure 7 shows the simulated response of the *α* control system to a step command. The desired value of *α* is *α*_{des} = − *π*/4, $\alpha \u02d9des=0$. Shown also are the switching gain $\beta \alpha $ and sliding variable $s\alpha $. Figure 7(a) illustrates that *α* converges to *α*_{des} despite the modeling uncertainty. Figure 7(c) shows that the control $MxF$ is initially positive to drive *α* to *α*_{des}, but rapidly decreases while $s\alpha $ approaches zero. Once $s\alpha $ is sufficiently close to zero, $MxF$ begins to increase according to the sliding mode dynamics of (12) and the estimated nonlinear dynamics appearing in the last three terms of (20). The estimated nonlinear dynamics are also primarily responsible for the positive steady-state value of $MxF$ required to support the offset center of mass (because *h* ≠ 0). However, the uncertainty in the model means that these terms cannot exactly compensate for the offset center of mass, and the difference is made up by the *K*_{0}*e*_{1} term in (20). The net result is a control law that rapidly accelerates and then rapidly decelerates *α* to achieve the desired orientation. Figure 7(b) shows that $s\alpha $ is initially driven toward zero, at which point the dynamics prescribed by (12) drive the error system of (8) toward zero.

As discussed in Sec. 2.3, the steady-state value of *s* is nonzero due to the transition region introduced by the hyperbolic tangent function in (20). Figure 7(d) illustrates how the value of the switching gain $\beta \alpha $ changes during the step response. The transient behavior of $\beta \alpha $ is dominated by the magnitude of the velocity error $|e2|=|\alpha \u02d9des\u2212\alpha \u02d9|=|\alpha \u02d9|$.

Figure 8 shows the time responses of $\sigma ,MzF,s\sigma $, and $\beta \sigma $ to a step command. The desired value of *σ* is *σ*_{des} = *π*/2, $\sigma \u02d9des=0$, which behaves similarly to the *α* control system with the exception that no steady-state value of $MzF$ is necessary to maintain *σ* = *σ*_{des}. The error integrator is unused (*K*_{0} = 0), resulting in no overshoot.

### 4.2 Empirical Results.

The *α* and *σ* controllers and control allocation algorithm described in Secs. 2.3 and 2.4, respectively, are deployed onto the hardware embodiment of the RFV described in Sec. 3. As with the simulations, the block diagram of Fig. 6 illustrates the entire closed-loop system. Experimental data are collected while operating under closed-loop *α* and *σ* control. In all cases, $MyF=0$ and $Fz,desB$ is controlled manually.

#### 4.2.1 Empirical Control System Results.

Figure 9(a) shows the *α* response to a step command *α*_{des} = *π*/4 for both the actual and simulated RFVs while Fig. 9(b) shows the associated value of $MxF$. Less aggressive control parameters are chosen compared to the simulation from Sec. 4.1 (*K*_{0} = 1.75, *K*_{1} = 4), because the simulation assumes that $M\u21c0F$ can be generated instantaneously via the rotor thrusts, but in reality, this is not possible; the rotors produce thrust approximately proportional to Ω^{2}, and Ω is governed by the motor/rotor electromechanical dynamics. This introduces lag into the control system, which when combined with an aggressive switching gain *β* can result in undesirable ringing. Additionally, the dynamics of the motors are uncontrolled; an open-loop voltage is applied to the motors according to (40), rather than controlling Ω in closed-loop. Therefore, uncertainty in the motor parameters and *k*_{Q} also affect the ability to accurately sythesize $M\u21c0F$. Nonetheless, stability of the actual RFV is achieved with an acceptable tradeoff between response time and ringing. Differences between the actual and simulated plots of *α* and $MxF$ are attributed to the uncertainty in synthesizing $M\u21c0F$ and the uncertainty in the model parameters. For example, the difference in the steady-state values of $MxF$ for the actual and simulated cases in Fig. 9(b) could be due to uncertain vehicle mass, uncertain center of mass location, the inability to accurately synthesize $MxF$, or any combination of the three. However, stability and performance are demonstrated despite uncertainty in both the model and parameters.

Figure 10(a) illustrates the *α* control system tracking a sine wave (*π*/4 radians amplitude, 0.4 Hz frequency) with $Fz,desB=1.5N$. The sliding mode controller exhibits good tracking performance despite uncertainty in the RFV parameters and demonstrates close agreement with simulation results.

Figure 10(b) shows the *σ* controller’s ability to track a time-varying trajectory on flat ground while the *α* controller is simultaneously active with *α*_{des} = 0 (*α* data not shown). The control parameters used are those listed in Table 3. Changes in the rolling resistance of each wheel (which are not accounted for in the model) are observed during operation. However, the controller is able to track the commanded *σ* angle despite the modeling uncertainty.

#### 4.2.2 Empirical Control Allocation Results.

Efficacy of the control allocation algorithm is demonstrated on the prototype RFV by commanding a sinusoidal $MzF$ while controlling *α* in closed-loop at varying angles.

These configurations force the control allocation solution to be constrained while also varying which rotors are subject to the constraint. For this test, $MxF$ is the output of the *α* control system, $MyF=0$ and $MzF=0.03cos2\pi fsinet$, where *f*_{sine} = 0.25 Hz. The desired $M\u21c0F$ is transformed to $M\u21c0B$ using (21). Additionally, $Fz,desB=0$, which guarantees that the control allocation solution is always constrained.

$M\u21c0B$ and $Fz,desB$ are input to the control allocation algorithm with *T*_{min} = 0. The outputs of the control allocation algorithm are the commanded rotor thrusts, each of which are recorded over a complete cycle of $MzF$ for each *α* value. The results are shown in Fig. 11. The time series plots on the left (Figs. 11(a), 11(c), and 11(e)) show the commanded $MzF$ (dotted line) and the resulting rotor thrusts as a function of time. The graphics to the right of each plot (Figs. 11(b), 11(d), and 11(f)) indicate the physical configuration of the RFV and the relative magnitude of the commanded rotor thrusts at the time denoted by the dashed vertical line on the corresponding plot.

Figure 11(a) shows the RFV when *α* = 0. First note that when $MzF=0$ (at approximately *t* = 1.3 s and 3.3 s), *T*_{1} = *T*_{2} = 0 while *T*_{3} = *T*_{4} ≈ 0.2 N. At these points, the only nonzero body force is $MxB$, which is determined exclusively by the *α* control system. The value of *T*_{3} and *T*_{4} are nonzero because the RFV center of mass is slightly behind point *b*, as indicated in Fig. 11(b). As a result, the *α* controller determines that a negative $MxB$ must be applied to maintain *α* = 0, leading to *T*_{3} = *T*_{4} > 0. This explains why the *T*_{3} and *T*_{4} curves appear somewhat noisy, while the *T*_{1} and *T*_{2} curves are smooth; *T*_{3} and *T*_{4} are responding to the closed-loop *α* controller, whereas *T*_{1} and *T*_{2} are only needed to enforce the $MzF$ command, which is prescribed to be a smooth sinusoid. Alternatively, were the center of mass in front of point *b*, then the situation would be reversed; the control allocation algorithm would determine that *T*_{1} and *T*_{2} should be driven primarily by the *α* controller and *T*_{3} and *T*_{4} would appear smooth.

Second, a large, positive $MzF$ is commanded at the time indicated by the dashed vertical line, producing large *T*_{2} and *T*_{4} thrusts. This creates a moment about the *z*^{$B$} axis, which happens to coincide with the *z*^{$F$} axis when *α* = 0. The relative thrusts at this instant are illustrated in Fig. 11(b). Here, the control allocation algorithm has determined that *T*_{1} = 0, as the commanded moments $MxB,MyB$, and $MzB$ can be synthesized using just *T*_{2}, *T*_{3}, and *T*_{4}. In fact, an inspection of Fig. 11(a) reveals that at all times one rotor produces zero thrusts. Notice that *T*_{4} − *T*_{2} ≈ *T*_{3} always, indicating that the *α* controller is still generating the required $MxB$ to maintain *α* = 0.

In Figs. 11(c) and 11(d), *α* = −*π*/4, which moves the center of mass even further behind *b*, requiring increased thrusts (*T*_{3} = *T*_{4} ≈ 0.4 N) when $MzF=0$. Additionally, the $B$ frame and $F$ frame are no longer aligned, so $MzF$ is synthesized by generating moments about both the *z*^{$B$} and *y*^{$B$} axes. At the dashed line (where $MzF$ is large and positive), *T*_{4} and *T*_{2} increase to generate $MzB$. In contrast to the *α* = 0 case, here *T*_{4} − *T*_{2} > *T*_{3}, indicating that there is a nonzero $MyB$ (see Eq. (25)). This explains the slight dip in *T*_{3} at the dashed line; *T*_{3} decreases beyond its value at $MzF=0$ to help generate $MyB$.

Lastly, in Figs. 11(e) and 11(f), *α* = −*π*/2. As before, the center of mass is moved further from point *b* so that *T*_{3} = *T*_{4} ≈ 0.45 N when $MzF=0$. Now, $MzF$ is synthesized solely by generating $MyB$. *T*_{1} is nonzero at the time indicated by the dashed line on Fig. 11(e), though its value is relatively small compared to the other thrusts required to generate $MzF$ when *α* = 0 or −*π*/4 (compare to Figs. 11(b) and 11(d)). In fact, all the thrusts appear smaller when *α* = − *π*/2. This is ultimately because *k*_{T}*L*_{r} ≫ *k*_{Q}, indicating that moments generated via rotor thrust (i.e., $MxB$ and $MyB$) are much greater than moments generated via rotor drag (i.e., $MzB$) for a given Ω (see Eqs. (24) and (25)). Therefore, the thrusts generated as a byproduct of producing $MxB$ or $MyB$ are much less than those required to produce an identical $MzB$. So, if $MzF$ is synthesized primarily via $MxB$ and $MyB$, as it is when *α* = −*π*/2, then the thrusts will be smaller than if $MzF$ were synthesized via $MzB.$

As described in Sec. 2.4, $FzB=Fz,desB$ will only be realized if $Fz,desB>Fz,minB$, indicating that the constraints are inactive. Otherwise, the constraints are active and $FzB$ will be set equal to $Fz,minB$. Figure 12 illustrates the control allocation algorithm transitioning between constrained and unconstrained operation while *α* = 0. Plotted is $FzB$ for two cases: $Fz,desB=0N$ (solid line) and $Fz,desB=1.57N$ (dash-dotted line). As before, $MxF$ is the output of the *α* control system, $MyF=0$ and $MzF=0.03cos2\pi fsinet$, where *f*_{sine} = 0.25 Hz. As $MzF$ changes (dashed line), so changes $Fz,minB$, which influences the constraint activeness.

For the $Fz,desB=0N$ case, the solution is always constrained, and so $FzB=Fz,minB$ always. Note that $Fz,minB>0$ even when $MzF=0$. This is because $MxB$, which is the output of the *α* controller, is never zero (due to the offset location of the center of mass), and so while $MzF$ may be zero, $M\u21c0B$ is not. For the $Fz,desB=1.57N$ case, the solution is constrained approximately half of the time. While constrained, $FzB=Fz,minB$ and the solid and dash-dotted lines lie atop one another. However, as $|MzF|$ decreases, so does $Fz,minB$ to the point where $Fz,minB<Fz,desB$. During these periods the solution is unconstrained and $FzB=Fz,desB$, indicated by the sudden flattening of the dash-dotted line at a value of 1.57 N. The dashed vertical lines indicate where the algorithm transitions between constrained and unconstrained operation for the $Fz,desB=1.57N$ case.

## 5 Conclusion

The RFV’s design merits a controller tailored to its unique nonlinear dynamics and flat outputs. Furthermore, the number of difficult-to-measure parameters governing the RFV’s behavior dictates that such a controller be robust to uncertainty. As such, the controller presented herein is both model-based and robust. The efficacy of the controller has been demonstrated through numerical simulations and empirical experiments using custom hardware and software. The novel control allocation algorithm provides a means for actuating the RFV that respects the vehicle constraints while simultaneously minimizing thrust. Indeed, Figs. 11(a), 11(c), and 11(e) illustrate that at all times at least one rotor is producing zero thrust. Such a thrust-minimizing solution is unique to the RFV.

Additionally, this algorithm is computationally lightweight and thus easily integrated into an embedded system. There are several opportunities to improve the performance of the RFV control systems. First, as mentioned in Sec. 4.2.1, closed-loop rotor velocity controllers could improve the response time and reduce ringing in *α*. Second, RFV velocity control requires a $y\u02d9F$ controller that respects the intermittent coupling of *α* and $y\u02d9F$. Based on constraint activity (Sec. 2.4), such a controller would determine when independent control of $y\u02d9F$ and *α* is possible and adjust the control strategy accordingly. This permits optimizing RFV operation for maximum range [16]. Lastly, $MyF$ could be used for active *γ* damping as described in (22), which could improve stability on uneven terrain and prevent rolling during aggressive maneuvering.

## Acknowledgment

The authors would like to thank Shaphan Jernigan for his work in supporting the hardware development of the RFV.

## Conflict of Interest

There are no conflicts of interest.

## Data Availability Statement

The data sets generated and supporting the findings of this article are obtainable from the corresponding author upon reasonable request.

## Declarations

*Ethical Approval*: not applicable.

*Consent to Participate*: not applicable.

*Consent to Publish*: The coauthors confirm that the work described has not been published before (except in the form of an abstract or as part of a published lecture, review, or thesis); that it is not under consideration for publication elsewhere; that its publication has been approved by all coauthors.

*Authors Contributions*: S. Atay modeled the rolling/flying vehicle dynamics, designed and simulated the controllers, and was the primary contributing author. M. Bryant and G. Buckner directed the modeling and simulation tasks, provided funding and resources for the work, and provided secondary editing and co-authorship.

*Funding*: provided by the U.S. Army Research Office and the U.S. Army Special Operations Command under Contract No. W911-NF-13-C-0045.

*Competing Interests*: not applicable

*Availability of data and materials*: all data and materials presented in this paper will be made available upon request.

## Nomenclature

### Variables

*a*=width of sliding mode transition region

*h*=location of RFV body center of mass (m)

*t*=time

*x*=position coordinate (m)

*y*=position coordinate (m)

*z*=position coordinate (m)

*G*=gravitational acceleration (m/s

^{2})*L*=RFV characteristic length (m)

*R*=wheel radius (m)

*V*=A Lyapunov function

*W*=vehicle weight

- $g\u21c0$ =
inequality constraint function

- $h\u21c0$ =
equality constraint function

- $u\u21c0$ =
system input vector

- $x^$ =
unit vector in

*x*-direction - $y^$ =
unit vector in

*y*-direction - $z^$ =
unit vector in z-direction

*f*_{sine}=frequency of sine wave (Hz)

*k*_{e}=motor back-EMF constant

*C*_{D}=aerodynamic drag coefficient

*F*_{y}=horizontal force in the $y^$-direction (N)

*I*_{nl}=motor no-load electrical current

*I*_{p}=motor electrical current

*I*_{4x4}=identity matrix

*L*_{r}=distance from point

*b*to rotor*R*_{e}=motor winding resistance

*V*_{p}=motor voltage

- $FyF$ =
horizontal force in the $F$ frame $y^$-direction (N)

*c*_{1},*c*_{2}, …,*c*_{10}=model parameters

- $e\u21c0,e0,e1,e2$ =
error states

- $f,f\xaf$ =
optimization objective function

*k*_{T},*k*_{Q}=rotor constants

*m*_{B},*m*_{W}=masses (kg)

*r*,*r*_{i}=control system reference

- $s,s\alpha ,s\sigma $ =
sliding manifold

- $x\u21c0,x1,x2,\u2026,x5$ =
control system state vector

- $y\u02d9F,y\xa8F$ =
velocity and acceleration in the $F$ frame $y^$-direction

- $z\u21c0,z1,z2,z3$ =
flat outputs

- $A,A\xaf$ =
control allocation matrix

- $Dy,D\alpha ,D\sigma $ =
dissipation terms

- $FzB,Fz,minB,Fz,desB$ =
body force (N) in the $B$ frame

*z*-direction (N) *I*_{x},*I*_{y},*I*_{z}=RFV body principal moments of inertia of (kg · m

^{2})*I*_{xw},*I*_{yw}=wheel principal moments of inertia of (kg · m

^{2})- $K\u21c0,K0,K1$ =
state feedback gains

- $M\u21c0B,MxB,MyB,MzB$ =
body moments (N · m)

- $M\u21c0F,MxF,Mx,eqF,MyF,MzF$ =
$F$ frame moments (N · m)

*Q*_{p},*Q*_{1},*Q*_{2},*Q*_{3},*Q*_{4}=rotor torque loads

- $T\u21c0*,Tp*$ =
minimum rotor thrust vector

- $T,Tp,T\u21c0,T1,T2,T3,T4,Tmin$ =
rotor thrusts

*α*,*α*_{des}=pitch Euler angle

*β*, $\beta \alpha ,\beta \sigma $ =sliding mode switching gains

*γ*=tilt Euler angle

- |Δ
*κ*_{j}|_{max}=maximum uncertainty in

*κ*_{j} - |Δ
*δ*|_{max}=maximum uncertainty in

*δ* - Ω
_{p}=rotor angular velocity (rad/s)

*δ*,*δ*_{1},*δ*_{2}=model uncertainties

*ζ*=generic error vector

*η*=a positive constant

*θ*_{1},*θ*_{2}=wheels angles (radians)

*κ*_{i},*κ*_{1},*κ*_{2},*κ*_{3},*κ*_{4}=coefficients of nonlinearities

- $(\kappa 4/\kappa ^4)max$ =
maximum uncertainty in

*κ*_{4} - $\lambda \u21c0eq,\lambda \u21c0ineq$ =
Lagrange multipliers

*μ*_{visc}=viscous damping coefficient (N · m · s)

*μ*_{rr}=rolling resistance coefficient

*ν*=a fictitious control input

*ν*_{x},*ν*_{y},*ν*_{z}=a variable proportional to desired body moments

- $\xi \u21c0,\xi 1,\xi 2$ =
states of a generic second-order mechanical system

*ρ*=scalar output function

*σ*,*σ*_{des}=Yaw Euler angle

*ψ*_{1},*ψ*_{2}=nonlinear terms

*ϕ*=a stabilizing control law