Gravity center detection device, gravity center detection method, and program
The center-of-gravity detection device processes point cloud data to form a solid model from a contour model, omitting lower portions and filling cavities with voxels, thereby enhancing the accuracy of center of gravity calculations for objects with complex shapes.
Patent Information
- Application Number
- JP2024068566
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-19
- Publication Date
- 2025-10-30
AI Technical Summary
Existing methods for determining the center of gravity using LiDAR sensors and point cloud data are limited to calculating within a single voxel and do not effectively create a large number of voxels from point cloud data, making accurate detection of the center of gravity challenging, particularly when lifting heavy objects in a factory setting.
A center-of-gravity detection device and method that creates a contour model from point cloud data, omits the lower portion of the outer shell model, fills cavities with voxels to form a solid model, and calculates the center of gravity from this model, allowing for accurate detection using a LiDAR sensor.
Enables more precise determination of the center of gravity by processing point cloud data to form a solid model, accurately calculating the center of gravity of objects, even those with complex shapes or cavities.
Smart Images

Figure 2025164537000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a center-of-gravity detection device, a center-of-gravity detection method, and a program. [Background technology]
[0002] BACKGROUND ART There is known a technique for measuring an object with a LiDAR (Light Detection and Ranging) sensor, acquiring the shape of the object as point cloud data, and converting the acquired point cloud data into voxels (see, for example, Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] NavVis [Technical Blog] NavVis VLX Point Cloud Density Homepage [Retrieved March 1, 2024], Internet <URL:https: / / solutions.kke.co.jp / navvis / news / %E3%80%90%E6%8A%80%E8%A1%93%E3%83%96%E3%83%AD%E3%82%B0%E3%80%91navvis-vlx%E3%81%AE%E7%82%B9%E7%BE%A4%E5%AF%86%E5%BA%A6 / > Summary of the Invention [Problem to be solved by the invention]
[0004] There is a need to scan an object with a LiDAR sensor and more accurately determine the center of gravity of the object from an object image identified by point cloud data. More specifically, there is a need to grasp the center of gravity when lifting a heavy object in a factory, for example. However, the configuration described in Non-Patent Document 1 only shows calculation of the center of gravity within one voxel, and does not create a large number of voxels from point cloud data and calculate the center of gravity of the object from an object image as a collection of these large number of voxels.
[0005] In view of the above circumstances, the present invention aims to provide a center of gravity detection device, a center of gravity detection method, and a program that can more accurately detect the center of gravity of an object using point cloud data obtained by scanning the object. [Means for solving the problem]
[0006] The present invention relates to the following center-of-gravity detection device, center-of-gravity detection method, and program.
[0007] (1) a contour model creation unit that creates a contour model of an object composed of a plurality of first voxels using point cloud data obtained by irradiating the object with light; a lower processing unit that omits a lower portion of the outer shell model; a solid model creation unit that, when a cavity exists within an area surrounded by the first voxels in the outer shell model with the lower portion omitted, creates a solid model in which the interior of the outer shell model is filled by filling the cavity with a plurality of second voxels; a center of gravity calculation unit that calculates the center of gravity of the object from the solid model; A center of gravity detection device comprising:
[0008] (2) The center of gravity detection device described in (1), wherein the lower processing unit is configured to be able to execute processing to prevent the data of the lower part of the outer shell model from being used in the center of gravity calculation unit.
[0009] (3) The solid model creation unit creates the solid model from which the lower portion is omitted, and extends a lower end portion of the solid model from which the lower portion is omitted downward by the vertical length of the omitted lower portion, The center of gravity detection device according to (1) or (2), wherein the center of gravity calculation unit calculates the center of gravity of the object from the solid model extended downward.
[0010] (4) An operation unit is provided for a user to operate the center-of-gravity detection device, the operation unit accepts an operation by the user to designate a point on a point cloud image identified by the point cloud data; The center of gravity detection device according to any one of (1) to (3), further comprising a coordinate axis setting unit that sets X, Y and Z coordinate axes that are orthogonal to each other with the point designated by the user as the origin.
[0011] (5) An operation unit for a user to operate the center-of-gravity detection device is provided, the operation unit accepts an operation by the user to set a range of the object in a point cloud image specified by the point cloud data; The center of gravity detection device according to any one of (1) to (4), wherein the contour model creation unit creates the contour model for a range set by the user.
[0012] (6) a contour model creation step of creating a contour model of the object composed of a plurality of first voxels using point cloud data obtained by irradiating the object with light; a lower part processing step of omitting a lower part of the outer shell model; a solid model creation step of creating a solid model in which the interior of the outer shell model is filled by filling the cavity with a plurality of second voxels when a cavity exists within an area surrounded by the first voxels in the outer shell model with the lower part omitted; a center of gravity calculation step of calculating a center of gravity of the object from the solid model; The centroid detection method includes:
[0013] (7) To the computer, a contour model creation step of creating a contour model of the object composed of a plurality of first voxels using point cloud data obtained by irradiating the object with light; a lower part processing step of omitting a lower part of the outer shell model; a solid model creation step of creating a solid model in which the interior of the outer shell model is filled by filling the cavity with a plurality of second voxels when a cavity exists within an area surrounded by the first voxels in the outer shell model with the lower part omitted; a center of gravity calculation step of calculating a center of gravity of the object from the solid model; A program that executes. [Effects of the Invention]
[0014] According to the present invention, the center of gravity of an object can be detected more accurately using point cloud data obtained by scanning the object. [Brief explanation of the drawings]
[0015] [Figure 1] FIG. 1 is a block diagram showing the configuration of the main part of a center-of-gravity detection system including a center-of-gravity detection device. [Figure 2] FIG. 2 is a perspective view that schematically shows how an object is measured using a center-of-gravity detection device according to one embodiment of the present invention. [Figure 3] FIG. 3 is a diagram showing an example of a point cloud image, an example of a boundary frame, and an example of an operation image. [Figure 4] FIG. 4 is a schematic diagram of the display unit when the center-of-gravity detection range is set. [Figure 5] FIG. 5A is a diagram showing an outline model that has not been processed by the lower processing unit, and FIG. 5B is a diagram showing an outline model that has been processed by the lower processing unit. [Figure 6] 6A and 6B are conceptual diagrams for explaining the hole filling operation, where FIG. 6A shows an outer shell model with a hole, and FIG. 6B shows a side view and a vertical cross-sectional view of an area including the hole. [Figure 7] 7A and 7B are conceptual diagrams for explaining the hole filling operation, showing a side view and a vertical cross section of a portion including a hole. [Figure 8] Fig. 8A is a conceptual diagram for explaining the hole filling operation, showing a vertical cross section of a portion including a hole, and Fig. 8B is a conceptual diagram for explaining the hole filling operation, showing a horizontal cross section of a portion including a hole. [Figure 9]9A is a conceptual diagram for explaining post-processing of the hole filling operation, showing a vertical cross-sectional view of a solid model formed by deleting unnecessary temporary voxels, and FIG. 9B is a conceptual diagram for explaining processing for creating a solid model, showing a vertical cross-sectional view of the solid model with its lower end extended downward. [Figure 10] Figure 10A is an oblique view of an outer shell model when the object is a hollow member such as a hollow shaft, showing a state in which there is a hole, and Figure 10B shows a side view and a vertical cross-section of an area including the hole and cavity. [Figure 11] 11A is a conceptual diagram for explaining the hole filling operation, showing a side view and a vertical cross section of a portion including a hole and a cavity. FIG. 11B is a conceptual diagram for explaining the hole filling operation, showing a vertical cross section of a portion including a hole and a cavity. [Figure 12] FIG. 12 is a conceptual diagram for explaining the hole filling operation, showing a vertical cross section of a hole portion and a portion including a cavity. [Figure 13] FIG. 13 is a schematic diagram showing a state in which the center of gravity is displayed on an object image. [Figure 14] Figure 14A is a schematic diagram showing a state in which only the first voxel of the solid model is displayed on the display unit, Figure 14B is a schematic diagram showing a state in which only the second voxel of the solid model is displayed on the display unit, and Figure 14C is a schematic diagram showing a state in which the first voxel and second voxel of the solid model are displayed simultaneously on the display unit in different colors. [Figure 15] FIG. 15 is a flowchart showing an example of the operation of the center-of-gravity detection system including the center-of-gravity detection device. [Figure 16] FIG. 16 is a block diagram showing an example of a computer that realizes the center-of-gravity detection device. DETAILED DESCRIPTION OF THE INVENTION
[0016] Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0017] Fig. 1 is a block diagram showing the configuration of the main parts of a center-of-gravity detection system 1 including a center-of-gravity detection device 10. Fig. 2 is a perspective view schematically showing how an object B1 is measured using the center-of-gravity detection device 10 according to one embodiment of the present invention.
[0018] (Outline of processing performed by center of gravity detection device 10) As shown in FIGS. 1 and 2, the center of gravity detection device 10 uses point cloud data obtained by irradiating light onto objects such as objects B1 and B2 to create an outer shell model X1 (described below) of the object B1, which is composed of a plurality of first voxels X10 (described below). Next, if a cavity exists within an area X16 surrounded by the first voxels X10, the center of gravity detection device 10 fills the cavity with a plurality of second voxels X20 (described below) to create a solid model X2 (described below) in which the interior of the outer shell model X1 is solid. Next, the center of gravity detection device 10 calculates the center of gravity G (center of gravity position) of the object B1 from the solid model X2. In this embodiment, a rectangular parallelepiped cabinet is shown as an example of the object B1, but the object B1 may have other shapes, such as a cylindrical, polygonal prism, cylinder, polygonal tube, cone, or polygonal pyramid.
[0019] (Configuration of center-of-gravity detection system 1 including center-of-gravity detection device 10) The center-of-gravity detection system 1 is formed using, for example, a smartphone, a tablet, smart glasses, etc. The center-of-gravity detection system 1 may be formed by a single mobile terminal such as a smartphone, a tablet, or smart glasses, or may be formed by combining a mobile terminal with an information processing device such as a server. In this embodiment, an example in which the center-of-gravity detection system 1 is formed by a tablet will be mainly described.
[0020] The center-of-gravity detection system 1 includes a LiDAR sensor 2, a display unit 3, and a center-of-gravity detection device 10.
[0021] The LiDAR sensor 2 irradiates the object B1 with light rays such as near-infrared light, visible light, or ultraviolet light, and captures the light reflected by this irradiation with an optical sensor. The LiDAR sensor 2 outputs the detection results as point cloud data, for example, but the specific output format of the detection results is not limited. The LiDAR sensor 2 is held by a user U, and the user U moves around the object B1, for example, as shown by the arrow in Figure 2, thereby measuring the 360° surroundings of the object B1.
[0022] The display unit 3 is a part that displays an image to the user U in an image display device such as a smartphone, a tablet, or smart glasses, and is an image display unit such as a liquid crystal display unit.
[0023] The center of gravity detection device 10 receives the output from the LiDAR sensor 2, detects the center of gravity G of the object B1 using the results of the LiDAR sensor 2 measuring the object B1, and displays the detection results on the display unit 3.
[0024] The center of gravity detection device 10 includes a boundary frame display unit 12, a point cloud image creation unit 14, a range setting unit 16, an outer periphery model creation unit 18, a lower processing unit 20, a coordinate axis setting unit 22, a hole filling processing unit 24, a solid model creation unit 26, a center of gravity calculation unit 28, a display processing unit 30, and an operation unit 32.
[0025] 3 is a diagram showing an example of a point cloud image P1, an example of a boundary frame P2, and an example of an operation image P10. As shown in FIGS. 1 to 3, the operation unit 32 is a user interface, such as a touch panel, a keyboard, or a mouse, that is operated by a user U who operates the center-of-gravity detection device 10. The operation unit 32 is operated by the user U based on the display, such as the operation image P10, displayed on the display unit 3, and outputs a command signal to each part of the center-of-gravity detection device 10 according to the operation content.
[0026] The operation unit 32 displays an operation image such as the operation image P10 on the display unit 3 and outputs a command signal in response to the operation of the operation image P10. Operating the operation unit 32 can change the display mode of the point cloud image P1. For example, the operation unit 32 may allow the user U to operate the display unit 3 on which an image such as the point cloud image P1 is displayed with one finger, thereby rotating the image three-dimensionally. The operation unit 32 may also be configured so that the user U can pinch the display unit 3 on which an image such as the point cloud image P1 is displayed with two fingers, thereby enlarging or reducing the image. The operation unit 32 may also be configured so that the user U can slide the display unit 3 on which an image such as the point cloud image P1 is displayed with two fingers, thereby moving the image in parallel. When the user U taps the display unit 3 on which an image such as the point cloud image P1 is displayed, a dot or the like may be displayed on the display unit 3 (image) to indicate the tapped location.
[0027] The operation unit 32 displays an operation image P10 on the display unit 3. The operation image P10 includes an initial position button P11, a center of gravity detection button P12, a point cloud size selection slider P13, a center of gravity display button P16, a coordinate axis display button P17, and a bounding box display button P18.
[0028] When the user U operates the initial position button P11, the operation unit 32 sets the orientation and scale of the point cloud image P1 so that it is in the initial display state when the point cloud image P1, described later, is created, and sets the point cloud image P1 to its initial display state. Furthermore, when the user U operates the center of gravity detection button P12, the operation unit 32 outputs a signal to start measuring the center of gravity of an object (e.g., object B1) measured by the LiDAR sensor 2. Furthermore, the point cloud size selection slider P13 is provided for selecting the point cloud size of the image displayed on the display unit 3. The point cloud size selection slider P13 displays "none," "small," and "large." When the user U operates the point cloud size selection slider P13, the point cloud image P1 is displayed with a point cloud of a size corresponding to the selection. In FIG. 3, the "large" state is shown. When "none" is selected, at least one of an outline model X1 and a solid model X2, described later, is displayed instead of the point cloud image P1.
[0029] When the user U operates the center of gravity display button P16 in a state in which the center of gravity G has been detected, the operation unit 32 turns on / off the display of the center of gravity G on the image of the object B1 on the display unit 3. FIG. 3 shows a state in which the center of gravity G is not displayed. When the user U operates the coordinate axis display button P17, the operation unit 32 turns on / off the display of the coordinate axes P5 on the display unit 3. FIG. 3 shows a state in which the coordinate axes P5 are displayed. When the bounding frame display button P18 is operated, the operation unit 32 turns on / off the display of the bounding frame P2 on the display unit 3. FIG. 3 shows a state in which the bounding frame P2 is displayed.
[0030] The boundary frame display unit 12 is provided on the display unit 3 to display the range measured by the LiDAR sensor 2 as a rectangular frame. The boundary frame display unit 12 displays the range measured by the LiDAR sensor 2, for example, a range including a location where the LiDAR sensor 2 has received a signal of a certain strength or greater, as a boundary frame P2. The center of gravity detection device 10 is configured to perform center of gravity detection processing for an object B1 or the like that exists within the boundary frame P2.
[0031] The point cloud image creation unit 14 creates a point cloud image P1 that shows the object B1 as a point cloud based on the output from the LiDAR sensor 2. The point cloud image P1 is an image identified by point cloud data. The point cloud image P1 is an image that displays objects such as objects B1 and B2 as a collection of numerous points, and is displayed on the display unit 3. The LiDAR sensor 2 is configured to measure the outer surfaces of objects such as object B1, and while it outputs measurement results for the outer surface of object B1, it cannot measure the interior of object B1. Therefore, the point cloud image P1 identified by the point cloud data is an image that shows the surface of object B1, and does not include data about the interior of object B1. The point cloud image P1 may be a color image, a grayscale image, or a monochrome image.
[0032] 3 shows a cabinet as object B1 and a table as object B2 as examples of point cloud image P1. Point cloud image creation unit 14 is configured to change the orientation in which point cloud image P1 is displayed and the size (display magnification) of point cloud image P1 in response to a predetermined command signal from operation unit 32.
[0033] The coordinate axis setting unit 22 sets a coordinate axis P5 in the point cloud image P1. The operation unit 32 accepts an operation by the user U to specify a point (e.g., point P3) on a ground image PB3 corresponding to the ground B3 in the point cloud image P1 identified by the point cloud data. Based on a command signal generated by this, the coordinate axis setting unit 22 sets XYZ coordinate axes that are orthogonal to each other, with the point P3 specified by the user U as the origin. The X and Y axes are horizontal axes, and the Z axis is a vertical axis.
[0034] FIG. 4 is a schematic diagram of the display unit 3 when the center-of-gravity detection range P14 is set. As shown in FIGS. 1 to 4, the range setting unit 16 is provided for setting the center-of-gravity detection range P14. The range setting unit 16 becomes operable when the user U operates (presses) the center-of-gravity detection button P12 by operating the operation unit 32. In other words, the operation unit 32 accepts the user U's operation of setting the range of the object image PB1 in the point cloud image P1 identified by the point cloud data. For example, when the user U operates the center-of-gravity detection button P12 and then taps the ground image PB3 in the point cloud image P1, the point cloud image P1 becomes planar on the display unit 3, as shown in FIG. 4. Note that the point cloud image P1 may become planar by operating the center-of-gravity detection button P12, or the point cloud image P1 may become planar by manual operation of the display unit 3 by the user U after operating the center-of-gravity detection button P12.
[0035] As shown in Fig. 4, when the point cloud image P1 is in a planar view, the user U taps the point cloud image P1, etc., to set the center of gravity detection range P14. For example, when the user U designates three or more points (four points in Fig. 4) in the point cloud image P1 that form a shape surrounding an object image PB1, which is an image of an object B1, the range setting unit 16 sets the area surrounded by these points as the center of gravity detection range P14. This sets the object B1 as the target for center of gravity detection.
[0036] FIG. 5A is a diagram showing an outline model X1 that has not been processed by the lower processing unit 20, and FIG. 5B is a diagram showing the outline model X1 that has been processed by the lower processing unit 20. As shown in FIGS. 1 to 5B, the outline model creation unit 18 creates an outline model X1 of an object (object B1 in this embodiment) that is configured from a plurality of first voxels X10, using point cloud data obtained by irradiating light onto object B1. The outline model creation unit 18 replaces the object image PB1 with first voxels X10 of a predetermined size. In this embodiment, the outline model creation unit 18 converts the center of gravity detection range P14 set by the range setting unit 16 in the point cloud image P1 into the outline model X1. In this embodiment, the object image PB1 in the point cloud image P1 is set by the range setting unit 16. Therefore, the outline model creation unit 18 creates an outline model X1 of the object image PB1. In this manner, in this embodiment, the outline model creation unit 18 creates an outline model X1 for the range set by the user U. The method of replacing the point cloud image P1 with the first voxel X10 where the point cloud image P1 exists is well known, and therefore a detailed description thereof will be omitted.
[0037] The size of the first voxel X10 in the contour model X1 can be set arbitrarily. Specifically, for example, after the range setting unit 16 sets the center-of-gravity detection range P14, the operation unit 32 causes the display unit 3 to display an operation image P20 (FIG. 4) for setting the size of the first voxel X10, etc.
[0038] The operation image P20 includes a ground offset setting section P21, a ground height to be ignored setting section P22, a resolution setting section P23, and a number of times of filling setting section P24.
[0039] The resolution setting unit P23 is provided to set the size of the first voxel X10 and the second voxel X20 (described later). The resolution in the resolution setting unit P23 refers to the length of one side of the first voxel X10. The resolution setting unit P23 has a numerical field indicating the resolution and a minus button and a plus button. The user U can change the resolution value in increments of 0.1 cm, for example, by operating the minus button and the plus button.
[0040] The contour model creating unit 18 creates a contour model X1 by arranging a first voxel X10, which is a cube with one side equal to the set resolution value, at a location where a point of the object image PB1 exists.
[0041] The ground offset setting unit P21 and the ground height to be ignored setting unit P22 are provided to operate the lower processing unit 20. The ground offset setting unit P21 and the ground height to be ignored setting unit P22 are used to cause the lower processing unit 20 to perform processing to omit the lower part X1a of the outline model X1 with respect to the image (object image PB1) within the center of gravity detection range P14.
[0042] The ground offset setting section P21 and the ignored ground height setting section P22 each include a numerical value (cm) field indicating the offset amount (height) from the ground B3, and a minus button and a plus button. By operating the minus button and the plus button, the user U can change the value of the offset amount (height) in a range of zero or more in increments of, for example, 0.1 cm.
[0043] In either case where the user U sets the ground offset setting section P21 or where the user U sets the ground height setting section P22 to be ignored, the operation section 32 causes the lower processing section 20 to perform processing so that the data of the lower part X1a of the outer shell model X1 is not used in the center of gravity calculation section 28.
[0044] Specifically, when the user U sets the ground offset setting section P21 to a value greater than zero, the operation unit 32 determines that the portion of the contour model X1 whose height from the ground image PB3 is up to the value of the ground offset setting section P21 is the lower part X1a, and operates the lower processing unit 20 to delete the data of this lower part X1a. That is, the lower processing unit 20 performs processing to delete the data of the lower part X1a of the contour model X1. Similarly, when the user U sets the ground height to be ignored setting section P22 to a value greater than zero, the operation unit 32 determines that the portion of the contour model X1 whose height from the ground image PB3 is up to the value of the ground height to be ignored setting section P22 is the lower part X1a, and operates the lower processing unit 20 to delete the data of this lower part X1a. Furthermore, when the ground height to be ignored setting section P22 is set to a value greater than zero, the operation unit 32 operates the solid model creation unit 26 to extend the lower end of the solid model X2, from which the lower part X1a has been omitted, downward by the vertical length of the omitted lower part X1a.
[0045] When the user U sets at least one of the ground offset setting unit P21 and the ground height to be ignored setting unit P22, the lower processing unit 20 creates an outline model X1 in which the portion from the ground B3 up to the height of the set value is deleted and does not exist, as shown in Fig. 5B. That is, the center of gravity detection device 10 creates an outline model X1 in which the lower part X1a is omitted. On the other hand, when the user U does not set both the ground offset setting unit P21 and the ground height to be ignored setting unit P22, the lower processing unit 20 does not operate, and an outline model X1 including a ground image PB3 is created, as shown in Fig. 5A.
[0046] Returning to the operation image P20, the fill count setting section P24 is provided to set the number of times the fill processing section 24 will fill voxels.
[0047] Here, the reason why the hole filling operation is necessary will be explained. When measurement results cannot be obtained by the LiDAR sensor 2 or an irregular event such as a measurement error occurs, a hole may appear in the object image PB1. If such a hole exists, when an outline model X1 is created from the object image PB1, a hole (e.g., hole X31, described later) will appear in the outline model X1. If a hole exists, the solid model creation unit 26 cannot recognize the boundary between the area inside the first voxel X10 and the area outside the first voxel X10, and cannot recognize the area X16 three-dimensionally surrounded by the first voxels X10. Therefore, the solid model creation unit 26 cannot perform the process of creating a solid model X2 of the object image PB1 by filling the area X16 surrounded by the first voxels X10 with multiple second voxels X20. The hole filling operation is an operation for filling such a hole when such a hole exists, and is executed by the hole filling processing unit 24.
[0048] 6A and 6B are conceptual diagrams for explaining the hole-filling operation, in which Fig. 6A shows a contour model X1 having a hole X31, and Fig. 6B shows a side view and a vertical cross-sectional view of the area including the hole X31. Figs. 7A and 7B are conceptual diagrams for explaining the hole-filling operation, in which a side view and a vertical cross-sectional view of the area including the hole X31 are shown. Note that in each diagram showing the first voxel X10, the back side of the page is not shown.
[0049] First, an overview of the hole filling operation will be described. As shown in FIGS. 1, 6A, 6B, 7A, and 7B, one hole filling operation is, for example, an operation of adding one layer of temporary voxels X11 to the empty regions X18 (places where no first voxels X10 exist) around each of the multiple first voxels X10. More specifically, an operation of placing temporary voxels X11 on faces and corners of each first voxel X10 that are not in contact with other first voxels X10 is performed. The temporary voxels X11 are voxels of the same size as the first voxels X10. The temporary voxels X11 may be generated by expanding the first voxels X10 in each of the X, Y, and Z axis directions, or may be generated by newly adding the temporary voxels X11. However, the temporary voxels X11 are not placed below the lower end X14 of the outer shell model X1.
[0050] The filling processor 24 performs the above-described filling operation the number of times set by the filling count setting unit P24. Each filling operation from the second time onward is the same as the filling operation when the immediately preceding temporary voxel X11 is assumed to be the first voxel X10. The filling count setting unit P24 includes a numerical field indicating the number of filling operations and a minus button and a plus button. By operating the minus button and the plus button, the user U can set the number of times the filling processor 24 will perform the filling operation (the number of times the temporary voxel X11 is added; this is also the number of layers of the temporary voxels X11). By performing the above-described filling operation, the filling processor 24 sets the area three-dimensionally surrounded by the multiple first voxels X10 and the multiple temporary voxels X11 as the area X16 surrounded by the first voxels X10.
[0051] By the user U operating the fill count setting unit P24, the fill processing unit 24 can execute the process of adding the temporary voxel X11 multiple times in succession, and the number of times the fill processing unit 24 adds the temporary voxel X11 in succession (the number of layers of the temporary voxel X11) is set to a predetermined value or less.
[0052] Next, a more specific configuration of the hole filling operation will be described. As shown in FIGS. 1, 6A, and 6B, a case will be taken as an example in which a hole X31 exists in the central portion of one side surface of the outline model X1. Also, an example will be taken in which the hole filling count setting unit P24 sets the hole filling count to two. In this case, as shown in FIG. 7A, the hole filling processing unit 24 adds one layer of temporary voxels X11 to the empty regions X18 (areas where no first voxels X10 exist) around each of the multiple first voxels X10 as the first hole filling operation. More specifically, an operation is performed in which temporary voxels X11 (X111) are placed on the faces and corners of each first voxel X10 that are not in contact with other first voxels X10. However, the temporary voxels X11 are not placed below the bottom end X14 of the outline model X1. In this example, the hole X31 is not yet completely filled.
[0053] Next, as shown in FIG. 7B , as a second filling operation, the filling processor 24 performs the same operation as the filling operation performed when the temporary voxel X11 placed immediately before (during the first filling operation) is assumed to be the first voxel X10. More specifically, the temporary voxel X11 (X112) is placed on the faces and corners of the temporary voxel X11 (X111) placed in the first filling operation that are not in contact with the other first voxels X10 or the temporary voxel X111. In the drawing, the temporary voxel X111 and the temporary voxel X112 are shown separately by using different hatching directions. Furthermore, the first voxel X10 is not hatched. By performing this second filling operation, an outline model X1A in which the hole X31 is filled is completed. The outer shell model X1A is a model in which temporary voxels X11 (X111, X112) are added to the outer shell model X1.
[0054] Here, the filling processor 24 can recognize that the first voxel X10 at the bottom end X14 of the outline model X1 (X1A) constitutes the bottom end of the outline model X1 (X1A) based on the bottom end of the bounding box P2, the setting in the ground offset setting unit P21, or the setting in the ignore ground height setting unit P22. For this reason, as described above, the temporary voxel X11 is not placed below the bottom end X14 of the outline model X1 (X1A).
[0055] In this way, if there are any holes X31 in the outline model X1, a hole filling process is performed to fill these holes X31. After the hole filling process is complete, the outline model X1A has no holes, and the area surrounded by the outline model X1A and the area obtained by extending the ground image PB3 horizontally below the outline model X1A, or the area within the outline model X1A from which the lower part X1a has been omitted due to processing by the lower processing unit 20, becomes a closed space.
[0056] As shown in FIGS. 7B, 8A, and 8B, if a cavity (a portion without hatching in FIG. 7B) exists within a region X16 of the outer shell model X1A three-dimensionally surrounded by the first voxel X10 and the provisional voxel X11, the solid model creation unit 26 fills the cavity with a plurality of second voxels X20 to create a provisional solid model X2A in which the interior of the outer shell model X1A is filled. In this case, the provisional voxel X11 is treated as the first voxel X10. FIG. 8A is a conceptual diagram for explaining the hole filling operation, showing a vertical cross-section of a portion including a hole portion X31. FIG. 8B is a conceptual diagram for explaining the hole filling operation, showing a horizontal cross-section of a portion including the hole portion X31. In the diagram, the second voxel X20 is indicated by horizontal hatching. The second voxel X20 is a voxel of the same size as the first voxel X10, and fills the cavity (FIG. 7B) in the region X16 surrounded by the first voxels X10 without any gaps. The method by which the solid model creation unit 26 fills the second voxels X20 is not limited, and any known method may be used.
[0057] Next, the solid model creation unit 26 deletes the unnecessary temporary voxel X11 from the temporary solid model X2A. Specifically, as shown in FIG. 9A, after adding the second voxel X20, the solid model creation unit 26 deletes the temporary voxel X11 from the temporary solid model X2A that is outside the region enclosed by the first voxel X10 and the temporary voxel X11 that filled the hole X31. FIG. 9A is a conceptual diagram for explaining post-processing of the hole filling operation, showing a vertical cross-sectional view of the solid model X2 formed by deleting the unnecessary temporary voxel X11. The solid model creation unit 26 treats the temporary voxel X11 that was not deleted as the first voxel X10. If the lower portion X1a is omitted by the lower processing unit 20, the portion corresponding to the lower portion X1a is omitted from the solid model X2.
[0058] Here, if the value of the ground height setting section P22 to be ignored is set to be greater than zero, the solid model creation section 26 extends the lower end X2a of the solid model X2, from which the lower portion X1a has been omitted, downward by the vertical length of the omitted lower portion X1a, as shown in FIG. 9B. FIG. 9B is a conceptual diagram for explaining the process of creating the solid model X2, and is a vertical cross-sectional view showing a state in which the lower end X2a of the solid model X2 has been extended downward. As shown in FIG. 9B, the solid model creation section 26 extends the pre-extension lower end X2a (shown by a two-dot chain leader line in FIG. 9B) downward by the vertical length of the omitted lower portion X1a. FIG. 9B shows, as an example, a model extended downward from the pre-extension lower end X2a by a second voxel X20.
[0059] As described above, an example of the configuration for creating the solid model X2 from the outer shell model X1 has been described. As a further example, a case where the object B1 is a hollow member will be described below.
[0060] 10A, 10B, 11A, 11B, and 12 are conceptual diagrams for explaining another example of the hole filling operation. Fig. 10A is a perspective view of an outer shell model X1' when the object B1 is a hollow member such as a hollow shaft, showing a state in which a hole portion X33 and a cavity X21 are present. Fig. 10B shows a side view and a vertical cross-sectional view of a portion including the hole portion X33 and the cavity X21. Fig. 11A is a conceptual diagram for explaining the hole filling operation, showing a side view and a vertical cross-sectional view of a portion including the hole portion X33 and the cavity X21. Figs. 11B and 12 are conceptual diagrams for explaining the hole filling operation, showing vertical cross-sectional views of a portion including the hole portion X33 and the cavity X21.
[0061] As shown in FIGS. 10A and 10B, for example, in an outline model X1′, there is a cavity X21 that penetrates the center of the outline model X1′ in the longitudinal direction of the outline model X1′, and further, there is a hole X33 on the outer peripheral surface of the outline model X1′. Also, an example is given in which the hole filling count setting unit P24 sets the hole filling count to 1. In this case, as shown in FIG. 11A, the hole filling processing unit 24 (FIG. 1) adds one layer of temporary voxels X11 to empty regions X18 (places where no first voxels X10 exist) around each of the multiple first voxels X10 as a hole filling operation. More specifically, an operation is performed in which the temporary voxels X11 are placed on faces and corners of each first voxel X10 that are not in contact with other first voxels X10. In this example, the hole X33 is filled by a single hole filling operation. By this filling operation, an outer shell model X1'A is completed in which the hollow portion X33 is filled in. In the outer shell model X1'A, a part of the cavity X21 is also filled with the temporary voxel X11.
[0062] In this way, if there is a hole X33 in the outline model X1', a filling process is performed to fill this hole X33. After the filling process is completed, the outline model X1'A has no holes.
[0063] As shown in FIGS. 11A and 11B, if a cavity (a portion outside the cavity X21 and not hatched in FIG. 11A) exists within a region X16 of the outer shell model X1'A that is three-dimensionally surrounded by first voxels X10, the solid model creation unit 26 fills the cavity with a plurality of second voxels X20 to create a provisional solid model X2'A in which the interior of the outer shell model X1'A is filled. In the figures, the second voxels X20 are indicated by parallel hatching on the left and right. In this case, the cavity X21 is open in the longitudinal direction of the outer shell model X1'A (the direction perpendicular to the paper surface of FIG. 12) and is not three-dimensionally surrounded by the first voxels X10. Therefore, the second voxels X20 are not placed within the cavity X21.
[0064] Next, the solid model creation unit 26 deletes the unnecessary temporary voxel X11 from the temporary solid model X2'A. Specifically, the solid model creation unit 26 deletes the first voxel X10 and the temporary voxel X11 outside the region enclosed by the temporary voxel X11 that filled the hole X33 from the temporary solid model X2'A shown in FIG. 11B. Here, the temporary voxel X11 that was placed in the void X21 is deleted because it is outside the three-dimensionally enclosed region. Then, the void X21 returns to the void X21 before the hole filling process. The solid model creation unit 26 treats the temporary voxel X11 that was not deleted as the first voxel X10. In this way, the solid model creation unit 26 creates the solid model X2'.
[0065] If, for example, no cavity exists in the area three-dimensionally surrounded by the first voxel X10 in the outer shell model X1'A in which the temporary voxel X11 is placed, the solid model creation unit 26 does not need to close the second voxel X20. In such a case, the solid model creation unit 26 directly sets the outer shell model X1'A as the temporary solid model X2'A.
[0066] The above is an example of the configuration for creating a solid model X2' from the outer shell model X1' of a hollow member. In the following, a rectangular parallelepiped solid model X2 will be described as an example.
[0067] FIG. 13 is a schematic diagram showing a state in which the center of gravity G is displayed in the object image PB1. As shown in FIGS. 1 and 13, the center of gravity calculation unit 28 calculates the center of gravity G of the object B1 from the solid model X2. The solid model X2 is a model with a solid interior, and is a model when the density of the object B1 is considered to be uniform. The center of gravity calculation unit 28 calculates the centroid (centroid position) of this solid model X2 as the center of gravity G (center of gravity position) of the solid model X2. Since a method for calculating the centroid of a model with a solid interior that is tightly packed is publicly known, a specific calculation method will be omitted. The center of gravity calculation unit 28 may also calculate the volume of the solid model X2. Since a method for calculating the volume of a model with a solid interior that is tightly packed is publicly known, a specific calculation method will be omitted.
[0068] When the center of gravity calculation unit 28 calculates the center of gravity G, the center of gravity G is displayed on the display unit 3. This allows the user U to understand where the center of gravity G (centroid) is located. Fig. 13 illustrates a state in which the center of gravity G is displayed together with the solid model X2.
[0069] The display processing unit 30 is provided to process image data to be output to the display unit 3 as an image display device. The display processing unit 30 may process the image data so as to separately display the first voxels X10 and the second voxels X20. In Fig. 13, the point cloud size selection slider P13 is set to "none," and the point cloud image P1 is not shown.
[0070] When the point cloud size selection slider P13 is set to "None" after the center of gravity G has been detected, the display processing unit 30 displays at least one of the first voxel X10 and the second voxel X20. For example, the operation unit 32 displays a voxel display selection cursor P15 on the display unit 3. When the user U operates this cursor P15, the display processing unit 30 selectively executes a mode in which the first voxel X10 and the second voxel X20 are individually displayed, as shown in FIGS. 14A and 14B, and a mode in which the first voxel X10 and the second voxel X20 are simultaneously displayed in different colors, as shown in FIG. 14C.
[0071] Figure 14A is a schematic diagram showing a state in which only the first voxel X10 of the solid model X2 is displayed on the display unit 3, Figure 14B is a schematic diagram showing a state in which only the second voxel X20 of the solid model X2 is displayed on the display unit 3, and Figure 14C is a schematic diagram showing a state in which the first voxel X10 and the second voxel X20 of the solid model X2 are displayed simultaneously on the display unit 3 in different colors.
[0072] As shown in FIG. 14A, when only the first voxel X10 of the solid model X2 is displayed on the display unit 3, only the outer periphery of the solid model X2 is displayed. Also, as shown in FIG. 14B, when only the second voxel X20 of the solid model X2 is displayed on the display unit 3, the user can visually check whether the second voxel X20 is properly packed into the solid model X2. As shown in FIG. 14C, when the first voxel X10 and the second voxel X20 of the solid model X2 are simultaneously displayed on the display unit 3 in different colors, the first voxel X10 is displayed in red, for example, and the second voxel X20 is displayed in blue, for example. In FIG. 14C, the second voxel X20 is represented by a solid color.
[0073] In the above configuration, even if the operation unit 32 is operated to display the second voxel X20 of the solid model X2, conceptually, the second voxel X20 may not be displayed, as shown in FIG. 14A . This occurs because the hole-filling process is not successful, and the area X16 surrounded by the first voxel X10 is not closed due to a hole X31 in the outer shell model X1. In this case, the solid model creation unit 26 is unable to properly fill the second voxel X20, which is undesirable for accurately calculating the center of gravity G. In such a case, for example, the LiDAR sensor 2 can be used to start over with scanning the object B1, or the hole-filling count setting unit P24 can be used to increase the number of hole-filling times, and then the outer shell model X1 can be created again, thereby creating an outer shell model X1 filled with the second voxel X20.
[0074] (device operation) Next, an example of the operation of the center-of-gravity detection system 1 including the center-of-gravity detection device 10 will be described with reference to Fig. 15. Fig. 15 is a flowchart showing an example of the operation of the center-of-gravity detection system 1 including the center-of-gravity detection device 10. In the following description, Figs. 1 to 15 will be referenced as appropriate. In addition, in this embodiment, a center-of-gravity detection method is implemented by operating the center-of-gravity detection device 10. Therefore, the description of the center-of-gravity detection method in this embodiment will be replaced by the following description of the operation of the center-of-gravity detection device 10.
[0075] When detecting the center of gravity G of the object B1, the user U, while holding the LiDAR sensor 2, moves around the object B1 as shown by the arrow in FIG. 2, thereby scanning the entire circumference of the object B1 with light. This obtains point cloud data of the object B1, which is then received by the center of gravity detection device 10 (step S1). Next, the point cloud image creation unit 14 uses the point cloud data to create a point cloud image P1, which is then displayed on the display unit 3 (step S2). Next, as the user U operates the operation unit 32, the range setting unit 16 sets a center of gravity detection range P14 in the point cloud image P1 (step S3).
[0076] Next, the contour model creation unit 18 uses the point cloud data to create a contour model X1 of the object B1 composed of a plurality of first voxels X10 (step S4). Here, if the user U has set the ground offset setting unit P21 or the ground height to be ignored setting unit P22 (YES in step S5), the lower processing unit 20 performs processing to omit the lower part X1a of the contour model X1 (step S6). On the other hand, if the user U has not set either the ground offset setting unit P21 or the ground height to be ignored setting unit P22 (NO in step S5), the lower processing unit 20 does not perform processing to omit the lower part X1a of the contour model X1. Note that the lower processing unit 20 may perform processing to ignore or delete a portion corresponding to the lower part X1a of the contour model X1 as preprocessing of the point cloud data before the contour model X1 is created.
[0077] After the outline model X1 is created, the hole filling processing unit 24 performs a hole filling process to fill hole portions X31 and the like present in the outline model X1 with first voxels X10 (step S7). For the outline model X1A in which the hole portions X31 and the like have been replaced with first voxels X10 (temporary voxels X11) by the hole filling process, the solid model creation unit 26 fills in the area X16 surrounded by the first voxels X10 and the temporary voxels X11 with multiple second voxels X20 to create a temporary solid model X2A in which the inside of the outline model X1A is filled (step S8). If the lower part X1a of the outline model X1 has been omitted by the lower processing unit 20, the solid model creation unit 26 creates a temporary solid model X2A for the outline model X1A from which the lower part X1a has been omitted.
[0078] After the temporary solid model X2A is created, the solid model creation unit 26 creates a solid model X2 from the temporary solid model X2A by deleting unnecessary temporary voxels X11 in the temporary solid model X2A (step S9). Next, if a ground height to be ignored is set in the ground height to be ignored setting unit P22 (YES in step S10), the solid model creation unit 26 extends the lower end X2a of the solid model X2, from which the lower part X1a has been omitted, downward by the vertical length of the omitted lower part X1a (step S11). Thereafter, the center of gravity calculation unit 28 calculates the center of gravity G of the object B1 from the solid model X2 (step S12). The center of gravity calculation unit 28 displays the calculated center of gravity G on the display unit 3 (step S13). At this time, the center of gravity G is displayed superimposed on the point cloud image P1, the outer shell model X1, or the solid model X2 specified by the user U.
[0079] (effect) As described above, according to this embodiment, an outer shell model X1 of the object B1, which is composed of a plurality of first voxels X10, is created using point cloud data obtained by measuring the object B1. Thereafter, if a cavity exists within the region X16 surrounded by the first voxels X10, the cavity is filled with a plurality of second voxels X20, thereby creating a solid model X2 in which the interior of the outer shell model X1 is filled. The center of gravity G of the object B1 is then calculated from the solid model X2. According to this configuration, the outer shell model X1 of the object B1 obtained by detection using the LiDAR sensor 2 is, for example, a hollow model. By filling the interior of this outer shell model X1 with the second voxels X20, a more realistic solid model X2 is created, and the center of gravity G is calculated using this solid model X2. This allows for more accurate calculation of the center of gravity G of the object B1. Furthermore, the center of gravity G of the object B1 can be calculated using a method that requires a relatively low computational load, namely, filling the interior of the outer shell model X1 with the second voxels X20.
[0080] Furthermore, according to this embodiment, if a hole X31 or the like exists in the outer shell model X1 due to a detection error by the LiDAR sensor 2 or the like, the area X16 surrounded by the first voxels X10 does not exist where the area X16 should exist. As a result, the second voxels X20 cannot be filled in the area X16. This is because, if a closed area X16 surrounded by the first voxels X10 does not exist, there is no standard for determining how far the second voxels X20 can be filled. In this case, the second voxels X20 do not exist in the necessary locations in the solid model X2, making it difficult to accurately detect the center of gravity. On the other hand, according to this embodiment, if a hole X31 or the like exists in the outer shell model X1, the hole X31 or the like can be filled in. Therefore, the area X16 surrounded by the first voxels X10 can be more reliably present, and the second voxels X20 can be filled in the area X16. This allows for more accurate center of gravity detection using a solid model X2 filled with second voxels X20.
[0081] Furthermore, according to this embodiment, the hole filling process adds temporary voxels X11 to the empty regions X18 around each of the first voxels X10, and the region three-dimensionally surrounded by the first voxels X10 and the temporary voxels X11 is defined as the region X16 surrounded by the first voxels X10. With this configuration, the hole filling process can be performed by a relatively simple calculation of adding temporary voxels X11 to the empty regions X18 around each of the first voxels X10.
[0082] Furthermore, according to this embodiment, when creating the solid model X2, for example, after adding the second voxel X20, the first voxel X10 and the temporary voxel X11 outside the region enclosed by the temporary voxel X11 that filled the hole X31 are deleted. With this configuration, by deleting the unnecessary temporary voxel X11 after the hole filling process is completed, more accurate center of gravity detection is possible.
[0083] Furthermore, according to this embodiment, when creating the solid model X2, the temporary voxel X11 that was not deleted is treated as the first voxel X10. With this configuration, it is not necessary to distinguish between the temporary voxel X11 and the first voxel X10 when calculating the center of gravity, and the center of gravity G can be calculated by a simpler calculation.
[0084] Furthermore, according to this embodiment, the process of adding the temporary voxel X11 can be performed multiple times in succession in the hole-filling process. With this configuration, even if the hole X31 or the like in the outer shell model X1 is somewhat large, the hole X31 or the like can be filled with the first voxel X10 by performing the hole-filling process, thereby enabling the process of calculating the center of gravity G to be performed more accurately.
[0085] Furthermore, in this embodiment, the number of times that the temporary voxels X11 are added (overlapped) in the hole filling process is set to a predetermined value or less. This configuration makes it possible to prevent the temporary voxels X11 from being excessively overlapped in the outer shell model X1' of a hollow member such as a cylindrical pipe, resulting in the erroneous recognition of the hollow X21, which is actually a hollow, in the outer shell model X1' as a solid portion.
[0086] Furthermore, according to this embodiment, the first voxels X10 and the second voxels X20 are displayed separately on the display unit 3. This configuration makes it possible to visually and easily display whether or not the first voxels X10 have holes X31 or the like, and whether or not the inside of the region X16 surrounded by the first voxels X10 is properly filled with second voxels X20.
[0087] Furthermore, according to this embodiment, a mode in which the first voxels X10 and the second voxels X20 are individually displayed and a mode in which the first voxels X10 and the second voxels X20 are simultaneously displayed in different colors are alternatively executed. With this configuration, it is possible to visually and easily display on the display unit 3 whether or not there are holes X31 or the like in the outer shell model X1, and whether or not the inside of the solid model X2 is filled with the second voxels X20.
[0088] Furthermore, according to this embodiment, an outer shell model X1 is created for the center of gravity detection range P14 set by the user U. With this configuration, the user U specifies the range of the object image PB1 in the point cloud image P1, which prevents the center of gravity detection device 10 from erroneously detecting the range of the object B1, and as a result, the center of gravity G of the object B1 can be detected more accurately.
[0089] Furthermore, according to this embodiment, a solid model X2 is created based on an outer shell model X1 in which the lower portion X1a of the outer shell model X1 is omitted, and the center of gravity G of the object B1 can be calculated from this solid model X2. This configuration makes it possible to prevent the center of gravity G (the position of the center of gravity) from being erroneously detected when the center of gravity G is calculated based on information including the ground B3 located below the object B1. Therefore, the center of gravity G of the object B1 can be detected more accurately.
[0090] Furthermore, according to this embodiment, it is possible to execute a process that does not use data on the lower part X1a of the contour model X1 in calculating the center of gravity. With this configuration, by eliminating the influence of the ground B3 located below the object B1 when calculating the center of gravity, it is possible to obtain a more natural calculation result.
[0091] Furthermore, according to this embodiment, when creating the solid model X2, the solid model X2 is created with the lower part X1a omitted, and the lower end part X2a of the solid model X2 with the omitted lower part X1a is extended downward by the vertical length of the omitted lower part X1a, and further, when calculating the center of gravity, the center of gravity G of the object B1 can be calculated from the downwardly extended solid model X2. With this configuration, the state in which the object B1 is in contact with the ground B3 can be more accurately reproduced and the center of gravity G of the object B1 can be calculated.
[0092] Furthermore, according to this embodiment, mutually orthogonal XYZ coordinate axes P5 are set with the point designated by the user U as the origin. With this configuration, the XYZ coordinate axes P5 can be set based on the ground surface B3 or the like, which clarifies the basis for calculating the center of gravity G and reduces the computational load for calculating the center of gravity.
[0093] Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments, and various modifications are possible within the scope of the claims.
[0094] (program) An example of the program in this embodiment is a program that causes a computer to execute steps S1 to S13 shown in Fig. 15. By installing and executing this program on a computer, the center of gravity detection device 10 and the center of gravity detection method can be realized. In this case, the processor of the computer functions as a bounding box display unit 12, a point cloud image creation unit 14, a range setting unit 16, an outline model creation unit 18, a lower processing unit 20, a coordinate axis setting unit 22, a hole filling processing unit 24, a solid model creation unit 26, a center of gravity calculation unit 28, a display processing unit 30, and an operation unit 32, and performs processing.
[0095] The program in this embodiment may be executed by a computer system constructed by a plurality of computers. In this case, for example, each computer may function as any one of the boundary frame display unit 12, point cloud image creation unit 14, range setting unit 16, outline model creation unit 18, lower processing unit 20, coordinate axis setting unit 22, hole filling processing unit 24, solid model creation unit 26, center of gravity calculation unit 28, display processing unit 30, and operation unit 32.
[0096] An example of a computer that realizes the center-of-gravity detection device 10 by executing the program in this embodiment will now be described with reference to Fig. 16. Fig. 16 is a block diagram showing an example of a computer that realizes the center-of-gravity detection device 10.
[0097] 16, a computer 110 includes a CPU (Central Processing Unit) 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. These components are connected to each other via a bus 121 so as to be able to communicate data with each other.
[0098] Furthermore, the computer 110 may include a GPU (Graphics Processing Unit) or an FPGA (Field-Programmable Gate Array) in addition to or instead of the CPU 111. In this aspect, the GPU or FPGA can execute the programs in the embodiments.
[0099] The CPU 111 loads a program in the embodiment, which is composed of a group of codes and stored in the storage device 113, into the main memory 112 and executes each code in a predetermined order to perform various calculations. The main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory).
[0100] The program in the embodiment is provided in a state stored in a computer-readable recording medium 120. The program in the embodiment may be distributed over the Internet connected via the communication interface 117.
[0101] Specific examples of the storage device 113 include a hard disk drive and a semiconductor storage device such as a flash memory. The input interface 114 mediates data transmission between the CPU 111 and input devices 118 such as a keyboard and a mouse. The display controller 115 is connected to a display device 119 and controls the display on the display device 119.
[0102] Data reader / writer 116 mediates data transmission between CPU 111 and recording medium 120, reads programs from recording medium 120, and writes processing results from computer 110 to recording medium 120. Communication interface 117 mediates data transmission between CPU 111 and other computers.
[0103] Specific examples of the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic recording media such as flexible disks, or optical recording media such as CD-ROMs (Compact Disk Read Only Memory).
[0104] The center-of-gravity detection device 10 in this embodiment can be realized not by a computer on which a program is installed, but by hardware corresponding to each part, for example, an electronic circuit. Furthermore, the center-of-gravity detection device 10 may be partially realized by a program and the remaining part by hardware. In the embodiment, the computer is not limited to the computer shown in FIG. 16. [Industrial Applicability]
[0105] The present invention can be applied as a center-of-gravity detection device, a center-of-gravity detection method, and a program. [Explanation of symbols]
[0106] 10 Center of gravity detection device 18 Outer shell model creation section 20 Lower processing section 22 Coordinate axis setting section 26 Solid Model Creation Department 28 Center of gravity calculation section 32 Operation section B1 Object B3 Ground G center of gravity P1 point cloud image U User X1 exterior model X2 solid model X1a outer shell model bottom X10 1st voxel X20 2nd Voxel
Claims
1. a contour model creation unit that creates a contour model of the object, which is configured with a plurality of first voxels, using point cloud data obtained by irradiating the object with light; a lower processing unit that omits a lower portion of the outer shell model; a solid model creation unit that, when a cavity exists within an area surrounded by the first voxels in the outer shell model with the lower portion omitted, creates a solid model in which the interior of the outer shell model is filled by filling the cavity with a plurality of second voxels; a center of gravity calculation unit that calculates the center of gravity of the object from the solid model; A center of gravity detection device comprising:
2. The center of gravity detection device according to claim 1 , wherein the lower processing unit is configured to be capable of executing a process for preventing the data of the lower part of the outer shell model from being used in the center of gravity calculation unit.
3. the solid model creation unit creates the solid model from which the lower portion is omitted, and extends a lower end portion of the solid model from which the lower portion is omitted downward by a vertical length of the omitted lower portion, The center-of-gravity detection device according to claim 1 , wherein the center-of-gravity calculation unit calculates the center of gravity of the object from the solid model extended downward.
4. an operation unit to be operated by a user who operates the center-of-gravity detection device; the operation unit accepts an operation by the user to designate a point on a point cloud image identified by the point cloud data; The center of gravity detection device according to claim 1 , further comprising a coordinate axis setting unit that sets mutually orthogonal X, Y and Z coordinate axes with the point designated by the user as an origin.
5. an operation unit to be operated by a user who operates the center-of-gravity detection device; the operation unit accepts an operation by the user to set a range of the object in a point cloud image specified by the point cloud data; The center of gravity detection device according to claim 1 , wherein the contour model creation unit creates the contour model for a range set by the user.
6. a contour model creation step of creating a contour model of the object composed of a plurality of first voxels using point cloud data obtained by irradiating the object with light; a lower part processing step of omitting a lower part of the outer shell model; a solid model creation step of creating a solid model in which the interior of the outer shell model is filled by filling a plurality of second voxels when a cavity exists within an area surrounded by the first voxels in the outer shell model from which the lower part is omitted; a center of gravity calculation step of calculating a center of gravity of the object from the solid model; The centroid detection method includes:
7. On the computer, a contour model creation step of creating a contour model of the object composed of a plurality of first voxels using point cloud data obtained by irradiating the object with light; a lower part processing step of omitting a lower part of the outer shell model; a solid model creation step of creating a solid model in which the interior of the outer shell model is filled by filling a plurality of second voxels when a cavity exists within an area surrounded by the first voxels in the outer shell model from which the lower part is omitted; a center of gravity calculation step of calculating a center of gravity of the object from the solid model; A program that executes.