This paper addresses the issue of controller complexity for multirotor aerial manipulator (AM) implementation by utilizing a special class of fully actuated hexrotor within the framework of a firmware, which allows standard multirotor actuation modes. Using this platform, manipulator and vehicle dynamics are decoupled, making the airframe inherently more robust than standard multirotor for trajectory tracking in AM applications. Furthermore, its unique design allows for the implementation of modular control strategies. The proposed rotor orientation model makes it possible to decouple the dynamics, allowing full analytical development of the optimal solution. A methodology for analysis, control allocation, and design of this special class of hexrotor is presented, and the implementation of a custom flight stack is demonstrated using a hexrotor prototype in closed-loop flight testing. The flight stack developed is compliant with the open-source ArduPilot Mega (APM) firmware, allowing it to take advantage of all generic multirotor control algorithms. Experimental results are presented to demonstrate feasibility of the system.

## Introduction

An aerial manipulator (AM) is an unmanned aerial vehicle (UAV), which physically interacts with its environment via one or several active mechanical systems. One of the more difficult challenges to address in the development of an AM is the consideration of dynamic coupling for both the UAV and manipulation platforms. This challenge has been approached in several ways in the recent past. One approach is to rely on a hierarchical control scheme for a coupled quadcopter and manipulator system to converge end-effector target position [1,2]. Control algorithms such as this often result in long reference convergence times due to the precision requirements of the end effector. One way to improve precision is to increase the number of actuated joints in the manipulator system, though this necessarily increases model complexity. To handle redundancy in actuation of the manipulator, the work described in Ref. [3] sought to develop a general model for multidegree-of-freedom manipulator control for an AM. The authors utilized the Newton–Euler method for estimation of base interactions between the quadrotor and manipulator, and Lyapunov-based model reference adaptive control to adapt propulsion system dynamics and aerodynamic conditions for improved performance of the derived controller. As demonstrated in Ref. [4], redundant degree-of-freedom (DOF) manipulators can aid in convergence of target trajectories for the end effector; however, implementation of the manipulator in their experiment introduced divergence phenomena associated with flight stability and the AM coupling.

Hybrid control methods have also been presented for use with AM platforms. The work presented in Ref. [5] offers design, simulation, and experimental validation of an interaction controller for an underactuated quadcopter AM. Hybrid control for the quadcopter is used to switch between a free-flight control mode and a contact-control mode. In more recent implementations of robust control for AMs, concepts of cyclopassivity, Lagrangian dynamics, and interconnection and damping assignment passivity-based control are used in a two-dimensional model and experiment in Ref. [6], and closed-loop inverse kinematics control for an AM was implemented with integral correction in Ref. [7].

Many works describe the improvement of manipulator trajectory tracking; however, AM control toward improved flight stabilization has also been investigated. In Ref. [8], a unique take on task prioritization control method is presented that utilized the manipulator to perform a secondary flight stabilization task. A redundant manipulator is used to augment the main visual-servoing task to minimize changes to the platform's center of gravity.

Much of the work performed toward advancing classical AM control methods focuses on the improved stability and performance of the coupled manipulator and multirotor system. The need for much of the more complex coupling considerations would be eliminated, however, if the aerial platform developed were fully actuated. Classical multirotors are a class of UAV that utilizes multiple rotors to direct maximum control effort into the production of lift and rolling, pitching, and yawing torque. The design allows pilots to easily stabilize the platform in hover. However, the platform suffers from a lack of controllability as it lacks any means of producing forward or lateral body-fixed forces. It must affect coupled rolling and pitching maneuvers to produce forward and lateral motion. This is the main contributor to reduced performance of multirotor AM trajectory tracking. While fully actuated platforms have been developed by several groups including Refs. [9] and [10], these airframes do not see widespread use in AM application likely due to their unique dynamic formulations. How these platforms respond to saturation effects is fundamentally incompatible with classical multirotor control strategies; however, one unique class of fully actuated multirotor, which simulates classical hexrotor saturation effects, was developed by Langkamp [11]. The rotors in this design differ from a classical parallel configuration through relative rotations of each rotor via variable pitch cant angles. The design results in full controllability, while sacrificing overall flight efficiency and stability. In Ref. [12], a fixed-pitch version of the design, which describes force and form closure, arbitrary wrench rejection, dynamic modeling of the platform, and dexterous flight, was presented. Optimization of the design was discussed in Ref. [13] as it relates to flight efficiency; however no metric for forward and lateral force expression is presented. Their analysis used a genetic algorithm, which numerically sought an optimal solution for rotor orientations. While fundamentally different in control allocation, nonparallel hexrotors offer similar considerations toward attitude and altitude control to that of parallel hexrotors. The class of hexrotor developed in Ref. [14] in this sense has broader implications in AM development than those of Refs. [9] and [10]. This platform would be controllable as a parallel hexrotor, be capable of relatively high efficiency in hover, and maintain the capability for decoupled fully actuated AM implementation.

The FAST-Hex developed by Ryll et al. [14] and nonplanar hex developed by Langkamp [11] are two platforms, which relate specifically to aerial manipulation. While neither of these works presented flight test data, they introduced a modular type of hexrotor, which may fly as either a parallel hexrotor or a nonparallel fully actuated hexrotor at varying degrees of tilt. This type of platform has direct implications on aerial manipulation as it can balance in situ environment observation and interaction. For small or zero tilt implementation, the variable pitch hexrotor will hover at high efficiency, while in close quarters, the nonparallel hexrotor will be capable of dexterous flight at regulated attitude. This provides the end user with a highly adaptable UAV.

Compared to the optimal design presented in Ref. [13], the work developed in this paper presents an analytical rather than numerical solution to the design problem of the nonparallel hexrotor UAV. This is made possible using a more physically representative rotor orientation model. The way in which the transformations are described decouples the dynamics, allowing full analytical development of the optimal solution. At the time of this writing, very little modeling toward design metrics has been presented in the literature for the fully actuated hexrotor. Thus, one of the main contributions of this work is to develop several impactful design metrics, which relate saturation effects to directional control allocation. These metrics may be used toward useful stability and control analyses for improved flight performance. Careful consideration of existing multirotor control architecture was taken into account when developing the prototype. As a relative newcomer to the multirotor airframe class, this platform requires firmware, which complies with existing architecture to make it a viable contender in AM applications. This work demonstrates the feasibility and implementation of such a firmware in a fully developed prototype.

This paper is divided into five sections. The final analytical rotor orientation solution is developed in the first three sections through the description of a novel rotor orientation model, rotor frame dynamics, and full rank motor mapping, while the fourth section proposes several optimization metrics, which should be considered at the design phase of an airframe's construction. In the fifth section, experimental validation of the model, objective functions, and implementation of an APM compliant modular custom firmware is presented.

## Rotor Orientation

The orientation of a single UAV rotor can be described using three independent Euler rotation parameters, *α _{i}*,

*β*, and

_{i}*γ*. In this study, a rotor frame {

_{i}*i*} describes the designed transform of a single rotor relative to {

*B*}, the body-fixed-frame (BFF) for any hexrotor UAV. Transformations are defined using $R4\xd74$ basis notation as is developed in Ref. [15]. The nonparallel hexrotor design introduced in Ref. [11] is considered, where arbitrary rotation is included in the design characterization as in Ref. [13]. The introduced sub-stage frame ${i\u2032}$ is used to represent the rotor orientation of a standard parallel hexrotor, where $vi$ denotes the rotor position relative to {

*B*}. This sub-stage description is useful for comparison of nonparallel and parallel airframes of similar specification toward the definition of useful design objective functions.

The frame ${i\u2032}$ of a parallel hexrotor is defined via the transformation from the UAV body fixed frame {*B*} to the frame ${i\u2032}$ for any one of the six rotors as depicted in Fig. 1. In this configuration, the thrust **T*** _{i}* and drag

**Q**

*produced by the*

_{i}*i*th rotor in the rotor frame ${i\u2032}$ contribute to the UAV body-fixed frame force and torque profile along parallel $Zi\u2032$, where frame ${i\u2032}$ has been rotated about

**Z**

*by some angle*

_{B}*γ*. Each frame ${i\u2032}$ is translated along respective rotor arms by $vi$, where $|vi|=(1/2)L$, and

_{i}*L*is the UAV cross-span. In this analysis, it was assumed that all motor arms are of equal length as is the case in commercial parallel multirotor designs.

*i*} for all 6 rotors as $Tii\u2032$. These transforms uniquely identify the thrust and drag axis, which is collinear with

**Z**

*of {*

_{i}*i*} as shown in Fig. 2. For this study, serial Euler

*Z*and

*Y*rotations by angles $\alpha i\u2208[\u2212\pi ,\pi )$ and $\beta i\u2208[0,\pi ]$, respectively, allow for vectoring of the rotor frame thrust/drag axis

**Z**

*in any direction. Thus, $Tii\u2032=[Rz(\alpha i)Ry(\beta i)03\xd7101\xd731]$*

_{i}_{.}The transforms from {

*B*} to ${i\u2032},\u2009{i\u2032}$ to {

*i*}, and {

*B*} to {

*i*} are described by

It should be noted that this rotation definition differs from that of [13] fundamentally. While it also spans the orientation field, this rotation scheme reduces the number of necessary design parameters describing hover efficiency and forward and lateral force production of the platform. The first and second rotor rotations occur on parallel axes, which requires that *β _{i}* independently determines the projection of the resultant thrust and drag vectors on

**Z**

*, and conversely the forward/lateral force plane $XBYB$ rather than a mixed Euler expression for total angular displacement.*

_{B}## Rotor Frame Dynamics

where the *i*th rotor speed is denoted *ω _{i}*. $qi=\u2212sgn(\omega i)$ may assume a value of −1 for counterclockwise propeller spin, or 1 for clockwise spin. The constant parameters

*b*and

*d*are introduced to describe the rotor thrust and torque scaling, respectively, as thrust and drag are proportional to the square of rotor speed [18]. Eq. (3) can be derived by defining $Ti=[00b\omega i2]T$ and $Qi=[00qid\omega i2]T$ and resolving $Fi=Rz(\gamma i+\alpha i)Ry(\beta i)Ti$ and $\tau i=Rz(\gamma i+\alpha i)Ry(\beta i)Qi+(vi\xd7Fi).$ Vectors $Fi=[FxiFyiFzi]T$ and $\tau i=[\tau xi\tau yi\tau zi]T$ denote the total force and torque quantities generated by a single

*i*th rotor. The use of linear models with slopes

*b*and

*d*for $Ti$ and $Qi$ has been described in several works including Refs. [18] and [19]. Experimental validation for the linear fit values was performed using the setup shown in Fig. 3, and the thrust and drag trends, along with the flight controller command to rotor output mapping, are provided in Figs. 4 and 5.

*α*and

_{i}*β*, this analysis considers only the construction of $\Gamma u$ toward an optimized fully actuated airframe. $\Gamma o$ is not considered in the design process; rather, the changes to its construction can be used to develop a more accurate nonlinear model after finalizing a design based on user control effort $\Gamma u$. The gyroscopic effort can be constructed via the mapping

_{i}where *I _{r}* is introduced to represent the bulk rotor inertia [20], and $\Omega $ is the BFF angular velocity.

Formulation of $\Gamma g$ and $\Gamma w$ is identical for both parallel and nonparallel airframes. $\Gamma g$ is determined by the total mass of the airframe m and gravitational constant *g*. It is assumed that the center of gravity lies on the origin of {*B*}, $\Gamma g=[00\u2212mg000]T$. $\Gamma w$ represents all dynamic effects not presented in the general model; thus, it is not discussed here.

With these modified multirotor dynamics, it is possible to construct a fully actuated airframe. In Sec. 4, the family of solutions, which promote a full-rank motor mapping, is established.

## Development of a Full Rank Motor Mapping

*ω*in some basis $A(\alpha ,\beta ,q)$ as

**are determined at the design phase of a multirotor build and define the form of the static basis $A(\alpha ,\beta ,q)$ through which $\omega $ may represent the force torque vector $\Gamma u$. The approach presented in this paper first considers the subsets of $\alpha ,\u2009\beta $, and**

*q***defining $A(\alpha ,\beta ,q)$, which satisfy identical forms of multirotor throttle, roll, pitch, and yaw control as prescribed by the commercial flight stacks APM and PX4, and those which allow fully actuated flight. The intersection of these subsets contains a finite number of solutions allowing full development of an analytical solution. Let the user-desired force torque control vector $u\u2032=[u1\u2032u2\u2032u3\u2032u4\u2032u5\u2032u6\u2032]T$ be introduced as the representation of the rotor control allocation vector**

*q***E**

^{T}. The rotor control allocation vector $\omega $ can then be constructed from a linear combination of vectors $\omega 1,\u2009\omega 2,\u2009\omega 3,\u2009\omega 4,\u2009\omega 5$, and $\omega 6$ corresponding to desired decoupled forward, lateral, throttle, roll, pitch, and yaw control, respectively. Consider the six unit-vectors

**E**

*. Since forward and lateral force control does not exist in any multirotor flight stack, the components*

^{T}*x*and

_{i}*y*for $i={1,2,\u2026,6}$ in

_{i}**E**

_{1}and

**E**

_{2}, are free parameters, which can be defined in developed custom code to shape control allocation of desired forward and lateral efforts. Within the APM firmware, decoupled throttle, roll, pitch, and yaw are vectored across 6 rotors for a defined hexrotor frame type as $\omega 3,\u2009\omega 4,\u2009\omega 5$, and $\omega 6$. Due to the shape of $E3T$, all 6 rotors of the hexrotor will increase or decrease uniformly and proportionally to $u3\u2032$. This causes a decoupled differential in body fixed force production along

**Z**

*, the*

_{B}*z*-axis of the BFF. The shape of $E4T$ introduces a differential between rotors 1, 2, and 3 and rotors 4, 5, and 6 of the hexrotor proportional to $u4\u2032$. This differential results decoupled roll torque about the

*x*-axis of the BFF,

**X**

*. Similarly, the shape of $E5T$ introduces a differential between rotors 1 and 6 and rotors 3 and 4, which produces decoupled pitch torque about the*

_{B}*y*-axis of the BFF for a given $u5\u2032$. Lastly, the shape of $E6T$ introduces a differential between rotors 1, 3, and 5 and rotors 2, 4, and 6, which produces decoupled yaw torque about

**Z**

*for a given $u6\u2032$.*

_{B}**E**

*is an orthonormal basis and $E\u22121=ET$. Since $A(\alpha ,\beta ,q)ET=B(\alpha ,\beta ,q)$, one decomposition of $A(\alpha ,\beta ,q)$ is then*

^{T}**E**is an orthonormal basis defining directionality of control allocation, and $B(\alpha ,\beta ,q)$ is diagonal, defining the scaling of control allocation for some representation $\omega $. $B(\alpha ,\beta ,q)$, termed in this work as the scaling matrix, is a diagonal matrix with elements mapped directly from some vector $b(\alpha ,\beta ,q)\u2208R6$.

**E**represents what is termed the control allocation matrix. With slight abuse of notation, $B(\alpha ,\beta ,q)$ can be constructed by

The row vector bases **E*** _{i}* of $E=[E1TE2TE3TE4TE5TE6T]T$ map the user control effort $\omega $ to a space sharing directionality with the force/torque space.

**E**

*, defined for $i=3,4,5,6$ used to control commercial standard hexrotor airframes. The deficient rank matrix $Ea\u2208R4\xd76$ is defined as*

_{i}In this formulation, $f=[f1f2f3f4f5f6]T$ represents some scaling functions, which consider saturation effects and map the user desired effort to the rotor space $\omega $. The normed user control effort can then be described, where $\u2200k\u2208{1,2,4,5,6},\u2009uk\u2208[\u22121,1]$, and $u3\u2208[0,1]$.

**E**

_{1}and

**E**

_{2}, the linear independence condition is applied to the two bases using

where satisfaction of the linear system in Eq. (15) ensures linear independence of **E**_{1} and **E**_{2} from **E**_{3}, **E**_{4}, **E**_{5}, and **E**_{6}, and satisfaction of the nonlinear system in Eq. (16) ensures linear independence of **E**_{1} from **E**_{2}, and $||E1||2=1$ and $||E2||2=1$.

**E**

_{1}and

**E**

_{2}can be replaced with four independent variables

*ζ*by inspecting the nullity of Eq. (15). The description of

_{r}**n**

*for $r=1,2,3,4$ and the general solution for*

_{r}**E**

_{1}and

**E**

_{2}are given by

What remains in the definition of an appropriate **E** and solution set is to match the limiting design factors introduced by the physics model regarding **E**_{1}, **E**_{2}, and $B(\alpha ,\beta ,q)$.

## Decomposition of the Control Effort

*i*th motor model derived in Eq. (3), the following:

**E**

_{3},

**E**

_{4},

**E**

_{5}, and

**E**

_{6}. $e\u0302i$ corresponds to the tensor notation for orthogonal unit vectors in

*R*, where $e\u03021=[10\u20260]T,\u2009e\u03022=[01\u20260]T$,…, $e\u0302n=[00\u20261]T$.

^{n}**E**,

**E**

_{3}must be factorable from the third row of $A(\alpha ,\beta ,q)$, which is defined by the third element in Eq. (19). Then, $\u2200i|2bc\beta i=const\u21d2\beta i=\beta $ must hold, since $\beta i\u2208[0,\pi ]$, and the projection of all

**Z**

*on*

_{i}**Z**

*must be a constant value for all*

_{B}*i*. Additionally, $\beta i=\beta ,\u2200i$ and Eq. (17) imply necessary satisfaction of

**E**, which is orthonormal and contains row bases

**E**

_{3},

**E**

_{4},

**E**

_{5}, and

**E**

_{6}. This family of solutions provides the framework for a hexrotor capable of fully actuated flight, while retaining standard hexrotor actuation modes. Using Eq. (20), the following expressions are defined for convenience:

**E**

_{6}can also be used to resolve the form of

*q*since it must hold that $qidc\beta +(L/2)b(\u22121)i\zeta 1s\beta =const\u21d2qi=(\u22121)i$ or $qi=(\u22121)i+1$ to maintain yaw control directionality. The system in Eq. (3) is reduced based on the developed relationships to

_{i}*ρ*spans all rotor definitions,

*ρ*= 0 necessarily, and $\alpha i=(\u22121)i(\pi /2)$ or $\alpha i=(\u22121)i+1(\pi /2),\u2200i$, else roll, pitch, forward, and lateral force/torque expressions are coupled and the bases are not orthogonal. Finally, by expanding

where $b(\beta )$ is the diagonal scaling vector reduced to a single design parameter.

The values of *β*, *α _{i}*, and

*q*can be determined via optimization of appropriate objective functions. The most obvious metrics to evaluate performance for this AM is hovering efficiency and maximum expressible forward/lateral plane force; however, examination of torque expression must also be performed to ensure flight stability.

_{i}## Objective Functions

*i*, where current usage is dominated by the current necessary to actuate the

*i*th rotor

*i*. Total expended current can be approximated then by $i=\u2211iii$. The square rotor angular velocity $\omega i2$ was assumed proportional to the expended rotor current via constant

_{i}*K*such that $ii=Ke\omega i2$. For an approximate total platform power output

_{e}*P*, $P=Ze\u2211iii2$, where

*Z*is some bulk impedance, the total power can be expressed as $P=ZeKe2\u2211i\omega i4$ as given by

_{e}*ε*is defined as

_{h}*P*, of a parallel hexrotor and effective input power expended to maintain hover,

_{h}*P*, of a nonparallel hexrotor at the same specifications.

_{e}*ε*and forward/lateral force expression may be optimized using two objective functions $Fh(\beta )=\u2212c\beta 2$ and $Fxy(\beta )=\u2212s\beta 2$, where minimization of $Fh(\beta )$ results maximum

_{h}*ε*and minimization of $Fxy(\beta )$ results maximum forward/lateral force expression. However, the true optimum value for either cannot be reached without loss of controllability. Rather, each objective function is a constraint in the minimization of the other. The optimal solution is dependent on the requirements of the final application. For example, an AM application requires the minimum $Fxy(\beta )$ constrained by the lowest tolerable

_{h}*ε*. While this result is intuitive, the effect of design parameters on attitude stability may not be directly apparent. The effective roll/pitch torque expression

_{h}*τ*and yaw torque expression are given by

_{xy}It should be noted that the diagonal elements of the scaling matrix $B(\beta )$ shown in Eq. (26) have direct correlations between the scaling of effective power and the force/torque space.

While drag effects dominate yaw torque production in standard hexrotor configurations, thrust torque effects dominate roll and pitch effects. However, nonparallel hexrotor torque expressions are coupled. The variable *τ _{xy}* is introduced to represent the planar torque projection scaling onto the forward/lateral plane, while

*τ*is used to represent yaw torque scaling in Fig. 6 for tests performed using the motors shown in the rig in Fig. 3.

_{z}It should be noted that the thrust torque effects tend to dominate drag torque effects in scaling because thrust coefficient *b* for a rotor/propeller pairing are generally on the order of 10^{2} larger than drag coefficient *d*. Depending on the design configuration of the nonparallel fully actuated hexrotor outlined in this paper, conservative and aggressive designs present two sets of *τ _{xy}* and

*τ*. The difference between conservative and aggressive designs depends on the spin parameter

_{z}*q*relative to

_{i}*α*. To demonstrate the physical interpretation of torque scaling, the two design angles of $\beta =(\pi /6)$ and $\beta =(\pi /4)$ need to be noted in Fig. 6.

_{i}In Eq. (33), the allowable forward force *F _{x}* must be constrained due to the saturation of the rotors. Rotors speeds can neither exceed the maximum value ω

_{max}, nor produce negative spin. This constraint is expressible as a function of the variable $Tratio=6b\omega max2/mg$. This was found through inspection of the rotor mapping and constraining the instantaneous output of the rotors

*ω*by $0\u2264\omega i2\u2264\omega max2$. The ratio relates the total maximum rotor output of the platform to its total mass. In this way, the characteristics of any hexrotor of this type may be accounted for this study. Figure 6 shows the calculated ranges of total forward force,

_{i}*F*, as a function of

_{x}*β*for the described initial prototype and several arbitrary

*T*

_{ratio}.

## Experimental Verification

Of the four unique solutions, which satisfy the design outlined in this paper, a conservative design was chosen due to its relatively smaller effect on torque expression, where $q2=1$; thus, $\gamma i=(\pi /3)((\pi /2)\u2212i),\u2009\alpha i=(\pi /2)(\u22121)i\u22121,\u2009\beta i=(\pi /6)$, and $qi=(\u22121)i$. The constant *β* was chosen to be $(\pi /6)$ because it provides adequate forward/lateral force expression for initial testing, while offering a limited effect on roll/pitch torque scaling at 88% that of a standard hexrotor. The prototype was built using a Flamewheel 550 frame, where custom motor mounts were printed to specification to the total cross-span. The total cross-span was then $L=702.4\u2009mm$. To facilitate flight control, a Pixhawk and an Odroid XU4 were utilized within the robot operating system framework. Global user commands are sent to the Pixhawk via RC or MAVROS message, while real-time local control is affected using the developed custom flight stack. The additional degrees of control were incorporated in custom flight modes added to the ArduPilot firmware. The novelty of this flight stack is its ability to seamlessly transition between standard hexrotor control allocation and nonparallel hexrotor control midflight. In practice, the 4 RC channels utilized in standard hexrotor control methods for throttle, roll, pitch, and yaw are reallocated to control throttle, forward, lateral, and yaw efforts as in Fig. 7. Roll and pitch are set to regulate to 0 radians as this is the most stable roll/pitch state. The prototype was mounted to a six-axis force/torque sensor as shown in Fig. 7 for saturation testing. The limit of saturation for decoupled forward force generation is presented in Fig. 8. Total referenced force was interpolated from the throttle command at 15 *N*. It was posed at the objective function phase of the design that maximum expressible forward/lateral force $\u221d\u2009sin2\beta \u21d2$ a maximum planar force expression of $3.75N$. The slight difference in the measured saturated forward force expression and expected can be attributed to the asymmetry in design as was outlined in Fig. 6. Since there are six rotors at discrete locations, the total planar force scaling cannot be allocated evenly radially.

A simplified overview of the custom flight stack written for the platform is shown in Fig. 9. This flight stack applies six degrees of control over *XY* force production, throttle, roll, pitch, and yaw. At the user's command, the platform flight mode selector highlighted in yellow will switch RC channel 1 and 2 functions toward *XY* control or roll/pitch control. The controller that is not selected is regulated to the $0$ signal. All signal inputs are corrected to a desired internal control reference. This internal control reference is mixed with the other control signals to ensure stable flight. The added *XY* controller, attitude controller, and throttle controller signals are used in the AP_Motors library threaded code. Here, the servo output is developed by mixing the control signals toward saturation correction and applied to a motor mask. The mask outputs the six rotor signals necessary to achieve fully actuated flight to the electronic speed controller hardware, which actuates the motors.

For initial closed-loop flight testing, an Optitrack motion tracking system was used within MAVROS to generate velocity references for the prototype toward autonomous tracking of a desired position and pose as shown in Fig. 10.

The resulting position and pose plots from the closed-loop flight test are shown in Figs. 11 and 12. The signals *x _{r}*,

*y*,

_{r}*z*, $\varphi r$,

_{r}*θ*, and

_{r}*ψ*denote position and pose references sent from custom robot operating system code, while signals

_{r}*x*,

_{f}*y*,

_{f}*z*, $\varphi f$,

_{f}*θ*, and

_{f}*ψ*show the measured position and pose signals reported by Optitrack.

_{f}## Conclusions

In this paper, an analytical justification for the design of a fully actuated hexrotor was presented. It was shown that for the outlined control allocation assumption, there exist four unique solutions, which provide decoupled fully actuated flight, while maintaining compatibility with existing multirotor control architecture. By adhering to the control allocation assumption, existing control architecture was applied to the platform seamlessly through the development of a custom flight stack based on and compatible with the AruPilot ArduCopter flight stack. A qualitative set of objective functions were introduced, which may be applied to any AM application, which considers flight time, forward/lateral force expression, and flight stability. The most difficult consideration for design is that of torque scaling. While roll pitch torque expression can be accounted for with little modification, yaw torque expression drastically increases with design *β* due to the addition of thrust effects. Experimental testing verified the concept of asymmetric constraints on control scaling, and the feasibility of flight using the custom flight controller.

Future work includes improvement of the attitude controller and *XY* tracking before AM testing. Aerial manipulation tests will be performed to assess its effect on end-effector tracking and disturbance rejection. As proposed by Langkamp [11], an actuated tilt mechanism would greatly improve AM performance. The proposed flight stack allows a UAV to fly using the 4DOF controller for throttle, roll, pitch, and yaw, or a 6DOF controller for forward, lateral, throttle, roll, pitch, and yaw. With this setup it is possible to pilot the prototype as a standard hexrotor over longer distances with high efficiency, then transition to the fully actuated control scheme during dexterous AM maneuvers. Indeed, the development of the dynamic model and control allocation mapping ensures that for stable altitude and attitude, a decoupled *XY* controller may be considered of the input-affine form with zero-drift. Stability guarantees of works describing standard hexrotor altitude and attitude dynamics apply to this design, where saturation and scaling effects must be considered. Lastly, because the developed flight stack is based on APM Firmware, open-source development of this platform is possible with the addition of the modular flight mode selector.

## Acknowledgment

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s).

## Funding Data

National Science Foundation (Grant No. 1430328).

Savanna River Nuclear Solution, LLC (Contract No. 0000217400).