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{10556686,
author={Liu, Ruixuan and Deng, Kangle and Wang, Ziwei and Liu, Changliu},
journal={IEEE Robotics and Automation Letters},
title={StableLego: Stability Analysis of Block Stacking Assembly},
year={2024},
volume={9},
number={11},
pages={9383-9390},
keywords={Assembly;Stability analysis;Force;Stacking;Structural engineering;Three-dimensional displays;Presses;Assembly;performance evaluation and bench marking;robotics and automation in construction},
doi={10.1109/LRA.2024.3414281}}
This project is licensed under the MIT License.