The idea behind this project is to create an interactive system between a human and a computer that efficiently tracks the assembly process without hindering the workflow of the human operator. This simple tracking system can save many hours of laborious video annotation that is traditionally required in the process of assembly sequence optimization and design for assembly prototyping.
While such systems already exist most of them are stuck to one rigid predefined assembly sequence. This system allows one to explore different assembly sequences, to select bad sequences, remembering them for future users and also affords the user the opportunity to return to a feasible state in the assembly.
The assembly component connectivity graph is the only input required by the system. In a commercial setting this can be directly extracted from a CAD model of the assembly.
This AND/OR Tree is the heart of the system. The tree captures all possible assembly sequences - feasible and infeasible. This tree is automatically generated from the Connectivity Graph.
Each node represents a sub-assembly among all possible sub-assemblies in final subassembly.
The hierarchy shows the direction of assembly, wherein addition of each new piece, takes the system one assembly step further.
Geometrical Infeasibility is when two sub-assemblies have no connectivity in the connectivity according to the connectivity graph.
Mechanical Infeasibility is when a previous connection makes further connections impossible.
Yellow Boxes depict which objects the system thinks can be assembled next. Over time, the system understands which ones are truly feasible. We can see as more infeasible sequences are found, better suggestions are depicted.
expt_6_comp.mp4
A heuristic is any approach to problem solving or self-discovery that employs a practical method that is not guaranteed to be optimal but is nevertheless sufficient for reaching an immediate, short-term goal or approximation.
The system allows an expert to encode such heuristics into the graph. We find the set of nodes that specify a certain user-defined critera as infeasible. The system automatically sets the correct edges to be infeasible.
- The left and right handles must be attached only after all internal parts have been connected.
- The battery must be assembled in the very end.
- Extract final feasible graph.
- Apply dynamic programming approach to finding the shortest time sequence to time weighted tree
- Realsense RGBD camera.
Libraries required:
- PyRealsense
- networkx
- OpenCv
- Plotly
- Matplotlib
- Numpy
- Sci-Py
- Pickle