Design Optimization

Project Description

This software toolkit implements a framework for design optimization, with emphasis on soft-robotics. Although the associated publication and examples focus on optimizing a robot design, the toolbox can also be used to calibrate the parameters of hyperelastic models.

GitHub repository

In terms of architecture, the toolbox features three main parts:

  • A Configuration module, where the user specifies a parametric design created in Gmsh through the Python 3 interface that grants access to the constructive geometry engine used by Gmsh. The user specifies the parameters that will be explored during the optimization loop, including the corresponding intervals.
  • A Design Optimization Loop, where a user configured scene is run in SOFA for each parameter set (configuration), evaluating the fitness functions associated with the optimization problem. Surface and volumetric meshes are generated for each configuration on the fly, so the process is fully automated. Currently, we use Optuna as the solver for multi-objective optimization. However, other solvers can be easily integrated, which is part of the ongoing work.
  • A Results Visualization module, where the user has the ability to visualize the Pareto Front resulting from the problem, with the ability to inspect design parameters, etc.

This toolkit provides an example for the parametric design optimization of a soft finger. This example illustrates how to couple heuristic search and automatic mesh generation for efficiently exploring the soft finger geometry. This work also introduce scripts for automatically generating the molds necessary to manufacture a given design.

Eventually, the toolbox could become a platform for sharing parametric SOFA scene models with robotic modules, whose dimensions can be rapidly optimized for personal use.

Related publications

Back to the plugin list

Related Projects

Back to Top