This repo contains the implementation of estimating the structural stability of block stacking assembly.
- Gurobi
- Numpy
- Matplotlib
Each assembly design is defined in a json file. Each step includes the brick x, y, z positions and orientation, along with the brick id, which is defined in the lego_library.json
. Examples of Lego designs are available in ./test_lego/
.
The StableLego dataset is available at here.
Each object in StableLego has
vox.npy
: the voxel representation of the object in a 3D matrix form.task_graph.json
: the Lego assembly design of the object.stability_score.npy
: the stability analysis result of the object with the given Lego layout design.vis.png
: the visualization of the stability score.
Examples of unstable Lego structures in StableLego. Top: original object. Middle: stability analysis of the Lego layout. Bottom: Lego assembly in real.
- Configurate the config file
./config.json
.- Set
Lego_fname
to the desired assembly design file name. Visualize_Analysis
: set to1
if you want to visualize the analysis result.Print_Log
: set to1
if you want to print out the solver log.
- Set
python3 stability_analysis.py
.
The stability analysis can be extended to account for external loads.
If you find this repository helpful, please kindly cite our work.
@article{liu2024stablelego,
title={StableLego: Stability Analysis of Block Stacking Assembly},
author={Liu, Ruixuan and Deng, Kangle and Wang, Ziwei and Liu, Changliu},
journal={arXiv preprint arXiv:2402.10711},
year={2024}
}
This project is licensed under the MIT License.