Skip to main content

Currently, in this lab, we are looking into creating robots using origami-inspired parts, made out of paper-like materials and various fold patterns. Eventually, these parts could become cheaper alternatives to traditional materials and machine parts. However, it is hard to predict how these parts will move and bend because the paper and paper-like materials used in origami are not rigid. In reality, they have a certain degree of freedom and can deform. We need to know how they will behave in real life under different conditions. The goal of my project is to create a program using MATLAB that will track a 2D camera image of the faces on a 3D origami structure and calculate, using projective geometry, the fold angles between each face as well as their relative positions. The theoretical fold face and angle assumes that the faces are rigid, but the calculated fold face and angle may deviate due to deformation. By comparing the theoretical and calculated values, we can observe how the actual behavior of the origami differs. 

I studied Thomas Hull’s Projective Geometry Mathematica Notebook, which applies the standard method from Geometry by Brannan, Esplen, and Gray, to write my MATLAB program. I tested my program on rigid polygons with angle mounts that represent the folded faces of an origami structure. I then created a camera stand that takes in the 2D images of polygons from directly above. These 2D images are the projections of folded polygon faces. My program then extracts the corner points of each projection and organizes them to solve for the folded polygon face.

Eventually, this program will take in more complex origami structures such as the magic ball and the square twist, which have higher deformation in the faces and thus higher error. This error can be analyzed for a better sense of how these structures move and behave.  

This was my first time using both projective geometry and the coding languages, so I became familiar with debugging and troubleshooting. It better prepared me for the errors that I will run into frequently in the future as a computer science student. I also studied a couple algorithms, some which I have touched on in the past, and others that I might come across later on in my courses. Overall, working in a lab on this project allowed me to experience what research is like.

Currently, in this lab, we are looking into creating robots using origami-inspired parts, made out of paper-like materials and various fold patterns. Eventually, these parts could become cheaper alternatives to traditional materials and machine parts. However, it is hard to predict how these parts will move and bend because the paper and paper-like materials used in origami are not rigid. In reality, they have a certain degree of freedom and can deform. We need to know how they will behave in real life under different conditions. The goal of my project is to create a program using MATLAB that will track a 2D camera image of the faces on a 3D origami structure and calculate, using projective geometry, the fold angles between each face as well as their relative positions. The theoretical fold face and angle assumes that the faces are rigid, but the calculated fold face and angle may deviate due to deformation. By comparing the theoretical and calculated values, we can observe how the actual behavior of the origami differs. 

I studied Thomas Hull’s Projective Geometry Mathematica Notebook, which applies the standard method from Geometry by Brannan, Esplen, and Gray, to write my MATLAB program. I tested my program on rigid polygons with angle mounts that represent the folded faces of an origami structure. I then created a camera stand that takes in the 2D images of polygons from directly above. These 2D images are the projections of folded polygon faces. My program then extracts the corner points of each projection and organizes them to solve for the folded polygon face.

Eventually, this program will take in more complex origami structures such as the magic ball and the square twist, which have higher deformation in the faces and thus higher error. This error can be analyzed for a better sense of how these structures move and behave.  

This was my first time using both projective geometry and the coding languages, so I became familiar with debugging and troubleshooting. It better prepared me for the errors that I will run into frequently in the future as a computer science student. I also studied a couple algorithms, some which I have touched on in the past, and others that I might come across later on in my courses. Overall, working in a lab on this project allowed me to experience what research is like.