Data from: Aerobatic maneuvers in insect-scale flapping-wing aerial robots via deep-learned robust tube model predictive control
Data files
Nov 14, 2025 version files 316.59 MB
-
figure_8.csv
25.08 MB
-
flip_multi.csv
11.79 MB
-
flip_single.csv
23.49 MB
-
model-based_controller_figure_8.csv
12.85 MB
-
model-based_controller_plannar_circle.csv
14.78 MB
-
model-based_controller_plus_sign.csv
13.83 MB
-
model-based_controller_saccade_multi.csv
11.96 MB
-
model-based_controller_saccade.csv
10.05 MB
-
model-based_controller_x_shape.csv
15.69 MB
-
planar_circle.csv
28.91 MB
-
plus_sign.csv
27.28 MB
-
README.md
3.74 KB
-
saccade_multi_disturbed.csv
23.51 MB
-
saccade_multi_incorrect_mapping.csv
23.27 MB
-
saccade_multi.csv
23.49 MB
-
saccade.csv
19.54 MB
-
x_shape.csv
31.06 MB
Abstract
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.
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.
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.
