A three-dimensional space discretization simulation method for general cargo stowage
By using a three-dimensional discretization simulation method and calculating voxel scale coefficients and load coupling matrices, the problems of three-dimensional space utilization and load safety in logistics transportation are solved, and efficient cargo loading planning and safety assessment are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAKE XINCHUAN TECHNOLOGY (QINGDAO) CO LTD
- Filing Date
- 2026-04-30
- Publication Date
- 2026-07-21
Smart Images

Figure CN122433409A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of logistics simulation and intelligent loading technology, and in particular relates to a three-dimensional spatial discretization simulation method for loading of general cargo. Background Technology
[0002] General cargo loading is a crucial link in logistics transportation, involving the rational loading of goods of different sizes and weights into containers, ship holds, and other carriers. Traditional loading methods mainly rely on manual experience and two-dimensional planar planning, making it difficult to accurately assess three-dimensional space utilization and load-bearing safety. With the expansion of logistics scale and the increase in cargo types, traditional methods face problems such as low loading efficiency, serious space waste, and uneven distribution of load-bearing capacity.
[0003] In existing technologies, some loading methods employ heuristic or genetic algorithms for spatial optimization. These methods typically treat cargo as rigid blocks, neglecting the cumulative impact of cargo mass distribution on the underlying load-bearing structure. When multiple layers of cargo are stacked, the bottom layer may experience localized overload due to the concentrated mass of the upper layers, leading to cargo damage or transportation safety hazards. Existing methods lack the ability to perform refined three-dimensional spatial modeling when dealing with irregular cargo and complex constraints, making it impossible to accurately calculate the load-bearing coupling relationships between cargo. While finite element analysis is used to assess load-bearing stress, finite element mesh generation depends on the specific cargo layout, requiring remodeling and calculation for each adjustment of the loading scheme, resulting in high computational costs and unsuitability for dynamic loading scenarios. Furthermore, the lack of analysis of the loading space topology makes it impossible to quickly identify available space and generate a reasonable loading sequence when cargo is dynamically added or removed.
[0004] Therefore, a technical solution is needed that can adaptively discretize the space of container carriers, calculate the load coupling relationship in real time, identify the load over-limit area, and generate the loading sequence based on spatial topological features, so as to improve the space utilization and load safety of general cargo loading. Summary of the Invention
[0005] To address the shortcomings of existing technologies, this invention provides a three-dimensional spatial discretization simulation method for general cargo loading, which solves the aforementioned problems.
[0006] To achieve the above objectives, the present invention provides a three-dimensional spatial discretization simulation method for general cargo loading, comprising the following steps: Obtain the external dimensions, mass distribution, and spatial boundaries of the cargo to be loaded; The voxel scale coefficient is calculated based on the characteristic value distribution of the cargo's external dimensions. The voxel scale coefficient is then used to perform three-dimensional discretization of the spatial boundary of the container carrier, generating multiple sets of voxel meshes and establishing spatial nesting relationships. The area of the vertical projection overlap region of the voxel unit is calculated based on the spatial nesting relationship and used as a weighting coefficient to construct the bearing coupling matrix; Select the cargo, determine the voxel units occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficients, and decompose the cargo's mass distribution into voxel units to form a mass vector. Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of the voxel elements exceeding the load limit is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable. Extract unmarked and unoccupied voxel units to construct a connected graph. Perform topological analysis on the connected graph to obtain gap topological features. Calculate the isomorphism between the gap topological features and the topological description of the dimensions of the cargo to be loaded. Generate the cargo loading sequence based on the isomorphism. Load the cargo according to the cargo loading sequence and output the loading scheme.
[0007] Based on the characteristic value distribution of the cargo's external dimensions, voxel scale coefficients are calculated. These voxel scale coefficients are then used to perform three-dimensional discretization of the container's spatial boundary, generating multiple sets of voxel meshes and establishing spatial nesting relationships, including: A size sample sequence is constructed for the external dimensions of the cargo to be loaded. Kernel density estimation is performed on the size sample sequence to obtain the size probability density function. The size values corresponding to the local maxima points are extracted from the size probability density function as the feature value distribution. Calculate the ratio of each characteristic dimension value in the eigenvalue distribution to the maximum side length of the container space boundary, and use the reciprocal of the ratio as the voxel scale coefficient; The container space boundary is discretized in three dimensions using a voxel scale coefficient. The container space boundary is divided into cubic units with a side length equal to the reciprocal of the voxel scale coefficient. Multiple sets of voxel meshes are generated and each voxel unit is assigned a spatial coordinate index and a voxel scale identifier. Traverse multiple sets of voxel meshes, calculate the 3D coordinate envelope range corresponding to the spatial coordinate index of any voxel element, determine whether the spatial coordinate index of other voxel elements is within the 3D coordinate envelope range, establish nested hierarchical associations between voxel elements within the range and the calculated voxel elements and record them as nested relation tuples, and summarize the nested relation tuples to construct a tree topology as spatial nesting relations.
[0008] The area of the vertical projection overlap region of the voxel unit is calculated based on the spatial nesting relationship and used as a weighting coefficient to construct the bearing coupling matrix, including: Extract nested relationship tuples from spatial nesting relationships, and parse nested relationship tuples to obtain voxel scale identifiers of child-level voxel units and parent-level voxel units; Calculate the bottom projection area of the child-level voxel unit and the parent-level voxel unit based on the voxel scale identifier, and calculate the ratio of the bottom projection area of the child-level voxel unit to the parent-level voxel unit as the area of the vertical projection overlap region of the voxel unit. Count the total number of voxel elements in multiple voxel meshes, create a two-dimensional matrix with the same number of rows and columns as the total number of voxel elements as the initial structure to carry the coupling matrix, and map the row index and column index of the initial structure to the voxel element identifiers in multiple voxel meshes respectively. Traverse the nested relationship tuples in the spatial nesting relationship, extract the sub-level voxel unit identifiers and parent-level voxel unit identifiers in the nested relationship tuples, locate the intersection of the row index corresponding to the sub-level voxel unit identifier and the column index corresponding to the parent-level voxel unit identifier in the initial structure of the bearing coupling matrix, fill the intersection position with the area of the vertical projection overlap region of the voxel unit as the weight coefficient, and construct the bearing coupling matrix.
[0009] Select cargo, determine the voxel units occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficients, and decompose the cargo's mass distribution into voxel units to form a mass vector, including: Select the cargo and obtain its three-dimensional shape and mass data. Compare the three-dimensional shape with the voxel scale coefficient to determine the three-dimensional coordinate range of the voxel units occupied by the cargo in multiple voxel grids. For each voxel unit within the three-dimensional coordinate range, determine the spatial topological relationship between the voxel unit and the cargo outline boundary. Voxel units that are completely inside the cargo outline boundary are marked as internal voxel units, and voxel units that intersect with the cargo outline boundary are marked as boundary voxel units. For internal voxel units, the complete volume of the voxel unit is used as the mass allocation benchmark. For boundary voxel units, the actual volume occupied by the cargo shape inside the voxel unit is used as the mass allocation benchmark. The proportion of the mass allocation benchmark of each voxel unit to the total of all mass allocation benchmarks is calculated as the mass allocation weight. The mass data of the cargo is decomposed into the voxel units occupied by the cargo according to the mass allocation weight corresponding to each voxel unit, and the mass components carried by each voxel unit are obtained. The mass components are combined according to the three-dimensional coordinate arrangement order of the voxel units to form a mass vector.
[0010] Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of these exceeding-limit voxel elements is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable, including: Tensor operations are performed on the mass vector and the bearing coupling matrix to obtain the bearing values of each voxel element in multiple sets of voxel grids. The bearing values are then organized according to the spatial distribution relationship of the voxel elements in multiple sets of voxel grids to form a bearing tensor field. Traverse the voxel elements at each level in the load tensor field. When the load value exceeds the preset load limit, mark it as a load-exceeding voxel element and record the three-dimensional coordinates of the load-exceeding voxel element in multiple sets of voxel meshes. Extract the column index sequence corresponding to the overloaded voxel element in the load coupling matrix, perform a transpose operation on the load coupling matrix, extract the row vector corresponding to the column index sequence from the transposed load coupling matrix, and identify the row index sequence corresponding to the position where the weight coefficient is greater than zero in the row vector. The row index sequence is converted into the three-dimensional coordinates of voxel elements. The three-dimensional coordinates of the converted voxel elements are determined as the influence domain that carries the overlimit voxel elements. Voxel elements within the influence domain are marked as unusable.
[0011] Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load values of each voxel element in multiple sets of voxel grids. The load values are then organized according to the spatial distribution of the voxel elements in the multiple sets of voxel grids to form a load tensor field, including: Traverse the mass vector to identify source voxel units with non-zero mass components, extract the load transfer weight vector corresponding to the source voxel unit from the load coupling matrix, perform a weighted allocation operation on the mass components of the source voxel unit and the load transfer weight vector, and accumulate the weighted allocation operation result to the corresponding voxel unit according to the column index to obtain the transfer load value of each voxel unit. Extract voxel pairs with parent-child hierarchical relationships from the spatial nesting relationship, construct a bearer backtracking propagation network, and perform reverse aggregation of the transmitted bearer values of the child-level voxel units to the parent-level voxel units along the bearer backtracking propagation network. When the aggregated bearer value received by the parent-level voxel unit is greater than the transmitted bearer value of the parent-level voxel unit itself, replace the transmitted bearer value of the parent-level voxel unit with the aggregated bearer value to obtain the corrected bearer value of each voxel unit. The mass component of each voxel element in the mass vector is superimposed with the corrected bearing value of the corresponding voxel element to obtain the bearing value of each voxel element. Tensor indexes are constructed according to the spatial distribution relationship of voxel elements in multiple voxel grids. The bearing values of each voxel element are filled into the tensor index positions to form the bearing tensor field.
[0012] Extracting unmarked and unoccupied voxel units to construct a connected graph, performing topological analysis on the connected graph to obtain gap topological features, calculating the isomorphism between the gap topological features and the topological description of the cargo dimensions to be loaded, generating a cargo loading sequence based on the isomorphism, loading cargo according to the cargo loading sequence, and outputting the loading scheme, including: Extract voxel units that are not marked as unavailable and are not occupied, establish connectivity relationships among voxel units that share surface boundaries, and construct a connected graph; The connected graph is decomposed into multiple connected components by performing topological analysis. The total number of voxel units in each connected component and the maximum span along the length, width and height directions are counted to obtain the void topological features. The length, width, and height dimensions of the cargo to be loaded are converted into the number of voxels occupied. The volume of the cargo to be loaded is converted into the total number of voxels. The total number of voxels and the number of voxels occupied in each direction are used as the topological description of the cargo's external dimensions. Calculate the volume fit between the void topology features and the total number of voxel units and the total number of voxels in the topological description of the dimensions of the cargo to be loaded; calculate the morphological fit between the void topology features and the maximum span in each direction and the number of voxels occupied in each direction in the topological description of the dimensions of the cargo to be loaded. Combining volume fit and shape fit yields the isomorphism between the void topology features and the topological description of the cargo's external dimensions. Based on the isomorphism, sort the goods to be loaded to generate the loading order, load the goods to be loaded to the corresponding connected components according to the loading order, and output the loading scheme.
[0013] The isomorphism between the void topology features and the topological description of the cargo's external dimensions, calculated by combining volumetric fit and morphological fit, includes: Extract the numerical difference between the total number of voxel units in the void topology feature and the total number of voxels in the topology description of the cargo's external dimensions. Construct a volume matching factor based on the ratio of the numerical difference to the total number of voxels, and use the volume matching factor as the volume fit degree. Extract the numerical differences between the maximum span along the length, width, and height directions in the topological features of the gap and the number of voxels occupied in the length, width, and height directions in the topological description of the cargo to be loaded. Calculate the ratio of the absolute value of the numerical difference in each direction to the number of voxels occupied in the corresponding direction. Sum the ratios in each direction by weight to obtain the morphological deviation. Map the reciprocal of the morphological deviation to the morphological fit. The volume fit and shape fit are weighted and combined, and the isomorphism between the topological features of the gap and the topological description of the external dimensions of the cargo to be loaded is determined based on the weighted combination result.
[0014] This invention provides a three-dimensional spatial discretization simulation method for general cargo loading, which has the following advantages compared with the prior art: This invention achieves multi-scale discretization of container space through adaptive calculation of voxel scale coefficients, dynamically adjusting the spatial mesh accuracy according to different cargo size characteristics, thus improving the flexibility and accuracy of spatial representation. By establishing a load-bearing coupling matrix and performing tensor operations, the cumulative influence of cargo mass distribution on the underlying structure is transformed into a quantifiable load-bearing tensor field, enabling accurate assessment of the load-bearing capacity of multi-layer cargo stacks and avoiding cargo damage and safety hazards caused by local overload. The influence domain of overload-exceeding voxel elements is quickly obtained through matrix transpose operations and marked as unavailable, allowing for real-time updates of available loading space without repeated modeling and calculations, significantly improving computational efficiency in dynamic loading scenarios. By extracting void topological features through connected graph topology analysis and calculating the isomorphism with the external dimensions of the cargo to be loaded, intelligent loading sequence generation based on spatial geometric matching degree is achieved, improving space utilization and reducing the number of loading trials. Attached Figure Description
[0015] Figure 1 A flowchart of a three-dimensional spatial discretization simulation method for general cargo loading provided in an embodiment of the present invention. Detailed Implementation
[0016] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0017] like Figure 1 As shown, Figure 1 A flowchart of a three-dimensional spatial discretization simulation method for general cargo loading provided by an embodiment of the present invention, the method comprising the following steps: Obtain the external dimensions, mass distribution, and spatial boundaries of the cargo to be loaded; The voxel scale coefficient is calculated based on the characteristic value distribution of the cargo's external dimensions. The voxel scale coefficient is then used to perform three-dimensional discretization of the spatial boundary of the container carrier, generating multiple sets of voxel meshes and establishing spatial nesting relationships. The area of the vertical projection overlap region of the voxel unit is calculated based on the spatial nesting relationship and used as a weighting coefficient to construct the bearing coupling matrix; Select the cargo, determine the voxel units occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficients, and decompose the cargo's mass distribution into voxel units to form a mass vector. Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of the voxel elements exceeding the load limit is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable. Extract unmarked and unoccupied voxel units to construct a connected graph. Perform topological analysis on the connected graph to obtain gap topological features. Calculate the isomorphism between the gap topological features and the topological description of the dimensions of the cargo to be loaded. Generate the cargo loading sequence based on the isomorphism. Load the cargo according to the cargo loading sequence and output the loading scheme.
[0018] Based on the characteristic value distribution of the cargo's external dimensions, voxel scale coefficients are calculated. These voxel scale coefficients are then used to perform three-dimensional discretization of the container's spatial boundary, generating multiple sets of voxel meshes and establishing spatial nesting relationships, including: A size sample sequence is constructed for the external dimensions of the cargo to be loaded. Kernel density estimation is performed on the size sample sequence to obtain the size probability density function. The size values corresponding to the local maxima points are extracted from the size probability density function as the feature value distribution. Calculate the ratio of each characteristic dimension value in the eigenvalue distribution to the maximum side length of the container space boundary, and use the reciprocal of the ratio as the voxel scale coefficient; The container space boundary is discretized in three dimensions using a voxel scale coefficient. The container space boundary is divided into cubic units with a side length equal to the reciprocal of the voxel scale coefficient. Multiple sets of voxel meshes are generated and each voxel unit is assigned a spatial coordinate index and a voxel scale identifier. Traverse multiple sets of voxel meshes, calculate the 3D coordinate envelope range corresponding to the spatial coordinate index of any voxel element, determine whether the spatial coordinate index of other voxel elements is within the 3D coordinate envelope range, establish nested hierarchical associations between voxel elements within the range and the calculated voxel elements and record them as nested relation tuples, and summarize the nested relation tuples to construct a tree topology as spatial nesting relations.
[0019] First, the length, width, and height data of each piece of cargo are extracted from the cargo information system to construct a size sample sequence. This sequence contains the external dimensions of all cargo to be loaded, arranged in ascending order. For example, a batch of cargo contains 100 pieces, corresponding to 300 size values, which are sorted to form the size sample sequence.
[0020] Kernel density estimation of the size sample sequence yields the size probability density function. A Gaussian kernel function is used for kernel density estimation, and the bandwidth parameter is automatically selected using the Silverman rule. During the calculation, a Gaussian distribution is assigned to each sample point, and the superposition of all distributions forms a continuous probability density curve. This function reflects the probability density characteristics of the cargo size distribution, providing a foundation for subsequent feature value extraction.
[0021] The size values corresponding to local maxima in the size probability density function are extracted as feature values. A threshold of 30% of the maximum value of the density function is defined; only when the probability density of a local maximum exceeds this threshold is it considered a valid feature value. Local maxima of the probability density function are identified using numerical differentiation, calculating the trend of the density function at each point and finding points where the derivative changes sign and the second derivative is negative. For the above example, feature size values such as 0.3, 0.6, 0.9, and 1.2 m might be extracted.
[0022] The ratio of the characteristic dimension value to the maximum side length of the container space boundary is calculated, and the reciprocal of this ratio is used as the voxel scale factor. For example, if the maximum side length of the container space is 13.6m, and the characteristic dimension values are 0.3, 0.6, 0.9, and 1.2m, the corresponding ratios are 0.022, 0.044, 0.066, and 0.088, respectively, and the corresponding voxel scale factors are 45.33, 22.67, 15.11, and 11.33. The voxel scale factor represents the number of voxel units that divide the maximum side length of the container space at the corresponding scale.
[0023] The spatial boundary of the container carrier is discretized in three dimensions using voxel scale coefficients. The spatial boundary of the container carrier is defined by dimensions in three directions: length (L), width (W), and height (H). For each voxel scale coefficient s, the corresponding voxel side length v is calculated, which is the ratio of the maximum side length to the scale coefficient. Using this voxel side length as the basic unit, the container carrier space is divided into a three-dimensional mesh. The number of meshes in each direction is the result of dividing the corresponding side length by the voxel side length and rounding up. Each voxel unit is assigned a unique spatial coordinate index (i, j, k) and a corresponding voxel scale identifier s.
[0024] Traverse all voxel meshes. For a voxel cell of a specified scale, calculate its 3D coordinate envelope in real space. This envelope is determined by the spatial index of the voxel cell and its corresponding voxel edge length. To determine whether other voxel cells are within this envelope, compare their respective spatial coordinate boundaries. When the coordinate boundaries of a small-scale voxel cell in all three directions are within the coordinate boundaries of a large-scale voxel cell, the two form a nested relationship.
[0025] In the specific determination process, if the voxel unit coordinate index with a scale factor of s1 is (i, j, k), the voxel side length is v1, and the voxel unit coordinate index with another scale factor of s2 (s2 < s1) is (m, n, p), and the voxel side length is v2, it is necessary to determine whether the voxel unit corresponding to (m, n, p) is within the envelope range of (i, j, k). When m·v2 ≥ i·v1 and (m + 1)·v2 ≤ (i + 1)·v1, and the n and p coordinates also satisfy similar conditions, it is considered that there is a nested relationship between the two. The indexes and scale identifiers of the two voxel units form a nested relationship tuple (s1, i, j, k, s2, m, n, p), and all tuples constitute a tree topological structure, representing the spatial nested relationship.
[0026] The present invention realizes the multi-scale discrete representation of the container carrier space based on the cargo size characteristics, effectively improving the accuracy and efficiency of the stowage simulation. This method realizes the adaptive discretization of the container carrier space, automatically adjusts the voxel unit size according to the cargo size characteristics, establishes a nested hierarchical structure between voxel grids, supports multi-resolution spatial representation and analysis, significantly improves the accuracy and flexibility of the general cargo stowage plan, and provides technical support for the efficient utilization of the container carrier space resources.
[0027] Calculating the area of the vertical projection overlapping region of the voxel unit based on the spatial nested relationship as the weight coefficient, the construction of the bearing coupling matrix includes: Extracting the nested relationship tuple from the spatial nested relationship, and parsing the nested relationship tuple to obtain the voxel scale identifiers of the sub-level voxel unit and the parent-level voxel unit; Calculating the bottom projection area of the sub-level voxel unit and the parent-level voxel unit according to the voxel scale identifier, and calculating the ratio of the bottom projection area of the sub-level voxel unit to the parent-level voxel unit as the area of the vertical projection overlapping region of the voxel unit; Counting the total number of voxel units in multiple groups of voxel grids, creating a two-dimensional matrix with the number of rows and columns equal to the total number as the initial structure of the bearing coupling matrix, and mapping the voxel unit identifiers in multiple groups of voxel grids to the row index and column index in the initial structure of the bearing coupling matrix respectively; Traversing the nested relationship tuples in the spatial nested relationship, extracting the sub-level voxel unit identifier and the parent-level voxel unit identifier in the nested relationship tuple, locating the cross position of the row index corresponding to the sub-level voxel unit identifier and the column index corresponding to the parent-level voxel unit identifier in the initial structure of the bearing coupling matrix, and filling the area of the vertical projection overlapping region of the voxel unit into the cross position as the weight coefficient to construct the bearing coupling matrix.
[0028] Extract nested relationship tuples from the established spatial nesting relationships. Each nested relationship tuple contains complete information about the parent-level and child-level voxel units, including voxel scale identifiers and spatial coordinate indices. The voxel scale identifier reflects the size of the voxel unit, and the spatial coordinate index determines the voxel unit's position in space. When parsing nested relationship tuples, the voxel scale identifier S of the parent-level voxel unit needs to be obtained separately. p voxel scale identifier S of sub-level voxel units c For example, consider a nested relational tuple (40, 2, 3, 1, 20, 5, 7, 3), where 40 and 20 are the voxel scale identifiers of the parent and child level voxel units, respectively.
[0029] The projected area of the base of the voxel unit is calculated based on the voxel scale identifier. The voxel unit is cubic in shape, with a square base and a side length L equal to the maximum side length of the container space. max Divide by the voxel scale identifier. Therefore, the projected area A of the bottom surface of the parent level voxel unit. p Calculated as (L) max / S p ) 2 The bottom projected area A of the sub-level voxel unit c Calculated as (L) max / S c ) 2 Taking a container space with a maximum side length of 13.6m as an example, when the parent-level voxel scale is 40 and the child-level voxel scale is 20, the projected area of the bottom surface of the parent-level voxel unit is 0.1156m². 2 The projected area of the bottom surface of the sub-level voxel unit is 0.4624 m². 2 .
[0030] The ratio of the projected area of the bottom surface of the child-level voxel unit to that of the parent-level voxel unit is calculated and used as a weighting coefficient for the area of the vertically projected overlapping region. In the example above, the calculated ratio is (40 / 20). 2 =4 indicates that the projected area of the bottom surface of the child voxel unit is 4 times that of the bottom surface of the parent voxel unit.
[0031] The total number of voxel elements in multiple sets of voxel meshes is counted. Multiple sets of voxel meshes refer to sets of voxel meshes obtained by discretizing the container space using different voxel scale coefficients. Each set of voxel meshes contains several voxel elements, and each voxel element has a unique identifier. All voxel element identifiers are uniformly numbered to obtain the total number N. For example, assuming four sets of voxel meshes with different scales are used, containing 1000, 8000, 27000, and 64000 voxel elements respectively, the total number of voxel elements is 100000.
[0032] Create a two-dimensional matrix with the same number of rows and columns as the total number of rows and columns as the initial structure to hold the coupling matrix. This matrix is an N×N two-dimensional array, with all initial values set to 0. Map voxel cell identifiers to the row and column indices of the matrix to ensure that each voxel cell has a unique corresponding position in the matrix. The mapping method can be sequential numbering, starting from the first voxel cell of the first group of voxel grids, and assigning identifier numbers from 1 to N to each voxel cell sequentially.
[0033] Iterate through all nested relation tuples in the spatial nesting relation and extract the sub-level voxel unit identifier c from each tuple. id and parent level voxel unit identifier p id Locate the intersection of the row index corresponding to the sub-level voxel unit identifier and the column index corresponding to the parent-level voxel unit identifier in the carrying coupling matrix, i.e., the matrix element M[c id p id The area ratio of the overlapping vertical projection region calculated earlier is used to fill the intersection position as a weighting coefficient. This operation is repeated for all nested relation tuples to finally form the complete bearing coupling matrix.
[0034] The process of filling the coupling matrix can be represented as: Where M represents the carrying coupling matrix, c id p represents the sub-level voxel unit identifier. id Indicates the parent level voxel unit identifier, S p S represents the voxel scale identifier of the parent level voxel unit. c This represents the voxel scale identifier of a sub-level voxel unit.
[0035] The load-bearing coupling matrix constructed using the above method accurately expresses the vertical load-bearing relationship of voxel units in the three-dimensional space of general cargo loading, providing a quantitative basis for optimizing cargo loading strategies. This matrix employs sparse storage, recording only the non-zero elements corresponding to voxel units with nested relationships, effectively improving storage efficiency and computational performance.
[0036] This invention achieves a quantitative expression of the load-bearing relationship between voxel units by calculating the area of the overlapping region of vertical projection, overcoming the problem of inaccurate spatial relationship representation in traditional loading methods and improving the accuracy and rationality of loading planning. This method supports multi-scale voxel representation, adapts to the loading requirements of goods with different shapes, and enhances the flexibility and space utilization efficiency of loading schemes.
[0037] Select cargo, determine the voxel units occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficients, and decompose the cargo's mass distribution into voxel units to form a mass vector, including: Select the cargo and obtain its three-dimensional shape and mass data. Compare the three-dimensional shape with the voxel scale coefficient to determine the three-dimensional coordinate range of the voxel units occupied by the cargo in multiple voxel grids. For each voxel unit within the three-dimensional coordinate range, determine the spatial topological relationship between the voxel unit and the cargo outline boundary. Voxel units that are completely inside the cargo outline boundary are marked as internal voxel units, and voxel units that intersect with the cargo outline boundary are marked as boundary voxel units. For internal voxel units, the complete volume of the voxel unit is used as the mass allocation benchmark. For boundary voxel units, the actual volume occupied by the cargo shape inside the voxel unit is used as the mass allocation benchmark. The proportion of the mass allocation benchmark of each voxel unit to the total of all mass allocation benchmarks is calculated as the mass allocation weight. The mass data of the cargo is decomposed into the voxel units occupied by the cargo according to the mass allocation weight corresponding to each voxel unit, and the mass components carried by each voxel unit are obtained. The mass components are combined according to the three-dimensional coordinate arrangement order of the voxel units to form a mass vector.
[0038] Select the cargo to be loaded and obtain its three-dimensional dimensions and mass data. The three-dimensional dimensions include the cargo's length L, width W, and height H, in meters; the mass data refers to the cargo's total mass A, in kilograms. These basic parameters are retrieved from the cargo information database to provide input data for subsequent processing. For example, a cubic-shaped cargo has a length of 0.8m, a width of 0.6m, a height of 0.5m, and a total mass of 120kg.
[0039] The three-dimensional dimensions of the cargo are compared with the voxel scale factor to determine the three-dimensional coordinate range of the voxel cells occupied by the cargo in multiple voxel meshes. Assuming the cargo is placed at the origin of the container space, the space occupied by the cargo is (0, 0.8) along the X-axis, (0, 0.6) along the Y-axis, and (0, 0.5) along the Z-axis. The voxel scale factor is inversely proportional to the voxel cell side length; the number of voxel cells occupied by the cargo varies at different voxel scales. For a voxel mesh with a voxel scale factor of 20, the voxel cell side length is 0.68m, and the cargo occupies 2 × 1 × 1 = 2 voxel cells at this scale. For a voxel mesh with a voxel scale factor of 40, the voxel cell side length is 0.34m, and the cargo occupies 3 × 2 × 2 = 12 voxel cells at this scale.
[0040] For each voxel element within the 3D coordinate range, the spatial topological relationship between the voxel element and the cargo outline boundary is determined. The determination method is based on calculating the spatial intersection of the voxel element and the cargo outline. For each voxel element, the intersection of its coordinate range and the cargo outline coordinate range is calculated. If the intersection volume equals the voxel element volume, the voxel element is completely inside the cargo outline boundary and is marked as an internal voxel element. If the intersection volume is greater than zero and less than the voxel element volume, the voxel element intersects with the cargo outline boundary and is marked as a boundary voxel element. If the intersection volume is zero, the voxel element is completely outside the cargo outline boundary and is not involved in subsequent calculations. Taking a voxel mesh with a voxel scale factor of 40 as an example, among the 12 voxel elements occupied by the cargo, 4 are internal voxel elements and 8 are boundary voxel elements.
[0041] For internal voxel units, the complete volume of the voxel unit is used as the mass allocation benchmark, and the mass allocation benchmark of the internal voxel unit is equal to the volume of the voxel unit. Taking a container space with a maximum side length of 13.6m and a voxel scale factor of 40 as an example, the mass allocation benchmark of the internal voxel unit is 0.0394m. 3 .
[0042] For boundary voxel elements, the actual volume occupied by the cargo shape within the voxel element is used as the mass allocation benchmark. The mass allocation benchmark of the boundary voxel element is equal to the spatial intersection volume of the cargo shape and the voxel element. The calculation method is to determine the side lengths of the intersection region along the three coordinate axes and then calculate their product. Taking a certain boundary voxel element as an example, assuming the coordinate range of this voxel element is X-axis (0.68, 1.02), Y-axis (0, 0.34), Z-axis (0, 0.34), and the coordinate range of the cargo shape is X-axis (0, 0.8), Y-axis (0, 0.6), Z-axis (0, 0.5), then the coordinate range of the intersection region is X-axis (0.68, 0.8), Y-axis (0, 0.34), Z-axis (0, 0.34), and the intersection volume is 0.12 × 0.34 × 0.34 = 0.0139 m. 3 .
[0043] The mass allocation weight is calculated as the proportion of each voxel unit's mass allocation reference to the sum of all mass allocation references. Using the previous example, assume the mass allocation reference for each of the four internal voxel units is 0.0394m. 3 The mass distribution criterion for each of the eight boundary voxel elements is different, with a total mass of 0.2m. 3 The mass allocation weight of a certain internal voxel unit is 0.0394 / (4×0.0394+0.2)=0.0847.
[0044] The cargo's mass data is decomposed into voxel units according to their corresponding mass allocation weights. The mass component carried by a voxel unit is calculated as: Total cargo mass × Mass allocation weight of that voxel unit. In the example above, if the total cargo mass is 120 kg and the mass allocation weight of a certain voxel unit is 0.0847, then the mass component carried by that voxel unit is 120 × 0.0847 = 10.16 kg. Following the order of the voxel units' three-dimensional coordinates, the mass components carried by each voxel unit are combined into a vector, forming the cargo's mass vector. The dimension of this vector equals the number of voxel units occupied by the cargo, and each element represents the mass component carried by the corresponding voxel unit.
[0045] This invention achieves precise mapping of mass from continuous to discrete space by meticulously calculating the mass distribution of cargo in discrete voxel space. This overcomes the limitations of simplified representations of cargo mass centers in traditional loading methods and improves the accuracy of loading stability assessment. The method simultaneously supports mass decomposition of both regular and irregular shaped cargo, adapting to different cargo characteristics. It considers the partial occupancy of boundary voxel units, enhancing the accuracy of mass distribution representation and providing reliable data support for loading balance and stability control during general cargo loading.
[0046] Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of these exceeding-limit voxel elements is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable, including: Tensor operations are performed on the mass vector and the bearing coupling matrix to obtain the bearing values of each voxel element in multiple sets of voxel grids. The bearing values are then organized according to the spatial distribution relationship of the voxel elements in multiple sets of voxel grids to form a bearing tensor field. Traverse the voxel elements at each level in the load tensor field. When the load value exceeds the preset load limit, mark it as a load-exceeding voxel element and record the three-dimensional coordinates of the load-exceeding voxel element in multiple sets of voxel meshes. Extract the column index sequence corresponding to the overloaded voxel element in the load coupling matrix, perform a transpose operation on the load coupling matrix, extract the row vector corresponding to the column index sequence from the transposed load coupling matrix, and identify the row index sequence corresponding to the position where the weight coefficient is greater than zero in the row vector. The row index sequence is converted into the three-dimensional coordinates of voxel elements. The three-dimensional coordinates of the converted voxel elements are determined as the influence domain that carries the overlimit voxel elements. Voxel elements within the influence domain are marked as unusable.
[0047] Tensor operations are performed between the mass vector and the load coupling matrix. The mass vector is a z-dimensional vector, where z is the total number of voxel elements in multiple voxel meshes, and each element represents the mass component carried by the corresponding voxel element. The load coupling matrix is a z×z two-dimensional matrix representing the vertical projection overlap relationship between voxel elements, with matrix element values being the overlap area ratio. Tensor operations are performed using matrix multiplication. Each element of the load vector represents the load value of the corresponding voxel element, i.e., the total mass that the voxel element needs to carry. For example, if a certain element in the mass vector has a value of 50 kg, and the non-zero elements in the corresponding row of the load coupling matrix are [0.25, 0.5, 1], and the corresponding mass vector element values are [30 kg, 40 kg, 50 kg], then the load value of that voxel element is 0.25×30 + 0.5×40 + 1×50 = 77.5 kg.
[0048] The calculated bearing vectors are reorganized according to the spatial distribution of voxel elements in multiple sets of voxel grids to form a bearing tensor field. The bearing tensor field is a multi-dimensional data structure containing the bearing values of each voxel element in multiple sets of voxel grids. For each set of voxel grids, the bearing tensor field contains a three-dimensional array. The array size is equal to the number of voxel elements in that set of voxel grids along the three coordinate axes, and the array element values are the bearing values of the corresponding voxel elements. Taking four sets of voxel grids with different scales (10, 20, 40, and 80) as an example, the bearing tensor field contains four three-dimensional arrays with sizes of 10×10×10, 20×20×20, 40×40×40, and 80×80×80, respectively.
[0049] The process iterates through voxel elements at each level of the load-bearing tensor field, checking whether the load-bearing value exceeds a preset load-bearing limit. The load-bearing limit is set based on the physical properties of the voxel elements, taking into account factors such as material strength and safety factors. Different load-bearing limits can be set for voxel meshes with different voxel scales; generally, the smaller the voxel scale, the lower the load-bearing limit. For example, in a specific load-bearing instance, voxel meshes with voxel scale factors of 10, 20, 40, and 80 have preset load-bearing limits of 500 kg, 1000 kg, 2000 kg, and 4000 kg, respectively. When the load-bearing value of a voxel element exceeds the corresponding preset load-bearing limit, the voxel element is marked as an overloaded voxel element, and its three-dimensional coordinates in the voxel mesh are recorded. For instance, in a voxel mesh with a voxel scale factor of 40, the voxel element at coordinates (15, 20, 5) has a load-bearing value of 2200 kg, exceeding the preset load-bearing limit of 2000 kg, and is marked as an overloaded voxel element.
[0050] The column indices of the bearing coupling matrix correspond one-to-one with the voxel elements. The column index of a bearing over-limit voxel element is determined by its unique identifier. For example, if a bearing over-limit voxel element is identified as 8765, its corresponding column index in the bearing coupling matrix is 8765.
[0051] Performing a transpose operation on the bearing coupling matrix yields the transpose matrix. The transpose operation interchanges the rows and columns of the original matrix. In the transpose matrix, the element value at row i, column j is equal to the element value at row j, column i of the original matrix. The physical meaning of the transpose matrix is the reverse bearing relationship between voxel units; that is, the original matrix represents the influence of the upper voxel unit on the lower voxel unit, and the transpose matrix represents the influence of the lower voxel unit on the upper voxel unit.
[0052] Row vectors corresponding to the column index sequence are extracted from the transposed bearing coupling matrix. These row vectors represent the influence relationship between the bearing overload voxel element and other voxel elements. Taking a bearing overload voxel element with column index 8765 as an example, the 8765th row is extracted from the transposed matrix to obtain a z-dimensional row vector.
[0053] The row index sequence corresponding to the positions in the row vector where the weight coefficient is greater than zero is identified. A weight coefficient greater than zero indicates an influence relationship, and the corresponding row index indicates the affected voxel unit. For example, assuming that the positions where the weight coefficient is greater than zero are [1024, 2048, 4096], then the row index sequence corresponding to these positions is [1024, 2048, 4096], indicating that these voxel units are affected by the overloaded voxel units.
[0054] Based on the mapping relationship between row indices and voxel element 3D coordinates, the 3D coordinates of the voxel element corresponding to each row index in the voxel mesh are calculated. Taking row index 4096 as an example, it is assumed that this index corresponds to the voxel element with coordinates (10, 15, 8) in a voxel mesh with a voxel scale factor of 20.
[0055] The three-dimensional coordinates of the transformed voxel elements are defined as the influence domain of the overload voxel elements. The influence domain refers to the set of all voxel elements affected by the overload voxel elements. These voxel elements should be marked as unusable during loading to avoid creating new overload situations. All voxel elements within the influence domain are marked as unusable, and these voxel elements will no longer be considered as cargo placement locations during subsequent loading processes.
[0056] This invention achieves precise calculation and control of the load-bearing status during the loading of miscellaneous cargo through tensor operations of the mass vector and load-bearing coupling matrix, and load-bearing over-limit identification technology. This method overcomes the problem of insufficient consideration of load-bearing capacity in traditional loading algorithms. By constructing a load-bearing tensor field, it achieves a unified expression of load-bearing values under multi-scale voxel grids, improving the accuracy of load-bearing calculations. Utilizing transpose operations and influence domain identification technology, it effectively prevents overall loading failure caused by local load-bearing over-limits, enhancing the safety and reliability of the loading scheme.
[0057] Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load values of each voxel element in multiple sets of voxel grids. The load values are then organized according to the spatial distribution of the voxel elements in the multiple sets of voxel grids to form a load tensor field, including: Traverse the mass vector to identify source voxel units with non-zero mass components, extract the load transfer weight vector corresponding to the source voxel unit from the load coupling matrix, perform a weighted allocation operation on the mass components of the source voxel unit and the load transfer weight vector, and accumulate the weighted allocation operation result to the corresponding voxel unit according to the column index to obtain the transfer load value of each voxel unit. Extract voxel pairs with parent-child hierarchical relationships from the spatial nesting relationship, construct a bearer backtracking propagation network, and perform reverse aggregation of the transmitted bearer values of the child-level voxel units to the parent-level voxel units along the bearer backtracking propagation network. When the aggregated bearer value received by the parent-level voxel unit is greater than the transmitted bearer value of the parent-level voxel unit itself, replace the transmitted bearer value of the parent-level voxel unit with the aggregated bearer value to obtain the corrected bearer value of each voxel unit. The mass component of each voxel element in the mass vector is superimposed with the corrected bearing value of the corresponding voxel element to obtain the bearing value of each voxel element. Tensor indexes are constructed according to the spatial distribution relationship of voxel elements in multiple voxel grids. The bearing values of each voxel element are filled into the tensor index positions to form the bearing tensor field.
[0058] The mass vector records the mass components of all voxel units. By traversing the mass vector, voxel units with non-zero mass components are identified as source voxel units. A non-zero mass component indicates that the voxel unit carries cargo mass. For example, if the mass vector has 20 elements with values greater than 0, where voxel unit number 1024 has a mass component of 50 kg, voxel unit number 2048 has a mass component of 75 kg, and voxel unit number 4096 has a mass component of 100 kg, these voxel units are identified as source voxel units.
[0059] The bearing coupling matrix describes the vertical projection overlap relationship between voxel elements. The row indices correspond to the force-bearing voxel elements, the column indices correspond to the force-exerting voxel elements, and the element values represent the overlap area percentage. For each source voxel element, the vector corresponding to its column in the bearing coupling matrix is extracted as the bearing transfer weight vector. Taking voxel element number 1024 as an example, the vector in column 1024 of the bearing coupling matrix is extracted. Assuming that the non-zero elements in this vector are located in rows 512, 256, and 128, with values of 0.6, 0.3, and 0.1 respectively, this indicates that voxel element number 1024 transfers bearing weights to voxel elements number 512, 256, and 128.
[0060] The mass components of the source voxel are weighted and assigned to the carrier transfer weight vector. The formula for the weighted assignment operation is as follows: , among which, T j C represents the transfer carrying value of the j-th voxel unit; i M represents the mass component of the i-th source voxel unit; j,i The element value in the j-th row and i-th column of the load coupling matrix represents the load transfer weight of the i-th voxel unit to the j-th voxel unit; N represents the total number of source voxel units. Taking the aforementioned voxel unit 1024 as an example, its mass component is 50 kg. Its load transfer weight to voxel unit 512 is 0.6, its load transfer weight to voxel unit 256 is 0.3, and its load transfer weight to voxel unit 128 is 0.1. Therefore, the load transfer contribution of voxel unit 1024 to these three voxel units is 50 × 0.6 = 30 kg, 50 × 0.3 = 15 kg, and 50 × 0.1 = 5 kg, respectively.
[0061] For each voxel unit, the transfer load contribution of all source voxel units is summed. Taking a certain voxel unit as an example, if the transfer load contribution of source voxel units No. 1024, No. 2048, and No. 4096 is 30kg, 45kg, and 60kg respectively, then the transfer load value of this voxel unit is 30+45+60=135kg.
[0062] Voxel pairs with parent-child hierarchical relationships are extracted from spatial nesting relationships to construct a backpropagation network. Multiple sets of voxel grids at different scales exhibit spatial nesting relationships, with larger voxel units containing multiple smaller voxel units, forming parent-child hierarchical relationships. One voxel unit in a voxel grid with a voxel scale factor of 20 corresponds to 8 voxel units (2×2×2) in a voxel grid with a voxel scale factor of 40. Through spatial coordinate mapping, voxel pairs with inclusion relationships in different voxel grids are identified, and a backpropagation network is constructed. This network is a directed graph structure where nodes represent voxel units, edges represent parent-child hierarchical relationships, and the direction is from child-level voxel units to parent-level voxel units.
[0063] The transported load values of sub-level voxel units are reverse-aggregated to the parent level voxel unit along the transport back propagation network. The reverse aggregation is calculated by taking the maximum value of the transported load values of the sub-level voxel units as the aggregated load value. Taking a parent level voxel unit as an example, which contains 8 sub-level voxel units with transported load values of 100kg, 120kg, 90kg, 110kg, 95kg, 105kg, 115kg and 85kg respectively, the aggregated load value received by the parent level voxel unit is 120kg.
[0064] When the aggregated load value received by a parent voxel unit is greater than its own transmitted load value, the aggregated load value replaces the transmitted load value of the parent voxel unit, thus obtaining the corrected load value for each voxel unit. This step ensures that the load value of the parent voxel unit accurately reflects the load status of its contained child voxel units. For example, a parent voxel unit may have a transmitted load value of 110 kg and receive an aggregated load value of 120 kg. Since the aggregated load value is greater than the transmitted load value, its corrected load value is updated to 120 kg.
[0065] The mass component of each voxel in the mass vector is superimposed with the corrected load-bearing value of the corresponding voxel to obtain the load-bearing value of each voxel. The load-bearing value represents the total mass that the voxel needs to bear, including the mass of the cargo it carries and the mass transferred by the voxel above it. Taking a voxel as an example, its mass component is 50 kg, and its corrected load-bearing value is 120 kg. Then the load-bearing value of this voxel is 50 + 120 = 170 kg.
[0066] Tensor indices are constructed based on the spatial distribution of voxel elements across multiple voxel grids. A tensor index is a multi-dimensional data structure used to locate the position of voxel elements within the tensor field. For each voxel grid, the tensor index contains three-dimensional coordinate information, representing the position of the voxel element in the X, Y, and Z directions. Taking four voxel grids of different scales as an example, four three-dimensional coordinate indices are constructed to represent the spatial position of the voxel elements within their respective grids.
[0067] The load values of each voxel element are filled into the tensor index positions to form a load tensor field. The load tensor field is a multi-dimensional data structure containing the load values of all voxel elements in all voxel grids. Using tensor indices, the load value of each voxel element is filled into the corresponding position in the load tensor field. After filling all voxel elements, a complete load tensor field is obtained, which provides a comprehensive description of the load distribution in the general cargo loading space.
[0068] This invention achieves precise calculation and organization of load-bearing values in multi-level voxel meshes. Through weighted allocation and reverse aggregation mechanisms, it accurately simulates the transmission and distribution of cargo mass in voxel space, overcoming the problem of coarse and simplistic load-bearing calculations in traditional loading methods. The constructed load-bearing tensor field provides a data foundation for subsequent load-bearing limit judgment and supports multi-scale load-bearing analysis, enhancing the accuracy and reliability of load-bearing calculations during general cargo loading and providing technical support for ensuring loading safety.
[0069] Extracting unmarked and unoccupied voxel units to construct a connected graph, performing topological analysis on the connected graph to obtain gap topological features, calculating the isomorphism between the gap topological features and the topological description of the cargo dimensions to be loaded, generating a cargo loading sequence based on the isomorphism, loading cargo according to the cargo loading sequence, and outputting the loading scheme, including: Extract voxel units that are not marked as unavailable and are not occupied, establish connectivity relationships among voxel units that share surface boundaries, and construct a connected graph; The connected graph is decomposed into multiple connected components by performing topological analysis. The total number of voxel units in each connected component and the maximum span along the length, width and height directions are counted to obtain the void topological features. The length, width, and height dimensions of the cargo to be loaded are converted into the number of voxels occupied. The volume of the cargo to be loaded is converted into the total number of voxels. The total number of voxels and the number of voxels occupied in each direction are used as the topological description of the cargo's external dimensions. Calculate the volume fit between the void topology features and the total number of voxel units and the total number of voxels in the topological description of the dimensions of the cargo to be loaded; calculate the morphological fit between the void topology features and the maximum span in each direction and the number of voxels occupied in each direction in the topological description of the dimensions of the cargo to be loaded. Combining volume fit and shape fit yields the isomorphism between the void topology features and the topological description of the cargo's external dimensions. Based on the isomorphism, sort the goods to be loaded to generate the loading order, load the goods to be loaded to the corresponding connected components according to the loading order, and output the loading scheme.
[0070] In a three-dimensional discretized loading space, voxel elements have three states: voxel elements marked as unavailable, voxel elements that are occupied, and voxel elements that are available. Unavailable voxel elements are those that are overloaded or located within the overload influence domain; occupied voxel elements are those occupied by loaded cargo; available voxel elements are those that are neither marked as unavailable nor occupied. Extracting available voxel elements is the first step in constructing a connected graph. This is done by traversing all voxel elements in the voxel grid, checking their state markings, and retaining voxel elements that are marked as available. Taking a loading space as an example, the voxel grid size is 50×40×30, with a total of 60,000 voxel elements, of which 20,000 voxel elements are marked as unavailable, 15,000 voxel elements are occupied, and the remaining 25,000 voxel elements are available.
[0071] Connectivity is established among the extracted available voxel elements that share a surface boundary, constructing a connected graph. Connectivity indicates that two voxel elements are adjacent in 3D space and can be directly connected. Two voxel elements sharing a surface boundary means they have a complete overlapping surface in 3D space. Specifically, this is determined by the fact that the 3D coordinates of the two voxel elements differ by 1 unit in one dimension, while their coordinates are the same in the other two dimensions. For example, two voxel elements in a voxel mesh, one with coordinates (10, 15, 20) and the other with coordinates (11, 15, 20), differ by 1 unit in the x-axis direction and have the same coordinates in the y and z axes. Therefore, these two voxel elements share a surface boundary and are connected. The connected graph uses an adjacency list storage structure, where each voxel element stores the indices of all voxel elements that share its surface boundary.
[0072] Topological analysis is performed on the connected graph, decomposing it into multiple connected components. A connected component is the largest interconnected subgraph in the graph, representing an independent void region formed in the loading space. Topological analysis employs a breadth-first search algorithm, starting from any unvisited voxel and expanding to all reachable voxels through adjacency relationships until no further expansion is possible, forming a connected component. This process is repeated until all voxels have been visited, obtaining all connected components. Taking a certain loading space as an example, 25,000 available voxels are decomposed into 12 connected components after topological analysis, with voxel counts of 8000, 6000, 4000, 2000, 1500, 1000, 800, 600, 400, 300, 200, and 200 respectively.
[0073] The total number of voxel units is obtained directly through counting. The maximum span in each direction is calculated by adding 1 to the difference between the minimum and maximum coordinate values of the voxel units in each direction within the connected component. Taking the largest connected component as an example, the total number of voxel units is 8000, the maximum span in the length direction is 20 voxel units, the maximum span in the width direction is 15 voxel units, and the maximum span in the height direction is 30 voxel units. These values constitute the void topology features of this connected component.
[0074] The length, width, and height dimensions of the cargo to be loaded are converted into the number of voxels they occupy. This conversion calculation is based on the resolution of the voxel mesh, i.e., the size of each voxel cell in actual space. Taking a voxel mesh with a side length of 0.1m as an example, a cargo measuring 1.5m × 0.8m × 1.2m is converted into 15 × 8 × 12 = 1440 voxel cells, with 15 voxel cells in the length direction, 8 voxel cells in the width direction, and 12 voxel cells in the height direction. The total number of voxels and the number of voxels occupied in each direction are used as the topological description of the cargo's external dimensions. Taking a batch of goods to be loaded as an example, there are 5 different specifications of goods. The total number of voxels and the number of voxels occupied in the three directions for each specification are as follows: Goods 1 (1440, 15, 8, 12), Goods 2 (960, 12, 10, 8), Goods 3 (600, 10, 6, 10), Goods 4 (320, 8, 5, 8) and Goods 5 (180, 6, 6, 5).
[0075] Calculate the volume fit between the void topology features and the total number of voxel elements in the topological description of the cargo dimensions to be loaded, considering the ratio of the total number of voxels to the total number of voxels. Volume fit represents the degree of matching between the cargo volume and the void volume, and is calculated using the following formula: , where V a V represents the volume fit, with a value ranging from [0, 1]. A larger value indicates a higher degree of fit. v V represents the total number of voxel units in the interstitial connected components; cThis represents the total number of voxels of the cargo to be loaded. Taking the largest connected component and cargo 1 as an example, the total number of void voxel units is 8000, the total number of cargo voxels is 1440, and the volume fit is 1-|8000-1440| / 8000=1-6560 / 8000=0.18.
[0076] Calculate the shape fit between the void topology features and the cargo's external dimensions in the topological description, considering the maximum span and the number of voxels occupied in each direction. Shape fit represents the degree of matching between the cargo shape and the void shape, and is calculated using the following formula: , of which S a The form fit is represented by a value in the range [0, 1], where a larger value indicates a higher degree of matching; S v,i S represents the maximum span of the gap connectivity component in the i-th direction; e,i The number of voxels occupied by the cargo to be loaded in the i-th direction is represented by l, w, and h, which represent the length, width, and height directions, respectively. Taking the maximum connected component and cargo 1 as an example, the maximum span of the gap in the three directions is (20, 15, 30), the number of voxels occupied by the cargo in the three directions is (15, 8, 12), and the shape fit is (min(1, 20 / 15) + min(1, 15 / 8) + min(1, 30 / 12)) / 3 = (1 + 1 + 1) / 3 = 1.
[0077] By combining volumetric fit and morphological fit, the isomorphism between the topological features of the gap and the topological description of the dimensions of the cargo to be loaded is obtained. Isomorphism is a comprehensive index measuring the degree of matching between the cargo and the gap, and different weights are assigned to volumetric fit and morphological fit during calculation. The formula for calculating isomorphism is 0.3 × volumetric fit + 0.7 × morphological fit. Taking the largest connected component and cargo 1 as an example, the volumetric fit is 0.18, the morphological fit is 1, and the isomorphism is 0.3 × 0.18 + 0.7 × 1 = 0.754.
[0078] For each connected component, calculate the isomorphism between all goods to be loaded and that connected component, and prioritize loading the goods with the highest isomorphism into that connected component. When multiple goods have similar isomorphism, adjustments can be made considering factors such as goods priority. Taking the largest connected component as an example, the isomorphisms of the five types of goods are 0.754, 0.682, 0.586, 0.493, and 0.415, respectively, and the loading order is 1, 2, 3, 4, 5.
[0079] When placing cargo into a connected component, the specific placement location needs to be determined, which can be either the geometric center or the boundary of the connected component. After the cargo is placed, the occupancy state of the voxel cells in the voxel mesh is updated, available voxel cells are extracted again to reconstruct the connected graph, and the next round of loading is performed until all cargo is loaded or loading can no longer continue. The final output loading scheme includes the 3D coordinate position and orientation information of each loaded cargo.
[0080] This invention utilizes isomorphism matching technology between void topological features and cargo dimensional topological descriptions to achieve intelligent allocation and optimized utilization of general cargo loading space resources. Through connected graph construction and topology analysis, it accurately identifies effective voids and their morphological characteristics within the loading space. Combined with a comprehensive evaluation mechanism of volume fit and morphological fit, it achieves precise matching between cargo and voids, effectively improving loading space utilization, reducing fragmented space, and ensuring the stability and safety of the loading scheme.
[0081] The isomorphism between the void topology features and the topological description of the cargo's external dimensions, calculated by combining volumetric fit and morphological fit, includes: Extract the numerical difference between the total number of voxel units in the void topology feature and the total number of voxels in the topology description of the cargo's external dimensions. Construct a volume matching factor based on the ratio of the numerical difference to the total number of voxels, and use the volume matching factor as the volume fit degree. Extract the numerical differences between the maximum span along the length, width, and height directions in the topological features of the gap and the number of voxels occupied in the length, width, and height directions in the topological description of the cargo to be loaded. Calculate the ratio of the absolute value of the numerical difference in each direction to the number of voxels occupied in the corresponding direction. Sum the ratios in each direction by weight to obtain the morphological deviation. Map the reciprocal of the morphological deviation to the morphological fit. The volume fit and shape fit are weighted and combined, and the isomorphism between the topological features of the gap and the topological description of the external dimensions of the cargo to be loaded is determined based on the weighted combination result.
[0082] The void topology features include the total number of voxel units and the maximum span along the three directions, while the topology description of the cargo's external dimensions includes the total number of voxels and the number of voxels occupied in the three directions. Volume fit is calculated based on the numerical difference between the total number of voxel units in the void topology features and the total number of voxels in the cargo's external dimensions topology description. The total number of void voxel units and the total number of cargo voxels are extracted, and their numerical difference is calculated. For example, if the total number of voxel units in a void connected component is 1200, and the total number of voxels in the cargo to be loaded is 1000, the numerical difference is 200.
[0083] A volume matching factor is constructed based on the ratio of numerical difference to the total number of voxels. The volume matching factor needs to consider the proportional relationship between the numerical difference and the number of voids or cargo voxels to reflect the degree of volume matching. Substituting the above example into the formula, the volume matching factor is 1 - 200 / 1200 = 1 - 0.167 = 0.833. The volume matching factor ranges from [0, 1], with a value closer to 1 indicating a higher degree of volume matching between the void and the cargo. Using the volume matching factor as the volume fit degree, the volume fit degree is 0.833.
[0084] Extract the maximum span along the length, width, and height directions from the topological features of the gap, and the number of voxels occupied in the length, width, and height directions in the topological description of the cargo's external dimensions. For example, the maximum span of a certain gap's connected component in the three directions is 15, 12, and 10, respectively, and the number of voxels occupied by the cargo in the three directions is 12, 8, and 9, respectively.
[0085] The absolute value of the numerical difference in each direction is calculated as the ratio of the number of voxels occupied in the corresponding direction. For the length direction, the numerical difference is |15-12|=3, and the ratio to the number of voxels in the length direction is 3 / 12=0.25; for the width direction, the numerical difference is |12-8|=4, and the ratio to the number of voxels in the width direction is 4 / 8=0.5; for the height direction, the numerical difference is |10-9|=1, and the ratio to the number of voxels in the height direction is 1 / 9=0.111. These ratios reflect the degree of morphological deviation in each direction; the smaller the value, the higher the morphological matching degree.
[0086] The shape deviation is obtained by weighted summation of the ratios in each direction. The importance of each direction may differ, and different weights can be assigned. For example, with weights of 0.4 for length, 0.3 for width, and 0.3 for height, the shape deviation is calculated as: 0.4 × 0.25 + 0.3 × 0.5 + 0.3 × 0.111 = 0.1 + 0.15 + 0.0333 = 0.2833. The shape deviation indicates the degree of mismatch between the gap and the shape of the goods; a smaller value indicates a better fit.
[0087] Taking the reciprocal of the shape deviation directly may result in an uncertain value range, requiring normalization. Substituting the above example into the formula, the shape fit is 1 / (1+0.2833)=1 / 1.2833=0.7793. The shape fit ranges from (0, 1], with values closer to 1 indicating higher shape matching.
[0088] Volumetric fit and morphological fit reflect different aspects of the matching between the space and the cargo, and should be assigned different weights according to the actual application scenario. If the loading space is limited and high utilization is required, the weight of volumetric fit can be increased; if the stability of the cargo is required, the weight of morphological fit can be increased. Taking a volumetric fit weight of 0.4 and a morphological fit weight of 0.6 as an example, the isomorphism is calculated as 0.4×0.833+0.6×0.7793=0.3332+0.4676=0.8008.
[0089] The isomorphism between the topological features of the gap and the topological description of the dimensions of the cargo to be loaded is determined based on the weighted combination results. The isomorphism value ranges from [0, 1], with a larger value indicating a higher overall matching degree between the gap and the cargo. In practical applications, an isomorphism threshold can be set. When the isomorphism exceeds the threshold, the gap is considered suitable for loading the cargo. For example, in a loading scenario, the isomorphism threshold is set to 0.75, and in the above example, the isomorphism is 0.8008, which exceeds the threshold, so the gap is considered suitable for loading the cargo.
[0090] The isomorphism calculation considers both the volume matching and shape matching between the gaps and the cargo. Volume matching ensures maximum space utilization, while shape matching ensures that the cargo can fit the shape of the gaps. The combination of these two aspects guarantees both the compactness and feasibility of the loading. As a comprehensive evaluation index of the degree of matching between gaps and cargo, isomorphism provides an important basis for generating the subsequent cargo loading sequence.
[0091] For multiple candidate gaps with similar isomorphism, a comprehensive evaluation can be conducted by considering factors such as gap location, cargo center of gravity, and cargo priority to select the optimal loading position. For example, gaps at lower locations can be prioritized to ensure loading stability, or cargo of higher importance can be prioritized. These additional rules can be flexibly set to meet the loading requirements of different scenarios.
[0092] This invention achieves multi-dimensional matching evaluation of gaps and cargo by constructing a combined calculation of volume fit and shape fit, significantly improving the utilization rate of loading space. The isomorphism calculation method considers the degree of matching between gaps and cargo in terms of both volume and shape, providing a scientific basis for generating cargo loading sequence and effectively reducing the generation of fragmented space. This technology is applicable to the optimization of general cargo loading in complex and irregular spaces, improving loading efficiency and stability.
[0093] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus.
[0094] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.
Claims
1. A three-dimensional spatial discretization simulation method for general cargo loading, characterized in that, Includes the following steps: Obtain the external dimensions, mass distribution, and spatial boundaries of the cargo to be loaded; The voxel scale coefficient is calculated based on the characteristic value distribution of the cargo's external dimensions. The voxel scale coefficient is then used to perform three-dimensional discretization of the spatial boundary of the container carrier, generating multiple sets of voxel meshes and establishing spatial nesting relationships. The area of the vertical projection overlap region of the voxel unit is calculated based on the spatial nesting relationship and used as a weighting coefficient to construct the bearing coupling matrix; Select the cargo, determine the voxel unit occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficient, and decompose the cargo's mass distribution into voxel units to form a mass vector. Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of the voxel elements exceeding the load limit is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable. Extract unmarked and unoccupied voxel units to construct a connected graph. Perform topological analysis on the connected graph to obtain gap topological features. Calculate the isomorphism between the gap topological features and the topological description of the dimensions of the cargo to be loaded. Generate the cargo loading sequence based on the isomorphism. Load the cargo according to the cargo loading sequence and output the loading scheme.
2. The method according to claim 1, characterized in that, Based on the characteristic value distribution of the cargo's external dimensions, voxel scale coefficients are calculated. These voxel scale coefficients are then used to perform three-dimensional discretization of the container's spatial boundary, generating multiple sets of voxel meshes and establishing spatial nesting relationships, including: A size sample sequence is constructed for the external dimensions of the cargo to be loaded. Kernel density estimation is performed on the size sample sequence to obtain the size probability density function. The size values corresponding to the local maxima points are extracted from the size probability density function as the feature value distribution. Calculate the ratio of each characteristic dimension value in the eigenvalue distribution to the maximum side length of the container space boundary, and use the reciprocal of the ratio as the voxel scale coefficient; The container space boundary is discretized in three dimensions using a voxel scale coefficient. The container space boundary is divided into cubic units with a side length equal to the reciprocal of the voxel scale coefficient. Multiple sets of voxel meshes are generated and each voxel unit is assigned a spatial coordinate index and a voxel scale identifier. Traverse multiple sets of voxel meshes, calculate the 3D coordinate envelope range corresponding to the spatial coordinate index of any voxel element, determine whether the spatial coordinate index of other voxel elements is within the 3D coordinate envelope range, establish nested hierarchical associations between voxel elements within the range and the calculated voxel elements and record them as nested relation tuples, and summarize the nested relation tuples to construct a tree topology as spatial nesting relations.
3. The method according to claim 1, characterized in that, The area of the vertical projection overlap region of the voxel unit is calculated based on the spatial nesting relationship and used as a weighting coefficient to construct the bearing coupling matrix, including: Extract nested relationship tuples from spatial nesting relationships, and parse nested relationship tuples to obtain voxel scale identifiers of child-level voxel units and parent-level voxel units; Calculate the bottom projection area of the child-level voxel unit and the parent-level voxel unit based on the voxel scale identifier, and calculate the ratio of the bottom projection area of the child-level voxel unit to the parent-level voxel unit as the area of the vertical projection overlap region of the voxel unit. Count the total number of voxel elements in multiple voxel meshes, create a two-dimensional matrix with the same number of rows and columns as the total number of voxel elements as the initial structure to carry the coupling matrix, and map the row index and column index of the initial structure to the voxel element identifiers in multiple voxel meshes respectively. Traverse the nested relationship tuples in the spatial nesting relationship, extract the sub-level voxel unit identifiers and parent-level voxel unit identifiers in the nested relationship tuples, locate the intersection of the row index corresponding to the sub-level voxel unit identifier and the column index corresponding to the parent-level voxel unit identifier in the initial structure of the bearing coupling matrix, fill the intersection position with the area of the vertical projection overlap region of the voxel unit as the weight coefficient, and construct the bearing coupling matrix.
4. The method according to claim 1, characterized in that, Select cargo, determine the voxel units occupied by the cargo based on the correspondence between the cargo's external dimensions and voxel scale coefficients, and decompose the cargo's mass distribution into voxel units to form a mass vector, including: Select the cargo and obtain its three-dimensional shape and mass data. Compare the three-dimensional shape with the voxel scale coefficient to determine the three-dimensional coordinate range of the voxel units occupied by the cargo in multiple voxel grids. For each voxel unit within the three-dimensional coordinate range, determine the spatial topological relationship between the voxel unit and the cargo outline boundary. Voxel units that are completely inside the cargo outline boundary are marked as internal voxel units, and voxel units that intersect with the cargo outline boundary are marked as boundary voxel units. For internal voxel units, the complete volume of the voxel unit is used as the mass allocation benchmark. For boundary voxel units, the actual volume occupied by the cargo shape inside the voxel unit is used as the mass allocation benchmark. The proportion of the mass allocation benchmark of each voxel unit to the total of all mass allocation benchmarks is calculated as the mass allocation weight. The mass data of the cargo is decomposed into the voxel units occupied by the cargo according to the mass allocation weight corresponding to each voxel unit, and the mass components carried by each voxel unit are obtained. The mass components are combined according to the three-dimensional coordinate arrangement order of the voxel units to form a mass vector.
5. The method according to claim 1, characterized in that, Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load tensor field. Voxel elements exceeding the load limit are identified from the load tensor field. The influence domain of these exceeding-limit voxel elements is obtained by transposing the load coupling matrix. Voxel elements within the influence domain are marked as unusable, including: Tensor operations are performed on the mass vector and the bearing coupling matrix to obtain the bearing values of each voxel element in multiple sets of voxel grids. The bearing values are then organized according to the spatial distribution relationship of the voxel elements in multiple sets of voxel grids to form a bearing tensor field. Traverse the voxel elements at each level in the load tensor field. When the load value exceeds the preset load limit, mark it as a load-exceeding voxel element and record the three-dimensional coordinates of the load-exceeding voxel element in multiple sets of voxel meshes. Extract the column index sequence corresponding to the overloaded voxel element in the load coupling matrix, perform a transpose operation on the load coupling matrix, extract the row vector corresponding to the column index sequence from the transposed load coupling matrix, and identify the row index sequence corresponding to the position where the weight coefficient is greater than zero in the row vector. The row index sequence is converted into the three-dimensional coordinates of voxel elements. The three-dimensional coordinates of the converted voxel elements are determined as the influence domain that carries the overlimit voxel elements. Voxel elements within the influence domain are marked as unusable.
6. The method according to claim 5, characterized in that, Tensor operations are performed between the mass vector and the load coupling matrix to obtain the load values of each voxel element in multiple sets of voxel grids. The load values are then organized according to the spatial distribution of the voxel elements in the multiple sets of voxel grids to form a load tensor field, including: Traverse the mass vector to identify source voxel units with non-zero mass components, extract the load transfer weight vector corresponding to the source voxel unit from the load coupling matrix, perform a weighted allocation operation on the mass components of the source voxel unit and the load transfer weight vector, and accumulate the weighted allocation operation result to the corresponding voxel unit according to the column index to obtain the transfer load value of each voxel unit. Extract voxel pairs with parent-child hierarchical relationships from the spatial nesting relationship, construct a bearer backtracking propagation network, and perform reverse aggregation of the transmitted bearer values of the child-level voxel units to the parent-level voxel units along the bearer backtracking propagation network. When the aggregated bearer value received by the parent-level voxel unit is greater than the transmitted bearer value of the parent-level voxel unit itself, replace the transmitted bearer value of the parent-level voxel unit with the aggregated bearer value to obtain the corrected bearer value of each voxel unit. The mass component of each voxel element in the mass vector is superimposed with the corrected bearing value of the corresponding voxel element to obtain the bearing value of each voxel element. Tensor indexes are constructed according to the spatial distribution relationship of voxel elements in multiple voxel grids. The bearing values of each voxel element are filled into the tensor index positions to form the bearing tensor field.
7. The method according to claim 1, characterized in that, Extracting unmarked and unoccupied voxel units to construct a connected graph, performing topological analysis on the connected graph to obtain gap topological features, calculating the isomorphism between the gap topological features and the topological description of the cargo dimensions to be loaded, generating a cargo loading sequence based on the isomorphism, loading cargo according to the cargo loading sequence, and outputting the loading scheme, including: Extract voxel units that are not marked as unavailable and are not occupied, establish connectivity relationships among voxel units that share surface boundaries, and construct a connected graph; The connected graph is decomposed into multiple connected components by performing topological analysis. The total number of voxel units in each connected component and the maximum span along the length, width and height directions are counted to obtain the void topological features. The length, width, and height dimensions of the cargo to be loaded are converted into the number of voxels occupied. The volume of the cargo to be loaded is converted into the total number of voxels. The total number of voxels and the number of voxels occupied in each direction are used as the topological description of the cargo's external dimensions. Calculate the volume fit between the void topology features and the total number of voxel units and the total number of voxels in the topological description of the dimensions of the cargo to be loaded; calculate the morphological fit between the void topology features and the maximum span in each direction and the number of voxels occupied in each direction in the topological description of the dimensions of the cargo to be loaded. Combining volume fit and shape fit yields the isomorphism between the void topology features and the topological description of the cargo's external dimensions. Based on the isomorphism, sort the goods to be loaded to generate the loading order, load the goods to be loaded to the corresponding connected components according to the loading order, and output the loading scheme.
8. The method according to claim 7, characterized in that, The isomorphism between the void topology features and the topological description of the cargo's external dimensions, calculated by combining volumetric fit and morphological fit, includes: Extract the numerical difference between the total number of voxel units in the void topology feature and the total number of voxels in the topology description of the cargo's external dimensions. Construct a volume matching factor based on the ratio of the numerical difference to the total number of voxels, and use the volume matching factor as the volume fit degree. Extract the numerical differences between the maximum span along the length, width, and height directions in the topological features of the gap and the number of voxels occupied in the length, width, and height directions in the topological description of the cargo to be loaded. Calculate the ratio of the absolute value of the numerical difference in each direction to the number of voxels occupied in the corresponding direction. Sum the ratios in each direction by weight to obtain the morphological deviation. Map the reciprocal of the morphological deviation to the morphological fit. The volume fit and shape fit are weighted and combined, and the isomorphism between the topological features of the gap and the topological description of the external dimensions of the cargo to be loaded is determined based on the weighted combination result.