Skip to content

Latest commit

 

History

History
27 lines (23 loc) · 1.94 KB

README.md

File metadata and controls

27 lines (23 loc) · 1.94 KB

Orienting Polygonal Parts without Sensors: An Implementation in Python

This is a web browser implmentation of Prof. Ken Goldberg's PhD Thesis Orienting Polygonal Parts Without Sensors (1993), which describes an algorithm for computing a series of squeeze actions that orient polygonal parts up to symmetry. A Java implementation of the algorithm can be found here, and for more background on the algorithm can be found here or by reading the thesis. A deployment of this web application can be viewed here: https://rieff.bair.berkeley.edu/part-feeder/.

This is written in Python using the Flask web framework, Dash and Plotly for interactive web plotting, and pymunk to simulate the squeeze actions for the animation.

Update V1.7: This now uses planck.js for clientside simulation of the squeeze and push-grasp plans for the animation to avoid putting heavy load on the server.

Description of files

The application is contained within the part-feeder folder. Inside that folder:

  • engine.py contains the functions related to the algorithm itself
  • feeder.py uses the functions in engine.py to execute the algorithm and generate the plots
  • anim.py contains the simulation of the squeeze actions using pymunk
  • explanations.py contains the text seen on the webpage
  • gallery.py contains the Gallery page generation
  • anim.js contains a full port of anim.py to Javascript using the planck.js 2D physics engine