The microDelta: Downscaling robot mechanisms enables ultra-fast and high precision movement
Data files
Nov 03, 2025 version files 43.59 MB
-
README.md
22.01 KB
-
the_microDelta_paper_repository.zip
43.57 MB
Abstract
Physical scaling laws predict that miniaturization of robotic mechanisms should enable exceptional robot performance on metrics such as speed and precision. While these scaling laws have been explored in a variety of microsystems, the benefits and limitations of downscaling 3D robotic mechanisms have yet to be assessed due to limitations in microscale 3D manufacturing. In this work, we use the Delta robot as a case study for these scaling laws. We present two sizes of 3D-printed Delta robots, the microDeltas, measuring 1.4 mm and 0.7 mm in height, which are the smallest and fastest Delta robots ever demonstrated. 3D printing with two-photon polymerization and subsequent metallization enabled the miniaturization of these 3D robotic parallel mechanisms integrated with electrostatic actuators for exceptionally high bandwidths. The smallest microDelta was able to operate at over 1000 Hz and achieved precisions of less than 1 µm by taking advantage of its small size. The microDelta's relatively high output power was demonstrated with the launch of a small projectile, highlighting the utility of miniaturized robotic systems for applications ranging from manufacturing to haptics.
Dataset DOI: 10.5061/dryad.7pvmcvf56
Manuscript: The microDelta: downscaling robot mechanisms enables ultra-fast and high precision movement (Science Robotics)
This README provides usage notes up front for all file types, followed by a folder-by-folder guide to the Dryad package. It is written to help users open files with commonly available tools and to explain how the pieces relate (data ↔ processing scripts ↔ figures).
Usage Notes — file types in this Dryad package
The submission currently includes the following file types:
| Extension | What it is | How to open / use | Typical role in this package |
|---|---|---|---|
.txt |
Plain text tab/CSV-like time series exports (e.g., TEMA tracking). | Any text editor or software that can read CSV files | Raw data inputs for scripts; units are usually pixels from tracking unless stated otherwise. |
.mlx |
MATLAB Live Script (code + narrative). | MATLAB (Live Editor). | End-to-end processing and plotting scripts to recreate figures/analyses for each experiment. |
.m |
MATLAB/Octave script or function. | MATLAB or GNU Octave (when no Live-Script–only features are used). | These files are generally helper utilities called by .mlx. |
.slx |
Simulink/Simscape models. | MATLAB Simulink / Simscape Multibody. | Mechanism and stiffness models used by modeling scripts. |
.mat |
MATLAB data files. | MATLAB | Intermediate/compiled data (e.g., precomputed Bode/workspace points). |
.csv |
Comma‑separated values. | Any spreadsheet editor. | Small tabular inputs (e.g., actuator voltage tables). |
.SLDPRT |
SolidWorks Part CAD files for the robots. | SolidWorks; free eDrawings Viewer (view‑only); web‑based Onshape can import; some imports work in FreeCAD. | Reference design geometry (millimeters in CAD correspond to micrometers in the fabricated robots — see notes below). |
.ino |
Arduino sketch. | Arduino IDE 2.x. | MicroDelta controller used during experiments. |
.jpg |
Image file. | Any image viewer. | Figure illustration (e.g., salt jump still). |
.md |
Markdown. | Any text editor. | This README. |
Companion / association rules. Most Live Scripts (.mlx) expect raw data files (.txt/.mat) in the same subfolder. Please keep the folder structure intact or add the repository root to the MATLAB path so relative reads work.
Units & calibration. Trajectory tracking files exported from TEMA are in pixels; scripts apply pixel→micron conversion using image scale factors. Frequency-response filename patterns may include the frequency (e.g., ..._0.2Hz.txt).
How the repository is organized
Top-level folders mirror the study workflow. For each, we summarize the context, subfolders, and how files relate.
microDelta_paper_repository/
├─ Design/ ← CAD for both robot sizes (MicroDelta-1X and MicroDelta-0.5X)
├─ Experiments/ ← Data collection from the robots & files to analyze that data
├─ Modeling/ ← Models, simulations, and derived calculations
├─ Testing/ ← Calibration and measurement quality checks
└─ README.md
Naming conventions
- MD1X → the larger microDelta (≈ 1× scale in the paper).
- MD05X → the smaller microDelta (≈ 0.5× linear scale).
- Files prefixed with
MD1X_...orMD05X_...are specific to one robot; files starting withMD_...compare or apply to both.
Note on CAD scale: SolidWorks models are in millimeters but represent micrometer-scale hardware (1 mm in CAD ≈ 1 µm in the printed mechanism).
Folder-by-folder guide
1) Design/ — Robot geometry
MD1X_Robot.SLDPRT,MD05X_Robot.SLDPRT: SolidWorks part files for the two robot sizes (view with SolidWorks or the free eDrawings Viewer; importable in Onshape).
Purpose: reference geometry and dimensions used in modeling and fabrication documentation.
2) Experiments/ — Data collected on hardware & corresponding analysis
Organized by task; each task folder contains raw data (.txt), precompiled data (.mat), and Live Scripts (.mlx) that process and plot results.
Frequency Response/MD1X/andMD05X/: Live Scripts compute Bode-like magnitude vs. frequency from circular trajectory runs; subfolders likeMD1X_air_data/andMD1X_vacuum_data/hold trial data with frequency encoded in filenames (e.g.,..._0.2Hz.txt) from frequency response experiments in air and vacuum respectively.- Top-level comparison scripts (e.g.,
MD_Robots_Compare*.mlx) overlay results across robots/conditions.
Trajectory Tracking/MD1X/,MD05X/withdata/(TEMA exports such as..._circle_track_calibrated.txt) andtrajs/(reference trajectory generators).- Live Scripts (e.g.,
MD1X_Circle.mlx) load the paired*_track_calibrated.txtfile, apply pixel→µm conversion, compute accuracy/precision, and plot XY traces.
Robot Stiffness/MD1X/,MD05X/: Simscape models (*_Stiffness_Model.slx) and Live Scripts to generate theoretical stiffness curves and validate against experimental voltage–angle tests (*_voltage_angle_test_data*.txt/.mat).
Projectile Launch/data/providesSalt_Position.txtandSalt_Velocity.txt(tracked salt grain position/velocity exported from TEMA software).MD1X_Salt_Jump_Plotting.mlxplots height/velocity versus time and reproduces the figure panel from the paper.
Tip: If you don’t use MATLAB, the .txt files can be analyzed in Python/R following the same steps described in the Live Scripts (load, scale, compute metrics).
3) Modeling/ — Models, simulations, and derived calculations
MicroDelta Control/MicroDelta_Controller.ino: Arduino sketch used to drive actuators during tests.MD1X/,MD05X/contain Simscape models (*_Simscape.slx), parameter files (*_Parameters.mlx), forward kinematics, and Live Scripts for simulation/trajectory following.trajs/subfolders provide reference trajectory generators and initial coordinate sets (*.mat).
Mechanism Stiffness Analysis/- Live Scripts produce mechanism stiffness predictions; some runs export
.matfor validation inExperiments/Robot Stiffness.
- Live Scripts produce mechanism stiffness predictions; some runs export
Workspace Analysis/- Live Scripts render/compute reachable workspace;
simscape/holds a Simscape model used for geometry;trajs/andvars/hold exported workspace point sets (*.mat).
- Live Scripts render/compute reachable workspace;
Calculations/- Subfolders such as
response_time/,robot_scaling_trends/, andsalt_jump_forces/include standalone Live Scripts and input tables (.csv) used for supplemental analyses and plots.
- Subfolders such as
4) Testing/ — Calibration and measurement quality
Calibration/- For each robot (
MD1X/,MD05X/),*_lines_[un]calibrated.txtprovide pre/post-calibration line traces;*_Lines_Calibration.mlxcomputes improvements in tracking accuracy.
- For each robot (
TEMA Accuracy/- Static-tracking tests (
MD1X_tema_uncertainty.txt,MD05X_tema_uncertainty.txt) with Live Scripts (*_TEMA_Uncertainty.mlx) that estimate pixel-level measurement uncertainty and propagate to micron-scale units.
- Static-tracking tests (
Repository structure
\---microDelta_paper_repository
| README.md
|
+---Experiments
| +---Frequency Response
| | | (Scripts for frequency response plots comparing both robots)
| | | MD_Robots_Compare.mlx
| | | MD_Robots_Compare_ErrorBar.mlx
| | | MD_Robots_Compare_Single.mlx
| | |
| | +---MD05X
| | | | (MicroDelta-0.5X frequency response analysis scripts)
| | | | MD05X_bode_circle_traj.mlx
| | | | MD05X_Bode_Plot_Data.mlx
| | | |
| | | \---MD05X_air_data
| | | (Raw data for microDelta-0.5X frequency response in air)
| | | MD05X_bode_data.mat
| | | smallermicrodelta_0.2Hz.txt (Raw data)
| | | ... (Additional frequency data files)
| | |
| | \---MD1X
| | | (Scripts for frequency response analysis)
| | | MD1X_Bode_Plot_Compare_Vacuum.mlx
| | | MD1X_Bode_Plot_Compare_Vacuum_ErrorBar.mlx
| | | MD1X_Bode_Plot_Data.mlx
| | | MD1X_Bode_Plot_Data_Vacuum.mlx
| | |
| | +---MD1X_air_data
| | | (Data and reference trajectory)
| | | circle_pattern.mlx
| | | MD1X_Bode_Data.mat
| | | LP2_freq_smaller_radius_0.2Hz.txt (Raw data)
| | | ... (Additional frequency data files)
| | |
| | \---MD1X_vacuum_data
| | (Data and reference trajectory)
| | circle_pattern.mlx
| | MD1X_bode_data_vacuum.mat
| | MicroDelta_Regular_LP4_0.2Hz.txt
| | ... (Additional vacuum frequency data files)
| |
| +---Projectile Launch
| | | (Scripts for plotting salt jump data)
| | | importfile.m (Helper function)
| | | MD1X_Salt_Jump_Plotting.mlx
| | | Salt_Jump_Apex.jpg
| | |
| | \---data
| | (Raw data for salt trajectory tracking)
| | Salt_Position.txt
| | Salt_Velocity.txt
| |
| +---Robot Stiffness
| | +---MD05X
| | | (Scripts and data for stiffness modeling and validation)
| | | MD05X_Stiffness_Model.slx (Simscape model)
| | | MD05X_Stiffness_Model_Data.mlx
| | | MD05X_Stiffness_Test_Data.mlx
| | | MD05X_Stiffness_Validation.mlx (Plotting script)
| | | MD05X_voltage_angle_model_data.mat
| | | MD05X_voltage_angle_test_data.mat
| | | MD05X_voltage_angle_test_data.txt (Raw data)
| | |
| | \---MD1X
| | (Scripts and data for stiffness modeling and validation)
| | MD1X_Stiffness_Model.slx
| | MD1X_Stiffness_Model_Data.mlx
| | MD1X_Stiffness_Validation.mlx (Plotting script)
| | MD1X_voltage_angle_model_data.mat
| | MD1X_voltage_angle_test_data_inner.txt (Raw data)
| | MD1X_voltage_angle_test_data_outer.txt (Raw data)
| | MD1_Parameters.mlx
| |
| \---Trajectory Tracking
| +---MD05X
| | | (Scripts for trajectory tracking analysis)
| | | distToSeg.m (Helper function)
| | | MD05X_Asterisk.mlx
| | | MD05X_Circle.mlx
| | | MD05X_Star.mlx
| | | MD05X_Workspace_Horizontal.mlx
| | | MD05X_Workspace_Vertical.mlx
| | |
| | +---data
| | | (Raw trajectory tracking data)
| | | MD05X_asterisk_track_calibrated.txt
| | | MD05X_circle_track_calibrated.txt
| | | MD05X_star_track_calibrated.txt
| | | MD05X_workspace_horiz_calibrated.txt
| | | MD05X_workspace_vert_calibrated.txt
| | |
| | \---trajs
| | (Reference trajectory generation scripts)
| | circle_traj.mlx
| | line_traj.mlx
| | star_traj.mlx
| | workspace_traj_horiz.mlx
| | workspace_traj_horiz_points.mat
| | workspace_traj_vert.mlx
| | workspace_traj_vert_points.mat
| |
| \---MD1X
| | (Scripts for trajectory tracking analysis)
| | distToSeg.m (Helper function)
| | MD1X_Asterisk.mlx
| | MD1X_Circle.mlx
| | MD1X_Star.mlx
| | MD1X_Workspace_Horizontal.mlx
| | MD1X_Workspace_Vertical.mlx
| |
| +---data
| | (Raw trajectory tracking data)
| | MD1X_asterisk_track_calibrated.txt
| | MD1X_circle_track_calibrated.txt
| | MD1X_star_track_calibrated.txt
| | MD1X_workspace_horiz_calibrated.txt
| | MD1X_workspace_vert_calibrated.txt
| |
| \---trajs
| (Reference trajectory generation scripts)
| circle_traj.mlx
| line_traj.mlx
| star_traj.mlx
| workspace_traj_horiz.mlx
| workspace_traj_horiz_points.mat
| workspace_traj_vert.mlx
| workspace_traj_vert_points.mat
|
+---Modeling
| +---Calculations
| | | (Calculation scripts for analyzing scaling trends and capacitance)
| | | microDelta_capacitance_approx.mlx
| | | microDelta_scaling_calculations.mlx
| | |
| | +---response_time
| | | (Script for calculating system response time)
| | | response_time.mlx
| | |
| | +---robot_scaling_trends
| | | (Data and scripts for analyzing scaling trends)
| | | microDelta comparison - Sheet1.csv (Compiled data from literature)
| | | size_trend_plot.mlx
| | |
| | \---salt_jump_forces
| | (Scripts for calculating salt jump forces)
| | salt_jump_calc.mlx
| |
| +---Mechanism Stiffness Analysis
| | (Scripts for mechanism stiffness modeling)
| | MD1X_Mechanism_Stiffness_Model.mlx
| | MD1X_Model_Stiffness.mat
| |
| +---MicroDelta Control
| | | (Arduino code for MicroDelta control)
| | | MicroDelta_Controller.ino
| | |
| | +---MD05X
| | | | (Scripts for MicroDelta-0.5X modeling and simulation)
| | | | actuator_voltage.csv
| | | | arduino_line.txt
| | | | MD05X_Forward_Kinematics.mlx
| | | | MD05X_Parameters.mlx
| | | | MD05X_Simscape.slx (Simscape model)
| | | | MD05X_Simulation_and_Modeling.mlx
| | | | MD05X_Sine_Approximator.mlx
| | | |
| | | \---trajs
| | | (Reference trajectory generation scripts)
| | | circle_pattern.mlx
| | | heart_pattern.mlx
| | | line_pattern.mlx
| | | spiral_pattern.mlx
| | | star_pattern.mlx
| | | triangle_pattern.mlx
| | | vertical_pattern.mlx
| | | x0_coords.mat
| | | x0_coords_xy.mat
| | |
| | \---MD1X
| | | (Scripts for MicroDelta-1X modeling and simulation)
| | | actuator_voltage.csv
| | | arduino_line.txt
| | | MD1X_Forward_Kinematics.mlx
| | | MD1X_Parameters.mlx
| | | MD1X_Simscape.slx (Simscape model)
| | | MD1X_Simulation_and_Modeling.mlx
| | | MD1X_Sine_Approximator.mlx
| | |
| | \---trajs
| | (Reference trajectory generation scripts)
| | circle_pattern.mlx
| | heart_pattern.mlx
| | line_pattern.mlx
| | spiral_pattern.mlx
| | star_pattern.mlx
| | triangle_pattern.mlx
| | vertical_pattern.mlx
| | workspace_pattern.mlx
| | workspace_pattern_xy.mlx
| | x0_coords.mat
| | x0_coords_xy.mat
| |
| \---Workspace Analysis
| | (Scripts for workspace analysis and rendering)
| | MD05X_Parameters.mlx
| | MD05X_Workspace_Points_Generate.mlx
| | MD05X_Workspace_Render.mlx
| | MD1X_Workspace_Render.mlx
| |
| +---simscape
| | (Simscape model)
| | MD05X_Simscape.slx
| |
| +---trajs
| | | (Export of workspace coordinates)
| | | MD05X_x0_coords.mat
| | |
| | +---MD05X
| | | (Reference trajectory generation scripts)
| | | MD05X_workspace_pattern.mlx
| | | MD05X_workspace_pattern_xy.mlx
| | | MD05X_x0_coords.mat
| | | MD05X_x0_coords_xy.mat
| | |
| | \---MD1X
| | (Reference trajectory generation scripts)
| | MD1X_workspace_pattern.mlx
| | MD1X_workspace_pattern_xy.mlx
| | MD1X_x0_coords.mat
| | MD1X_x0_coords_xy.mat
| |
| \---vars
| (Exported workspace coordinates)
| MD05X_workspace_coords.mat
|
+---Testing
| +---Calibration
| | +---MD05X
| | | (Scripts and data for calibration plots)
| | | MD05X_lines_calibrated.txt (Raw data)
| | | MD05X_Lines_Calibration.mlx
| | | MD05X_lines_uncalibrated.txt (Raw data)
| | | MD05X_line_pattern.mlx
| | |
| | \---MD1X
| | (Scripts and data for calibration plots)
| | MD1X_lines_calibrated.txt (Raw data)
| | MD1X_Lines_Calibration.mlx
| | MD1X_lines_uncalibrated.txt (Raw data)
| | MD1X_line_pattern.mlx
| |
| \---TEMA Accuracy
| (Scripts for Analyzing TEMA tracking uncertainty)
| MD01X_TEMA_Uncertainty.mlx
| MD05X_TEMA_Uncertainty.mlx
| MD05X_tema_uncertainty.txt (Raw data)
| MD1X_tema_uncertainty.txt (Raw data)
| total_uncertainty_calc.mlx
|
\---Design
(CAD files for microDelta robots)
MD05X_Robot.SLDPRT
MD1X_Robot.SLDPRT
Reproducing figures at a glance
- Pick a task (e.g., Experiments → Frequency Response → MD1X).
- Open the corresponding Live Script (e.g.,
MD1X_Bode_Plot_Data.mlx) in MATLAB. - Run the script; it loads the raw data in the same folder, processes it, and produces the plots shown in the paper.
- Use the top-level comparison scripts in
Experiments/Frequency Response/to overlay robots/conditions.
MATLAB/Toolboxes. Live Scripts use base MATLAB; analyses that call Simscape require the Simscape Multibody toolbox for
.slxmodels. GNU Octave can run many.mhelpers, but.mlxand.slxrequire MATLAB.
Provenance & citation
- How to cite the dataset: Man, Kim, & Bergbreiter (2025). The microDelta: downscaling robot mechanisms enables ultra-fast and high precision movement. Dryad. DOI: 10.5061/dryad.7pvmcvf56.
- How to cite the article: Please cite the Science Robotics paper when using data, models, or scripts.
Correspondence: sbergbre@andrew.cmu.edu
