Apparatus and method for generating 3D RGB point cloud map

KR1020260133535APending Publication Date: 2026-09-04HYUNDAI AUTOEVER
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
KR1020250026863
Authority / Receiving Office
KR · KR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2026-09-04

Smart Images

  • Figure PAT00021_ABST
    Figure PAT00021_ABST
Patent Text Reader

Abstract

The present invention relates to a device and method for generating a three-dimensional RGB point cloud map, comprising a memory in which at least one command is stored, and a processor configured to execute at least one command stored in the memory. The processor generates an odometry of a moving object based on first environmental information sensed through a first sensor mounted on the moving object at a preset period, and when the moving object is located indoors, determines the floor where the moving object is located based on the odometry of the moving object, and adds information regarding the floor where the moving object is located to the odometry of the moving object.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present invention relates to an apparatus and method for generating a three-dimensional RGB point cloud map, and more specifically, to an apparatus and method for generating a three-dimensional RGB point cloud map using Simultaneous Localization and Mapping (SLAM) technology in an indoor parking lot. Background Technology

[0003] Simultaneous Localization and Mapping (SLAM) technology is a technology that generates a 3D map of the surrounding environment of a moving object, including sensors such as cameras and lidar, while simultaneously estimating the position of the moving object in 3D space. SLAM technology corrects the position of the moving object and the 3D map through loop closing. However, when loop closing is performed in multi-story buildings with similar floor structures, such as indoor parking lots, the floor where the moving object is located may be incorrectly determined, leading to inaccurate correction of the position of the moving object and the 3D map.

[0004] Meanwhile, the background technology of the present invention is disclosed in Korean Registered Patent Publication No. 10-2736755 (November 27, 2024). The problem to be solved

[0006] The present invention aims to provide a three-dimensional RGB point cloud map generation device and method that can prevent the point cloud map from being inaccurately corrected by incorrectly determining the actual position of a moving body during the loop closing process. means of solving the problem

[0008] A three-dimensional RGB point cloud map generating device according to an embodiment of the present invention is a device for generating a three-dimensional RGB point cloud map using SLAM, comprising: a memory in which at least one command is stored; and a processor configured to execute the at least one command stored in the memory, wherein the processor generates an odometry of the moving body based on first environmental information sensed through a first sensor mounted on the moving body at a preset period, and when the moving body is located indoors, determines the floor where the moving body is located based on the odometry, and adds information regarding the floor where the moving body is located to the odometry.

[0009] In the present invention, the processor is characterized by generating a point cloud map based on the first environmental information and generating a three-dimensional RGB point cloud map based on the point cloud map and second environmental information sensed through a second sensor mounted on the moving body.

[0010] In the present invention, the first sensor includes a lidar, an IMU, and a GNSS module, and the second sensor includes a camera.

[0011] In the present invention, the processor is characterized by generating the three-dimensional RGB point cloud map by adding the pixel value of the pixel corresponding to the point to each point included in the point cloud map.

[0012] In the present invention, the odometry is characterized by including position information, altitude information, attitude information, GNSS information, and altitude change amount information of the moving body.

[0013] In the present invention, the processor determines whether the floor where the moving body is located has changed based on information on the change in altitude and attitude information of the moving body, and if the floor where the moving body is located has changed, determines whether the moving body has moved to an upper floor or a lower floor based on information on the change in altitude of the moving body.

[0014] In the present invention, the processor determines whether a first absolute value, which is an absolute value for the change in altitude of the moving body, is greater than or equal to a first reference value, and if the first absolute value is greater than or equal to the first reference value, increases the count count by one, and if the first absolute value is not greater than or equal to the first reference value, determines whether a second absolute value, which is an absolute value for the pitch angle of the moving body, is greater than or equal to a second reference value, maintains the count count if the second absolute value is greater than or equal to the second reference value, and if the second absolute value is not greater than or equal to the second reference value, performs the process of initializing the count count at a preset period, and if the count count is greater than or equal to a third reference value, determines that the floor where the moving body is located has changed.

[0015] In the present invention, the processor is characterized by determining that the moving body has moved one floor up when the change in altitude of the moving body is positive, and determining that the moving body has moved one floor down when the change in altitude of the moving body is negative.

[0016] In the present invention, the processor is characterized by not adding information regarding the floor where the moving body is located to the odometry until a parking space is detected when the floor where the moving body is located is changed.

[0017] In the present invention, the processor is characterized by adding information regarding the floor where the moving body is located to the odometry generated from the time the floor was changed until the time the parking space was detected when the parking space is detected.

[0018] In the present invention, the processor is characterized by clustering points included in the three-dimensional RGB point cloud map, extracting points related to the ground among the clustered points, extracting points related to the ground that have preset RGB values ​​among the points related to the ground, clustering the points having preset RGB values ​​to create a plurality of clusters, and determining whether a parking space is detected based on the plurality of clusters.

[0019] In the present invention, the processor is characterized by clustering points included in the three-dimensional RGB point cloud map through the KD Tree algorithm and extracting points related to the ground among the clustered points through the RANSAC algorithm.

[0020] In the present invention, the processor is characterized by detecting a major axis for each of the plurality of clusters through principal component analysis, calculating a distribution map for the plurality of clusters based on the major axis, and determining whether a parking space is detected based on the distribution map.

[0021] In the present invention, the processor is characterized by performing loop closing based on the odometry to correct the odometry and the three-dimensional RGB point cloud map.

[0022] In the present invention, the processor determines whether the current location of the moving body is a place that has been previously visited by comparing the latest odometry with the past odometry, and if it is determined that the current location of the moving body is a place that has been previously visited, performs the loop closing to correct the entire odometry of the moving body and the 3D RGB point cloud map.

[0023] A three-dimensional RGB point cloud map generating device according to an embodiment of the present invention is a method for generating a three-dimensional RGB point cloud map using SLAM, wherein the method comprises: a step in which a processor generates an odometry of a moving object based on first environmental information sensed through a first sensor mounted on the moving object at a preset period; a step in which the processor determines the floor where the moving object is located based on the odometry when the moving object is located indoors; and a step in which the processor adds information regarding the floor where the moving object is located to the odometry. Effects of the invention

[0025] The 3D RGB point cloud map generation device and method according to the present invention can prevent the point cloud map from being inaccurately corrected by incorrectly determining the actual position of the moving body during the loop closing process by adding information regarding the layer where the moving body is located to the odometry of the moving body and performing loop closing using the odometry containing information regarding the layer. Brief explanation of the drawing

[0027] FIG. 1 is a block diagram showing a three-dimensional RGB point cloud map generating device according to an embodiment of the present invention. FIG. 2 is a flowchart showing a method for generating a three-dimensional RGB point cloud map according to an embodiment of the present invention. Figure 3 is an example diagram illustrating a three-dimensional RGB point cloud map. Figure 4 is a flowchart showing a method for determining the floor where a moving body is located. Figure 5 is an example diagram illustrating the change in altitude and pitch angle of a moving body. Figure 6 is a flowchart showing a method for detecting parking spaces. FIGS. 7 to 9 are example diagrams for explaining data generated during the process of detecting parking spaces. Figure 10 is an example diagram illustrating the operation process of a three-dimensional RGB point cloud map generating device. Specific details for implementing the invention

[0028] The present invention will be described below with reference to the attached drawings.

[0029] In this process, the thickness of lines or the size of components depicted in the drawings may be exaggerated for the sake of clarity and convenience of explanation. Furthermore, the terms described below are defined considering their functions in the present invention, and these may vary depending on the intent or convention of the user or operator. Therefore, the definitions of these terms should be based on the content throughout this specification.

[0030] FIG. 1 is a block diagram showing a three-dimensional RGB point cloud map generating device according to an embodiment of the present invention.

[0031] Referring to FIG. 1, a three-dimensional RGB point cloud map generating device (100) according to an embodiment of the present invention may include a communication module (110), a memory (120), and a processor (130). The three-dimensional RGB point cloud map generating device (100) according to an embodiment of the present invention may include various additional components in addition to the components shown in FIG. 1. The three-dimensional RGB point cloud map generating device (100) according to an embodiment of the present invention may be for generating a three-dimensional RGB point cloud map using SLAM technology in an indoor parking lot.

[0032] The communication module (110) can communicate with an external device. The communication module (110) can communicate with various types of external devices. The communication module (110) can receive various information necessary to generate a three-dimensional RGB point cloud map from a moving object. The communication module (110) can collect first environmental information sensed through a first sensor mounted on the moving object from the moving object. The moving object may be a vehicle for generating a three-dimensional RGB point cloud map. The first sensor may include LiDAR and an IMU (Inertial Measurement Unit), and the first environmental information may include LiDAR information generated through the LiDAR and IMU information (acceleration information, gyroscope information) generated through the IMU. The first sensor may include a GNSS (Global Navigation Satellite System) module, and the first environmental information may include GNSS information generated through the GNSS module. The communication module (110) can collect second environmental information sensed through a second sensor mounted on the mobile body. The second sensor may include a camera, and the second environmental information may include image information generated through the camera.

[0033] The memory (120) may store at least one instruction that is executed during the process of generating a three-dimensional RGB point cloud map by the processor (130) described below. The memory (120) may store basic data required to generate a three-dimensional RGB point cloud map, or may store data generated during the process of generating a three-dimensional RGB point cloud map by the processor (130), and the processor (130) may access the data stored in the memory (120) to perform the operation of generating a three-dimensional RGB point cloud map. The memory (120) may be implemented as a computer-readable recording medium and may operate so that the processor (130) can access it. Specifically, the memory (120) may be implemented as an optical data storage device such as a hard drive, magnetic tape, memory card, ROM (Read-Only Memory), RAM (Random-Access Memory), DVD (Digital Video Disc), or optical disc.

[0034] The processor (130) is the entity that performs the operation of generating a three-dimensional RGB point cloud map and can be implemented as an ASIC (Application Specific Integrated Circuit), DSP (Digital Signal Processor), PLD (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), CPU (Central Processing unit), microcontrollers and / or microprocessors, and can run an operating system or application and control multiple hardware or software components. The processor (130) can be configured to execute at least one instruction stored in memory (120) and store the execution result data in memory (120).

[0035] The processor (130) can generate odometry of the moving body based on first environmental information sensed through a first sensor mounted on the moving body. The processor (130) can generate odometry at a preset period and store it in memory (120). The odometry of the moving body may include position information regarding the moving body (e.g., X-coordinate value and Y-coordinate value), altitude information (altitude value), attitude information (roll angle, pitch angle, yaw angle), GNSS information, and altitude change amount information (the difference between the altitude value of the current period and the altitude value of the previous period).

[0036] The processor (130) can generate a point cloud map based on first environmental information. The processor (130) can generate a three-dimensional point cloud map by fusing LiDAR information and IMU information. After generating the point cloud map, the processor (130) can update the point cloud map based on additionally collected first environmental information and additionally generated odometry of the moving object.

[0037] The processor (130) can generate a three-dimensional RGB point cloud map based on a point cloud map and second environmental information sensed through a second sensor mounted on a moving object. The processor (130) can generate a three-dimensional RGB point cloud map by adding the pixel value of a pixel corresponding to a point to each point included in the point cloud map. The processor (130) can generate a three-dimensional RGB point cloud map by detecting the pixel value of a pixel corresponding to a target point from the second environmental information (image information generated through a camera) and performing the process of adding the detected pixel value to the target point for all points. After generating the three-dimensional RGB point cloud map, the processor (130) can update the three-dimensional RGB point cloud map based on additionally collected second environmental information and the updated point cloud map.

[0038] The processor (130) determines whether the moving object is located indoors, and if it is determined that the moving object is located indoors, it can determine the floor where the moving object is located based on the odometry of the moving object. The processor (130) can determine whether the moving object is located indoors based on GNSS information collected from the moving object. The processor (130) can determine that the moving object is located outdoors if latitude information and longitude information are normally included in the GNSS information, and can determine that the moving object is located indoors if latitude information and longitude information are not included in the GNSS information.

[0039] The processor (130) determines whether the floor where the moving body is located has changed based on the altitude change information and attitude information of the moving body, and if it is determined that the floor where the moving body is located has changed, it can determine whether the moving body has moved to an upper floor or a lower floor based on the altitude change information of the moving body. The processor (130) can add 1 to the previous floor value (in the case of an initial value) if the moving body has moved to an upper floor, and subtract 1 from the previous floor value if the moving body has moved to a lower floor. The floor where the moving body is currently located can be calculated as a cumulative value starting from the initial value, applying +1 when moving to an upper floor and -1 when moving to a lower floor.

[0040] A processor (130) can determine whether a first absolute value, defined as an absolute value for the change in altitude of a moving body, is greater than or equal to a first reference value, and if the first absolute value is greater than or equal to a preset first reference value, increase the count count by one, and if the first absolute value is not greater than or equal to the first reference value, determine whether a second absolute value, defined as an absolute value for the pitch angle of a moving body, is greater than or equal to a second reference value, maintain the count count if the second absolute value is greater than or equal to the second reference value, and if the second absolute value is not greater than or equal to the second reference value, reset the count count. If the count count is greater than or equal to a third reference value, it can be determined that the floor where the moving body is located has changed. The first and second reference values ​​may be set by considering the inclination of a ramp provided in a building, etc. The third reference value may be set by considering the time required for the moving body to move one floor, etc. In various embodiments, the processor (130) may determine that the floor where the moving body is located has changed if the first absolute value is maintained above the first reference value for a predetermined time and the second absolute value is maintained above the second reference value for a predetermined time. There is a road with a constant height between the slopes of the ramp, straight ramp, and curved ramp, and the count count may be reset when the moving body moves along such a road section.

[0041] In the process of determining whether the floor where the moving body is located has changed, the present embodiment uses the pitch angle and count of the moving body along with the amount of change in altitude of the moving body, thereby preventing the misjudgment that the location of the moving body is on flat ground when the moving body stops while driving on an incline. In addition, in the process of determining whether the floor where the moving body is located has changed, the present embodiment uses the count of count, thereby preventing the misjudgment that a temporary increase in altitude of the moving body due to a speed bump, etc., has changed the floor where the moving body is located.

[0042] When determining whether the moving body has moved to an upper or lower floor based on the information on the change in altitude of the moving body, the processor (130) may determine that the moving body has moved one floor up if the change in altitude of the moving body (altitude value of the current cycle - altitude value of the previous cycle) is positive, and determine that the moving body has moved one floor down if the change in altitude of the moving body is negative.

[0043] The processor (130) may add information regarding the floor where the moving body is located (hereinafter floor information) to the odometry of the moving body. Accordingly, the odometry of the moving body may include floor information as well as position information, elevation information, attitude information, GNSS information, and elevation change amount information regarding the moving body. In the case where floor information is not added, the floor information of the odometry may be set to an initial value (e.g., 99).

[0044] If the processor (130) determines that the floor where the moving body is located has not changed, it can add floor information to the odometry of the moving body whenever the odometry of the moving body is generated. At this time, since the floor where the moving body is located has not changed, the processor (130) can add the floor information added to the odometry generated in the previous cycle to the odometry generated in the current cycle in the same way.

[0045] The processor (130) may not add floor information to the odometry of the moving body until a parking space is detected when the floor where the moving body is located has changed. Accordingly, floor information may not be added to the odometry of the moving body generated from the time it is determined that the floor where the moving body is located has changed until the time it is determined that a parking space has been detected.

[0046] When a parking space is detected, the processor (130) can add information regarding the floor where the moving body is located to the odometry of the moving body generated from the point in time when it is determined that the floor where the moving body is located has changed until the point in time when it is determined that the parking space is detected. When a parking space is detected, the processor (130) can add floor information confirmed at the point in time when it is determined that the floor where the moving body is located has changed (or the point in time when the parking space is detected) to the odometry of the moving body to which floor information has not been added (the odometry of the moving body generated from the point in time when it is determined that the floor has changed until the point in time when the parking space is detected). The processor (130) can detect an odometry among the generated odometry of the moving body that satisfies the conditions that the absolute value of the change in altitude of the moving body (first absolute value) is less than the first reference value, the absolute value of the pitch angle of the moving body (second absolute value) is less than the second reference value, latitude information and longitude information are not included in the GNSS information, and floor information is not included (or the layer information is the initial value), and can add information regarding the floor where the moving body is located to the detected odometry. Odometry satisfying the aforementioned conditions may correspond to odometry generated from the time when the floor where the moving body is located is determined to have changed until the time when the parking space is determined to have been detected.

[0047] The processor (130) clusters points included in a three-dimensional RGB point cloud map, extracts points related to the ground among the clustered points, extracts points related to the ground that have preset RGB values ​​among the points related to the ground, clusters points with preset RGB values ​​to create multiple clusters, detects a major axis for each of the multiple clusters through Principal Component Analysis (PCA), calculates a distribution map for the multiple clusters based on the major axis, and determines whether a parking space is detected based on the calculated distribution map. The preset RGB value may be an RGB value corresponding to white (a color generally used for parking lines), but is not limited thereto.

[0048] The distribution can be represented as a histogram. It indicates the directionality of lines marked on the ground, and in the case of parking lines, since the horizontal and vertical axes are the same, most clusters in the distribution of multiple clusters calculated based on the main axis are concentrated in a specific section (direction). The processor (130) detects n sections with the highest frequency among the multiple clusters in the distribution of multiple clusters, and if the sum of the frequencies of each of the detected n sections divided by the total number of clusters (total number of samples) is greater than or equal to a preset reference ratio, it can determine that a parking space has been detected.

[0049] The processor (130) may use a KD (K-Dimensional) Tree algorithm to cluster points included in a 3D RGB point cloud map. The processor (130) may cluster points that are adjacent to each other through the KD Tree algorithm. The processor (130) may use a RANSAC (Random Sample Consensus) algorithm to extract points related to the ground among the clustered points. The processor (130) may distinguish points related to the ground from other points through the RANSAC algorithm.

[0050] The processor (130) can correct the odometry and 3D RGB point cloud map of the moving body by performing loop closing based on the odometry of the moving body. The processor (130) determines whether the current location of the moving body is a place that has been visited before by comparing the latest odometry of the moving body with the past odometry of the moving body, and if it is determined that the current location of the moving body is a place that has been visited before, it can correct the odometry and 3D RGB point cloud map of the moving body by performing loop closing based on the odometry and 3D RGB point cloud map of the moving body. The processor (130) can perform loop closing immediately after adding layer information to the odometry of the moving body.

[0051] The processor (130) can perform loop closing according to a preset period or a preset condition. The processor (130) can perform loop closing based on odometry that does not include floor information when it is determined that the moving body is not located indoors (i.e., is located outdoors). The processor (130) can perform loop closing based on odometry that does not include floor information from the time it is determined that the floor where the moving body is located has changed until the time it is determined that a parking space has been detected.

[0052] FIG. 2 is a flowchart showing a method for generating a three-dimensional RGB point cloud map according to an embodiment of the present invention, and FIG. 3 is an example diagram for explaining a three-dimensional RGB point cloud map.

[0053] Hereinafter, with reference to FIG. 2, the process of generating a three-dimensional RGB point cloud map will be described. Some of the steps described below may be performed in a different order than the order described below or may be omitted.

[0054] First, the processor (130) can generate an odometry of the moving body based on first environmental information sensed through a first sensor mounted on the moving body (S201).

[0055] Next, the processor (130) can generate or update a point cloud map based on the first environment information and the odometry of the moving body (S203).

[0056] Next, the processor (130) can generate or update a three-dimensional point cloud map based on the point cloud map and second environment information sensed through a second sensor mounted on the moving body (S205).

[0057] Next, the processor (130) can determine whether the moving body is located indoors (S207).

[0058] If it is determined that the moving object is located indoors, the processor (130) can determine the floor where the moving object is located based on the odometry of the moving object (S209).

[0059] Next, the processor (130) may add information regarding the floor where the mobile body is located (floor information) to the odometry of the mobile body (S211). In step S211, the processor (130) determines whether the floor where the mobile body is located has changed, and if it is determined that the floor where the mobile body is located has changed, it may not add floor information to the odometry of the mobile body until a parking space is detected, and may add floor information to the odometry of the mobile body generated from the time when it is determined that the floor has changed after the parking space is detected until the time when it is determined that the parking space is detected. In step S211, if it is determined that the floor where the mobile body is located has not changed, the processor (130) may add floor information to the odometry of the mobile body whenever the odometry of the mobile body is generated.

[0060] Next, the processor (130) can perform loop closing based on the odometry of the moving object to correct the odometry of the moving object and the 3D RGB point cloud map (S213). Even if it is determined that the moving object is not located indoors, the processor (130) can perform step S213. If it is determined that the moving object is not located indoors, the processor (130) can perform loop closing using the odometry without added floor information. FIG. 3a shows the loop closing result (3D RGB point cloud map) when the location of the moving object is incorrectly recognized, and FIG. 3b shows the loop closing result (3D RGB point cloud map) when the location of the moving object is correctly recognized. The present embodiment can prevent the occurrence of a result like FIG. 3a by adding floor information to the odometry of the moving object.

[0061] FIG. 4 is a flowchart showing a method for determining the floor where a moving body is located, and FIG. 5 is an example diagram for explaining the change in altitude and pitch angle of a moving body.

[0062] Hereinafter, with reference to FIG. 4, the process of determining the floor where the moving body is located will be explained. Some of the steps described below may be performed in a different order than the order described below or may be omitted. The processor (130) may perform the process of FIG. 4 at a predetermined cycle.

[0063] First, the processor (130) defines a first absolute value (which is defined as the absolute value of the change in altitude of the moving body). ) is the first reference value ( It can determine whether there is an abnormality (S401). Fig. 5a shows an example of a change in the altitude of a moving object.

[0064] First absolute value ( ) is the first reference value ( If it is greater than ) the processor (130) can increase the count count (C) by 1 (S403).

[0065] After increasing the count count (C) by one, the processor (130) determines that the count count (C) is a third reference value ( It can determine whether ) is greater than or equal to (S405).

[0066] The count count (C) is the third reference value ( If ) or more, the processor (130) determines that the floor where the moving body is located has changed (S407), and the amount of change in altitude of the moving body ( It can determine whether ) is positive (S409). If it is determined that the floor where the moving body is located has changed, the processor (130) can perform an operation to detect a parking space. The processor (130) may not add floor information to the odometry of the moving body until a parking space is detected, and may add floor information to the odometry of the moving body to which floor information was not added after a parking space is detected.

[0067] Change in altitude of the moving object ( If ) is positive, the processor (130) can determine that the moving body has moved one floor up. At this time, the processor (130) can apply +1 to the floor variable value (B) (S411).

[0068] Change in altitude of the moving object ( If ) is not a positive number, the processor (130) can determine that the moving body has moved one floor down. In this case, the processor (130) can apply -1 to the floor variable value (B) (S413).

[0069] First absolute value ( ) is the first reference value ( If it is not greater than ) the processor (130) defines a second absolute value (which is defined as the absolute value of the pitch angle of the moving body) ) is the second reference value ( It can determine whether there is an abnormality (S415). Fig. 5b shows an example of a change in the altitude of a moving body.

[0070] Second absolute value ( ) is the second reference value ( If it is greater than ) the processor (130) can maintain the count count (C) and proceed to step S405.

[0071] Second absolute value ( ) is the second reference value ( If it is not more than ) the processor (130) can initialize the count count (C) (S417).

[0072] After initializing the count count (C), the processor (130) sets the layer variable value (B) to an initial value ( It can determine whether ) is (S419).

[0073] The layer variable value (B) is the initial value ( In the case of ), the processor (130) may determine that the mobile object has entered the building (S421). When it is determined that the mobile object has entered the building, the processor (130) may perform an operation to detect a parking space. The processor (130) may not add floor information to the odometry of the mobile object until a parking space is detected, and may add floor information to the odometry of the mobile object to which floor information was not added after a parking space is detected.

[0074] FIG. 6 is a flowchart showing a method for detecting a parking space, and FIGS. 7 to 9 are example diagrams for explaining data generated during the process of detecting a parking space.

[0075] Hereinafter, the process of detecting a parking space will be described with reference to FIG. 6. Some of the steps described below may be performed in a different order than the order described below or may be omitted.

[0076] First, the processor (130) can cluster points included in a three-dimensional RGB point cloud map (S601). FIGS. 7a and FIGS. 8a show the results of clustering the points.

[0077] Next, the processor (130) can extract points related to the ground from among the clustered points (S603). FIGS. 7b and FIGS. 8b show the results of extracting points related to the ground.

[0078] Next, the processor (130) can extract points with preset RGB values ​​among the points on the ground (S605). FIG. 7c shows the result of extracting points with preset RGB values.

[0079] Next, the processor (130) can cluster points having preset RGB values ​​to create multiple clusters (S607).

[0080] Next, the processor (130) can detect the major axis for each of the multiple clusters through principal component analysis (S609). FIG. 9a shows the major axis for each of the multiple clusters.

[0081] Next, the processor (130) can calculate a distribution map for multiple clusters based on a main axis (S611). FIG. 9b shows a distribution map for multiple clusters. In FIG. 9b, the vertical axis represents frequency, and the horizontal axis represents the direction of the main axis.

[0082] Next, the processor (130) can determine whether a parking space is detected based on the distribution of multiple clusters (S613).

[0083] FIG. 10 is an example diagram illustrating the operation process of a three-dimensional RGB point cloud map generating device. Below, the operation process of a three-dimensional RGB point cloud map generating device (100) will be explained with reference to FIG. 10.

[0084] The moving body (10) can freely drive outside and inside the indoor parking lot and collect information (first environment information and second environment information) necessary for generating a three-dimensional RGB point cloud map using the mounted sensors (first and second sensors).

[0085] A three-dimensional RGB point cloud map generating device (100) can obtain information collected by a moving body (10) from the moving body (10). Subsequently, the three-dimensional RGB point cloud map generating device (100) can perform a SLAM processor to generate a three-dimensional RGB point cloud map based on the information obtained from the moving body (10). At this time, the three-dimensional RGB point cloud map generating device (100) can perform a floor determination process to determine the floor where the moving body (10) is located, and if it is determined that the floor where the moving body (10) is located has changed, it can perform a parking space detection process to detect a parking space. When a parking space is detected, the three-dimensional RGB point cloud map generating device (100) can add floor information to the odometry of the moving body (10) generated from the point in time when the floor was determined to have changed to the point in time when the parking space was detected. Afterwards, the 3D RGB point cloud map generating device (100) can correct the 3D RGB point cloud map by performing loop closing based on the odometry of the moving body (10) with added layer information.

[0087] As such, according to the present invention, by adding information regarding the floor where the moving body is located to the odometry of the moving body and performing loop closing using the odometry containing information regarding the floor, it is possible to prevent the point cloud map from being incorrectly corrected due to incorrect determination of the actual location of the moving body during the loop closing process.

[0088] Although the present invention has been described with reference to the embodiments illustrated in the drawings, this is merely illustrative and those skilled in the art will understand that various modifications and equivalent alternative embodiments are possible therefrom. Accordingly, the true technical scope of protection of the present invention should be determined by the claims below. Explanation of the symbols

[0090] 100: 3D RGB point cloud map generator 110: Communication module 120: Memory 130: Processor

Claims

Claim 1 A device for generating a three-dimensional RGB point cloud map using SLAM, comprising: a memory in which at least one command is stored; and a processor configured to execute the at least one command stored in the memory, wherein the processor generates an odometry of a moving object based on first environmental information sensed through a first sensor mounted on the moving object at a preset period, determines the floor where the moving object is located based on the odometry when the moving object is located in a point indoor area, and adds information regarding the floor where the moving object is located to the odometry. Claim 2 A three-dimensional RGB point cloud map generating device according to claim 1, wherein the processor generates a point cloud map based on the first environmental information and generates a three-dimensional RGB point cloud map based on the point cloud map and second environmental information sensed through a second sensor mounted on the moving body. Claim 3 A three-dimensional RGB point cloud map generating device according to claim 2, wherein the first sensor includes a lidar, an IMU, and a GNSS module, and the second sensor includes a camera. Claim 4 In claim 2, the processor generates the three-dimensional RGB point cloud map by adding the pixel value of a pixel corresponding to a point to each point included in the point cloud map, a three-dimensional RGB point cloud map generating device. Claim 5 In claim 1, the odometry comprises a three-dimensional RGB point cloud map generating device including position information, altitude information, attitude information, GNSS information, and altitude change amount information of the moving body. Claim 6 A 3D RGB point cloud map generating device according to claim 5, wherein the processor determines whether the floor where the moving body is located has changed based on information on the amount of change in altitude and attitude information of the moving body, and if the floor where the moving body is located has changed, determines whether the moving body has moved to an upper floor or a lower floor based on information on the amount of change in altitude of the moving body. Claim 7 A 3D RGB point cloud map generating device according to claim 6, wherein the processor determines whether a first absolute value, which is an absolute value for the change in altitude of the moving body, is greater than or equal to a first reference value, and if the first absolute value is greater than or equal to the first reference value, increases the count count by one, and if the first absolute value is not greater than or equal to the first reference value, determines whether a second absolute value, which is an absolute value for the pitch angle of the moving body, is greater than or equal to a second reference value, maintains the count count if the second absolute value is greater than or equal to the second reference value, and if the second absolute value is not greater than or equal to the second reference value, performs the process of initializing the count count at a preset period, and if the count count is greater than or equal to a third reference value, determines that the floor where the moving body is located has changed. Claim 8 A 3D RGB point cloud map generating device according to claim 6, wherein the processor determines that the moving body has moved one layer up when the amount of altitude change of the moving body is positive, and determines that the moving body has moved one layer down when the amount of altitude change of the moving body is negative. Claim 9 A three-dimensional RGB point cloud map generating device according to claim 1, wherein the processor does not add information regarding the floor where the moving body is located to the odometry until a parking space is detected when the floor where the moving body is located is changed. Claim 10 In claim 9, the processor is a three-dimensional RGB point cloud map generating device that adds information regarding the floor where the moving body is located to the odometry generated from the point in time when the floor was changed until the point in time when the parking space was detected. Claim 11 In claim 9, the processor clusters points included in the three-dimensional RGB point cloud map, extracts points related to the ground among the clustered points, extracts points related to the ground having preset RGB values ​​among the points related to the ground, clusters the points having preset RGB values ​​to generate a plurality of clusters, and determines whether a parking space is detected based on the plurality of clusters. Claim 12 In claim 11, the processor is a 3D RGB point cloud map generating device that clusters points included in the 3D RGB point cloud map through a KD Tree algorithm and extracts points related to the ground among the clustered points through a RANSAC algorithm. Claim 13 In claim 11, the processor detects a major axis for each of the plurality of clusters through principal component analysis, calculates a distribution map for the plurality of clusters based on the major axis, and determines whether a parking space is detected based on the distribution map, a 3D RGB point cloud map generating device. Claim 14 In claim 2, the processor is a 3D RGB point cloud map generating device that performs loop closing based on the odometry to correct the odometry and the 3D RGB point cloud map. Claim 15 A 3D RGB point cloud map generating device according to claim 14, wherein the processor compares the latest odometry with the past odometry to determine whether the current location of the moving body is a place that has been visited previously, and if it is determined that the current location of the moving body is a place that has been visited previously, performs the loop closing to correct the entire odometry of the moving body and the 3D RGB point cloud map. Claim 16 A method for generating a three-dimensional RGB point cloud map using SLAM, comprising: a step in which a processor generates an odometry of a moving object based on first environmental information sensed through a first sensor mounted on the moving object at a preset period; a step in which the processor determines the floor where the moving object is located based on the odometry when the moving object is located indoors; and a step in which the processor adds information regarding the floor where the moving object is located to the odometry. Claim 17 A method for generating a three-dimensional RGB point cloud map according to claim 16, further comprising: a step in which the processor generates a point cloud map based on the first environmental information; and a step in which the processor generates a three-dimensional RGB point cloud map based on the point cloud map and second environmental information sensed through a second sensor mounted on the moving body. Claim 18 In claim 16, the above odometry is a method for generating a three-dimensional RGB point cloud map, wherein the above odometry includes position information, elevation information, attitude information, GNSS information, and elevation change amount information of the moving body. Claim 19 A method for generating a three-dimensional RGB point cloud map according to claim 18, wherein in the step of determining the floor where the moving body is located, the processor determines whether the floor where the moving body is located has changed based on information on the change in altitude and attitude information of the moving body, and if the floor where the moving body is located has changed, determines whether the moving body has moved to an upper floor or a lower floor based on information on the change in altitude of the moving body. Claim 20 A method for generating a 3D RGB point cloud map according to claim 17, wherein the processor further comprises the step of performing loop closing based on the odometry to correct the odometry and the 3D RGB point cloud map.