DOI: 10.5061/dryad.1c59zw493
title: Data from: Aerobatic maneuvers in insect-scale flapping-wing aerial robots via deep-learned robust tube model predictive control

description: Aerial insects exhibit highly agile maneuvers such as sharp braking,
 saccades, and body flips under disturbance. In contrast, insect-scale
 aerial robots are limited to tracking non-aggressive trajectories with
 small body acceleration. This performance gap is contributed by a
 combination of low robot inertia, fast dynamics, uncertainty in
 flapping-wing aerodynamics, and high susceptibility to environmental
 disturbance. Executing highly dynamic maneuvers requires the generation of
 aggressive flight trajectories that push against the hardware limit and a
 high-rate feedback controller that accounts for model and environmental
 uncertainty. Here, through designing a deep-learned robust tube model
 predictive controller, we showcase insect-like flight agility and
 robustness in a 750-milligram flapping-wing robot. Our model predictive
 controller can track aggressive flight trajectories under disturbance. To
 achieve a high feedback rate in a compute-constrained real-time system, we
 design imitation learning methods to train a two-layer, fully connected
 neural network, which resembles an insect flight control architecture
 consisting of a central nervous system and motor neurons. Our robot
 demonstrates insect-like saccade movements with lateral speed and
 acceleration of 197 centimeters per second and 11.7 meters per second
 square, representing 447% and 255% improvement over prior results. The
 robot can also perform saccade maneuvers under 160 centimeters per second
 wind disturbance and large command-to-force mapping errors. Furthermore,
 it performs 10 consecutive body flips in 11 seconds - the most challenging
 maneuver among sub-gram flyers. These results represent a milestone in
 achieving insect-scale flight agility and inspire future investigations on
 sensing and compute autonomy.
description: The dataset comprises raw sensing data and commanded voltages,
 including position and Euler angles (using the XYZ convention), collected
 from a motion-capturing system (Vicon Vantage V5 and Vicon Tracker 3.9)
 and the voltages computed by the controller. The sensing data was
 retrieved from Vicon Tracker 3.9 and transmitted in real-time to a target
 computer (Speedgoat) via asynchronous UDP. All sensing data was saved at
 10 kHz on the target computer, with no post-processing applied. The four
 voltages commanded by the controller were saved at 1 kHz.
description: # Flight Data This dataset contains recorded position, Euler angle XYZ,
 and the commanded voltages of the flights presented in the manuscript
 "Aerobatic maneuvers in insect-scale flapping-wing aerial robots via
 deep-learned robust tube model predictive control". ## Data format
 The data is saved in Comma-Separated Value (.csv) format. The first column
 of each .csv file represents the time (in seconds at 10 kHz) recorded
 during the flight for position and orientation, which are sampled at 10
 kHz. The subsequent columns are organized in groups of six: the first
 three columns show the x, y, and z positions (in meters), and the next
 three columns contain the Euler angles in the XYZ convention (in radians).
 The column after the last Euler angles represents the time (in seconds at
 1 kHz) recorded during the flight for commanded voltages, which are
 sampled at 1 kHz. The subsequent columns are organized in groups of four:
 each column shows the voltage (in Volts) computed by the controller for
 each of the flapping wing modules. The corresponding flight numbers are
 also included in the column names to demonstrate repeatability. ## List of
 flight data The following list shows the filenames and the corresponding
 flights (in terms of figure numbers) presented in the manuscript: *
 "saccade.csv" - Fig. 2 (D-F) and Fig. S2 *
 "saccade_multi.csv" - Fig. 3 (A) (D) and Fig. S3  *
 "saccade_multi_incorrect_mapping.csv" - Fig. 3 (B) (D) and Fig.
 S4 * "saccade_multi_disturbed.csv" - Fig. 3 (C) (D) and Fig. S5
 * "x_shape.csv" - Fig. 4 (A-C) and Fig. S6 *
 "plus_sign.csv" - Fig. 4 (D-F) and Fig. S7 *
 "figure_8.csv" - Fig. 4 (G-H) (K) and Fig. S8 *
 "planar_circle.csv" - Fig. 4 (I-J) (L) and Fig. S9 *
 "flip_single.csv" - Fig. 5 (C-E) and Fig. S10 *
 "flip_multi.csv" - Fig. 5 (F) and Fig. 1 (D-E) *
 "model-based_controller_saccade.csv" - Fig. S20 *
 "model-based_controller_saccade_multi.csv" - Fig. S21 *
 "model-based_controller_x_shape.csv" - Fig. S22 *
 "model-based_controller_plus_sign.csv" - Fig. S23 *
 "model-based_controller_figure_8.csv" - Fig. S24 *
 "model-based_controller_plannar_circle.csv" - Fig. S25 ## Data
 collection The data was captured by a motion-capturing system (Vicon
 Vantage V5 and Vicon Tracker 3.9). The data was first retrieved from Vicon
 Tracker 3.9 and then transmitted in real-time to a target computer
 (Speedgoat) via asynchronous UDP. Position and orientation data was saved
 at 10 kHz on the target computer, with no post-processing applied; the
 commanded voltage data was saved at 1 kHz. ## Post-processing used in the
 manuscript While the data presented in this dataset is raw and without any
 post-processing, the plots shown in the manuscript have been
 post-processed. The following paragraphs explain the reasons and methods
 of post-processing used in the manuscript. * The raw data received on the
 target computer does not update at exactly 400 Hz (Vicon system's
 refresh rate), as a result, a much higher sampling rate (10 kHz) was used
 to collect and save data. Lowpass filtering (e.g. Matlab `filtfilt`) is
 thus applied to smooth some of the signals presented in the manuscript. *
 The Vicon system only provides position and Euler angle. Velocity and
 angular velocity shown in the manuscript were obtained through numerical
 differentiation of the post-lowpass-filtered data. * The filtering of the
 orientation was done through the following steps: 1) convert the Euler
 angle into rotaton matrix; 2) applying lowpass filter to each of the
 element in the rotation matrix; and 3) convert the rotation matrix back to
 the Euler angle or take derivative numerically to obtain angular velocity.
 This process ensures continuous signal throughout the filtering, even for
 the somersault demonstrations.