Automatic Electromechanical Design System for Foldable Robots
This repository shares the code and technical details of the research work only, for more information, please check our paper submitted to ICRA2020 or my engineering journal.
This research studies human computer interaction in terms of developing a robot compiler to create electromechanical design for foldable robots. The work presents an integrated design-to-fabrication method for foldable electromechanical devices that rethinks the merging of mechanical and electrical designs. The mechanical substrate of this device can carry electrical functionality; the electrical circuits are parts of the device body.
Motivation
Printable or foldable robots are becoming a feasible approach for the goal of building robots rapidly with lower cost. While the threshold of the requirement of knowledge for the design and fabricate foldable robots is a barrier to enable the public to create personalized robots, a system doing electrical and mechanical design from a limited amount of user effort is required. In order to be beneficial to the general public, a long-term goal is to develop a compiler that allows people to create a robot with the desired functions.
Contribution
This repository presents two software contributions from the technical perspective. For more information of the contribution from the research perspective, please see the paper.
- DFM (design for manufacturing) software package for the fabrication process we developed.
- PCB software package generates electrical routing from board outlines converted from an arbitrary mechanical design.
System Pipeline
Method
DFM software package
This software package takes the electrical design and the mechanical design of a foldable robot as inputs and outputs such drawing file that makes users ready to proceed the fabrication. We use the 2-D drawing file with extension of dxf to represent the electromechanical design of a foldable robot. Such drawing are designed to contain multiple layers meaning different fabrication types.
The software converts each wiring information into wiring patterns onto the mechanical drawing. The patterns can be tuned through user input. The default wiring pattern turns a single wire in the electrical design to a wider wire with three layers. The reason is to remove extra conductive material during the fabrication when users print such robot on a conductive material.
PCB osftware package
This software package takes user input of electrical netlist and mechanical design, outputs an electrical design file with wiring information. We utilize the auto-router FreeRouting to generate wiring information that can be passed to the DFM software package. We use the electrical design file with extension of dsn to represent the PCB layout. The package imports the mechanical design from a drawing, treats it as PCB outlines and wiring keepout areas.
Implement My Work
DFM software package
For testing:
cd EEME_design
python3 roco_electrical.py
Call the function roco_electrical.roco_add_ee for arbitrary design. Arguments:
-
me_drawing: mechanical drawing file (
dxffile, please make sure everything need to cut is in "Cut" layer) -
CSV file that describes your netlist, one can also change it by modifying the information in
roco_dsn.py -
Electrical modules footprint library
-
The directory of
dsnwriterpackage (default under same directory of EEME_design) -
Optional parameters:
- trace_width: width of the wiring pattern
- iso_size: size of the isolation pattern
- cross_size: size of the placement pattern
For fabrication process, please see the paper and demo video.
Demo
One can find demo viedo here


