CN116134462A - 物体封装 - Google Patents
物体封装 Download PDFInfo
- Publication number
- CN116134462A CN116134462A CN202080103805.2A CN202080103805A CN116134462A CN 116134462 A CN116134462 A CN 116134462A CN 202080103805 A CN202080103805 A CN 202080103805A CN 116134462 A CN116134462 A CN 116134462A
- Authority
- CN
- China
- Prior art keywords
- chromosome
- processor
- examples
- objects
- bounding box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Physiology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Genetics & Genomics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
- Container Filling Or Packaging Operations (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本文描述了用于确定物体封装的方法的示例。在一些示例中,一种方法包括为多个物体中的每个物体确定与最小边界框相对应的初始取向。在一些示例中,该方法包括使用初始取向利用遗传程序来确定多个物体的封装。
Description
背景技术
三维(3D)实体物体可以使用增材制造由数字模型产生。增材制造可以用于快速原型设计、模具生成、模具母版生成和短期制造。增材制造涉及连续施加构建材料层。这与通常移除材料来创建最终物体的一些加工工艺不同。在一些增材制造技术中,可以固化或熔融构建材料。
附图说明
图1是图示了用于确定封装(package)的方法的示例的流程图;
图2是可以用于封装选择的装置的示例的框图;
图3是图示了用于染色体选择的计算机可读介质的示例的框图;
图4是图示了边界框的示例和最小边界框的示例的简图;以及
图5是图示了封装的示例的简图。
具体实施方式
增材制造可以用于制造三维(3D)物体。3D打印是增材制造的示例。执行增材制造可能要依赖封装。封装是指定物体在构建体积中的布置(例如,定位、位置、取向等)的信息。构建体积是3D空间。构建体积可以对应于可以在其中执行增材制造的物理空间。增加构建体积中的封装密度可能有助于提高产量和/或降低制造成本。
在一些示例中,物体封装可以基于一个或多个目标。一个目标示例是封装密度(例如,增加或最大化封装密度)。物体封装问题可能需要大量计算才能求解,是非确定性多项式(NP)完全问题。例如,在NP完全问题中,计算复杂度可能呈指数增长。例如,在20个物体的相对较小批次中放置物体(例如,不旋转)的解空间的大小(例如,可能封装布置的数量)超过1×1018的数量级。本文描述的技术的一些示例可以为物体封装提供实用和/或接近最优的方法。例如,本文描述的一些技术可以实现在解空间上进行搜索,同时优先考虑有更大概率产生接近最优解的部分。在一些示例中,可以搜索解空间的相对较小部分。
在所有附图中,相同或相似的附图标记可以表示相似但不一定相同的元件。当在没有附图标记的情况下提及元件时,这可以泛指所述元件,而不必限于任何特定的附图。附图不一定是按比例绘制的,并且一些部分的尺寸可以被放大以更清楚地图示所示的示例。此外,附图提供了与描述相符的示例;然而,描述不限于附图中提供的示例。
图1是图示了用于确定封装的方法100的示例的流程图。方法100和/或方法100的一个或多个要素可以由装置(例如,电子设备)执行。例如,方法100可以由关于图2所描述的装置202来执行。
遗传程序是一种计算程序。例如,遗传程序可以是元启发式程序,其包括进化和/或选择机制以用于确定解。在一些示例中,遗传程序可以是人工智能中使用的技术。在一些示例中,遗传程序可以包括初始化群体、评估、选择、交叉和/或突变操作。在一些示例中,评估、选择、交叉和/或突变可以重复执行(例如,迭代地、递归地等),直到满足结束条件。在本文描述的技术的一些示例中,可以利用遗传程序来确定封装。
该装置可以为多个物体中的每个物体确定102与最小边界框相对应的初始取向。在一些示例中,可以执行确定102初始取向以初始化群体。初始取向是用于确定封装的起始取向。在一些示例中,该装置可以通过确定多个物体中的每个物体的最小边界框来确定多个物体中的每个物体的初始取向。在最小边界框中的物体取向可以是物体的初始取向。
边界框是包括一个或多个物体(例如,(多个)物体模型)的长方体。例如,边界框是一种几何框形状,其容纳在边界框尺寸之内的物体。边界框的体积可以取决于物体在边界框内的取向。例如,物体的不同取向可能会导致具有不同体积的边界框。最小边界框是容纳物体的具有最小体积的边界框。在一些示例中,该装置可以为一组物体中的每个物体确定最小边界框。例如,该装置可以计算凸包程序以确定每个物体的最小边界框。物体的最小边界框可以与物体的取向相对应。例如,物体可以以某一取向(例如,围绕x、y和/或z轴的(多个)旋转)定向以允许边界框具有最小体积。
在一些示例中,确定102初始取向可以用于确定一条或多条染色体。染色体是数据。例如,染色体可以包括表示遗传程序要解决的问题的潜在解的数据。例如,染色体可以指示封装定位。封装定位是物体在构建体积中的姿态。封装可以包括与多个物体相对应的多个封装定位。例如,染色体可以对应于和/或可以表示封装。在一些示例中,染色体可以包括指示一组物体标识符和姿态的数据。物体标识符是标识物体的信息(例如,数字、浮点数、整数、字符串、(多个)字符、名称等)。姿态是指示物体的位置和/或取向的信息。例如,姿态可以指示物体在构建体积中的位置(例如,平移)和/或物体在构建体积中的取向(例如,在一个或多个维度中的(多个)旋转)。在一些示例中,姿态可以表示为一个或多个数字(例如,浮点数、整数等)、(多个)向量、一个或多个矩阵、(多个)四元数等。在一些示例中,对于一组物体(例如,多个物体)中每个物体,染色体可以包括具有第一轴旋转(例如,x)、第二轴旋转(例如,y)和第三轴旋转(例如,z)的物体标识符。
在一些示例中,染色体可以包括顺序或序列中的每个物体的数据。在一些示例中,顺序或序列可以建立优先级队列。例如,顺序或序列可以指示物体可以被引入构建体积中的顺序。在一些示例中,顺序或序列可以标识染色体。例如,通过对染色体的一些改变,顺序或序列可能保持不变(例如,在一些类型的突变中)。在一些示例中,染色体可以包括物体标识符和相应物体从物体1到物体n的旋转。在一些示例中,染色体的顺序或序列可以是物体标识符的顺序或序列。例如,染色体的物体标识符的顺序或序列可以标识染色体。染色体标识符是标识染色体的值(例如,数字、向量、列表、数字集、有序量、级联物体标识符等)。例如,染色体标识符可以是顺序或序列(例如,物体标识符的顺序或序列)。在一些示例中,一组染色体可以表示一组潜在封装,其被描述为具有相关姿态的物体标识符序列。
群体是一批或一组染色体。初始化群体的一些方法可能会任意处理初始物体位置和/或姿态。例如,一些方法可以确定随机的初始物体位置和/或姿态。用于封装的潜在物体旋转可能受构建体积大小的限制。更大数量的潜在旋转可能意味着更大的解空间。一个或多个物体的不良初始取向可能会降低使用遗传程序确定良好封装的可能性。本文描述的技术的一些示例可以包括用于初始化物体取向的试探法。
在一些示例中,方法100可以包括基于与最小边界框相对应的初始取向来确定一条或多条染色体。例如,该装置可以将初始取向用作初始群体中一条或多条染色体的姿态。在一些示例中,染色体可以包括具有多个物体的初始取向的一组物体标识符。
在一些示例中,该装置可以基于初始取向来确定附加的初始取向。例如,该装置可以使用一个或多个受约束的随机化操作来确定初始群体的一条或多条染色体。例如,该装置可以随机化物体的顺序或序列以在初始群体中产生染色体。在一些示例中,该装置可以对初始取向应用保留最小边界框体积的一个或多个旋转以在初始群体中产生染色体(例如,以产生附加的初始取向)。例如,该装置可以应用从一组受约束的旋转中随机选择的一个或多个旋转以在初始群体中产生染色体。例如,该组受约束的旋转可以包括每个轴的90度的倍数(例如,0、90、180、270)的旋转。90度的倍数的旋转可以保留最小边界框体积。因此,该装置可以通过利用受约束的随机化操作来改变染色体的顺序和/或取向来确定初始染色体群体。
该装置可以使用初始取向利用遗传程序来确定104多个物体的封装。例如,该装置可以基于初始取向(例如,基于初始取向的初始染色体群体)执行遗传程序的一个或多个操作。例如,该装置可以基于一条或多条染色体(例如,基于初始取向确定的初始染色体群体)执行遗传程序(例如,评估、选择、交叉和/或突变)。
在执行评估时,该装置可以根据适应性度量对染色体进行评估和/或排名。适应性度量是指示染色体(例如,封装)满足一个或多个目标(例如,增加封装密度、增加所封装物体的数量、降低封装高度和/或z轴测量等)的程度的度量。例如,可以针对每条染色体(例如,封装)评估适应性度量。适应性度量的示例可以包括封装密度、所封装物体的数量和/或封装高度(例如,z高度)。在一些示例中,适应性度量可以用于对染色体进行排名或排序。在一些示例中,可以组合一批适应性度量或参数以形成封装分数,该封装分数可以用于将一个封装相对于另一个封装进行排名。在一些示例中,具有相对较大封装密度、相对较大数量的所封装物体和/或相对较小封装高度的染色体可以比其他染色体排名更高。
在执行选择时,该装置可以消除一部分染色体。例如,该装置可以消除(例如,丢弃、删除、去除、排除等)一部分排名最低的染色体(例如,一定百分比的排名最低的染色体、一定数量的排名最低的染色体等)。在一些示例中,可以基于排名对染色体进行分类。例如,染色体的第一部分(例如,染色体的第一百分比、染色体的第一数量等)可以被分类为第一类别。例如,第一部分可以是一组排名最高的染色体。染色体的第一部分可以称为精英染色体(例如,具有最佳适应性度量的一部分染色体)。在一些实例中,精英染色体的一个或多个基因(例如,(多个)物体标识符和/或(多个)姿态)可以被保留和/或传播到后续一代(例如,下一代)染色体。一代是一组染色体(例如,封装)。例如,一代可以对应于遗传程序的每次迭代。
在执行交叉时,该装置可以利用染色体的第二部分和精英染色体。染色体的第二部分可以称为交叉染色体。染色体的第二部分的排名可能在精英染色体之下。例如,该装置可以随机选择排名在精英染色体之下的染色体来选择交叉染色体。该装置可以将交叉染色体与精英染色体进行交叉。例如,该装置可以将精英染色体的一个或多个部分(例如,(多个)基因、(多个)物体标识符、(多个)姿态、(多个)位置、(多个)旋转和/或(多个)序列定位)与交叉染色体的一个或多个部分(例如,(多个)基因、(多个)物体标识符、(多个)姿态、(多个)位置、(多个)旋转和/或(多个)序列定位)进行组合以在后续一代(例如,下一代)染色体中生成子代染色体。
在执行突变时,该装置可以随机突变一个或多个精英染色体。例如,该装置可以随机改变一个或多个精英染色体的一个或多个基因(例如,(多个)物体标识符、(多个)姿态、(多个)位置、(多个)旋转、(多个)取向和/或(多个)序列定位)。待突变的染色体可以称为突变染色体。
在一些示例中,可以在多个代中保持恒定的群体大小(例如,染色体数量)。在一些示例中,群体大小可以在多个代中变化。在一些示例中,可以添加新的随机染色体。例如,可以将一组随机生成的染色体添加到精英染色体、交叉染色体和突变染色体中。例如,添加新的随机染色体可以保持恒定的群体大小。随机染色体可以有助于驱动在解空间的不同方向上的随机搜索。在一些方法中,染色体的突变可以表示为物体序列中的随机移动和/或物体取向上的随机旋转。突变阶段可以用于将精英染色体(例如,良好的解)突变为具有增加的适应性的染色体(例如,更好的解)。执行选择、交叉和/或突变可以产生后续一代染色体。
在一些示例中,方法100可以包括基于初始取向中的一个初始取向在遗传程序中执行突变。例如,该装置可以对物体的取向应用基于与最小边界框相对应的初始取向的突变。在一些示例中,执行突变可以包括执行初始取向的旋转。例如,该装置可以将旋转(例如,随机旋转)应用于基于初始取向的染色体中物体的取向。在一些示例中,旋转可以保持初始取向的最小边界框体积。例如,旋转可以旋转染色体中的物体的取向,使得旋转后物体的边界框的体积与旋转前的最小边界框的体积相同。在一些示例中,旋转可以是一个或多个轴(例如,x、y和/或z)上的90度的倍数。
在一些示例中,确定104封装可以包括选择与染色体相对应的封装。例如,方法100可以包括基于染色体(例如,一代或多代之后的染色体)来选择封装。在一些示例中,基于遗传程序选择封装,目的是增加封装密度和/或降低封装高度。例如,该装置可以选择表示具有最高排名和/或最佳适应性度量的封装的染色体。在一些示例中,该装置可以基于目标(例如,封装密度、封装高度等)或目标的组合来选择封装。例如,可以选择具有最佳目标组合(如封装密度和封装高度)的封装。
在一些示例中,可以执行封装以制造物体。例如,可以根据所确定104的封装由装置(例如,3D打印机)制造物体。例如,装置可以将封装发送到另一个设备(例如,3D打印机)或者可以执行封装以制造封装中的物体。应当注意,本文描述的技术的一些示例可以用于各种增材制造。一些增材制造技术可以是基于粉末的并且通过粉末熔融来驱动。一些增材制造技术可以包括金属打印,例如金属射流熔融。本文所描述的方法的一些示例可以用于基于粉末床熔融的增材制造,比如选择性激光熔化(SLM)、选择性激光烧结(SLS)、多射流熔融(MJF)等。
图2是可以用于封装选择的装置202的示例的框图。装置202可以是电子设备,比如个人计算机、服务器计算机、打印机、3D打印机、智能电话、平板计算机等。装置202可以包括和/或可以耦接到处理器204和/或存储器206。在一些示例中,装置202可以与增材制造设备(例如,3D打印设备)通信(例如,耦接、具有通信链路)。在一些示例中,装置202可以是3D打印设备的示例。在不脱离本文描述的技术的范围的情况下,装置202可以包括附加部件(未示出),和/或本文描述的部件中的一些部件可以被去除和/或修改。
处理器204可以是以下各项中的任一项:中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或适合于取得并执行存储在存储器206中的指令的其他硬件设备。处理器204可以获取、解码和/或执行存储在存储器206中的指令(例如,染色体确定指令212、边界框确定指令210、遗传程序指令214和/或封装选择指令216)。在一些示例中,处理器204可以包括一个或多个电子电路,该电子电路包括用于执行指令(例如,染色体确定指令212、边界框确定指令210、遗传程序指令214和/或封装选择指令216)的一个或多个功能的电子部件。在一些示例中,处理器204可以执行结合图1至图5中的一个、一些或全部图所描述的功能、操作、要素、方法等中的一个、一些或全部。
存储器206可以是包含或存储电子信息(例如,可执行指令、可执行代码和/或数据)的任何电子、磁性、光学或其他物理存储设备。存储器206可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储设备、光盘等。在一些示例中,存储器206可以是易失性和/或非易失性存储器,比如动态随机存取存储器(DRAM)、EEPROM、磁阻式随机存取存储器(MRAM)、相变RAM(PCRAM)、忆阻器、闪速存储器等。在一些示例中,存储器206可以是非暂态有形机器可读存储介质,其中,术语“非暂态”并不涵盖暂态传播信号。在一些示例中,存储器206可以包括多个设备(例如,RAM卡和固态驱动器(SSD))。
在一些示例中,装置202可以包括输入/输出接口(图2中未示出),处理器204可以通过输入/输出接口与一个或多个外部设备(未示出)通信,例如以接收和存储与要制造(例如,打印)的一个或多个物体有关的信息(例如,物体集数据208)。输入/输出接口可以包括使得处理器204能够与一个或多个外部设备通信的硬件和/或机器可读指令。输入/输出接口可以实现与一个或多个外部设备的有线或无线连接。输入/输出接口可以进一步包括网络接口卡和/或还可以包括使得处理器204能够与各种输入和/或输出设备(如键盘、鼠标、显示器、另一个装置、电子设备、计算设备等)通信的硬件和/或机器可读指令,用户可以通过这些输入和/或输出设备向装置202输入指令。
在一些示例中,存储器206可以存储物体集数据208。物体集数据208可以从外部设备获得(例如,接收)和/或可以在装置202上生成。例如,处理器204可以执行指令(图2中未示出)以从外部设备接收物体集数据208和/或在装置202上生成物体的模型。
物体集数据208可以包括指示物体和/或物体的形状(例如,3D模型、维度等)的数据。例如,物体集数据208可以指示用于封装和/或制造的一组物体。
在一些示例中,处理器204可以执行边界框确定指令210以确定与一组物体相对应的一组最小边界框。在一些示例中,确定该组最小边界框可以如关于图1所描述的那样执行。例如,处理器204可以确定物体的最小边界框以及在最小边界框中的对应物体取向。
在一些示例中,处理器204可以执行染色体确定指令212,以基于与该组物体相对应的该组最小边界框来确定一条或多条染色体。在一些示例中,基于该组最小边界框确定(多个)染色体可以如关于图1所描述的那样执行。例如,处理器204可以确定包括最小边界框中的物体取向的染色体。在一些示例中,处理器204可以基于这些取向来确定多条染色体以产生初始染色体群体。
在一些示例中,处理器204可以执行遗传程序指令214以基于(多个)染色体执行遗传程序。在一些示例中,执行遗传程序可以如关于图1所描述的那样执行。例如,处理器204可以基于(多个)染色体执行评估、选择、交叉和/或突变。例如,处理器可以在遗传程序中(例如,在突变中)旋转染色体的物体的姿态。
在一些示例中,处理器204可以执行封装选择指令216以基于遗传程序选择该组物体的封装。在一些示例中,选择封装可以如关于图1所描述的那样执行。例如,处理器204可以将封装选择为一组染色体中具有最佳适应性度量的染色体。例如,处理器204可以将封装选择为由遗传程序产生的一组染色体中具有最大封装密度和/或最小封装高度的封装。
图3是图示了用于染色体选择的计算机可读介质324的示例的框图。计算机可读介质是非暂态有形计算机可读介质324。计算机可读介质324可以是例如RAM、EEPROM、存储设备、光盘等。在一些示例中,计算机可读介质324可以是易失性和/或非易失性存储器,如DRAM、EEPROM、MRAM、PCRAM、忆阻器、闪速存储器等。在一些示例中,关于图2所描述的存储器206可以是关于图3所描述的计算机可读介质324的示例。
计算机可读介质324可以包括代码(例如,数据和/或指令)。例如,计算机可读介质324可以包括染色体数据326、染色体指令318、边界框确定指令320和/或染色体选择指令322。
染色体数据326可以包括指示多条染色体(例如,封装)的信息。例如,染色体数据326可以对应于和/或指示一组封装、一批封装、一群封装和/或多个代封装。例如,可以如本文所述的那样执行操作以确定表示封装的多条染色体。染色体可以被存储为染色体数据326。
在一些示例中,边界框确定指令320是用于使处理器确定一组物体的最小边界框的代码。例如,处理器可以执行边界框确定指令320以确定与该组物体的最小边界框相对应的取向。在一些示例中,确定最小边界框可以如关于图1和/或图2所描述的那样来完成。
在一些示例中,染色体指令318是用于使处理器基于最小边界框中该组物体的取向确定初始染色体的代码。在一些示例中,基于最小边界框中该组物体的取向确定初始染色体可以如关于图1和/或图2所描述的那样来完成。
在一些示例中,染色体指令318可以包括用于使处理器基于初始染色体执行遗传程序以产生后续一代染色体的代码。例如,染色体指令318可以包括用于使处理器执行评估、选择、交叉和/或突变(例如,迭代地和/或递归地)以产生后续一代染色体的代码。在一些示例中,基于初始染色体执行遗传程序可以如关于图1和/或图2所描述的那样执行。
在一些示例中,染色体选择指令322是用于使处理器从后续一代染色体中选择染色体以确定封装的代码。例如,染色体选择指令322可以包括用于使处理器基于相关适应性度量来选择染色体的代码。适应性度量的示例包括封装高度和/或封装密度。例如,染色体选择指令322可以使处理器从初始代之后的一代或多代的染色体中确定在封装效率和/或封装高度方面最佳的封装。在一些示例中,选择染色体以确定封装可以如关于图1和/或图2所描述的那样执行。
在一些示例中,为了确定封装,可以比较封装分数。封装分数是指示适应性度量或适应性度量的组合的分数。如下给出了封装选择的示例。假设具有对应封装分数s_A和s_B的两个封装A和B。在一些示例中,封装分数s_X可以包括参数(例如,k个参数或适应性度量):s_X={p1_X,p2_X,...,pk_X},其中,px_X是参数或适应性度量。可以使用一定数量(例如,k)的阈值:α,β,...,如果每个封装的前k-1个参数彼此相对更近(达到可调阈值),则布尔值(p1_A>p1_B)可以指示s_A是否大于s_B。例如,在对于其余参数abs(p1_A-p1_B)<α和abs(p2_A-p2_B)<β等等、并且(pk_A!=pk_B)的情况下,则布尔值(pk_A>pk_B)可以指示s_A是否大于s_B。否则,可以比较参数编号k-1。例如,在对于其余参数abs(p1_A-p1_B)<α和abs(p2_A-p2_B)<β等等、并且(pk-1_A!=pk-1_B)的情况下,则布尔值(pk-1_A>pk-1_B)可以指示s_A是否大于s_B。否则,可以对一个或多个参数(例如,pk-2_A!=pk-2_B等等)进行类似的比较,直到最终情况,其中,(p1_A>p1_B)可以指示s_A是否大于s_B。可以选择得分最高的封装。应当注意,可以在比较中使用一个参数或多个参数。
在一些示例中,计算机可读介质324可以包括用于使处理器制造所选封装的代码。例如,该代码可以使处理器执行指令和/或将指令发送到另一设备(例如,3D打印机)以制造所选封装。
图4是图示了边界框430的示例和最小边界框434的示例的简图。物体取向的初始化是可能影响使用遗传程序确定的封装密度的一个方面。在一些方法中,初始物体取向是任意的。在一些示例中,物体的边界框可以被确定为与规范轴对齐并且容纳整个物体的最小长方体。在图4中,边界框430与规范轴对齐。物体432在边界框430内以第一取向定向。如上所述,边界框体积取决于物体的取向。在图4中,处于第二取向的物体436可以适合在最小边界框434内。在一些示例中,最小边界框可以具有容纳物体的最小体积和/或可以不必与规范轴对齐。例如,在一些情况下,最小边界框可能相对于规范轴未对齐。在本文描述的技术的一些示例中,可以确定与最小边界框相对应的物体取向并将其用作遗传程序的初始取向。
图5是图示了封装540、544的示例的简图。封装540的示例各自包括69个物体。第一封装540是使用任意初始取向确定的,并且在第一构建体积538中具有270毫米(mm)的封装高度。使用基于最小边界框的取向确定的第二封装544在第二构建体积542中具有260mm的封装高度。在一些示例中,使用来自最小边界框的取向来初始化取向可能会导致更好的封装(具有更大的封装密度和/或更小的封装高度)和/或可能比来自任意取向的封装花费更少的时间来计算。
在本文描述的技术的一些示例中,可以在染色体突变期间应用体积保留旋转。例如,体积保留旋转可以是一组四个潜在旋转(例如,0、90、180、270)中的旋转,因为任何轴上的90度旋转都可以保留最小边界框体积。因此,在一些情况下可能不会使用任意突变,因为任意突变不太可能导致最小边界框体积。如图5所示,将最小边界框用于初始物体取向可以提供比任意初始取向更好的封装密度结果。
如本文所使用的,术语“和/或”可以指一个或多个项。例如,短语“A、B和/或C”可以指以下任何一种情况:A(无B和C)、B(无A和C)、C(无A和B)、A和B(无C)、B和C(无A)、A和C(无B)、或者所有A、B和C。
虽然本文描述了各种示例,但是本公开不限于这些示例。本文所描述的示例的变型可以在本公开的范围内。例如,本文描述的示例的方面或要素可以被省略或组合。
Claims (15)
1.一种方法,包括:
为多个物体中的每个物体确定与最小边界框相对应的初始取向;以及
使用所述初始取向利用遗传程序来确定所述多个物体的封装。
2.如权利要求1所述的方法,进一步包括基于与所述最小边界框相对应的所述初始取向确定染色体。
3.如权利要求2所述的方法,进一步包括基于所述染色体执行所述遗传程序。
4.如权利要求2所述的方法,其中,所述染色体包括具有所述多个物体的所述初始取向的一组物体标识符。
5.如权利要求1所述的方法,其中,所述最小边界框相对于规范轴未对齐。
6.如权利要求1所述的方法,进一步包括基于所述初始取向中的第一初始取向在所述遗传程序中执行突变。
7.如权利要求6所述的方法,其中,执行所述突变包括执行所述第一初始取向的旋转。
8.如权利要求1所述的方法,其中,所述旋转保持所述第一初始取向的最小边界框体积。
9.如权利要求8所述的方法,其中,所述旋转包括在一个或多个轴上的90度的倍数。
10.一种装置,包括:
存储器;
处理器,耦接到所述存储器,其中,所述处理器用于:
基于与一组物体相对应的一组最小边界框确定染色体;
基于所述染色体执行遗传程序;以及
基于所述遗传程序选择该组物体的封装。
11.如权利要求10所述的装置,其中,所述处理器用于在所述遗传程序中旋转所述染色体的物体的姿态。
12.如权利要求10所述的装置,其中,所述处理器用于确定与该组物体相对应的该组最小边界框。
13.一种存储有可执行代码的非暂态有形计算机可读介质,包括:
用于使处理器确定一组物体的最小边界框的代码;
用于使所述处理器基于所述最小边界框中该组物体的取向确定初始染色体的代码;
用于使所述处理器基于所述初始染色体执行遗传程序以产生后续一代染色体的代码;以及
用于使所述处理器从所述后续一代染色体中选择染色体以确定封装的代码。
14.如权利要求13所述的计算机可读介质,其中,用于使所述处理器选择所述染色体的代码包括用于使所述处理器基于相关适应性度量来选择所述染色体的代码。
15.如权利要求13所述的计算机可读介质,其中,所述适应性度量包括封装高度。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/049553 WO2022050960A1 (en) | 2020-09-04 | 2020-09-04 | Object packings |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116134462A true CN116134462A (zh) | 2023-05-16 |
Family
ID=80491387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080103805.2A Pending CN116134462A (zh) | 2020-09-04 | 2020-09-04 | 物体封装 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230316165A1 (zh) |
EP (1) | EP4208826A4 (zh) |
CN (1) | CN116134462A (zh) |
WO (1) | WO2022050960A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4106839B2 (ja) * | 1999-12-27 | 2008-06-25 | コニカミノルタホールディングス株式会社 | 3次元形状データにおける面生成装置 |
EP2800064B1 (en) * | 2013-04-30 | 2022-04-20 | Dassault Systèmes | A computer-implemented method for manipulating three-dimensional modeled objects of an assembly in a three-dimensional scene |
CN103473617B (zh) * | 2013-09-17 | 2016-07-06 | 四川航天系统工程研究所 | 多种物资放入多规格货包的三维装载全局优化方法及系统 |
CN104504468B (zh) * | 2014-12-19 | 2018-03-13 | 西安电子科技大学 | 基于三维移动模式序列与密母算法的三维装箱方法 |
WO2020122876A1 (en) * | 2018-12-11 | 2020-06-18 | Hewlett-Packard Development Company, L.P. | Part packing based on agent usage |
WO2020131046A1 (en) * | 2018-12-19 | 2020-06-25 | Hewlett-Packard Development Company, L.P. | Part packing |
WO2020159469A1 (en) * | 2019-01-28 | 2020-08-06 | Hewlett-Packard Development Company, L.P. | Part packing with diffusion auras |
-
2020
- 2020-09-04 EP EP20952651.6A patent/EP4208826A4/en active Pending
- 2020-09-04 WO PCT/US2020/049553 patent/WO2022050960A1/en unknown
- 2020-09-04 CN CN202080103805.2A patent/CN116134462A/zh active Pending
- 2020-09-04 US US18/024,678 patent/US20230316165A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022050960A1 (en) | 2022-03-10 |
EP4208826A1 (en) | 2023-07-12 |
US20230316165A1 (en) | 2023-10-05 |
EP4208826A4 (en) | 2024-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107635750B (zh) | 在构建包络中确定待打印的部件的布置的方法和设备 | |
US10108751B2 (en) | Iterative packing optimization | |
CN106273441B (zh) | 打印温度的控制方法及其装置 | |
US9798835B2 (en) | Groups of faces that form a geometrical pattern | |
CN110100265B (zh) | 3d制造部件的布置确定 | |
KR102559913B1 (ko) | 가상 카메라를 이용한 카메라 움직임 구현 방법 | |
US20220040925A1 (en) | Part packing with diffusion auras | |
US11975483B2 (en) | Part packing | |
WO2020122876A1 (en) | Part packing based on agent usage | |
Sreela et al. | Action recognition in still images using residual neural network features | |
CN117094203A (zh) | 通过机器学习生成棱柱cad模型 | |
CN116134462A (zh) | 物体封装 | |
CN113313140B (zh) | 基于深度注意力的三维模型分类和检索方法及装置 | |
US20230368039A1 (en) | Object packings | |
US20230325680A1 (en) | Chromosome expiration | |
Odaker et al. | GPU-accelerated real-time mesh simplification using parallel half edge collapses | |
US20240103488A1 (en) | Object packings with volume subsets | |
US20240168711A1 (en) | Object group packing | |
CN115511731A (zh) | 一种噪声处理方法和噪声处理设备 | |
US12026923B2 (en) | Object model encodings | |
US20230401357A1 (en) | Object packing genetic procedures | |
WO2023086084A1 (en) | Build volume portions | |
Canellidis et al. | Effective nesting of layer manufacturing fabricated parts using a genetic algorithm and a bottom-left ray casting procedure | |
TWI811090B (zh) | 裝箱方法以及電子裝置 | |
Fainstein et al. | DUDF: Differentiable Unsigned Distance Fields with Hyperbolic Scaling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |