[1]\fnmDaksh \surDhingra

[1]\orgdiv Department of Mechanical Engineering, \orgnameUniversity of Washington, \orgaddress \citySeattle,\stateWA, \countryUSA

2]\orgnameDolby Laboratories (The work presented here is independent from author’s work at Dolby Laboratories), \orgaddress\citySan Francisco, \stateCA, \countryUSA

Modeling and LQR Control of Insect Sized Flap** Wing Robot

[email protected]    \fnmKadierdan \surKaheman    \fnmSawyer B. \surFuller * [
Abstract

Flying insects can perform rapid, sophisticated maneuvers like backflips, sharp banked turns, and in-flight collision recovery. To emulate these in aerial robots weighing less than a gram, known as flying insect robots (FIRs), a fast and responsive control system is essential. To date, these have largely been, at their core, elaborations of proportional-integral-derivative (PID)-type feedback control. Without exception, their gains have been painstakingly tuned by hand. Aggressive maneuvers have further required task-specific tuning. Optimal control has the potential to mitigate these issues, but has to date only been demonstrated using approxiate models and receding horizon controllers (RHC) that are too computationally demanding to be carried out onboard the robot. Here we used a more accurate stroke-averaged model of forces and torques to implement the first demonstration of optimal control on an FIR that is computationally efficient enough to be performed by a microprocessor carried onboard. We took force and torque measurements from a 150 mg FIR, the UW Robofly, using a custom-built sensitive force-torque sensor, and validated them using motion capture data in free flight. We demonstrated stable hovering (RMS error of about 4 cm) and trajectory tracking maneuvers at translational velocities up to 25 cm/s using an optimal linear quadratic regulator (LQR)111The video of the results can be accessed using: www.youtube.com/watch?v=0o7j1nS2KHA. These results were enabled by a more accurate model and lay the foundation for future work that uses our improved model and optimal controller in conjunction with recent advances in low-power receding horizon control to perform accurate aggressive maneuvers without iterative, task-specific tuning.

1 Introduction

Research in flap** wing insect-sized robots (FIRs) is motivated by their potential applications. These robots are small in size and are inexpensive to manufacture at a large scale, which makes them suitable for applications like detecting gas leaks, looking for survivors in disaster-prone areas, automated farm monitoring, running inspections on manufacturing lines, and weather monitoring. While still tethered and limited to operation inside a lab environment recent advances in tiny sensors and microcontrollers have brought them one step closer to achieving power [1] and sensor [2] autonomy.

Controlling FIRs presents significant challenges due to their highly nonlinear dynamics, manufacturing inconsistencies resulting in variability between robots, rapid wear and tear, and a high torque to moment of inertia ratio, approximately 103superscript10310^{3}10 start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT rad/sec2, which leads to extremely fast dynamics.

Current state-of-the-art controllers for FIRs primarily utilize adaptive PID flight control systems for hovering [3]. Despite their widespread use, these controllers require substantial ad-hoc tuning and are task-specific, often failing to consider actuator, state, and environmental constraints. Maneuvering beyond basic linear responses, such as perching [4] and somersault [5] , requires a sliding mode controller combined with iterative learning of trajectory parameters. However, the parameters that were derived to perform an aggressive perch in [4] are specific to that task and cannot be applied to any other task.

Recent research has introduced optimal control strategies like modular Model Predictive Control (MPC) [6], which combines high-level MPC with a low-level controller for torque management, enabling operation beyond hovering. However, these systems have not been demonstrated on actual hardware for maneuvers beyond hovering. Additionally, data-driven MPC approaches like Tube-MPC [7] show promise for optimizing under actuator constraints and trajectory tracking for complex maneuvers such as ramps and infinity loops but remain too computationally intensive for implementation on sub-150 mg robots. Microprocessors small enough to be carried onboard, such as the 10 mg, 120 MHz STM32F4 used in the first wireless liftoff of an FIR, the UW Robofly in [1], are capable of floating-point math operations. Nevertheless, their performance will be limited to a fraction of desktop capabilities, just a few hundred MHz, for the foreseeable future.

Refer to caption
Figure 1: RoboFly, an insect-sized flap** robot weighing 146 milligrams, hovers next to a flower using feedback from motion capture cameras. The robot performs this hovering maneuver using the LQR controller reported in this work.
Refer to caption
Figure 2: Torque and Thrust Generation Mechanism in FIRs: (Top) Inspired by the work in [8], this figure shows that changing the signal parameters δA𝛿𝐴\delta Aitalic_δ italic_A and Vosubscript𝑉𝑜V_{o}italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT introduces roll and pitch torques, respectively. Here, Vbiassubscript𝑉𝑏𝑖𝑎𝑠V_{bias}italic_V start_POSTSUBSCRIPT italic_b italic_i italic_a italic_s end_POSTSUBSCRIPT is the bias voltage. (Bottom) Map** of (a) thrust, (b) roll torque, and (c) pitch torque of the RoboFly used in this work. The thrust map** is obtained using a high-precision scale, while the torque map**s are obtained using the torque measurement device introduced in [8]. Pink dots represent the collected data points, and the green line represents the linear fit of the data. The corresponding equations for these linear fits are provided in Table 1.

The primary focus of the work in [9] is the precise tracking of the yaw angle, originally introduced in [10]. The PID controller used in [9] is tuned based on the robot’s dynamics. This enables the robot to hover and follow trajectories, such as an infinity loop. Our approach to controlling FIRs is based on the premise that an accurate model eliminates the need for laborious and unsatisfactory hand-tuning of PID gains. By framing the control problem within an optimal framework, we can design performance to maximize metrics like power efficiency or completion time. Using this model, we compute optimal gains around a fixed point for control. This was first demonstrated in [11], where the performance of PID and LQR controllers were compared on quadrotors with the target to stabilizing the orientation angles. The LQR controller demonstrated faster response in reaching the reference signal from high initial angles. The recent development of low-cost and accurate torque measurement device [8] has improved our ability to map the torque characteristics of these robots accurately. Furthermore, innovations such as pre-stacked actuators [12] and standardized manufacturing processes [13] have reduced variability in actuator performance and robot construction. In this work, we have made the following contributions:

  1. 1.

    For the first time, we developed and validated a stroke-averaged first-principle model by comparing it with high-speed trajectories collected from a sub-150 mg robot.

  2. 2.

    To the best of our knowledge, we present the first LQR implementation of controlled flight on an FIR.

This control strategy is computationally efficient, requiring a relatively small number of multiply-accumulate operations and trigonometric calculations per control step making it feasible for integration on tiny microcontrollers like the STM32F4, suitable for sub-150 mg robots. We expect our model and LQR controller will be able to serve as integral elements in a fast onboard receding horizon optimal controllers, such as those discussed in [14] and [15], that can optimize under actuator limits and state constraints. With these receding horizon controllers, the presented model can enable more aggressive maneuvers due to the robots’ high torque-to-inertia ratios, by scheduling the control gains for high translation speeds and attitude angles.

2 Results

Refer to caption
Refer to caption
Figure 3: Visualization of the collected data: The graph shows the robot achieving high attitude angles greater than 30 and corresponding lateral/longitudinal speeds exceeding 0.4 m/s in the collected data. This highlights significant perturbations, which will be used to validate the stroke-averaged dynamics developed in this work. The color intensity on the graph represents the density of data points.

2.1 RoboFly

RoboFly (shown in Fig. 1) is a flap**-wing robot that weighs 150 mg. The robot features two piezoelectric actuators as muscles to flap its wings. These actuators are linked to a transmission mechanism that amplifies the actuators’ displacement of approximately 200 μ𝜇\muitalic_μm to a wing motion of about 60. RoboFly has the capability to carry a payload up to 1.5 times its own weight and is powered via a wire-tether, which comprises four wires transmitting signals to operate the actuators.

RoboFly, like other piezo-actuated flap** wing robots [16][17], is operated by low-power 180 volt sinusoidal signals. It can generate roll torque, pitch torque, and thrust almost independently [18]. The analog voltage signal is generated using the equation,

Vsignal=A+δA2sinωt+Vbias2+Vo2subscript𝑉𝑠𝑖𝑔𝑛𝑎𝑙𝐴𝛿𝐴2𝜔𝑡subscript𝑉𝑏𝑖𝑎𝑠2subscript𝑉𝑜2\displaystyle V_{signal}=\frac{A+\delta A}{2}\sin\omega t+\frac{V_{bias}}{2}+% \frac{V_{o}}{2}italic_V start_POSTSUBSCRIPT italic_s italic_i italic_g italic_n italic_a italic_l end_POSTSUBSCRIPT = divide start_ARG italic_A + italic_δ italic_A end_ARG start_ARG 2 end_ARG roman_sin italic_ω italic_t + divide start_ARG italic_V start_POSTSUBSCRIPT italic_b italic_i italic_a italic_s end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG + divide start_ARG italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG (1)

Here, Vbiassubscript𝑉𝑏𝑖𝑎𝑠V_{bias}italic_V start_POSTSUBSCRIPT italic_b italic_i italic_a italic_s end_POSTSUBSCRIPT is a constant bias signal voltage of 250 volt supplied to the top layer of the actuator. As shown in Fig. 2 (a), increasing the amplitude (A𝐴Aitalic_A) of the sinusoidal signal increases the wing flap** amplitude, thereby generating greater thrust. Creating an amplitude differential (δA𝛿𝐴\delta Aitalic_δ italic_A) between the wings, shown in Fig. 2 (b), increases thrust on one side while decreasing it on the other, which produces roll torque. Pitch torque (Fig. 2 (c)) is generated by adjusting the wing flap** either forward or backward relative to the robot’s body through a voltage offset (Vosubscript𝑉𝑜V_{o}italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT) applied to the sinusoidal signal.

2.2 Theoretical Model

The dynamics of a flap** wing robot of the size of RoboFly can be defined by the same first principle model as a quadrotor [9]. Using the convention of (X,Y,Z)𝑋𝑌𝑍(X,Y,Z)( italic_X , italic_Y , italic_Z ) as coordinates in an inertial frame and (xb,yb,zb)subscript𝑥𝑏subscript𝑦𝑏subscript𝑧𝑏(x_{b},y_{b},z_{b})( italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT ) as coordinates in the body frame, first-order differential equations of the body velocity Vb=[u,v,w]Tsubscript𝑉𝑏superscript𝑢𝑣𝑤𝑇V_{b}=[u,v,w]^{T}italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = [ italic_u , italic_v , italic_w ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT of the robot is defined by

u˙=˙𝑢absent\displaystyle\dot{u}=over˙ start_ARG italic_u end_ARG = gsinθ+fa1(qwrv)𝑔𝜃subscript𝑓subscript𝑎1𝑞𝑤𝑟𝑣\displaystyle g\sin\theta+f_{a_{1}}-(qw-rv)italic_g roman_sin italic_θ + italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT - ( italic_q italic_w - italic_r italic_v ) (2)
v˙=˙𝑣absent\displaystyle\dot{v}=over˙ start_ARG italic_v end_ARG = gcosθsinϕ+fa2(rvpw)𝑔𝜃italic-ϕsubscript𝑓subscript𝑎2𝑟𝑣𝑝𝑤\displaystyle-g\cos\theta\sin\phi+f_{a_{2}}-(rv-pw)- italic_g roman_cos italic_θ roman_sin italic_ϕ + italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT - ( italic_r italic_v - italic_p italic_w ) (3)
w˙=˙𝑤absent\displaystyle\dot{w}=over˙ start_ARG italic_w end_ARG = gcosθcosϕ+fa3(pvqu)+Γm+mM𝑔𝜃italic-ϕsubscript𝑓subscript𝑎3𝑝𝑣𝑞𝑢Γ𝑚subscript𝑚𝑀\displaystyle-g\cos\theta\cos\phi+f_{a_{3}}-(pv-qu)+\frac{\Gamma}{m+m_{M}}- italic_g roman_cos italic_θ roman_cos italic_ϕ + italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_POSTSUBSCRIPT - ( italic_p italic_v - italic_q italic_u ) + divide start_ARG roman_Γ end_ARG start_ARG italic_m + italic_m start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT end_ARG (4)

Here, ωb=[p,q,r]Tsubscript𝜔𝑏superscript𝑝𝑞𝑟𝑇\omega_{b}=[p,q,r]^{T}italic_ω start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = [ italic_p , italic_q , italic_r ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the body angular velocity, g𝑔gitalic_g is the acceleration due to gravity, m𝑚mitalic_m is the mass of the robot and, mMsubscript𝑚𝑀m_{M}italic_m start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT is the mass of the MoCap markers. Rotation is defined by the widely used 321 rotation matrix. The 321 rotation follows the yaw (ψ𝜓\psiitalic_ψ) \rightarrow pitch (θ𝜃\thetaitalic_θ) \rightarrow roll (ϕitalic-ϕ\phiitalic_ϕ) sequence. ΓΓ\Gammaroman_Γ is the thrust applied to the robot in the positive zbsubscript𝑧𝑏z_{b}italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT direction. Fa=[fa1,fa2,fa3]Tsubscript𝐹𝑎superscriptsubscript𝑓subscript𝑎1subscript𝑓subscript𝑎2subscript𝑓subscript𝑎3𝑇F_{a}=[f_{a_{1}},f_{a_{2}},f_{a_{3}}]^{T}italic_F start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = [ italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the unmodeled dynamic force, which includes stroke averaged aerodynamic force in body frame caused by the drag due to flap** wings. Similarly, rotational dynamics can be defined by the first-order differential equation in body angular velocity (ωb=[p,q,r]Tsubscript𝜔𝑏superscript𝑝𝑞𝑟𝑇\omega_{b}=[p,q,r]^{T}italic_ω start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = [ italic_p , italic_q , italic_r ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT).

p˙=˙𝑝absent\displaystyle\dot{p}=over˙ start_ARG italic_p end_ARG = L+τrJxxJzzJyyJxxqr𝐿subscript𝜏𝑟subscript𝐽𝑥𝑥subscript𝐽𝑧𝑧subscript𝐽𝑦𝑦subscript𝐽𝑥𝑥𝑞𝑟\displaystyle L+\frac{\tau_{r}}{J_{xx}}-\frac{J_{zz}-J_{yy}}{J_{xx}}qritalic_L + divide start_ARG italic_τ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT end_ARG start_ARG italic_J start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT end_ARG - divide start_ARG italic_J start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT - italic_J start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT end_ARG start_ARG italic_J start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT end_ARG italic_q italic_r (5)
q˙=˙𝑞absent\displaystyle\dot{q}=over˙ start_ARG italic_q end_ARG = M+τpJyyJxxJzzJyyrp𝑀subscript𝜏𝑝subscript𝐽𝑦𝑦subscript𝐽𝑥𝑥subscript𝐽𝑧𝑧subscript𝐽𝑦𝑦𝑟𝑝\displaystyle M+\frac{\tau_{p}}{J_{yy}}-\frac{J_{xx}-J_{zz}}{J_{yy}}rpitalic_M + divide start_ARG italic_τ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_ARG start_ARG italic_J start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT end_ARG - divide start_ARG italic_J start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT - italic_J start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT end_ARG start_ARG italic_J start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT end_ARG italic_r italic_p (6)
r˙=˙𝑟absent\displaystyle\dot{r}=over˙ start_ARG italic_r end_ARG = NJyyJxxJzzpq𝑁subscript𝐽𝑦𝑦subscript𝐽𝑥𝑥subscript𝐽𝑧𝑧𝑝𝑞\displaystyle N-\frac{J_{yy}-J_{xx}}{J_{zz}}pqitalic_N - divide start_ARG italic_J start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT - italic_J start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT end_ARG start_ARG italic_J start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT end_ARG italic_p italic_q (7)

Here, J=diag([Jxx,Jyy,Jzz])𝐽𝑑𝑖𝑎𝑔subscript𝐽𝑥𝑥subscript𝐽𝑦𝑦subscript𝐽𝑧𝑧J=diag([J_{xx},J_{yy},J_{zz}])italic_J = italic_d italic_i italic_a italic_g ( [ italic_J start_POSTSUBSCRIPT italic_x italic_x end_POSTSUBSCRIPT , italic_J start_POSTSUBSCRIPT italic_y italic_y end_POSTSUBSCRIPT , italic_J start_POSTSUBSCRIPT italic_z italic_z end_POSTSUBSCRIPT ] ) is the diagonal moment of inertia matrix of the robot. τc=[τr,τp,0]Tsubscript𝜏𝑐superscriptsubscript𝜏𝑟subscript𝜏𝑝0𝑇\tau_{c}=[\tau_{r},\tau_{p},0]^{T}italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = [ italic_τ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT , italic_τ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT , 0 ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is defined as the input torque vector comprising of roll torque (τrsubscript𝜏𝑟\tau_{r}italic_τ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT) about xbsubscript𝑥𝑏x_{b}italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT and pitch torque (τpsubscript𝜏𝑝\tau_{p}italic_τ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT) about ybsubscript𝑦𝑏y_{b}italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT. τa=[L,M,N]Tsubscript𝜏𝑎superscript𝐿𝑀𝑁𝑇\tau_{a}=[L,M,N]^{T}italic_τ start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = [ italic_L , italic_M , italic_N ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the unmodeled dynamic moment, which also includes averaged aerodynamic torque caused by the drag due to flap** wings.

2.2.1 Model Parameters

We precisely measured the robot’s parameters using a sensitive, custom-build force torque sensor. Results are tabulated in Table 1. The mass of the robot was determined using a high-precision balance with a resolution of 0.1 mg. To estimate the robot’s moment of inertia, we measured the mass of its various components, including the piezoelectric actuators, wings, airframes, and motion capture markers. These measurements were then input into a CAD model to calculate the robot’s moment of inertia matrix. The high-precision scale also facilitated in the calculation of thrust map**, where the thrust generated by the robot at specific flap** amplitudes (A𝐴Aitalic_A) was recorded. During the experiment, the wings were flapped for a period of 1 sec at the constant frequency of 180 hz. The scale can take accurate stroke averaged measurements of thrust. The test setup also makes sure that the robot is away from any surrounding objects to avoid ground effects. We employed a least squares fit method to model the thrust based on this data (Fig. 2-left). The learned linear fit of the thrust map** is shown in Table 1. Given that the lifetime of these robots is about 10 minutes [19], we aimed to minimize the total operating time to prevent mechanical fatigue. Therefore, for the map** of thrust and torques, we took only two or three measurements to establish a trendline that can be used in the model.

To measure the torque response to different voltage inputs, that is, torque map**, we used a device similar to the one in [18]. By applying inputs Vosubscript𝑉𝑜V_{o}italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT and δV𝛿𝑉\delta Vitalic_δ italic_V, we generate roll and pitch torques, respectively. These torques induced angular deflections on the device, which are linearly correlated with the applied torques, which was observed in practice in [18]. These deflections were accurately measured using the motion capture system, allowing us to map torques effectively (Fig. 2-middle and right). This comprehensive approach to parameter measurement ensures a robust foundation for our model.

2.3 Trajectory Data

We collected 8 seconds of trajectory data from 7 separate flights with wings flap** at a frequency of 180 Hz, controlled by a PID flight controller [13]. To capture flight perturbations, we set the desired points away from the robot’s initial position, focusing on collecting more data with perturbations in lateral, longitudinal, and vertical dynamics. To avoid capturing too much stable hovering data, most flight trajectories were shortened to the duration required for the robot to reach the set positions. The robot was equipped with four retro-reflective markers to track its position and orientation through a motion capture system comprised of four Prime 13 cameras by OptiTrak, Inc., Salem, OR. Position and quaternions from the motion capture system running at 240 hz were used to calculate Vbsubscript𝑉𝑏V_{b}italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, ωbsubscript𝜔𝑏\omega_{b}italic_ω start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, and Euler angles of the robot offline.

2.3.1 Body Offset

A critical difference between the robot’s trajectory data and the modeled dynamics from equations 2-7 can stem from the misalignment between the body z-axis, as defined in the motion capture software, and the robot’s thrust vector. The dynamics, detailed in equations 2-4, assume that the thrust vector is perfectly aligned with the body z-axis, an assumption that may not hold in practice. This misalignment issue occurs because the thrust vector’s direction is not known at the time that the robot’s body coordinates are defined in the motion capture software. A tilted thrust vector introduces lateral and longitudinal forces. To reduce this error, we redefined the body coordinate system after performing a short 0.3 s uncontrolled trimmed flight. Since during a trimmed flight, the robot takes off approximately vertically, so its trajectory can be used to estimate the direction of the thrust vector and therefore align the z-axis of the body coordinate system to that direction. This, however, is based on the assumption that the body coordinate system is not redefined in between the experiments and remains the same throughout the data collection and control process.

Parameter Symbol Value
Mass of the robot m𝑚mitalic_m 150×106150superscript106150\times 10^{-6}150 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT kg
Mass of the MoCap markers mMsubscript𝑚𝑀m_{M}italic_m start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT 36×10636superscript10636\times 10^{-6}36 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT kg
Moment of inertia J𝐽Jitalic_J diag([3.12×1093.12superscript1093.12\times 10^{-9}3.12 × 10 start_POSTSUPERSCRIPT - 9 end_POSTSUPERSCRIPT, 2.97×1092.97superscript1092.97\times 10^{-9}2.97 × 10 start_POSTSUPERSCRIPT - 9 end_POSTSUPERSCRIPT, 0.55×1090.55superscript1090.55\times 10^{-9}0.55 × 10 start_POSTSUPERSCRIPT - 9 end_POSTSUPERSCRIPT]) kg.m2
Thrust ΓΓ\Gammaroman_Γ 3.27×105A0.00243.27superscript105𝐴0.00243.27\times 10^{-5}A-0.00243.27 × 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT italic_A - 0.0024 N
Roll Torque τrsubscript𝜏𝑟\tau_{r}italic_τ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT 0.48×106δA0.48superscript106𝛿𝐴0.48\times 10^{-6}\delta A0.48 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT italic_δ italic_A Nm
Pitch Torque τpsubscript𝜏𝑝\tau_{p}italic_τ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT 0.11×106Vo0.11superscript106subscript𝑉𝑜0.11\times 10^{-6}V_{o}0.11 × 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT Nm
Table 1: Measured parameters of RoboFly. Calculated Moment of inertia J𝐽Jitalic_J is a diagonal matrix of moment of inertia about the principal axes. Map** from A𝐴Aitalic_A to ΓΓ\Gammaroman_Γ, δA𝛿𝐴\delta Aitalic_δ italic_A to τrsubscript𝜏𝑟\tau_{r}italic_τ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, and Vosubscript𝑉𝑜V_{o}italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT to τpsubscript𝜏𝑝\tau_{p}italic_τ start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT are the equations of linear fit from Fig 2 (a),(b) and (c) respectively.

2.3.2 Visualization of Collected Data

Unlike traditional aircraft, where the flight envelope is defined by changes in velocity against variations in angle of attack, flap** wing robots exhibit continuous angle of attack variations throughout the flap** cycle. Therefore, we determined that representing the flight state in terms of angular orientation and velocity would be more pertinent characterization. Characterizing in this way elucidates the robot’s ability to maintain controlled flight across different tilt angles and the associated longitudinal/lateral speeds at these angles, which are critical for maneuverability. A robot that can sustain higher tilt angles and translational speeds in controlled flight is indicative of superior maneuverability, enabling it to execute tighter turns. As shown in Fig. 3, based on data collected from the flight trajectories of the RoboFly, the robot is able to get to attitude angles of approximately 30 and body velocity of around 0.4 m/sec.

2.4 Controller Implementation

In our experiments, we did not control the yaw rotation of the robot. Hence the LQR was designed to optimize the dynamics in the body coordinate system, which are independent of the yaw rotation. The state vector of the robot is defined by σ=[dx,dy,dz,u,v,w,ϕ,θ,p,q]T𝜎superscriptsubscript𝑑𝑥subscript𝑑𝑦subscript𝑑𝑧𝑢𝑣𝑤italic-ϕ𝜃𝑝𝑞𝑇\sigma=[d_{x},d_{y},d_{z},u,v,w,\phi,\theta,p,q]^{T}italic_σ = [ italic_d start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT , italic_u , italic_v , italic_w , italic_ϕ , italic_θ , italic_p , italic_q ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT. Here, d=[dx,dy,dz]T𝑑superscriptsubscript𝑑𝑥subscript𝑑𝑦subscript𝑑𝑧𝑇d=[d_{x},d_{y},d_{z}]^{T}italic_d = [ italic_d start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the position in body coordinates and Vb=d˙=[u,v,w]subscript𝑉𝑏˙𝑑𝑢𝑣𝑤V_{b}=\dot{d}=[u,v,w]italic_V start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT = over˙ start_ARG italic_d end_ARG = [ italic_u , italic_v , italic_w ]. The controller assumes that the angular velocity about zbsubscript𝑧𝑏z_{b}italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, denoted as r𝑟ritalic_r, which arises from manufacturing uncertainties, remains constant. Its value affects fictitious forces and torques in body coordinates that appear in equations 2-7. The controller calculates the inputs u=[A,δA,Vo]superscript𝑢𝐴𝛿𝐴subscript𝑉𝑜u^{*}=[A,\delta A,V_{o}]italic_u start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = [ italic_A , italic_δ italic_A , italic_V start_POSTSUBSCRIPT italic_o end_POSTSUBSCRIPT ], which directly controls the acceleration in zbsubscript𝑧𝑏z_{b}italic_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, torque about xbsubscript𝑥𝑏x_{b}italic_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, and torque about ybsubscript𝑦𝑏y_{b}italic_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT axis. The Q𝑄Qitalic_Q matrix used in our experiments is a diagonal matrix, Q=diag([0.02,0.02,0.01,0.1,0.1,0.1,1,1,4,4])𝑄𝑑𝑖𝑎𝑔0.020.020.010.10.10.11144Q=diag([0.02,0.02,0.01,0.1,0.1,0.1,1,1,4,4])italic_Q = italic_d italic_i italic_a italic_g ( [ 0.02 , 0.02 , 0.01 , 0.1 , 0.1 , 0.1 , 1 , 1 , 4 , 4 ] ); R𝑅Ritalic_R is also a diagonal matrix, R=diag([2,1,1])𝑅𝑑𝑖𝑎𝑔211R=diag([2,1,1])italic_R = italic_d italic_i italic_a italic_g ( [ 2 , 1 , 1 ] ). The ratio of Q𝑄Qitalic_Q and R𝑅Ritalic_R matrix used here was obtained with the knowledge of our model and only one experimental flight. The feedback loop includes a motion capture system that provides state feedback in terms of the robot’s position and orientation (expressed as quaternions). This data feeds into a Simulink real-time system in which the body angular velocities, euler angles, and velocity in world frame are calculated. The controller receives the desired position in the world coordinates. Finally, the resulting error in the world coordinates is converted to the body coordinates and is multiplied by the pre-calculated LQR gain matrix k𝑘kitalic_k to determine the control inputs, u=k(σdesσ)𝑢𝑘subscript𝜎𝑑𝑒𝑠𝜎u=-k(\sigma_{des}-\sigma)italic_u = - italic_k ( italic_σ start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT - italic_σ ), for the robot. Control loop used for our experiments is shown in Fig. 5(a).

Refer to caption
Figure 4: Model validation plots: Measured accelerations (green) from the RoboFly trajectories plotted with the predicted accelerations (pink) calculated using the theoretical model.
Refer to caption
Figure 5: LQR control loop and hovering trajectories: (a) The LQR control loop used to perform hovering and trajectory tracking maneuvers. Here, R represents the 3-2-1 rotation matrix. (b) The plot displays five different hovering trajectories, showing the robot maintaining a stable attitude and remaining close to the starting position. The mean RMS error and standard deviation for the trajectories are 4.17±plus-or-minus\pm± 0.37 cm.
Refer to caption
Figure 6: Results of LQR implementation on the RoboFly: (a) Response to the external disturbance applied via kevlar thread is shown in the photo composite. The robot does a recovery maneuver to get back to the stable attitude and ultimately flies to the desired position.(b) The photo composite shows the RoboFly tracking a 10 cm radius circular trajectory over a 4.5-second flight using a constant pre-calculated LQR gain. (c) The desired trajectory, depicted in green, was provided to the controller in the form of position and velocity set points while magenta is the actual trajectory followed by the robot. The RMS error for this maneuver for x-y position tracking is 2.8 cm. The video link of the experiments is shown in the abstract page.

2.5 Model Validation

For simplicity, the model we used in this work excludes dam** and drag components, thus setting the force and moment vectors [fa1,fa2,fa3]Tsuperscriptsubscript𝑓subscript𝑎1subscript𝑓subscript𝑎2subscript𝑓subscript𝑎3𝑇[f_{a_{1}},f_{a_{2}},f_{a_{3}}]^{T}[ italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT italic_a start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT and [L,M,N]Tsuperscript𝐿𝑀𝑁𝑇[L,M,N]^{T}[ italic_L , italic_M , italic_N ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT to zero in equations (2-7). We validated the theoretical model accelerations by comparing them with measured acceleration data from flight tests, as depicted in Fig. 4. This comparison includes seven separate flight trajectories stacked in time.

The model can predict translational accelerations in the body coordinate system, represented by [u˙,v˙,w˙]Tsuperscript˙𝑢˙𝑣˙𝑤𝑇[\dot{u},\dot{v},\dot{w}]^{T}[ over˙ start_ARG italic_u end_ARG , over˙ start_ARG italic_v end_ARG , over˙ start_ARG italic_w end_ARG ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, with the root mean squared (L2superscript𝐿2L^{2}italic_L start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT) error of 53.4 m/sec2, 56.9 m/sec2, and 36.7 m/sec2, respectively. The errors in rotational accelerations, [p˙,q˙]Tsuperscript˙𝑝˙𝑞𝑇[\dot{p},\dot{q}]^{T}[ over˙ start_ARG italic_p end_ARG , over˙ start_ARG italic_q end_ARG ] start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, are 9.2e3 rad/sec2 and 7.6e3 rad/sec2, respectively. The more substantial errors in the rotational domain can largely be attributed to the aforementioned aspect of small flight vehicles that their angular accelerations are large.

We believe, and our results show, that the model is still adequate for controller design purposes. This is based on two key considerations: Firstly, the actuation delay for the rotational system is minimal, as rotational acceleration occurs almost instantaneously once torque is applied. Secondly, the robot will eventually have a gyroscope onboard which is capable of providing rapid rotational velocity feedback at 1 to 16 kHz, which will significantly enhance the ability to perform rapid feedback corrections. Thus, even with its limitations, this model provides a sufficient foundation for develo** an effective controller.

2.6 Hovering

The initial task was to hover around a desired position. We did five such flights, each lasting 2 seconds, and the robot managed to hover using the pre-calculated LQR gain, with RMS errors of 4.2 cm, 3.8 cm, 4.05 cm, 4.03 cm, and 4.8 cm. For hovering tasks, a PID controller, as referenced in [16] and [20], outperforms this with an average RMS error of 2 cm. We think this is due to the fact that PID controllers are manually tuned for specific tasks, whereas the LQR controller used here was only tuned once for determining the Q and R matrices and is more general, as it can be linearized about different states. Five hover trajectories are shown in Fig. 5(b).

2.7 Response to External Disturbance

To prevent crashes during our experiments, we suspend the robot using a lightweight Kevlar thread. There is slack in the Kevlar thread in all our experiment videos, which demonstrates that the thread does not exert any force on the robot. However, in this particular experiment, we intentionally applied force by pulling the robot with the Kevlar thread to test the controller’s response to external disturbances. This causes the accelerations >>>2.5g. As show in Fig. 6(a), the robot was able to stabilize itself and flies towards the desired position.

2.8 Trajectory Tracking

Here the robot was asked to follow a pre-computed circular trajectory of 10 cm radius. The robot was able to follow the given trajectory in a 4.5-second flight with an RMS error of 2.8 cm in x-y position tracking. Photo composite of the maneuver is shown in Fig. 6(b). The desired waypoints on the trajectory were given in the form of position and velocity set points. The controller used the same Q and R matrices as the hovering maneuver. For comparison, in [7] authors tracked a 5 cm radius circular trajectory with the reported x-y position error of 1.8 cm. Our greater position tracking error is likely due to a much higher flight velocity (25 cm///sec vs a maximum speed of 5.2 cm///s in [7]) and a larger circular trajectory, which would result in larger disturbances by the wire tether.

3 Discussion

In our study, we developed and validated a theoretical model of the UW RoboFly. Utilizing this model, we successfully implemented an infinite horizon Linear Quadratic Regulator (LQR) control strategy. This enabled us to achieve stable hovering, recovery maneuver, and trajectory tracking using the pre-calculated LQR gain. While its RMS position error was higher than other recent reports, it was following a much faster trajectory. Notably, our controller works with minimal computational demands, making it ideal for integration into microcontrollers suited for tiny robotic platforms.

3.1 Limitations and Future Work

This work provides a foundation for some important next steps. First, the single LQR gain could be replaced with one that is “gain-scheduled” for linearizations about different states, such as forward flight or flight into the wind. This would also impose a minimal computational load on any conceivable microcontroller. Second, collecting data over a broader flight envelope could improve model identification and therefore flight control. Third, our current controller does not perform any sort of adaptivity. Future models could account for the offset between the thrust vector and the body-z axis and estimate the drag model using the discrepancy between expected and actual translational velocity as input[16, 20]. Such refinements are expected to yield even lower RMS errors for specific tasks and potentially enable more agile maneuvers.

While gain scheduling has the potential to broaden the envelope in which the LQR controller operates well, it does not take into account an important aspect of FIRs. This is that they are subject to constraints on the magnitude of outputs that the actuators can produce. A more advanced control technique, known as Receding Horizon Control (RHC) or Model Predictive Control (MPC), can accurately factor those into the optimization process. Although [7] applied this technique, their controllers were too demanding for a microcontroller. We expect that the advances that were used in Tiny-MPC [14] to perform RHC on the 120 MHz microcontroller onboard the the 30 g Crazyflie helicopter could be adapted to the different dynamics and constraints of the Robofly. By taking into account actuator constraints and any improved system characterization, more precise and more aggressive agile maneuvers should be possible without hand-tuning.

4 Methods

4.1 Infinite Horizon LQR

Infinite horizon LQR controller [21] optimizes the quadratic cost function subject to linearized dynamics constraints. In this work we use the continuous time formulation of LQR.

J=𝐽absent\displaystyle J=italic_J = 0σ(t)TQσ(t)+u(t)TRu(t)superscriptsubscript0𝜎superscript𝑡𝑇𝑄𝜎𝑡𝑢superscript𝑡𝑇𝑅𝑢𝑡\displaystyle\int_{0}^{\infty}\sigma(t)^{T}Q\sigma(t)+u(t)^{T}Ru(t)∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∞ end_POSTSUPERSCRIPT italic_σ ( italic_t ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_Q italic_σ ( italic_t ) + italic_u ( italic_t ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_R italic_u ( italic_t ) (8)
subject to σ˙(t)=subject to ˙𝜎𝑡absent\displaystyle\text{subject to }\dot{\sigma}(t)=subject to over˙ start_ARG italic_σ end_ARG ( italic_t ) = Adσ(t)+Bdu(t)subscript𝐴𝑑𝜎𝑡subscript𝐵𝑑𝑢𝑡\displaystyle A_{d}\sigma(t)+B_{d}u(t)italic_A start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT italic_σ ( italic_t ) + italic_B start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT italic_u ( italic_t ) (9)

Here, σ(t)𝜎𝑡\sigma(t)italic_σ ( italic_t ) is the state vector of the robot at time t𝑡titalic_t, Adsubscript𝐴𝑑A_{d}italic_A start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT and Bdsubscript𝐵𝑑B_{d}italic_B start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT are the linearized dynamics matrices. If the system is completely stabilizable, we can write this optimal control problem in terms of the Hamiltonian function, which incorporates both the system dynamics and the cost function. The Hamiltonian for the LQR problem is given by H(x,u,λ)=σTQσ+uTRu+λT(Adσ+Bdu)𝐻𝑥𝑢𝜆superscript𝜎𝑇𝑄𝜎superscript𝑢𝑇𝑅𝑢superscript𝜆𝑇subscript𝐴𝑑𝜎subscript𝐵𝑑𝑢H(x,u,\lambda)=\sigma^{T}Q\sigma+u^{T}Ru+\lambda^{T}(A_{d}\sigma+B_{d}u)italic_H ( italic_x , italic_u , italic_λ ) = italic_σ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_Q italic_σ + italic_u start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_R italic_u + italic_λ start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( italic_A start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT italic_σ + italic_B start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT italic_u ). λ𝜆\lambdaitalic_λ is the costate vector, Q𝑄Qitalic_Q and R𝑅Ritalic_R are positive semi-definite and positive definite matrices respectively. By taking the derivative of Hamiltonian with respect to σ𝜎\sigmaitalic_σ, u𝑢uitalic_u, and λ𝜆\lambdaitalic_λ and setting it to zero we get the closed loop dynamics as,

[σ˙λ˙]=[ABR1BTQAT][σλ]matrix˙𝜎˙𝜆matrix𝐴𝐵superscript𝑅1superscript𝐵𝑇𝑄superscript𝐴𝑇matrix𝜎𝜆\displaystyle\begin{bmatrix}\dot{\sigma}\\ \dot{\lambda}\end{bmatrix}=\begin{bmatrix}A&-BR^{-1}B^{T}\\ -Q&-A^{T}\\ \end{bmatrix}\begin{bmatrix}\sigma\\ \lambda\end{bmatrix}[ start_ARG start_ROW start_CELL over˙ start_ARG italic_σ end_ARG end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_λ end_ARG end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL italic_A end_CELL start_CELL - italic_B italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL - italic_Q end_CELL start_CELL - italic_A start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] [ start_ARG start_ROW start_CELL italic_σ end_CELL end_ROW start_ROW start_CELL italic_λ end_CELL end_ROW end_ARG ] (10)

The steady state solution of the Riccati equation can be described in terms of the eigenvectors of the Hamiltonian matrix in the closed loop dynamic equation 10 associated with the negative real part eigen values. These negative real part eigenvalues of the matrix are also the eigenvalues of the closed-loop matrix ABR1BP𝐴𝐵superscript𝑅1𝐵𝑃A-BR^{-1}BPitalic_A - italic_B italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B italic_P. The feedback gain k=R1BP𝑘superscript𝑅1superscript𝐵𝑃k=-R^{-1}B^{\prime}Pitalic_k = - italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_P can be obtained using P𝑃Pitalic_P as the Schur form of the closed loop dynamics matrix such that:

u(t)=𝑢𝑡absent\displaystyle u(t)=italic_u ( italic_t ) = k(σdes(t)σ(t))𝑘subscript𝜎𝑑𝑒𝑠𝑡𝜎𝑡\displaystyle-k(\sigma_{des}(t)-\sigma(t))- italic_k ( italic_σ start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t ) - italic_σ ( italic_t ) ) (11)

Here σdes(t)subscript𝜎𝑑𝑒𝑠𝑡\sigma_{des}(t)italic_σ start_POSTSUBSCRIPT italic_d italic_e italic_s end_POSTSUBSCRIPT ( italic_t ) is the desired state of the robot at time t.

\bmhead

Acknowledgements We would like to thank Y. M. Chukewad for insightful discussions about the Robofly.

References

  • \bibcommenthead
  • James et al. [2018] James, J., Iyer, V., Chukewad, Y., Gollakota, S., Fuller, S.B.: Liftoff of a 190 mg laser-powered aerial vehicle: The lightest wireless robot to fly. In: 2018 IEEE International Conference on Robotics and Automation (ICRA), pp. 1–8 (2018). IEEE
  • Talwekar et al. [2022] Talwekar, Y.P., Adie, A., Iyer, V., Fuller, S.B.: Towards sensor autonomy in sub-gram flying insect robots: A lightweight and power-efficient avionics system. In: 2022 International Conference on Robotics and Automation (ICRA), pp. 9675–9681 (2022). https://doi.org/10.1109/ICRA46639.2022.9811918
  • Chirarattananon et al. [2014] Chirarattananon, P., Ma, K.Y., Wood, R.J.: Adaptive control of a millimeter-scale flap**-wing robot. Bioinspiration & biomimetics 9(2), 025004 (2014)
  • Graule et al. [2016] Graule, M.A., Chirarattananon, P., Fuller, S.B., Jafferis, N.T., Ma, K.Y., Spenko, M., Kornbluh, R., Wood, R.J.: Perching and takeoff of a robotic insect on overhangs using switchable electrostatic adhesion. Science 352(6288), 978–982 (2016) https://doi.org/10.1126/science.aaf1092 https://www.science.org/doi/pdf/10.1126/science.aaf1092
  • Chen et al. [2021] Chen, Y., Xu, S., Ren, Z., Chirarattananon, P.: Collision resilient insect-scale soft-actuated aerial robots with high agility. IEEE Transactions on Robotics 37(5), 1752–1764 (2021) https://doi.org/10.1109/TRO.2021.3053647
  • De et al. [2022] De, A., McGill, R., Wood, R.J.: An efficient, modular controller for flap** flight composing model-based and model-free components. The International Journal of Robotics Research 41(4), 441–457 (2022) https://doi.org/10.1177/02783649211063225 https://doi.org/10.1177/02783649211063225
  • Tagliabue et al. [2022] Tagliabue, A., Hsiao, Y.-H., Fasel, U., Kutz, J.N., Brunton, S.L., Chen, Y., How, J.P.: Robust, High-Rate Trajectory Tracking on Insect-Scale Soft-Actuated Aerial Robots with Deep-Learned Tube MPC (2022)
  • Dhingra et al. [2020] Dhingra, D., Chukewad, Y.M., Fuller, S.B.: A device for rapid, automated trimming of insect-sized flying robots. IEEE Robotics and Automation Letters 5(2), 1373–1380 (2020) https://doi.org/10.1109/LRA.2020.2967318
  • Bena et al. [2023] Bena, R.M., Yang, X., Calderón, A.A., Pérez-Arancibia, N.O.: High-performance six-DOF flight control of the Bee++: An inclined-stroke-plane approach. IEEE Transactions on Robotics 39(2), 1668–1684 (2023) https://doi.org/10.1109/TRO.2022.3218260
  • Chukewad et al. [2018] Chukewad, Y.M., Singh, A.T., James, J.M., Fuller, S.B.: A new robot fly design that is easier to fabricate and capable of flight and ground locomotion. In: 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 4875–4882 (2018). IEEE
  • Bouabdallah et al. [2004] Bouabdallah, S., Noth, A., Siegwart, R.: PID vs LQ control techniques applied to an indoor micro quadrotor. In: 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (IEEE Cat. No.04CH37566), vol. 3, pp. 2451–24563 (2004). https://doi.org/10.1109/IROS.2004.1389776
  • Jafferis et al. [2015] Jafferis, N.T., Smith, M.J., Wood, R.J.: Design and manufacturing rules for maximizing the performance of polycrystalline piezoelectric bending actuators 24(6), 065023 (2015) https://doi.org/10.1088/0964-1726/24/6/065023
  • Chukewad et al. [2021] Chukewad, Y.M., James, J., Singh, A., Fuller, S.: Robofly: An insect-sized robot with simplified fabrication that is capable of flight, ground, and water surface locomotion. IEEE Transactions on Robotics 37(6), 2025–2040 (2021) https://doi.org/10.1109/TRO.2021.3075374
  • Alavilli et al. [2024] Alavilli, A., Nguyen, K., Schoedel, S., Plancher, B., Manchester, Z.: Tinympc: Model-predictive control on resource-constrained microcontrollers. In: IEEE International Conference on Robotics and Automation (ICRA), Yokohama, Japan (2024)
  • Englert et al. [2018] Englert, T., Völz, A., Mesmer, F., Rhein, S., Graichen, K.: A software framework for embedded nonlinear model predictive control using a gradient-based augmented Lagrangian approach (GRAMPC) (2018)
  • Ma et al. [2013] Ma, K.Y., Chirarattananon, P., Fuller, S.B., Wood, R.J.: Controlled flight of a biologically inspired, insect-scale robot. Science 340(6132), 603–607 (2013)
  • Yang et al. [2019] Yang, X., Chen, Y., Chang, L., Calderón, A.A., Pérez-Arancibia, N.O.: Bee+: A 95-mg four-winged insect-scale flying robot driven by twinned unimorph actuators. IEEE Robotics and Automation Letters 4(4), 4270–4277 (2019) https://doi.org/10.1109/LRA.2019.2931177
  • Weber et al. [2024] Weber, A., Dhingra, D., Fuller, S.B.: A flexured-gimbal 3-axis force-torque sensor reveals minimal cross-axis coupling in an insect-sized flap**-wing robot (2024)
  • Malka et al. [2014] Malka, R., Desbiens, A.L., Chen, Y., Wood, R.J.: Principles of microscale flexure hinge design for enhanced endurance. In: 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 2879–2885 (2014). https://doi.org/10.1109/IROS.2014.6942958
  • Fuller [2019] Fuller, S.B.: Four wings: An insect-sized aerial robot with steering ability and payload capacity for autonomy. IEEE Robotics and Automation Letters 4(2), 570–577 (2019)
  • Anderson and Moore [2007] Anderson, B.D.O., Moore, J.B.: Optimal control: Linear quadratic methods (2007)