/Kinegami

Given a D-H specification of a kinematic chain robot, the algorithm generates a crease pattern that folds into a kinematically equivalent robot.

Primary LanguageMATLABOtherNOASSERTION

Kinegami

Given a Denavit-Hartenberg (D-H) specification of a kinematic chain robot, the program generates a crease pattern that folds into a kinematically equivalent robot with compliant joints. The program takes in the D-H specification and assigns the corresponding joint to a location that is sufficiently far from other joints while keeping the same kinematic properties. Then an origami link inspired by Dubin's path method is created to connect every two consecutive joints.

GIT_KinegamiFlowchart

To construct the D-H specification, follow the variable definition ("Link length (a)", "Link twist (α)", "Joint offset (d)", and "Joint angle (θ)") and numbering system of the following kinematic chain mechanism schematic drawing (for more detail, please read "W. Khalil and E. Dombre, Modeling, identification and control of robots") to form a table.

GIT_DH

Our Kinegami algorithm recruits a catalogue of parameterized modules. The folded state of the origami module, its spacial operator representation, and its crease pattern is shown here: (a) the origami prism tube, (b) the twist fitting, (c) the elbow fitting, (d) the prismatic joint, (e) the revolute joint, (f) partial close-up of an elbow fitting and (g) partial close-up of a revolute joint.

GIT_OrigamiModule

In addition, it provides the additional contribution of automatically choosing the relevant modules (with design parameters that control their compliance) and composing them into a non-self-intersecting single sheet pattern, thus reducing the design problem into simply one of abstract specification. The resulting pipeline does not require additional human input beyond the D-H specification. However, its algorithmic steps are sufficiently transparent to facilitate the integration of designers' alternative modules or more suitably optimized compositions when desired.

User Guide

Kinegami runs on MATLAB (works on version MATLAB_R2021a).

To intialize submodules - which contain necessary files for .dxf file generation and spherical bounding and optimization - open terminal on your system, change the working directory to the synced folder, and enter git submodule update --init.

Run scripts Kinegami_******.m for existing examples and change parameters if desired. To create your kinematic chain robot, fill out the Kinegami_Template.m file in this order:

  1. Design the regular polygon shape (the number of sides "nside" and circumradius "r") as the tubular origami base
  2. Determine the number of joints for your robot; fill in the number of joints plus one (the fingertip) in variable "n."
  3. Fill in the DH parameters specifications for variable "D" following the joint design.
  4. Specify joints information, all variables that contain "??," including TYPE, maximum joint range, initial joint configurations, etc.
  5. In addition, modify the user specifications for crease pattern generation, including DXF printing and segmentations.

For a more comprehensive understanding, reference supporting functions. The algorithm requires "fSolve" from the MatLab Optimization Toolbox. Please install the add-on Optimization Toolbox.

Laser cutting instructions

The crease pattern generated by the algorithm can be output as a .dxf file. Its unit is in meters. The blue lines indicate the mountain folds, the red indicates the valley folds, and the black lines show the border edges. We then cut our specimen with the "PLS 4.75" laser cutting machine. We perforated the paper for the blue and red lines by setting the machine parameters to be (power 10, speed 20, ppi 25). For the black line, we cut the paper by setting the machine parameters to be (power 10, speed 20, ppi 750). The paper we use is the 8 mils thick Durilla synthetics paper with polyester finish (CTI Paper, USA).

Acknowledgement

This work was supported by the Army Research Office under the SLICE Multidisciplinary University Research Initiatives Program award under Grant #W911NF1810327, and in part by the National Science Foundation under Grant #1845339. In addition, we thank Shelly Wu for her contributions in the documentation.

Credit

This application uses Open Source components. You can find the source code of their open source projects along with license information below. We acknowledge and are grateful to these developers for their contributions to open source.

Package: dxflib, License
Package: Bounding-Spheres-And-Circles, License

License

This code is released using the Penn Software License. Please refer to LICENSE.md for details.