TiltDrone: A Fully-Actuated Tilting Quadrotor Platform

Multi-directional aerial platforms can fly in almost any orientation and direction, often maneuvering in ways their underactuated counterparts cannot match. A subset of multi-directional platforms is fully-actuated multirotors, where all six degrees of freedom are independently controlled without redundancies. Fully-actuated multirotors possess much greater freedom of movement than conventional multirotor drones, allowing them to perform complex sensing and manipulation tasks. While there has been comprehensive research on multi-directional multirotor control systems, the spectrum of hardware designs remains fragmented. This letter sets out the hardware design architecture of a fully-actuated quadrotor and its associated control framework. Following the novel platform design, a prototype was built to validate the control scheme and characterize the flight performance. The resulting quadrotor was shown in operation to be capable of holding a stationary hover at $30^\circ$ incline, and track position commands by thrust vectoring [Video attachment: https://youtu.be/8HOQl_77CVg].

research [1], enabling a variety of applications, from close proximity infrastructure maintenance to ecological monitoring [2]- [6]. Conventionally, rotors are fixed perpendicularly to the plane of the platform with steering achieved by differential thrust. Such a simple and effective design gave rise to the use of multirotor systems in applications which require robustness and high thrust-to-weight ratios.
Fixing the rotors in the same orientation on the platform couples the multirotor's rotational and translational degrees of freedom (DOFs). As a result, it is difficult to achieve the desired dexterity to conduct physical interactions, such as sensor installation and surface inspection, and aerial filming. Naturally, there is active interest in decoupling the DOFs, allowing the multirotor to fully actuate its 6-DOF [7].
In this letter, we define "multi-directional" as the ability to accelerate in any direction and orientation without coupling within the designed workspace. Multi-directional multirotor designs could broadly be grouped into three categories: fixed-tilt, uniaxial-tilt, and biaxial-tilt.
Multirotors with the motors fixed at various prescribed angles [8]- [13] can achieve full range multi-directional motion without any morphological change. They are simple to manufacture and are structurally robust [7]. However, this reduces the flight time due to the partial cancellation of the non-parallel thrust vectors.
Uniaxial-tilt multirotors actively rotate their rotors about the axis of the individual multirotor arm [14]- [19]. Although a full range of motion in 6-DOF is possible, all designs within this category will create opposing thrust vectors. Biaxial-tilt multirotors [20]- [22] successfully avoid the inefficiencies from cross-canceling rotor thrusts. Tilting can be synchronized such that the thrust axes remain parallel to each other. However, these designs will incur the weight penalty of the tilting mechanism.
To further assess the efficiency of multi-directional designs, we can regroup the drones by the level of mechanical actuation achieved. Although over-actuated systems are beneficial in handling component failures [16], the redundancies result in significant weight penalties.
Underactuated multi-directional flight can be achieved through torque modulation [23]. By installing flexible hinges at an angle, only two counter-rotating rotors are needed to generate directional and/or torsional forces. The aerial vehicle could tilt up to 8°, albeit with friction losses at the swashplateless hinge [24]. The relatively high frequency of throttle modulation also produces significant heating of the motor.
Fully-actuated designs can be both cost effective and simple to implement. Control allocation is direct as the input (actuator command) to output (position-orientation) mapping is unique, thus additional computation is not required. Currently, fullyactuated biaxial tilt-rotors with four propellers have been proven to be feasible and stable [22], [25]. However, aforementioned evaluations are limited to simulation environments.
In this letter, we introduce the hardware design architecture for the TiltDrone (Fig. 1). The TiltDrone design enables multidirectional motion on a fully-actuated quadrotor platform. The quadrotor design comprises of a biaxial rotor tilting mechanism, driven by twin linear servomotors in parallel (Fig. 2). The kinematic chain features spherical-cylindrical compound joints, allowing the upper and lower structure to remain a constant distance apart during actuation. The mechanism retains the quadrotor form at all tilt angles. This greatly reduces the complexity of the control. Section II sets out the geometrical constraints and design feasibility considerations. The control framework is discussed in Section III. The validation of the proposed design architecture and the control framework are presented in Section IV and the conclusions are drawn in Section V.

II. DESIGN
Translating the kinematics to a viable mechanism poses challenges in the design of biaxial-tilting quadrotors. The most critical consideration is the clearance requirements of the platform structure, which may not be immediately obvious when modeling with static drawings. The following design margins were derived with variables shown in Fig. 3. It is useful to note that the rotor workspaces can overlap as rotor tilts are synchronized. To aid the visualization of the derivations, detailed diagrams are provided on our GitHub page. 1

A. Structural Sizing
The body of the drone is sized for an arbitrary design derived from Fig. 2 with predefined rotor height H r , propeller diameter D prop , and tilt angle α max , ∀|α| ≤ π/2 (Fig. 3). Approximating the propeller as a cylindrical disk with a cross section thickness T prop , one could obtain the minimum length l b and height h b of the quadrotor body. For propeller-propeller clearance when tilting However, if the designed tilt angle is small, as defined by such that only propeller-propeller abrasion can occur, the alternative constraint (3) is applied.
The propeller-motor clearance is also considered in tandem with (1). The motor is approximated as a cylinder with diameter D m . The body length is constrained such that else To derive the body height, h b , it is useful to define a rotor slant angle above which the propeller will be the lowest point of a tilted rotor. Therefore, when α max ≤ α r

B. The Effect of Tilting
A benefit often attributed to morphing multirotors is the ability to shrink their body to traverse narrow openings [26]- [29]. This effect of tilting was examined for crossing horizontal and vertical gaps; the TiltDrone design was compared to a conventional quadrotor, with the same rotor dimensions D prop , T prop , D m and H r .
The width w tilt of the fully-actuated platform relative to the plane of the tilted rotors is Assuming that the rotors point vertically upwards when traversing a horizontal gap. We can derive a width reduction ratio (11) as compared to a conventional quadrotor with a propeller tip-to-tip width of w conv = 2D prop .
For the more plausible designs where (1) holds with D prop H r , D m and a negligible T prop , the width reduction ratio will be cos 2 (α/2). Traversing obstacles without pitching the body may also reduce the cross section height of the platform. In this case, the platform's geometry changes with horizontal acceleration. Due to the discrete geometric transitions with the tilt angle, there are five permutations of the height reduction ratio h tilt /h conv . They are dependent on the design, α max and α r , and the command α. For designs where α max ≤ α r , there are three distinct formulations of the vertical height of the tilted drone, h tilt , as displayed in Fig. 4A. If α ≤ α r & α ≤ α max , the rotor tilts without needing to pitch. Thus When α max < α ≤ α r , the height hinges on the bottom edge of the motor and the opposing rotor's propeller edge At α max < α r < α the propellers are the upper and lower bounds of the tilted height × sin(α − α r ) For platforms where α max > α r there are two formulas for h tilt . (12) is valid when α ≤ α max . Otherwise, the fully-actuated platform must combine tilt and pitch to reach the desired angle, thus On the denominator side of the height reduction ratio, the height of the conventional quadrotor during pitch, h conv , is dependent on α. When α ≤ α r , The minimum height reduction ratio of the prototype platform is approximately 0.5, but with a ratio larger than 1 when operating below 16 • tilt angle (Fig. 4B). This is due to the body height required to accommodate for a higher design tilt angle of 45 • .

C. Rotor Gimbal
The rotors are gimballed to allow tilting on the roll and pitch planes, restricting translation and yaw. Control rods extend down from the gimbal platform and slide through the swivel head ball joints. The four ball joint sockets are interconnected to form the planar mechanism.
It is critical to account for the area swept by the tilting rotor (i.e. the workspace). As the linear servomotors (servos) are mounted perpendicularly, the parallel mechanism sweeps out a square. The rotor axis with a radius of the rotor's height is confined within the plane defined by where orthogonal axes s 1 , s 2 , and z denotes the travel of Servo 1, Servo 2, and the vertical axis respectively (Fig. 5A). α s 1 ,max and α s 2 ,max are the maximum tilt relative to the servo planes. They are calculated by α s i ,max = arctan Si/(2Z 0 ) with S1 and S2 denoting the maximum length of servo travel, and Z 0 the perpendicular distance of the origin (center of rotation) to the servo plane (Fig. 5C). Tracing the boundaries set by (19) and (20), the quadrotor structure and the gimbal mechanism must remain clear of the volumetric sweep by a full rotor tilt. This equates to a rotation of the rotor through an angle of and angle

D. Tilting Mechanism
The quadrotor platform is configured in a "+" formation with the servomotors offset at −45 • to the XY axes (Fig. 2). The rotor gimbals are linked via the ball joint housings with a cross shaped strut. This cancels out the gyroscopic precession of the rotors when actuated in flight [21]. Driven by the two servos, the planar mechanism tilts the rotors opposite to the direction of actuation.
The planar mechanism is inherently susceptible to twist. Although the mechanism is constrained by the servos, small unintended twists can occur due to manufacturing defects and unbalanced actuating forces. In such events, the rotors are vectored to induce yaw. The flight controller attempts to correct for yaw by accelerating one of the diagonal rotor pair to generate torque. However, this is insufficient as brushless DC motors have low moments of inertia and the propellers are optimized for a high lift-to-drag ratio. Thus, the thrust vector induced yaw remains the dominant term, resulting in an irrecoverable spin.
This design flaw occurs within the small-angle approximation regime. Therefore the resultant rotor angle is approximately l b /(2Z 0 ) times the twist of the mechanism. A more compact platform will reduce the effect of the twist. However, the more general solution is to use rigid and tight tolerance sliding components to restrict the twist angle.

III. CONTROL FRAMEWORK
This section sets out the conversion of attitude commands into the position of the servomotors, and the combination of thrust vectoring and body rotation when servo travel is exceeded. The parallel mechanism allows straightforward inversion of the kinematic equations. Therefore, although the results presented are of a simple PD-based position controller, it is reasonable to assume that most types of high-level control schemes can function on this platform due to having decoupled translational and attitude channels.

A. Control Architecture
Our system is autonomously controlled by an offboard RC signal, commanding roll and pitch angles, thrust, yaw rate and servo positions (Fig. 6). The high-level command inputs are given in the form of position XYZ, Yaw (γ), and body vector − → T in global frame spherical coordinates (Fig. 5B). The positionorientation commands are sent to the high-level controller, where  the feedback control loop is formed with odometry provided by a motion capture system.
The body vector commands feed into the limiter where they are saturated to prevent unattainable commands from entering the control allocator. The control allocator takes the output from the high-level controller and maps the attitude commands to servo positions. Pitch and roll are used for compensation when the desired polar angle is beyond the servo limit (Fig. 7). The commands are then sent to the quadrotor via a RC transmitter. The discussions on the stability and the fully-actuated property are given in the Appendix.

B. Control Allocation
As the quadrotor receives attitude command and servo positions, the control allocation fundamentally resolves to a conversion between spherical, attitude, and Cartesian (servomotor) coordinates, as shown in Fig 5B. Although not strictly necessary for control allocation, the body vector command was used in spherical form. This is a more intuitive way to command tilt as we can prioritize the azimuth (tilt direction θ) over the polar angle (tilt angle φ). Roll α R and pitch attitude α P are given as They are further converted to servo positions by Solving the geometrical conversion from servo position to polar orientation we get The prototype platform was designed with S1 = S2 = 2Z 0 . Solving for the tilt limits with −Si/2 ≤ s i ≤ Si/2 and (25)- (28), the positive polar angle must satisfy for Servo 1 and Servo 2 respectively. However, incorporating servo trimming is inconvenient in spherical coordinates due to the non-linear mapping of attitude vector addition in spherical space. The limiter maps the commands onto the Cartesian servo coordinate frame. We then solve for the maximum possible magnitude of the command vector given an offset from the origin and the servo travel limits (Fig. 8). This gives the constraint equations if s 1,2 > 1 With the saturated output given, the limiter remaps the control output to give the feasible command input. Accounting for the servo trims, (29) and (30) are modified to give the actual (post-limiter) commands.

IV. RESULTS AND DISCUSSION
A 5 in propeller prototype platform was manufactured to validate the design. The gimbals and the planar mechanism were 3D-printed on the Markforged Mark 2 with Onyx filament. Continuous carbon fiber (CF) were added where possible for stiffness. An Omnibus F4 V3 flight controller was used with an unmodified version of the Betaflight 4.1 firmware [30]. The servomotors are controlled through pulse width modulation (PWM) commands sent from the flight controller with the Servo Tilt feature. Though initially designed with α max = 45 • in all directions, issues noted during manufacturing and testing limited the stable hovering tilt angle to 30 • .

A. Manufacturing
Other than the tilting mechanism and the structure of the prototype platform, the components listed in Table I were sourced from consumer grade suppliers. During the modelling stage, physical considerations caused deviations from the idealized design. They were: r the need to house the linear servos between the rotors resulted in an approximately 40% increase from the minimum structural length r the drone structure and mechanism height dimensions were enlarged to increase stiffness and toughness r the rotor height was increased to give sufficient space to design the gimbal There were also a number of limitations due to component availability and manufacturing techniques such as: r the ball bearings, which form the passive compound joints, were approximately limited to a ±40 • cone r the radial bearings, which form the passive universal joints, limited the minimum size of the gimbal -this resulted in an increased rotor height r complex geometries limited the use of continuous CF reinforced plates and tubes in the structure Asymmetric component alignments were considered. For example, one could offset the linear servo pistons out of the horizontal plane. This reduces the size of the platform by allowing the servos to be placed closer to the drone center. However, it would create unbalanced sliding friction in the mechanism which must be accounted for in the control system, if significantly large.
The tilt limit due to the ball bearings can be circumvented by employing a "H" configuration. Allowing the opposing bearing socket pairs to rotate with additional revolute joints at the junctions of the mechanism, similar to [4], increases the tilt angle of a single axis. However, owing to parallel linear actuation, the design imposes a tilt limit of 90 • .
A rough design performance evaluation can be conducted. The biaxial-tilting mechanism account for all the 3D-printed parts. The rule of mixtures with an approximate continuous CF ratio of 15% gives a tensile modulus of 10.2 GPa [31]. A like-for-like exchange with quasi-isotropic CF-Epoxy material (35.3 GPa) may reduce its weight by 71% [32]. The peripheral stack (inc. CF mounting plate, minor electronics) can be optimized by a 50% weight reduction. Under such optimistic projections, the frame weight of 167g is somewhat comparable to an open-sourced 5 in propeller frame (149.1g) [33]. Therefore, the TiltDrone can achieve flight endurance comparable to a conventional underactuated quadrotor if the weight and size of the linear servomotor is reduced in future iterations.

B. Testing
Flight tests, using a PD position controller, were conducted to compare the cases with and without fully-actuated motion (i.e. conventional flight) (Fig. 9). The intention of the comparison study is to explore full-actuation, where the system can follow a trajectory while keeping commanded attitude angles. Accordingly, our design provides the decoupled control property and   the results show that position tracking errors in the two flight modes are comparable (Table II). In all flight tests, sudden z deviations occur when discontinuous servo position commands were given. As the servo positions were not fed back into the controller, it could not account for the rotor angle during the transition. Since the platform did not deviate away from the target position when initially responding to a step command, we conclude that the inertia of the mechanism is insignificant. Evidently, with aggressive maneuvers, the fully-actuated platform showed a noticeable reduction in rolling and pitching (Fig. 10).
At static hover, the prototype reached a maximum stable tilt of 30 • (Fig. 11). The lack of an integral controller resulted in the initial constant offset. The subsequent change in the offset when tilting is likely due to the backlash in the servo and the mechanism. The closed loop stability is discussed in the Appendix. As the main focus of this study is to provide a new design, hardware configuration, and experimental evaluationthe extensive stability analysis is excluded.
We noted that the prototype tilting mechanism was prone to uncontrollable yaw spins if manufactured with loose tolerance. The prototype uses the servomechanisms as both actuators and twist constraints. This is not ideal as the servo pistons are not sufficiently rigid. Ideally, the servo pistons are not required to constrain the twisting of the planar mechanism. This small angle induced issue was partially resolved by adding a passive, twistrestricting, linear rail. Alternatively, a third servomotor could be added as active yaw control. Although the platform becomes over-actuated with the redundant servomotor, it will gain greater yaw authority through thrust vectoring.

V. CONCLUSION
A fully-actuated, biaxial-tilting, quadrotor hardware design architecture has been presented. A prototype was built to validate the proposed design approach. By placing the rotors on a two axis gimbal and tilting them in unison with a parallel mechanism driven by two linear servomotors, a simple control allocator is able to decouple the platform's rotation and translation. The prototype platform reached a 30 • tilt in flight. By leveraging our system, it may be possible to fly through narrow openings, or exert forces on different surfaces with reduced effort on the control design. In particular, the ability to tilt while hovering can be exploited to place sensors on previously inaccessible locations.
In future works, greater maneuverability can be attained by combining tilting and pitching. This may require advancements in trajectory planning and optimization-based control. The subsequent prototype platform will feature a gimbaled flight controller, tilting with the rotors. We suspect this may be more intuitive for a human pilot. It also further simplifies the control allocation as the flight controller will always remain parallel to the rotor plane. In addition, the scalability and optimization of the design warrant further studies.

APPENDIX
For the translational and attitude channels of the system, an eigenvalue problem is defined based on the mathematical model. Following similar derivations for the PD-based controller, the selected control parameters are based on the worst-case degradation of the control actions for different channels. This affects the transitions between the angles which can be seen in Fig. 10. We tuned parameters of PD altitude and position control for static pitching conditions at the maximum kinematically allowable tilt angle, where the close-loop margins are the narrowest. Therefore, the parameters selected while controlling the system at higher angles stabilizes the system at lower angles.
Taking the sum of all thrusts generated by each rotor T i [34], where u = [T 1 , T 2 , T 3 , T 4 ] and F 1 (α R , α P ) ∈ R 3×4 depend on α R and α P . Taking the sum of the torques τ W (α R , α P , u): The equations of motions in a compact form: Two generic configuration can be obtained for the actuation considering G = F T 1 (.)F T 2 (.): and α P ∈ A \ {0} ⇒ rank(G(R B , α R , α P )) = 6 α imax , ∀|α i | < π/2, where A is the set that α i belongs to. It is naturally interpreted that the system turns out to be a conventional quadrotor when the tilting angles on the rotors are locked vertically to the quadrotor plane. Otherwise, it is fully-actuated within the configuration space. For the excluded symbols due to the space limitation, interested readers can refer to [19], [34]. The stability and fully-actuated aspects are further expanded on our GitHub page referred above.