US 12,443,772 B1
Method for automatically generating assembly and disassembly plans
Saigopal Nelaturi, Mountain View, CA (US); Christian Wilhelm Fritz, Menlo Park, CA (US); and Johan de Kleer, Los Altos, CA (US)
Assigned to C-INFINITY, INC., Mountain View, CA (US)
Filed by C-INFINITY, INC., Mountain View, CA (US)
Filed on Apr. 11, 2025, as Appl. No. 19/176,726.
Claims priority of provisional application 63/685,661, filed on Aug. 21, 2024.
Claims priority of provisional application 63/633,465, filed on Apr. 12, 2024.
Int. Cl. G06F 30/17 (2020.01)
CPC G06F 30/17 (2020.01) 20 Claims
OG exemplary drawing
 
1. A method comprising:
accessing a virtual assembly model of an assembly, the virtual assembly model including a set of virtual components comprising a first virtual component and a second virtual component;
for the first virtual component:
defining a first virtual shell inset from a first surface of the first virtual component;
generating a first constellation of rays emanating from the first virtual shell;
virtually traversing the first virtual component along a first ray, in the first constellation of rays, extending in a first direction;
in response to the first virtual component avoiding collision with another virtual component, in the set of virtual components, when the first virtual component is traversed along the first ray, identifying the first direction as a first unrestricted escape direction for the first virtual component in a list of guards corresponding to the virtual assembly model;
virtually traversing the first virtual component along a second ray, in the first constellation of rays, extending in a second direction; and
in response to the first virtual shell avoiding collision with another virtual component, in the set of virtual components, when the first virtual component is traversed along the second ray, identifying the second direction as a second unrestricted escape direction for the first virtual component in the list of guards;
for the second virtual component:
defining a second virtual shell inset from a second surface of the second virtual component;
generating a second constellation of rays emanating from the second virtual shell;
virtually traversing the second virtual component along a third ray, in the second constellation of rays, extending in a third direction; and
in response to the second virtual component colliding with the first virtual component when the second virtual component is traversed along the third ray, identifying the third direction as a third restricted escape direction for the second virtual component in the list of guards; and
in response to identifying the first unrestricted escape direction for the first virtual component and in response to identifying the first virtual component blocking the second virtual component in the third restricted escape direction:
generating a first virtual disassembly sequence, for the virtual assembly model, that specifies:
removal of the first virtual component, from the virtual assembly model, in the first direction prior to removal of the second virtual component from the virtual assembly model; and
removal of the second virtual component, from the virtual assembly model, in the third direction following removal of the first virtual component.