DOI: 10.5281/zenodo.7930099
title: Supplementary codes and datasets for "Wang tiles enable combinatorial design and robot-assisted manufacturing of modular mechanical metamaterials"

description: This repository provides data and codes for manuscript “Wang tiles enable combinatorial design and robot-assisted manufacturing of modular mechanical metamaterials” by M. Doškář, M. Somr, R. Hlůžek, J. Havelka, J. Novák, and J. Zeman, published first as a preprint arXiv:2305.09280 at arXiv.org; see the actual description of the Zenodo entry for the latest reference. This repository contains: MATLAB and C++ source codes for combinatorial design and numerical analyses (folder <code>./numerics/</code>), experimental data (folder <code>./experiments/</code>), 3D models of parts used in robotic-assembly (folder <code>./models/</code>), a control script for robotic assembly (folder <code>./robotics/</code>). <strong>Numerics</strong> All simulations were performed with an in-house MATLAB code, which extends the finite element toolbox for finite strain calculations accompanying the work of van Bree, S. E. H. M., Rokoš, O., Peerlings, R. H. J., Doškář, M., & Geers, M. G. D. (2020). A Newton solver for micromorphic computational homogenization enabling multiscale buckling analysis of pattern-transforming metamaterials. Computer Methods in Applied Mechanics and Engineering, 372, 113333. In particular, this snapshot corresponds to a cleaned-up version (excluding files unrelated to the publications) of commit <code>21cfc2e9</code>. The MATLAB codebase contains MEX files written in C++ to accelerate selected procedures. In order to run any code, these MEX files must be compiled first. We use CMake build automation, with the main <code>CMakeLists.txt</code> located in <code>./numerics/mex</code>. Combinatorial search was performed by the <code>RUN_modular_exploration.m</code> script; see definition of problems with the script. The results of the enumerations, stored in <code>./dat/exploration</code>, were analysed with <code>POST_modular_S_v3.m</code>, identifying layouts leading to the extreme (min/max) tilt angles. Comparison against experimental measurements was facilitated by a series of scripts <code>POST_DIC_{...}.m</code>. First, run <code>POST_DIC_step1_extract_points_in_mesh.m</code> to identify locations.mat. Next, post-process extensometer data with <code>POST_DIC_step2_merge_extensometer_data.m</code>, and use <code>POST_DIC_step3_impose_extracted_BC.m</code> to parse DIC results in a format suitable for imposing BC later in this script. Finally, comparison between experimental and computed displacements is provided by <code>POST_DIC_step4_modular_comparison_experiments.m</code>. (Note that the particular files need to be manually provided in the “Compute deformation process” part of <code>POST_DIC_step4_modular_comparison_experiments.m</code>.) <strong>Experimental data</strong> This folder contains data from (i) an unixaial tension test of a dogbone specimen (both from a MTS loading machine and DIC data) and (ii) two measurement sessions extracting the L-shape domain responses using DIC (<code>20_11_30 - Hluzek_Elka_newassemblyplan</code> and <code>21_04_12 - Hluzek_ Elka_quarters</code> with lower loading threshold). For post-processing, see the above-mentioned <code>POST_DIC_{...}.m</code> scripts. <code>*.mat</code> files present directly in <code>./experiments/</code> folder were obtained and are need by those scripts. <strong>3D models</strong> The folder contains geometrical models for individual parts needed for robot-assisted assembly of module molds for casting. This includes: a silo extension to store more tiles (file <code>silo_extension.stl</code>), formwork modules around the main structure for the purpose of casting silicone (file <code>tile_formwork.stl</code>), all types of tiles for the inside structure (file <code>tile_inside_types.stl</code>), a spacer shaped for YuMi base to ensure correct distance of the silo and build plate (file <code>yumi_base_1.stl</code>), a spacer shaped for YuMi base to ensure correct distance of the silo and build plate (file <code>yumi_base_2.stl</code>), a spacer shaped for YuMi base to ensure correct distance of the silo and build plate (file <code>yumi_base_3.stl</code>), connection for spacers (file <code>yumi_base_4.stl</code>), spacer holding a silo and the build plate (file <code>yumi_base_5.stl</code>), YuMi grippers with extensions to hold the tiles (file <code>grippers_extend.st</code>). <strong>Robotics</strong> The folder contains a single file with a script created in RobotStudio (RobotWare Version: 6.08.01.00, SmartGripper Version: 3.55.0000.00) to assemble the plan with YuMi IRB 14000-0.5/0.5 left hand. <strong>Acknowledgement</strong> The related research, experiments, and code development were supported by the Czech Science Foundation, project No. 19-26143X.