WO2024253400A1 - Apparatus and system capable of correcting position error through real-time analysis and comparison between vision data and lidar data for slam technology implementation - Google Patents
Apparatus and system capable of correcting position error through real-time analysis and comparison between vision data and lidar data for slam technology implementation Download PDFInfo
- Publication number
- WO2024253400A1 WO2024253400A1 PCT/KR2024/007583 KR2024007583W WO2024253400A1 WO 2024253400 A1 WO2024253400 A1 WO 2024253400A1 KR 2024007583 W KR2024007583 W KR 2024007583W WO 2024253400 A1 WO2024253400 A1 WO 2024253400A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- module
- vision
- location information
- location
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
- G01S17/894—Three-dimensional [3D] imaging with simultaneous measurement of time-of-flight at a two-dimensional [2D] array of receiver pixels, e.g. time-of-flight cameras or flash lidar
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/93—Lidar systems specially adapted for specific applications for anti-collision purposes
- G01S17/931—Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/243—Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/246—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
Definitions
- An embodiment of the present invention relates to a device and system capable of correcting position errors through real-time analysis and comparison between vision data and lidar data for implementing SLAM technology.
- Autonomous driving refers to driving to a destination by making decisions on your own without the intervention of a robot or user. To do this, you need a 2D or 3D map of the environment you want to drive in. Since a 2D map is made on a flat surface, obstacles that are not recognized by the 2D sensor are not mapped.
- SLAM Simultaneous Localization and Mapping
- vSLAM Vision-Based SLAM
- image sensor camera
- the camera can be largely divided into three types: 'Monocular', 'Stereo', and 'RGB-D'.
- the 'Monocular Camera' uses only one camera sensor. Therefore, it has the advantage of being very simple in structure and cheap, but since it loses depth or distance information, 'Monocular SLAM' can predict 'motion', 'distance', 'size' of 'object', etc. through continuous images according to the movement of the camera.
- vSLAM's framework can be composed of 'Sensor Data Acquisition', 'Visual Odometry (VO)', 'Backend Filtering/Optimization', 'Loop Closing', and 'Reconstruction'.
- 'Sensor Data Acquisition' is the process of obtaining and preprocessing camera images.
- 'Motor encoder' and 'IMU sensor values' can be obtained from a moving robot, and the 'synchronization' process can also be performed.
- VO Vehicle Odometry
- 'Backend Filtering/Optimization' can receive camera poses and 'loop closing' results at different time steps and apply an optimization algorithm to create an optimized trajectory and map.
- the 'Loop Closing' can provide information (whether the robot has returned to the previous position) to 'optimization' in the 'backend' by determining whether the robot has returned to the previous position to reduce the accumulated drift.
- the drift problem refers to the problem that occurs when errors continuously occur in 'Visual Odometry' and accumulate.
- 'Reconstruction' can construct a map according to the robot's task based on the estimated camera trajectory.
- 'Visual Odometry' estimates the camera movement between adjacent image frames and connects them based on time steps. Since the error occurring at each time step is applied to the next 'Visual Odometry', errors continue to accumulate, which is called the 'accumulated drift problem'.
- 'Loop Closing' is a method to solve the 'accumulated drift problem'.
- the estimated result may not return to the origin due to the error at that time. If there is a way to tell that the robot has returned to the origin, the error can be removed by pulling the estimated position information back to the origin.
- One way to make the robot recognize the origin is to place a marker at the starting point, and when the robot recognizes the marker, it can be known that the robot has returned to the starting point.
- Patent Publication No. 10-2022-0152451 Publication date: November 16, 2022.
- An embodiment of the present invention provides a SLAM position error correction device and a SLAM position error correction system that are linked with a cloud device, which configures a database by matching images and coordinate information based on visual information, performs a similarity test between images acquired in real time and the database through visual loop detection, estimates position information using visual information, and then readjusts a position estimated by LiDAR and odometry using the estimated information.
- a device capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology includes: a DB module that matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module that calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module that provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a location information extraction module that extracts standard location information that matches vision data most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; And it includes a location information reset module that compares the standard location information extracted through the location information extraction module and the estimated location information calculated through the sensor
- a system capable of correcting position errors through real-time analysis and comparison between vision data and lidar data for implementing SLAM (Simultaneous Localization And Map-Building) technology comprises: an autonomous driving robot including a sensor module and a vision module; And a DB module, a location information extraction module, and a location information reset module are included, and a cloud server connected to the autonomous driving robot through an Internet communication network, wherein the DB module matches a plurality of vision data and a plurality of standard location information generated in advance and stores them, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range, the sensor module calculates estimated location information of the autonomous driving robot through LiDAR and Odometry, and specifies one location group among the plurality of location groups according to the calculated estimated location information, the vision module provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot, the location information extraction module extracts standard location information that matches vision data most similar to the
- a system capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology comprises: a DB module that matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module that calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module that provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a location information extraction module that extracts standard location information that matches vision data that is most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; An autonomous driving robot including a location information reset module that compares the standard location information extracted through the location information extraction module with the estimated location information
- a system capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology comprises: a first DB module which matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module which calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module which provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a first location information extraction module which extracts standard location information which matches vision data most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; And an autonomous driving robot including a location information reset module that compares the standard location information extracted through the first location information extraction module and the estimated location information
- a SLAM position error correction device and a SLAM position error correction system that are linked with a cloud device can be provided, which configures a database by matching images and coordinate information based on visual information, performs a similarity test between images acquired in real time and the database through visual loop detection, estimates position information using visual information, and then readjusts a position estimated by LiDAR and odometry using the estimated information.
- FIG. 1 is a drawing showing the overall configuration and configuration form of a SLAM position error correction device applied to an autonomous driving robot according to the first embodiment of the present invention.
- FIG. 2 is a block diagram showing the overall configuration and configuration relationship of a SLAM position error correction device according to the first embodiment of the present invention.
- FIG. 3 is a drawing illustrating the overall operation process of a SLAM position error correction device according to the first embodiment of the present invention.
- Figure 4 is a block diagram showing the configuration of a DB module according to the first embodiment of the present invention.
- FIG. 5 is a graph showing an example of selecting a location group according to the first embodiment of the present invention.
- Figure 6 is a block diagram showing the configuration of a vision module according to the first embodiment of the present invention.
- Figure 7 is a block diagram showing the configuration of a location information extraction module according to the first embodiment of the present invention.
- FIG. 8 is a drawing illustrating an operation process according to position readjustment of a position information reset module according to the first embodiment of the present invention.
- FIG. 9 is a diagram illustrating the overall operation process of the DB update module according to the first embodiment of the present invention.
- FIG. 10 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the second embodiment of the present invention.
- Figure 11 is a block diagram showing the configuration of a vision module according to the second embodiment of the present invention.
- Figure 12 is a block diagram showing the configuration of a DB module according to the second embodiment of the present invention.
- Figure 13 is a block diagram showing the configuration of a location information extraction module according to the second embodiment of the present invention.
- FIG. 14 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the third embodiment of the present invention.
- Figure 15 is a block diagram showing the configuration of a DB module according to the third embodiment of the present invention.
- Figure 16 is a block diagram showing the configuration of a vision module according to a third embodiment of the present invention.
- Figure 17 is a block diagram showing the configuration of a location information extraction module according to the third embodiment of the present invention.
- FIG. 18 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the fourth embodiment of the present invention.
- Figure 19 is a block diagram showing the configuration of a DB module according to the fourth embodiment of the present invention.
- Figure 20 is a block diagram showing the configuration of a vision module according to the fourth embodiment of the present invention.
- Figure 21 is a block diagram showing the configuration of a location information extraction module according to the fourth embodiment of the present invention.
- FIG. 1 is a diagram showing the overall configuration and configuration form of a SLAM position error correction device applied to an autonomous driving robot according to the first embodiment of the present invention
- FIG. 2 is a block diagram showing the overall configuration and configuration relationship of a SLAM position error correction device according to the first embodiment of the present invention
- FIG. 3 is a diagram illustrating the overall operation process of the SLAM position error correction device according to the first embodiment of the present invention
- FIG. 4 is a block diagram showing the configuration of a DB module according to the first embodiment of the present invention
- FIG. 5 is a graph showing an example of selecting a position group according to the first embodiment of the present invention
- FIG. 6 is a block diagram showing the configuration of a vision module according to the first embodiment of the present invention
- FIG. 1 is a diagram showing the overall configuration and configuration form of a SLAM position error correction device applied to an autonomous driving robot according to the first embodiment of the present invention
- FIG. 2 is a block diagram showing the overall configuration and configuration relationship of a SLAM
- FIG. 7 is a block diagram showing the configuration of a position information extraction module according to the first embodiment of the present invention
- FIG. 8 is a diagram illustrating the operation process according to position readjustment of a position information reset module according to the first embodiment of the present invention
- FIG. 9 is a diagram illustrating the overall operation process of a DB update module according to the first embodiment of the present invention.
- a SLAM position error correction device (1000) applied to an autonomous driving robot (10) may include at least one of a DB module (1100), a sensor module (1200), a vision module (1300), a position information extraction module (1400), a position information reset module (1500), and a DB update module (1600).
- the above DB module (1100) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
- Such DB module (1100) may include at least one of a location group creation unit (1110) and a location group management unit (1120), as illustrated in FIG. 4.
- the above location group generation unit (1110) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups.
- the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (10), and standard location information that is divided and fixed at a certain interval is defined in one location group.
- a similarity comparison search can be performed only in that group, and in the case of 'S2', since the location where the autonomous driving robot (10) is displayed is located at the boundary of the group, it means that the surrounding groups must also be searched, and accordingly, the group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
- a number of standard location information i.e., standard coordinate data
- an image matching each standard coordinate is defined as vector data.
- the above location group management unit (1120) can store a data set of a location group created through the location group creation unit (1110), and when a data update command and data to be updated are input by the DB update module (1600), it can modify previously stored data.
- the above sensor module (1200) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (10) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (1100) based on the calculated estimated location information.
- LiDAR can detect and measure the distance to a target object by emitting a 360-degree laser pulse and calculating the time it takes for the light to reflect off surrounding objects such as walls or obstacles and return to recognize the surrounding environment. Odometry measures the rotational speed through an encoder and the inclination, etc., using an IMU sensor to measure the position of a moving object, thereby finding its own position on the map, that is, the position of the autonomous driving robot (10) (estimated position information), and driving.
- the above sensor module (1200) can compare the estimated location information of the autonomous driving robot (10) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (10).
- the sensor module (1200) can check which location group the estimated location information of the autonomous driving robot (10) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
- the above vision module (1300) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (10).
- the vision module (1300) may include at least one of a driving image generation unit (1310), a driving image acquisition unit (1320), and a vector data extraction unit (1330), as illustrated in FIG. 6.
- the above driving image generation unit (1310) can generate driving images of the autonomous driving robot (10) through at least two cameras installed in the autonomous driving robot (10) and shooting from different directions or angles.
- driving images of an autonomous driving robot can be generated using a camera facing the ceiling and a camera facing the front, respectively.
- the above driving image acquisition unit (1320) can acquire images of driving images of the autonomous driving robot (10) at regular intervals and assign an image ID to each acquired image.
- the above vector data extraction unit (1330) can extract current vector data from each driving image acquired through the driving image acquisition unit (1320) and provide it as a vision recognition result.
- the 'current vector data' and 'DB vector data' mentioned below are both composed of lines created by connecting points and are data that can be expressed as a mathematically calculated functional relationship, and are terms of the same concept.
- the vector data generated in the vision module (1300) is defined as 'current vector data'
- the vector data stored in the DB module (1100) is defined as 'DB vector data' to distinguish similar terms.
- the 'estimated location information' described above and the 'standard location information' mentioned below are the same in that they mean coordinate information indicating the location of the autonomous driving robot (10), but the 'estimated location information' is coordinate information calculated through the sensor module (1200), and the 'standard location information' can be distinguished as coordinate information that is matched with 'DB vector data' in the DB module (1100) and stored in advance.
- the above location information extraction module (1400) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specific location group through the sensor module (1200), and extract standard location information matching the corresponding vision data (DB vector data).
- the location information extraction module (1400) may include at least one of a data input unit (1410), a location group selection unit (1420), a similarity result calculation unit (1430), and a location information provision unit (1440), as illustrated in FIG. 7.
- the above data input unit (1410) can receive current vector data from the vision module (1300) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (1200), respectively. Accordingly, information on the image currently being captured through the vision module (1300), location information recognized through the sensor module (1200), and information on the location group corresponding to the location information can be input, respectively.
- the above location group selection unit (1420) can select a location group stored in the DB module (1100) according to the location group information (location group ID or identification information) input through the data input unit (1410). In this way, instead of performing a comparison process on the entire DB image to find an image similar to the image recognized through the vision module (1300), by specifying a group belonging to the location recognized through the sensor module (1200), candidate images to be compared with the image recognized by the vision module (1300) can be specified, thereby reducing the number of comparison targets. Accordingly, since the number of comparisons is reduced, the time required for the similarity comparison process can be reduced, and errors such as cases where images are similar but located in different places can be eliminated, thereby increasing accuracy.
- the above similarity result generating unit (1430) can perform a cosine similarity measurement between 'DB vector data' belonging to a location group selected through a location group selecting unit (1420) and 'current vector data' input through a data input unit (1410) and calculate a score accordingly.
- the above location information providing unit (1440) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (1430) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
- DB vector data '2' is compared with a threshold score, and if it is confirmed that the similarity score of DB vector data '2' exceeds the threshold score, the standard location information '2' matching DB vector data '2' can be extracted.
- the above location information reset module (1500) can compare the standard location information extracted through the location information extraction module (1400) and the estimated location information calculated through the sensor module (1200), and reset the location information of the autonomous driving robot (10) based on the comparison result.
- the location information reset module (1500) compares the estimated location information produced by the sensor module (1200) with the standard location information provided by the location information provider (1440) to determine whether they match, and if they do not match, as shown in FIG. 8, it determines that there is an abnormality in the driving state of the autonomous driving robot (10), resets the LiDAR and Odometry of the sensor module (1200) while the autonomous driving robot (10) is temporarily stopped, and then sets the standard location information provided by the location information provider (1440) as the initial location information of the LiDAR and Odometry to correct the location error.
- This location information reset module (1500) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (10).
- position readjustment refers to a process of resetting the current position information of the autonomous driving robot (10) by resetting the odometry and assigning initial position information after temporarily stopping the autonomous driving robot (10) when it is determined that the driving state of the autonomous driving robot (10) is incorrect, as shown in FIG. 8.
- an algorithm for estimating the current position information is used to reset the position information estimated using visual information to the initial position information when an abnormality in the driving state of the autonomous driving robot (10) is detected, thereby correcting the error in the current position information.
- the above DB update module (1600) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the image exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data. If the image does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB.
- the DB module (1100) can update the data set of the DB module (1100) by additionally registering the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data.
- the image of the current vector data with the highest similarity score is added to the candidate DB, and the vector data added to the candidate DB is compared for similarity with the vector data existing in the existing candidate DB. If there is a similar vector (i.e., if it exceeds the reference score), an upcount is performed on the image ID of the corresponding vector data and estimated location information is added. If there is no similar vector data, a new ID is assigned to the image of the corresponding vector data and stored in the candidate DB.
- the average value of the corresponding data and the estimated location information corresponding to the corresponding data is additionally registered in the DB module (1100), thereby updating the data set of the DB module (1100), and the corresponding data can be removed from the candidate DB.
- the inside of the building may change over time, so the image (i.e., vector data) stored in the DB module (1100) must also be updated accordingly. Accordingly, when the DB update module (1600) compares the image provided through the vision module (1300) with the image stored in the DB module (1100), if a similar image is not found (i.e., if the highest similarity score does not exceed the reference score), vector data and coordinate information for the corresponding image can be additionally registered in the DB module (1100).
- the additional registration target through a single judgment process may rather contaminate the DB, if the above condition (the number of accumulated counters is greater than the preset standard number of times) is satisfied N or more times (e.g. 3 or more times), the corresponding vector data (current N pieces of vector data) can be added to the DB module (1100), and at this time, the average value of the N pieces of estimated location information provided by the sensor module (1200) when the current vector data is acquired from the vision module (1300) can be applied as the location information.
- N or more times e.g. 3 or more times
- FIG. 10 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the second embodiment of the present invention
- FIG. 11 is a block diagram showing the configuration of a vision module according to the second embodiment of the present invention
- FIG. 12 is a block diagram showing the configuration of a DB module according to the second embodiment of the present invention
- FIG. 13 is a block diagram showing the configuration of a position information extraction module according to the second embodiment of the present invention.
- the SLAM position error correction system (2000) may include at least one of an autonomous driving robot (2100) and a cloud server (2200).
- the above autonomous driving robot (2100) may include at least one of a sensor module (2110) and a vision module (2120), and the cloud server (2200) may include at least one of a DB module (2210), a location information extraction module (2220), a location information reset module (2230), and a DB update module (2240).
- the above autonomous driving robot (2100) is connected to a cloud server (2200) through an Internet communication network and can perform an operation for position error correction by interworking with the cloud server (2200).
- a sensor module (2110) and a vision module (2120) configured in an autonomous driving robot (2100), and a DB module (2210), a location information extraction module (2220), a location information reset module (2230), and a DB update module (2240) configured in a cloud server (2200).
- the above sensor module (2110) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (2100) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (2210) based on the calculated estimated location information.
- the above sensor module (2110) can compare the estimated location information of the autonomous driving robot (2100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (2100).
- the sensor module (2110) can check which location group the estimated location information of the autonomous driving robot (2100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
- the above vision module (2120) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (2100).
- the vision module (2120) may include at least one of a driving image generation unit (2121), a driving image acquisition unit (2122), and a vector data extraction unit (2123), as illustrated in FIG. 11.
- the above driving image generation unit (2121) can generate driving images of the autonomous driving robot (2100) through at least two cameras installed in the autonomous driving robot (2100) and shooting images in different directions or angles.
- driving images of an autonomous driving robot (2100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
- the above driving image acquisition unit (2122) can acquire images of driving images of the autonomous driving robot (2100) at regular intervals and assign an image ID to each acquired image.
- the above vector data extraction unit (2123) can extract current vector data from each driving image acquired through the driving image acquisition unit (2122) and provide it as a vision recognition result.
- the above DB module (2210) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
- Such DB module (2210) may include at least one of a location group creation unit (2211) and a location group management unit (2212), as illustrated in FIG. 12.
- the above location group generation unit (2211) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups.
- the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (10), and standard location information that is divided and fixed at a certain interval is defined in one location group.
- a similarity comparison search can be performed only in that group, and in the case of 'S2', since the location where the autonomous driving robot (10) is displayed is located at the boundary of the group, it means that the surrounding groups must also be searched, and accordingly, the group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
- the above location group management unit (2212) can store a data set of a location group created through a location group creation unit (2211), and when a data update command and data to be updated are input by a DB update module (2240), it can modify previously stored data.
- the above location information extraction module (2220) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specified location group through the sensor module (2110) and extract standard location information matching the vision data (DB vector data).
- the location information extraction module (2220) may include at least one of a data input unit (2221), a location group selection unit (2222), a similarity result calculation unit (2123), and a location information provision unit (2224), as illustrated in FIG. 13.
- the above data input unit (2221) can receive current vector data from the vision module (2120) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (2110), respectively. Accordingly, information on the image currently being captured through the vision module (2120), location information recognized through the sensor module (2110), and information on the location group corresponding to the location information can be input, respectively.
- the above location group selection unit (2222) can select a location group stored in the DB module (2210) based on the location group information (location group ID or identification information) input through the data input unit (2221).
- the above similarity result calculation unit (2123) can perform a cosine similarity measurement between the 'DB vector data' belonging to the location group selected through the location group selection unit (2222) and the 'current vector data' input through the data input unit (2221) and calculate a score accordingly.
- the above location information providing unit (2224) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (2123) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
- the above location information reset module (2230) can compare the standard location information extracted through the location information extraction module (2220) and the estimated location information calculated through the sensor module (2110), and reset the location information of the autonomous driving robot (10) based on the comparison result.
- the location information reset module (2230) compares the estimated location information produced by the sensor module (2110) with the standard location information provided by the location information provider (2224) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (10), resets the LiDAR and Odometry of the sensor module (2110) while the autonomous driving robot (10) is temporarily stopped, and then sets the standard location information provided by the location information provider (122s) as the initial location information of the LiDAR and Odometry to correct the location error.
- This location information reset module (2230) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (10).
- the above DB update module (2240) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the similarity score exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data. If the similarity score does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB.
- the DB module (2210) can additionally register the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data to the DB module (2210) to update the data set of the DB module (2210).
- FIG. 14 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the third embodiment of the present invention
- FIG. 15 is a block diagram showing the configuration of a DB module according to the third embodiment of the present invention
- FIG. 16 is a block diagram showing the configuration of a vision module according to the third embodiment of the present invention
- FIG. 17 is a block diagram showing the configuration of a position information extraction module according to the third embodiment of the present invention.
- the SLAM position error correction system (3000) may include at least one of an autonomous driving robot (3100) and a cloud server (3200).
- the above autonomous driving robot (3100) may include at least one of a DB module (3110), a sensor module (3120), a vision module (3130), a location information extraction module (3140), a location information reset module (3150), a DB update module (3160), and a DB monitoring module (3170), and the cloud server (2200) may include at least one of a DB backup module (3210) and a DB modification module (3220).
- the above autonomous driving robot (3100) can operate in a manner that is connected to a cloud server (3200) through an Internet communication network and interoperates with the cloud server (3200).
- the above DB module (3110) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
- Such DB module (3110) may include at least one of a location group creation unit (3111) and a location group management unit (3112), as illustrated in FIG. 15.
- the above location group generation unit (3111) can generate data sets by matching DB vector data extracted from each vision data (image of a driving video) and standard location information representing coordinate information where each vision data is generated, and can group multiple generated data sets according to a set area having a certain coordinate range to generate multiple location groups.
- each location group can be defined for each setting area 'S1' (or setting area 'S2' wider than 'S1') consisting of a certain coordinate range.
- a plurality of standard location information (location) that is, standard coordinate data, are defined at certain distance intervals, and an image matching each standard coordinate is defined as vector data.
- the above location group management unit (3112) can store a data set of a location group created through a location group creation unit (3111), and when a data update command and data to be updated are input by a DB update module (3160), it can modify previously stored data.
- the above sensor module (3120) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (3100) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (3110) based on the calculated estimated location information.
- the above sensor module (3120) can compare the estimated location information of the autonomous driving robot (3100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (3100).
- the sensor module (3120) can check which location group the estimated location information of the autonomous driving robot (3100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
- the above vision module (3130) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (3100).
- the vision module (3130) may include at least one of a driving image generation unit (3131), a driving image acquisition unit (3132), and a vector data extraction unit (3133), as illustrated in FIG. 16.
- the above driving image generation unit (3131) can generate driving images of the autonomous driving robot (3100) through at least two cameras installed in the autonomous driving robot (3100) and shooting images in different directions or angles.
- driving images of an autonomous driving robot (3100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
- the above driving image acquisition unit (3132) can acquire images of driving images of the autonomous driving robot (3100) at regular intervals and assign an image ID to each acquired image.
- the above vector data extraction unit (3133) can extract current vector data from each driving image acquired through the driving image acquisition unit (3132) and provide it as a vision recognition result.
- the above location information extraction module (3140) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specific location group through the sensor module (3120), and extract standard location information matching the vision data (DB vector data).
- the location information extraction module (3140) may include at least one of a data input unit (3141), a location group selection unit (3142), a similarity result calculation unit (3143), and a location information provision unit (3144), as illustrated in FIG. 17.
- the above data input unit (3141) can receive current vector data from the vision module (3130) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (3120), respectively. Accordingly, information on the image currently being captured through the vision module (3130), location information recognized through the sensor module (3120), and information on the location group corresponding to the location information can be input, respectively.
- the above location group selection unit (3142) can select a location group stored in the DB module (3110) based on location group information (location group ID or identification information) input through the data input unit (3141).
- the above similarity result producing unit (3143) can perform a cosine similarity measurement between 'DB vector data' belonging to a location group selected through a location group selecting unit (3142) and 'current vector data' input through a data input unit (3141) and produce a score accordingly.
- the above location information providing unit (3144) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (3143) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
- the above location information reset module (3150) can compare the standard location information extracted through the location information extraction module (3140) and the estimated location information calculated through the sensor module (3120), and reset the location information of the autonomous driving robot (10) based on the comparison result.
- the location information reset module (3150) compares the estimated location information produced by the sensor module (3120) with the standard location information provided by the location information provider (3144) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (3100), resets the LiDAR and Odometry of the sensor module (3120) while the autonomous driving robot (3100) is temporarily stopped, and then sets the standard location information provided by the location information provider (3144) as the initial location information of the LiDAR and Odometry to correct the location error.
- This location information reset module (3150) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (3100).
- the above DB update module (3160) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the similarity score exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data, and if the similarity score does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB.
- the DB module (3110) can additionally register the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data to the DB module (3110) to update the data set of the DB module (3110).
- the above DB monitoring module (3170) can perform monitoring on data (data set including DB vector data and standard location information) stored in the DB module (3110) and generate DB monitoring data.
- the DB monitoring module (3170) can monitor the initial creation time information of vision data, the most recent time information selected by the highest similarity score for each vision data, the number of times information selected by the highest similarity score for each vision data, and the comparison information on the distance and direction difference between the standard location information selected by the highest similarity score and the estimated location information of the sensor module (3120).
- the above DB backup module (3210) can be synchronized with the DB module (3110) of the autonomous driving robot (3100) and perform the role of backing up and managing data (data set including DB vector data and standard location information) stored in the DB module (3110).
- the above DB modification module (3220) can perform the role of determining data that is not necessary for the DB module (3110) based on DB monitoring data provided from the DB monitoring module (3170) of the autonomous driving robot (3100) and deleting and managing the corresponding data.
- the final data (data set including DB vector data and standard location information) stored in the autonomous driving robot (3100) are stored in the DB backup module (3210) of the cloud server (3200) at regular intervals, and by performing a modification task through an administrator on the data stored in the DB backup module (3210) and then transmitting it to the autonomous driving robot (3100), the modified data can be applied to the autonomous driving robot (3100).
- Modification of data in the DB module (3110) can increase the reliability of data stored in the DB module (3110) by removing data that is no longer needed and data with errors according to the changing surrounding environment in addition to the DB automatic update algorithm that is performed locally, i.e., in the autonomous driving robot (3100).
- the administrator can modify the data in the DB module (3110) by selecting data to be removed or removing data that satisfies specific conditions through an algorithm, thereby applying it to the autonomous driving robot (3100).
- FIG. 18 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the fourth embodiment of the present invention
- FIG. 19 is a block diagram showing the configuration of a first DB module according to the fourth embodiment of the present invention
- FIG. 20 is a block diagram showing the configuration of a vision module according to the fourth embodiment of the present invention
- FIG. 31 is a block diagram showing the configuration of a first position information extraction module according to the fourth embodiment of the present invention.
- the SLAM position error correction system (4000) may include at least one of an autonomous driving robot (4100) and a cloud server (4200).
- the above autonomous driving robot (4100) may include at least one of a first DB module (4110), a sensor module (4120), a vision module (4130), a first location information extraction module (4140), a location information reset module (4150), and a DB update module (4160), and the cloud server (2200) may include at least one of a second first DB module (4210) and a second location information extraction module (4220).
- the above autonomous driving robot (4100) can operate in a manner that is connected to a cloud server (4200) through an Internet communication network and interoperates with the cloud server (4200).
- the above first DB module (4110) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
- This first DB module (4110) may include at least one of a location group creation unit (4111) and a location group management unit (4112), as illustrated in FIG. 19.
- the above location group generation unit (4111) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups.
- the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (4100), and standard location information that is divided and fixed at a certain interval is defined in one location group.
- a similarity comparison search only needs to be performed in that group, and in the case of 'S2', since the location where the autonomous driving robot (4100) is displayed is located at the boundary of the group, it means that the surrounding groups need to be searched as well, and accordingly, a group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
- the above location group management unit (4112) can store a data set of a location group created through a location group creation unit (4111), and when a data update command and data to be updated are input by a DB update module (4160), it can modify previously stored data.
- the above sensor module (4120) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (4100) through a LiDAR and Odometry system, and can specify one location group among a plurality of location groups defined in the first DB module (4110) based on the calculated estimated location information.
- the above sensor module (4120) can compare the estimated location information of the autonomous driving robot (4100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (4100).
- the sensor module (4120) can check which location group the estimated location information of the autonomous driving robot (4100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
- the above vision module (4130) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (4100).
- the vision module (4130) may include at least one of a driving image generation unit (4131), a driving image acquisition unit (4132), and a vector data extraction unit (4133), as illustrated in FIG. 20.
- the above driving image generation unit (4131) can generate driving images of the autonomous driving robot (4100) through at least two cameras installed in the autonomous driving robot (4100) and shooting images in different directions or angles.
- driving images of an autonomous driving robot (4100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
- the above driving image acquisition unit (4132) can acquire images of driving images of the autonomous driving robot (4100) at regular intervals and assign an image ID to each acquired image.
- the above vector data extraction unit (4133) can extract current vector data from each driving image acquired through the driving image acquisition unit (4132) and provide it as a vision recognition result.
- the above first location information extraction module (4140) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specified location group through the sensor module (4120), and extract standard location information matching the corresponding vision data (DB vector data).
- the first location information extraction module (4140) may include at least one of a data input unit (4141), a location group selection unit (4142), a similarity result calculation unit (4143), and a location information provision unit (4144), as illustrated in FIG. 21.
- the above data input unit (4141) can receive current vector data from the vision module (4130) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (4120), respectively. Accordingly, information on the image currently being captured through the vision module (4130), location information recognized through the sensor module (4120), and information on the location group corresponding to the location information can be input, respectively.
- the above location group selection unit (4142) can select a location group stored in the first DB module (4110) according to the location group information (location group ID or identification information) input through the data input unit (4141).
- location group information location group ID or identification information
- candidate images to be compared with the image recognized by the vision module (4130) can be specified, thereby reducing the number of comparison targets. Accordingly, since the number of comparisons is reduced, the time required for the similarity comparison process can be reduced, and errors such as cases where images are similar but located in different places can be eliminated, thereby increasing accuracy.
- the above similarity result producing unit (4143) can perform a cosine similarity measurement between the 'DB vector data' belonging to the location group selected through the location group selecting unit (4142) and the 'current vector data' input through the data input unit (4141) and produce a score accordingly.
- the above location information providing unit (4144) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (4143) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
- the above location information reset module (4150) can compare the standard location information extracted through the first location information extraction module (4140) and the estimated location information calculated through the sensor module (4120), and reset the location information of the autonomous driving robot (4100) based on the comparison result.
- the location information reset module (4150) compares the estimated location information produced by the sensor module (4120) with the standard location information provided by the location information provider (4144) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (4100), resets the LiDAR and Odometry of the sensor module (3000) while the autonomous driving robot (4100) is temporarily stopped, and then sets the standard location information provided by the location information provider (4144) as the initial location information of the LiDAR and Odometry to correct the location error.
- This location information reset module (4150) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (4100).
- the above DB update module (4160) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the image exceeds the threshold, an up-count is performed on the image ID of the corresponding vector data. If the image does not exceed the threshold, a new image ID is assigned and added to the candidate DB.
- the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data is additionally registered in the first DB module (4110), so as to update the data set of the first DB module (4110).
- the above second DB module (4210) is a component that stores a plurality of pre-generated vision data (DB vector data) and a plurality of standard location information by matching them with each other, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range, and has more data (data set including DB vector data and standard location information) than the first DB module (4110) installed in the autonomous driving robot (4100), so that when the autonomous driving robot (4100) is unable to perform the first location estimation, the cloud server (4200) can perform the second location estimation for the autonomous driving robot (4100).
- This second DB module (4210) is constructed with the same data structure as the above-described first DB module (4210), but by utilizing the advantages of the cloud, more data is constructed so as to provide high accuracy for location estimation.
- the second location information extraction module (4220) above can extract standard location information that matches the vision data most similar to the vision recognition result among the vision data belonging to a specific location group through the sensor module (4120) of the autonomous driving robot (4100) when the standard location information is not extracted through the first location information extraction module (4140) of the autonomous driving robot (4100) (i.e., when the location estimation is not possible in the autonomous driving robot (4100), i.e., perform a second location estimation process, and extract the standard location information extracted accordingly and provide it to the first location information extraction module (4140) of the autonomous driving robot (4100).
- the DB can be updated through the DB automatic update algorithm.
- These cloud servers (4200) continuously receive and accumulate data on driving records, judgment results, etc. of a plurality of autonomous driving robots (4100) and form a composite DB, thereby helping to determine the driving status of the autonomous driving robot (4100) through virtual driving and recommending a driving route while the robot is driving.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
본 발명의 실시예는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 장치 및 시스템에 관한 것이다.An embodiment of the present invention relates to a device and system capable of correcting position errors through real-time analysis and comparison between vision data and lidar data for implementing SLAM technology.
자율주행이란 로봇이나 사용자의 개입 없이 스스로 판단하여 목적지까지 주행하는 것을 말한다. 이를 위해서는 주행하려는 환경의 2차원 또는 3차원 지도가 필요하다. 2차원 지도는 평면으로 지도를 만들기 때문에 2차원 센서에 인식되지 않은 장애물은 매핑이 되지 않는다. Autonomous driving refers to driving to a destination by making decisions on your own without the intervention of a robot or user. To do this, you need a 2D or 3D map of the environment you want to drive in. Since a 2D map is made on a flat surface, obstacles that are not recognized by the 2D sensor are not mapped.
로봇이 환경정보가 없는 공간에서 자율주행으로 목적지까지 안전하게 도착하기 위해 라이다(LiDAR), 카메라 등의 센서를 이용하여 공간의 지도를 작성하는 동시에 로봇 자신의 위치를 추정하는 기술을 SLAM(Simultaneous Localization and Mapping)이라고 한다.The technology that allows a robot to create a map of a space using sensors such as LiDAR and cameras while estimating its own location so that it can safely reach its destination autonomously in a space where there is no environmental information is called SLAM (Simultaneous Localization and Mapping).
SLAM 기술 중 Vision-Based SLAM(vSLAM)은 영상센서(카메라)를 사용하여 3차원 지도를 작성할 수 있는 방법으로, 카메라는 시야가 좁기 때문에 카메라만을 이용해 매핑하면 누락되는 데이터가 발생될 수 있다. Among SLAM technologies, Vision-Based SLAM (vSLAM) is a method that can create a 3D map using an image sensor (camera). However, since cameras have a narrow field of view, mapping using only cameras may result in missing data.
이때, 카메라는 크게 'Monocular', 'Stereo', 'RGB-D'의 3가지 종류로 나눌 수 있다. 여기서, 'Monocular Camera'는 카메라 센서를 하나만 사용한다. 따라서 구조가 매우 단순하고, 값이 싸다는 장점이 있으나, 깊이(depth) 또는 거리(distance) 정보를 잃게 되기 때문에, 'Monocular SLAM'에서는 카메라 이동에 따른 연속된 이미지를 통해 'motion', 'distance', 'object'의 'size' 등을 예측할 수 있다.At this time, the camera can be largely divided into three types: 'Monocular', 'Stereo', and 'RGB-D'. Here, the 'Monocular Camera' uses only one camera sensor. Therefore, it has the advantage of being very simple in structure and cheap, but since it loses depth or distance information, 'Monocular SLAM' can predict 'motion', 'distance', 'size' of 'object', etc. through continuous images according to the movement of the camera.
vSLAM의 프레임 워크는 'Sensor Data Acquisition', 'Visual Odometry(VO)', 'Backend Filtering/Optimization', 'Loop Closing', 'Reconstruction'로 구성될 수 있다.vSLAM's framework can be composed of 'Sensor Data Acquisition', 'Visual Odometry (VO)', 'Backend Filtering/Optimization', 'Loop Closing', and 'Reconstruction'.
' Sensor Data Acquisition'은 카메라 이미지를 얻고, 전처리하는 과정으로서, 움직이는 로봇으로부터 'motor encoder'와 'IMU 센서 값'을 얻을 수 있고, 'synchronization' 과정도 수행될 수 있다.'Sensor Data Acquisition' is the process of obtaining and preprocessing camera images. 'Motor encoder' and 'IMU sensor values' can be obtained from a moving robot, and the 'synchronization' process can also be performed.
'Visual Odometry(VO)'는 인접한 프레임 간에 카메라가 어떻게 이동했는지를 추정하고, 대략적인 로컬 맵(local map)을 만들 수 있다.'Visual Odometry (VO)' can estimate how the camera moved between adjacent frames and create a rough local map.
'Backend Filtering/Optimization'은 서로 다른 타임 스탭(time step)에서의 카메라 포즈와 'loop closing' 결과를 받아 최적화 알고리즘을 적용하여 최적화된 궤적(trajectory)과 맵을 만들 수 있다.'Backend Filtering/Optimization' can receive camera poses and 'loop closing' results at different time steps and apply an optimization algorithm to create an optimized trajectory and map.
'Loop Closing'은 누적된 드리프트(drift)를 줄이기 위해 로봇이 이전 위치로 돌아갔는지를 결정하여 'backend'에서의 'optimization'에 해당 정보(로봇이 이전 위치로 돌아갔는지)를 제공할 수 있다. 여기서, 드리프트(drift) 문제란, 'Visual Odometry'에서 오차가 지속적으로 발생하는데 이것이 쌓여 발생하는 문제를 의미한다.'Loop Closing' can provide information (whether the robot has returned to the previous position) to 'optimization' in the 'backend' by determining whether the robot has returned to the previous position to reduce the accumulated drift. Here, the drift problem refers to the problem that occurs when errors continuously occur in 'Visual Odometry' and accumulate.
'Reconstruction'은 추정한 카메라 궤적(trajectory)에 따라 로봇의 임무(task)에 따른 맵(map)을 구성할 수 있다.'Reconstruction' can construct a map according to the robot's task based on the estimated camera trajectory.
상술한 바와 같이, 'Visual Odometry'는 인접 이미지 프레임 사이의 카메라 움직임을 추정하고 이를 타입 스탭(time step)에 따라 연결시키는데, 이때 각 타임 스탭(time step)에서 발생한 오류가 다음 'Visual Odometry'에 적용되기 때문에, 오류가 계속해서 쌓이게 되는데, 이러한 문제를 'accumulated drift problem'이라고 한다.As described above, 'Visual Odometry' estimates the camera movement between adjacent image frames and connects them based on time steps. Since the error occurring at each time step is applied to the next 'Visual Odometry', errors continue to accumulate, which is called the 'accumulated drift problem'.
'Loop Closing'은 'accumulated drift problem'을 해결하기 위한 방법으로, 로봇이 어느 정도 움직인 후 제자리에 돌아왔다고 가정했을 때, 그때의 오류로 인해 추정 결과는 원점으로 되돌아오지 않을 수도 있다. 만약, 로봇이 원점으로 돌아왔다는 것을 알도록 하는 방법이 있다면, 추정된 위치정보를 원점으로 당겨 옴으로써 오류를 제거할 수 있다.'Loop Closing' is a method to solve the 'accumulated drift problem'. When the robot moves to a certain extent and returns to its original position, the estimated result may not return to the origin due to the error at that time. If there is a way to tell that the robot has returned to the origin, the error can be removed by pulling the estimated position information back to the origin.
로봇이 원점을 인식하는 방법으로 시작점에 마커(marker)를 두는 방법이 있으며, 로봇이 마커(maker)를 인식할 경우 로봇이 시작점으로 돌아왔음을 알 수 있다. One way to make the robot recognize the origin is to place a marker at the starting point, and when the robot recognizes the marker, it can be known that the robot has returned to the starting point.
그러나, 마커(marker)는 환경의 영향을 많이 받기 때문에, 마커(marker)보다는 이미지 자체를 이용하여 'Loop Closing'을 구하는 것이 바람직하다.However, since markers are greatly affected by the environment, it is preferable to obtain 'Loop Closing' using the image itself rather than the marker.
본 발명의 선행기술로는 공개특허공보 제10-2022-0152451호(공개일자: 2022년11월16일)가 있다.Prior art of the present invention is Patent Publication No. 10-2022-0152451 (publication date: November 16, 2022).
본 발명의 실시예는, 시각 정보에 기반한 이미지 및 좌표 정보를 매칭하여 데이터베이스를 구성하고, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 데이터베이스 간의 유사도 검사를 수행하여 시각 정보를 이용해 위치정보를 추정한 후 추정된 정보를 통해 라이다(LiDAR) 및 오도메트리(Odometry)에 의해 추정된 위치를 재조정하는 SLAM 위치 오차 보정 장치 및 클라우드 장치와 연동하는 SLAM 위치 오차 보정 시스템을 제공한다.An embodiment of the present invention provides a SLAM position error correction device and a SLAM position error correction system that are linked with a cloud device, which configures a database by matching images and coordinate information based on visual information, performs a similarity test between images acquired in real time and the database through visual loop detection, estimates position information using visual information, and then readjusts a position estimated by LiDAR and odometry using the estimated information.
본 발명의 일 실시예에 따른 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 장치는, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 위치정보 추출 모듈; 및 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 위치정보 재설정 모듈을 포함한다.According to one embodiment of the present invention, a device capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology includes: a DB module that matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module that calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module that provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a location information extraction module that extracts standard location information that matches vision data most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; And it includes a location information reset module that compares the standard location information extracted through the location information extraction module and the estimated location information calculated through the sensor module, and resets and corrects the location information of the autonomous driving robot according to the comparison result.
본 발명의 다른 실시예에 따른 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 센서 모듈 및 비전 모듈을 포함하는 자율주행로봇; 및 DB 모듈, 위치정보 추출 모듈 및 위치정보 재설정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고, 상기 DB 모듈은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하고, 상기 센서 모듈은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하고, 상기 비전 모듈은, 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하고, 상기 위치정보 추출 모듈은, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하고, 상기 위치정보 재설정 모듈은, 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정할 수 있다.A system capable of correcting position errors through real-time analysis and comparison between vision data and lidar data for implementing SLAM (Simultaneous Localization And Map-Building) technology according to another embodiment of the present invention comprises: an autonomous driving robot including a sensor module and a vision module; And a DB module, a location information extraction module, and a location information reset module are included, and a cloud server connected to the autonomous driving robot through an Internet communication network, wherein the DB module matches a plurality of vision data and a plurality of standard location information generated in advance and stores them, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range, the sensor module calculates estimated location information of the autonomous driving robot through LiDAR and Odometry, and specifies one location group among the plurality of location groups according to the calculated estimated location information, the vision module provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot, the location information extraction module extracts standard location information that matches vision data most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module, and the location information reset module compares the standard location information extracted through the location information extraction module and the estimated location information calculated through the sensor module, and resets and corrects the location information of the autonomous driving robot according to the comparison result.
본 발명의 또 다른 실시예에 따른 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 위치정보 추출 모듈; 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 위치정보 재설정 모듈; 및 상기 DB 모듈에 저장된 데이터에 대한 모니터링을 수행하고 DB 모니터링 데이터를 생성하는 DB 모니터링 모듈을 포함하는 자율주행로봇; 및 상기 DB 모듈과 동기화되어 상기 DB 모듈에 저장된 데이터를 백업하는 DB 백업 모듈; 및 상기 DB 모니터링 모듈로부터 제공되는 DB 모니터링 데이터를 기반으로 상기 DB 모듈에 필요하지 않은 데이터를 판단하여 삭제하는 DB 수정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함한다.According to another embodiment of the present invention, a system capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology comprises: a DB module that matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module that calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module that provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a location information extraction module that extracts standard location information that matches vision data that is most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; An autonomous driving robot including a location information reset module that compares the standard location information extracted through the location information extraction module with the estimated location information produced through the sensor module, and resets and corrects the location information of the autonomous driving robot based on the comparison result; and a DB monitoring module that monitors data stored in the DB module and generates DB monitoring data; and a DB backup module that is synchronized with the DB module and backs up the data stored in the DB module; and a DB modification module that determines and deletes data that is not necessary for the DB module based on the DB monitoring data provided from the DB monitoring module, and includes a cloud server connected to the autonomous driving robot through an Internet communication network.
본 발명의 또 다른 실시예에 따른 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제1 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 제1 위치정보 추출 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 위치정보 재설정 모듈을 포함하는 자율주행로봇; 및 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제2 DB 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 표준 위치정보가 추출되지 않는 경우, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하여 상기 제1 위치정보 추출 모듈로 제공하는 제2 위치정보 추출 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함한다.A system capable of correcting position errors through real-time analysis and comparison between vision data and LiDAR data for implementing SLAM (Simultaneous Localization And Map-Building) technology according to another embodiment of the present invention comprises: a first DB module which matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; a sensor module which calculates estimated location information of an autonomous driving robot through LiDAR and odometry and specifies one of the plurality of location groups according to the calculated estimated location information; a vision module which provides a vision recognition result through a vision recognition process for a driving image of the autonomous driving robot; a first location information extraction module which extracts standard location information which matches vision data most similar to the vision recognition result among vision data belonging to the location group specified through the sensor module; And an autonomous driving robot including a location information reset module that compares the standard location information extracted through the first location information extraction module and the estimated location information produced through the sensor module, and resets and corrects the location information of the autonomous driving robot according to the comparison result; And a second DB module that matches and stores a plurality of vision data and a plurality of standard location information generated in advance, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range; And a second location information extraction module that extracts standard location information that matches the vision data most similar to the vision recognition result among the vision data belonging to the location group specified through the sensor module when the standard location information is not extracted through the first location information extraction module, and provides the extracted standard location information to the first location information extraction module, and includes a cloud server connected to the autonomous driving robot through an Internet communication network.
본 발명에 따르면, 시각 정보에 기반한 이미지 및 좌표 정보를 매칭하여 데이터베이스를 구성하고, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 데이터베이스 간의 유사도 검사를 수행하여 시각 정보를 이용해 위치정보를 추정한 후 추정된 정보를 통해 라이다(LiDAR) 및 오도메트리(Odometry)에 의해 추정된 위치를 재조정하는 SLAM 위치 오차 보정 장치 및 클라우드 장치와 연동하는 SLAM 위치 오차 보정 시스템을 제공할 수 있다.According to the present invention, a SLAM position error correction device and a SLAM position error correction system that are linked with a cloud device can be provided, which configures a database by matching images and coordinate information based on visual information, performs a similarity test between images acquired in real time and the database through visual loop detection, estimates position information using visual information, and then readjusts a position estimated by LiDAR and odometry using the estimated information.
도 1은 본 발명의 제1 실시예에 따른 자율주행로봇에 적용된 SLAM 위치 오차 보정 장치의 전체 구성 및 구성 형태를 나타낸 도면이다.FIG. 1 is a drawing showing the overall configuration and configuration form of a SLAM position error correction device applied to an autonomous driving robot according to the first embodiment of the present invention.
도 2는 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 장치의 전체 구성 및 구성 관계를 나타낸 블록도이다.FIG. 2 is a block diagram showing the overall configuration and configuration relationship of a SLAM position error correction device according to the first embodiment of the present invention.
도 3은 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 장치의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.FIG. 3 is a drawing illustrating the overall operation process of a SLAM position error correction device according to the first embodiment of the present invention.
도 4는 본 발명의 제1 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.Figure 4 is a block diagram showing the configuration of a DB module according to the first embodiment of the present invention.
도 5는 본 발명의 제1 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이다.FIG. 5 is a graph showing an example of selecting a location group according to the first embodiment of the present invention.
도 6은 본 발명의 제1 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.Figure 6 is a block diagram showing the configuration of a vision module according to the first embodiment of the present invention.
도 7은 본 발명의 제1 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.Figure 7 is a block diagram showing the configuration of a location information extraction module according to the first embodiment of the present invention.
도 8은 본 발명의 제1 실시예에 따른 위치정보 재설정 모듈의 위치 재조정에 따른 동작 프로세스를 설명하기 위해 나타낸 도면이다.FIG. 8 is a drawing illustrating an operation process according to position readjustment of a position information reset module according to the first embodiment of the present invention.
도 9는 본 발명의 제1 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.FIG. 9 is a diagram illustrating the overall operation process of the DB update module according to the first embodiment of the present invention.
도 10은 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.FIG. 10 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the second embodiment of the present invention.
도 11은 본 발명의 제2 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.Figure 11 is a block diagram showing the configuration of a vision module according to the second embodiment of the present invention.
도 12는 본 발명의 제2 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.Figure 12 is a block diagram showing the configuration of a DB module according to the second embodiment of the present invention.
도 13은 본 발명의 제2 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.Figure 13 is a block diagram showing the configuration of a location information extraction module according to the second embodiment of the present invention.
도 14는 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.FIG. 14 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the third embodiment of the present invention.
도 15는 본 발명의 제3 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.Figure 15 is a block diagram showing the configuration of a DB module according to the third embodiment of the present invention.
도 16은 본 발명의 제3 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.Figure 16 is a block diagram showing the configuration of a vision module according to a third embodiment of the present invention.
도 17은 본 발명의 제3 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.Figure 17 is a block diagram showing the configuration of a location information extraction module according to the third embodiment of the present invention.
도 18은 본 발명의 제4 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.FIG. 18 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the fourth embodiment of the present invention.
도 19는 본 발명의 제4 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.Figure 19 is a block diagram showing the configuration of a DB module according to the fourth embodiment of the present invention.
도 20은 본 발명의 제4 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.Figure 20 is a block diagram showing the configuration of a vision module according to the fourth embodiment of the present invention.
도 21은 본 발명의 제4 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.Figure 21 is a block diagram showing the configuration of a location information extraction module according to the fourth embodiment of the present invention.
도 1은 본 발명의 제1 실시예에 따른 자율주행로봇에 적용된 SLAM 위치 오차 보정 장치의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 2는 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 장치의 전체 구성 및 구성 관계를 나타낸 블록도이고, 도 3은 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 장치의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이고, 도 4는 본 발명의 제1 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이고, 도 5는 본 발명의 제1 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이고, 도 6은 본 발명의 제1 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 7은 본 발명의 제1 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이고, 도 8은 본 발명의 제1 실시예에 따른 위치정보 재설정 모듈의 위치 재조정에 따른 동작 프로세스를 설명하기 위해 나타낸 도면이며, 도 9는 본 발명의 제1 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.FIG. 1 is a diagram showing the overall configuration and configuration form of a SLAM position error correction device applied to an autonomous driving robot according to the first embodiment of the present invention, FIG. 2 is a block diagram showing the overall configuration and configuration relationship of a SLAM position error correction device according to the first embodiment of the present invention, FIG. 3 is a diagram illustrating the overall operation process of the SLAM position error correction device according to the first embodiment of the present invention, FIG. 4 is a block diagram showing the configuration of a DB module according to the first embodiment of the present invention, FIG. 5 is a graph showing an example of selecting a position group according to the first embodiment of the present invention, FIG. 6 is a block diagram showing the configuration of a vision module according to the first embodiment of the present invention, FIG. 7 is a block diagram showing the configuration of a position information extraction module according to the first embodiment of the present invention, FIG. 8 is a diagram illustrating the operation process according to position readjustment of a position information reset module according to the first embodiment of the present invention, and FIG. 9 is a diagram illustrating the overall operation process of a DB update module according to the first embodiment of the present invention.
도 1 및 도 2를 참조하면, 자율주행로봇(10)에 적용된 SLAM 위치 오차 보정 장치(1000)는 DB 모듈(1100), 센서 모듈(1200), 비전 모듈(1300), 위치정보 추출 모듈(1400), 위치정보 재설정 모듈(1500) 및 DB 업데이트 모듈(1600) 중 적어도 하나를 포함할 수 있다.Referring to FIGS. 1 and 2, a SLAM position error correction device (1000) applied to an autonomous driving robot (10) may include at least one of a DB module (1100), a sensor module (1200), a vision module (1300), a position information extraction module (1400), a position information reset module (1500), and a DB update module (1600).
상기 DB 모듈(1100)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.The above DB module (1100) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
이러한 DB 모듈(1100)은 도 4에 도시된 바와 같이, 위치그룹 생성부(1110) 및 위치그룹 관리부(1120) 중 적어도 하나를 포함할 수 있다.Such DB module (1100) may include at least one of a location group creation unit (1110) and a location group management unit (1120), as illustrated in FIG. 4.
상기 위치그룹 생성부(1110)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다. 여기서, 설정영역이란 자율주행로봇(10)의 위치에서 유사도 검색을 진행할 위치그룹을 선택하는 범위를 의미하며, 하나의 위치그룹에는 일정간격을 통해 나누어져 고정된 표준 위치정보들이 정의되어 있다.The above location group generation unit (1110) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups. Here, the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (10), and standard location information that is divided and fixed at a certain interval is defined in one location group.
예를 들어, 도 5에 도시된 바와 같이 일정좌표범위로 이루어진 설정영역 'S1'(하나의 위치그룹과 대응됨)의 경우 자율주행로봇(10)이 표시된 위치가 그룹의 중앙부분이기 때문에 해당 그룹에서만 유사도 비교 검색하면 되고, 'S2'의 경우에는 자율주행로봇(10)이 표시된 위치가 그룹의 경계면에 위치하고 있기 때문에 그 주변의 그룹들까지 검색해야 함을 의미하며, 이에 따라 유사도 비교 검색을 진행할 그룹이 'S2'와 같이 상대적으로 더 넓게 선택될 수 있다. For example, in the case of a setting area 'S1' (corresponding to one location group) consisting of a certain coordinate range as illustrated in Fig. 5, since the location where the autonomous driving robot (10) is displayed is in the center of the group, a similarity comparison search can be performed only in that group, and in the case of 'S2', since the location where the autonomous driving robot (10) is displayed is located at the boundary of the group, it means that the surrounding groups must also be searched, and accordingly, the group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
상술한 바와 같이 하나의 위치그룹에는 다수의 표준 위치정보(location) 즉 표준 좌표데이터들이 일정 거리 간격마다 각각 정의되어 있으며, 각각의 표준 좌표마다 매칭되는 이미지가 벡터데이터로 정의되어 있다. As described above, in one location group, a number of standard location information (location), i.e., standard coordinate data, are defined at regular intervals, and an image matching each standard coordinate is defined as vector data.
즉, 일정한 영역 안에서 촬영된 이미지들이 서로 유사(주변환경을 촬영한 이미지들이 서로 유사한 특징이 있음)하기 때문에, 이와 같이 유사한 이미지들을 묶어서 하나의 그룹으로 형성하고, 각각의 그룹 내 구성되어 있는 각 이미지에 대한 벡터데이터와 각 이미지가 촬영된 좌표데이터를 서로 매칭하여 하나의 데이터 세트로 구성할 수 있으며, 하나의 위치그룹 내에는 각각의 이미지들과 대응되는 다수의 데이터 세트(벡터데이터, 표준 위치정보)가 정의 또는 저장되어 있을 수 있다.That is, since images captured within a certain area are similar to each other (images captured of the surrounding environment have similar characteristics), such similar images can be grouped together, and the vector data for each image within each group and the coordinate data when each image was captured can be matched to form a single data set, and multiple data sets (vector data, standard location information) corresponding to each image can be defined or stored within a single location group.
상기 위치그룹 관리부(1120)는, 위치그룹 생성부(1110)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(1600)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.The above location group management unit (1120) can store a data set of a location group created through the location group creation unit (1110), and when a data update command and data to be updated are input by the DB update module (1600), it can modify previously stored data.
상기 센서 모듈(1200)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(10)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 DB 모듈(1100)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다. The above sensor module (1200) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (10) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (1100) based on the calculated estimated location information.
라이다(LiDAR)는 360도 레이저 펄스를 발사하고, 그 빛이 주위의 벽이나 장애물 등 대상 물체에서 반사되어 돌아오는 시간을 계산하여 주변 환경을 인식하여 대상 객체에 대한 탐지 및 거리를 측정할 수 있다. 오도메트리(Odometry)는 엔코더(encoder)를 통한 회전수와 IMU 센서로 기울기 등을 측정함으로써 움직이고 있는 사물의 위치를 측정함으로써 맵 상에서 자신의 위치 즉, 자율주행로봇(10)의 위치(추정 위치정보)를 찾고 주행할 수 있다. LiDAR can detect and measure the distance to a target object by emitting a 360-degree laser pulse and calculating the time it takes for the light to reflect off surrounding objects such as walls or obstacles and return to recognize the surrounding environment. Odometry measures the rotational speed through an encoder and the inclination, etc., using an IMU sensor to measure the position of a moving object, thereby finding its own position on the map, that is, the position of the autonomous driving robot (10) (estimated position information), and driving.
상기 센서 모듈(1200)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(10)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(10)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.The above sensor module (1200) can compare the estimated location information of the autonomous driving robot (10) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (10).
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(1200)은 자율주행로봇(10)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.As described above, since each location group has a defined location range, i.e., a coordinate range, the sensor module (1200) can check which location group the estimated location information of the autonomous driving robot (10) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
상기 비전 모듈(1300)은, 자율주행로봇(10)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.The above vision module (1300) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (10).
이를 위해 비전 모듈(1300)은 도 6에 도시된 바와 같이, 주행영상 생성부(1310), 주행이미지 획득부(1320) 및 벡터데이터 추출부(1330) 중 적어도 하나를 포함할 수 있다.To this end, the vision module (1300) may include at least one of a driving image generation unit (1310), a driving image acquisition unit (1320), and a vector data extraction unit (1330), as illustrated in FIG. 6.
상기 주행영상 생성부(1310)는, 자율주행로봇(10)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(10)의 주행영상을 각각 생성할 수 있다.The above driving image generation unit (1310) can generate driving images of the autonomous driving robot (10) through at least two cameras installed in the autonomous driving robot (10) and shooting from different directions or angles.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(10)의 주행영상을 각각 생성할 수 있다. For example, to increase the accuracy of image similarity comparison, driving images of an autonomous driving robot (10) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
상기 주행이미지 획득부(1320)는, 일정 주기마다 자율주행로봇(10)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다. The above driving image acquisition unit (1320) can acquire images of driving images of the autonomous driving robot (10) at regular intervals and assign an image ID to each acquired image.
상기 벡터데이터 추출부(1330)는, 주행이미지 획득부(1320)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다. The above vector data extraction unit (1330) can extract current vector data from each driving image acquired through the driving image acquisition unit (1320) and provide it as a vision recognition result.
이하에서 언급되는 '현재 벡터데이터'와 'DB 벡터데이터'는 모두 점과 점을 연결해 만든 선으로 구성되며, 수학적으로 계산된 함수 관계로 표현될 수 있는 데이터로서 동일한 개념의 용어이나, 발명의 이해를 돕기 위하여 비전 모듈(1300)에서 생성되는 벡터데이터를 '현재 벡터데이터'로 정의하고, DB 모듈(1100)에 저장된 벡터데이터를 'DB 벡터데이터'로 정의하여 유사 용어를 구분하였다. The 'current vector data' and 'DB vector data' mentioned below are both composed of lines created by connecting points and are data that can be expressed as a mathematically calculated functional relationship, and are terms of the same concept. However, in order to help understand the invention, the vector data generated in the vision module (1300) is defined as 'current vector data', and the vector data stored in the DB module (1100) is defined as 'DB vector data' to distinguish similar terms.
또한, 상술한 '추정 위치정보'와 이하에서 언급되는 '표준 위치정보'는 자율주행로봇(10)의 위치를 나타내는 좌표정보를 의미하는 것으로 동일하나, '추정 위치정보'는 센서 모듈(1200)을 통해 산출된 좌표정보이며, '표준 위치정보'는 DB 모듈(1100)에서 'DB 벡터데이터'와 매칭되어 기 저장된 좌표정보로서 구분될 수 있다.In addition, the 'estimated location information' described above and the 'standard location information' mentioned below are the same in that they mean coordinate information indicating the location of the autonomous driving robot (10), but the 'estimated location information' is coordinate information calculated through the sensor module (1200), and the 'standard location information' can be distinguished as coordinate information that is matched with 'DB vector data' in the DB module (1100) and stored in advance.
상기 위치정보 추출 모듈(1400)은, 센서 모듈(1200)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다. The above location information extraction module (1400) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specific location group through the sensor module (1200), and extract standard location information matching the corresponding vision data (DB vector data).
이를 위해 위치정보 추출 모듈(1400)는 도 7에 도시된 바와 같이, 데이터 입력부(1410), 위치그룹 선정부(1420), 유사도 결과 산출부(1430) 및 위치정보 제공부(1440) 중 적어도 하나를 포함할 수 있다.To this end, the location information extraction module (1400) may include at least one of a data input unit (1410), a location group selection unit (1420), a similarity result calculation unit (1430), and a location information provision unit (1440), as illustrated in FIG. 7.
상기 데이터 입력부(1410)는, 비전 모듈(1300)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(1200)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(1300)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(1200)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.The above data input unit (1410) can receive current vector data from the vision module (1300) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (1200), respectively. Accordingly, information on the image currently being captured through the vision module (1300), location information recognized through the sensor module (1200), and information on the location group corresponding to the location information can be input, respectively.
상기 위치그룹 선정부(1420)는, 데이터 입력부(1410)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 DB 모듈(1100)에 저장된 위치그룹을 선정할 수 있다. 이와 같이, 비전 모듈(1300)을 통해 인식된 이미지와 유사한 이미지를 찾기 위하여 전체 DB 이미지에 대한 비교 과정을 수행하지 않고, 센서 모듈(1200)을 통해 인식된 위치에 속하는 그룹을 특정해 줌으로써, 비전 모듈(1300)에서 인식된 이미지와 비교할 대상인 후보 이미지들을 특정해 그 비교 대상 수를 줄여줄 수 있다. 이에 따라, 비교 횟수가 줄어들기 때문에 유사도 비교 과정을 위해 소요되는 시간을 줄일 수 있고, 위치 상 다른 곳이지만 이미지가 유사한 경우와 같은 오류를 제거할 수 있어 정확도를 높일 수 있다.The above location group selection unit (1420) can select a location group stored in the DB module (1100) according to the location group information (location group ID or identification information) input through the data input unit (1410). In this way, instead of performing a comparison process on the entire DB image to find an image similar to the image recognized through the vision module (1300), by specifying a group belonging to the location recognized through the sensor module (1200), candidate images to be compared with the image recognized by the vision module (1300) can be specified, thereby reducing the number of comparison targets. Accordingly, since the number of comparisons is reduced, the time required for the similarity comparison process can be reduced, and errors such as cases where images are similar but located in different places can be eliminated, thereby increasing accuracy.
상기 유사도 결과 산출부(1430)는, 위치그룹 선정부(1420)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(1410)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다. The above similarity result generating unit (1430) can perform a cosine similarity measurement between 'DB vector data' belonging to a location group selected through a location group selecting unit (1420) and 'current vector data' input through a data input unit (1410) and calculate a score accordingly.
상기 위치정보 제공부(1440)는, 유사도 결과 산출부(1430)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다. The above location information providing unit (1440) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (1430) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
예를 들어, '현재 벡터데이터 K'와 '위치그룹 2'에 포함된 DB 벡터데이터 '1~10' 간의 코사인 유사도 비교를 수행하고, 그 중 DB 벡터데이터 '2'에 대한 유사도 점수가 가장 높게 측정된 경우, DB 벡터데이터 '2'의 유사도 점수와 기준 점수(Threshold)를 비교하여 DB 벡터데이터 '2'의 유사도 점수가 기준 점수(Threshold)를 초과하는 것으로 확인되면 DB 벡터데이터 '2'와 매칭되어 있는 표준 위치정보 '2'를 추출할 수 있다.For example, if a cosine similarity comparison is performed between 'current vector data K' and DB vector data '1~10' included in 'location group 2', and the similarity score for DB vector data '2' is measured to be the highest, the similarity score of DB vector data '2' is compared with a threshold score, and if it is confirmed that the similarity score of DB vector data '2' exceeds the threshold score, the standard location information '2' matching DB vector data '2' can be extracted.
상기 위치정보 재설정 모듈(1500)은, 위치정보 추출 모듈(1400)을 통해 추출된 표준 위치정보 및 센서 모듈(1200)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(10)의 위치정보를 재 설정할 수 있다.The above location information reset module (1500) can compare the standard location information extracted through the location information extraction module (1400) and the estimated location information calculated through the sensor module (1200), and reset the location information of the autonomous driving robot (10) based on the comparison result.
좀 더 구체적으로 위치정보 재설정 모듈(1500)은, 센서 모듈(1200)을 통해 산출된 추정 위치정보 및 위치정보 제공부(1440)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 도 8에 도시된 바와 같이, 자율주행로봇(10)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(10)이 일시 정지된 상태에서 센서 모듈(1200)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(1440)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.More specifically, the location information reset module (1500) compares the estimated location information produced by the sensor module (1200) with the standard location information provided by the location information provider (1440) to determine whether they match, and if they do not match, as shown in FIG. 8, it determines that there is an abnormality in the driving state of the autonomous driving robot (10), resets the LiDAR and Odometry of the sensor module (1200) while the autonomous driving robot (10) is temporarily stopped, and then sets the standard location information provided by the location information provider (1440) as the initial location information of the LiDAR and Odometry to correct the location error.
이러한 위치정보 재설정 모듈(1500)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(10)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다. This location information reset module (1500) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (10).
여기서, 위치 재조정이란, 도 8을 참조하면 자율주행로봇(10)의 주행 상태가 잘못됐다고 판단했을 때 작동되는 것으로, 자율주행로봇(10)을 일시 정지시킨 후 오도메트리를 리셋하고, 초기 위치정보의 부여를 통해 자율주행로봇(10)의 현재 위치정보를 다시 설정하는 프로세스를 의미한다. 이와 같이, 기존 SLAM 알고리즘에서 초기 위치(initial pose)를 부여할 때 현재 위치정보를 추정하는 알고리즘을 이용하여 자율주행로봇(10)의 주행 상태에 대한 이상 감지 시 시각 정보를 이용해 추정한 위치 정보를 초기 위치정보로 재설정함으로써 현재 위치정보에 대한 오차를 보정할 수 있다.Here, position readjustment refers to a process of resetting the current position information of the autonomous driving robot (10) by resetting the odometry and assigning initial position information after temporarily stopping the autonomous driving robot (10) when it is determined that the driving state of the autonomous driving robot (10) is incorrect, as shown in FIG. 8. In this way, when assigning an initial position (initial pose) in the existing SLAM algorithm, an algorithm for estimating the current position information is used to reset the position information estimated using visual information to the initial position information when an abnormality in the driving state of the autonomous driving robot (10) is detected, thereby correcting the error in the current position information.
상기 DB 업데이트 모듈(1600)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 DB 모듈(1100)에 추가 등록하여 DB 모듈(1100)의 데이터 세트를 업데이트 할 수 있다.The above DB update module (1600) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the image exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data. If the image does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB. However, if the cumulative counter count for the corresponding image ID exceeds a preset threshold count by repeatedly performing the cosine similarity score calculation process and the threshold score comparison process, the DB module (1100) can update the data set of the DB module (1100) by additionally registering the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data.
즉, 가장 높은 유사도 점수가 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가하고, 후보 DB에 추가된 벡터데이터는 기존의 후보 DB에 존재하는 벡터데이터들과의 유사도 비교를 통해 유사한 벡터가 있는 경우(즉, 기준 점수를 초과하는 경우) 해당 벡터데이터의 이미지 아이디에 대한 업카운트를 실시 및 추정 위치 정보 추가를 수행하고, 유사한 벡터데이터가 없는 경우 해당 벡터데이터의 이미지에 대한 새로운 아이디를 부여해 후보 DB에 저장할 수 있다.That is, if the highest similarity score does not exceed the reference score, the image of the current vector data with the highest similarity score is added to the candidate DB, and the vector data added to the candidate DB is compared for similarity with the vector data existing in the existing candidate DB. If there is a similar vector (i.e., if it exceeds the reference score), an upcount is performed on the image ID of the corresponding vector data and estimated location information is added. If there is no similar vector data, a new ID is assigned to the image of the corresponding vector data and stored in the candidate DB.
이러한 과정을 반복 수행하여 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 해당 데이터 및 해당 데이터에 해당하는 추정 위치 정보들의 평균값을 DB 모듈(1100)에 추가 등록하여 DB 모듈(1100)의 데이터 세트를 업데이트하고 후보 DB에서 해당 데이터는 제거할 수 있다.By repeating this process, when the accumulated counter count exceeds a preset standard count, the average value of the corresponding data and the estimated location information corresponding to the corresponding data is additionally registered in the DB module (1100), thereby updating the data set of the DB module (1100), and the corresponding data can be removed from the candidate DB.
이와 같이, DB 모듈(1100)과의 유사도 비교를 통해 새로운 데이터로서 판단되는 데이터들을 후보 DB에 추가하는 프로세스와, 벡터데이터가 후보 DB에 추가되었을 때 후보 DB에서의 유사도 비교를 통해 신뢰할만한 새로운 벡터데이터를 찾는 과정(즉, 누적 카운터 횟수를 이용하는 방식)을 수행할 수 있다.In this way, a process of adding data judged as new data through a similarity comparison with the DB module (1100) to the candidate DB and a process of finding reliable new vector data through a similarity comparison in the candidate DB when vector data is added to the candidate DB (i.e., a method using the accumulated counter count) can be performed.
자율주행로봇(10)이 주행하면서 건물 내부를 촬영하는데, 건물 내부 모습은 시간이 흐름에 따라 변할 수 있기 때문에 DB 모듈(1100)에 저장된 이미지(즉, 벡터데이터) 또한 그에 맞게 갱신되어야 한다. 이에 따라 DB 업데이트 모듈(1600)은 비전 모듈(1300)을 통해 제공되는 이미지와 DB 모듈(1100)에 저장된 이미지 간을 비교할 때 유사한 이미지를 찾지 못하는 경우(즉, 가장 높은 유사도 점수가 기준 점수를 넘지 못하는 경우) 해당 이미지에 대한 벡터데이터와 좌표정보를 DB 모듈(1100)에 추가 등록할 수 있다. As the autonomous driving robot (10) drives and takes pictures of the inside of a building, the inside of the building may change over time, so the image (i.e., vector data) stored in the DB module (1100) must also be updated accordingly. Accordingly, when the DB update module (1600) compares the image provided through the vision module (1300) with the image stored in the DB module (1100), if a similar image is not found (i.e., if the highest similarity score does not exceed the reference score), vector data and coordinate information for the corresponding image can be additionally registered in the DB module (1100).
다만, 추가 등록 대상을 한 번의 판단 과정을 통해 결정하는 것은 오히려 DB를 오염시킬 수 있기 때문에, 위의 조건(누적 카운터 횟수가 미리 설정된 기준 횟수 이상)을 N회 이상(ex. 3회 이상) 만족하는 경우 DB 모듈(1100)에 해당 벡터데이터(현재 벡터데이터 N개)를 추가할 수 있으며, 이때 위치정보는 비전 모듈(1300)에서 현재 벡터데이터가 획득되었을 때 센서 모듈(1200)에서 제공된 N개의 추정 위치정보들에 대한 평균 값이 적용될 수 있다.However, since determining the additional registration target through a single judgment process may rather contaminate the DB, if the above condition (the number of accumulated counters is greater than the preset standard number of times) is satisfied N or more times (e.g. 3 or more times), the corresponding vector data (current N pieces of vector data) can be added to the DB module (1100), and at this time, the average value of the N pieces of estimated location information provided by the sensor module (1200) when the current vector data is acquired from the vision module (1300) can be applied as the location information.
도 10은 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 11은 본 발명의 제2 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 12는 본 발명의 제2 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이고, 도 13은 본 발명의 제2 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.FIG. 10 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the second embodiment of the present invention, FIG. 11 is a block diagram showing the configuration of a vision module according to the second embodiment of the present invention, FIG. 12 is a block diagram showing the configuration of a DB module according to the second embodiment of the present invention, and FIG. 13 is a block diagram showing the configuration of a position information extraction module according to the second embodiment of the present invention.
도 10을 참조하면, 제2 실시예에 따른 SLAM 위치 오차 보정 시스템(2000)은 자율주행로봇(2100) 및 클라우드 서버(2200) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 10, the SLAM position error correction system (2000) according to the second embodiment may include at least one of an autonomous driving robot (2100) and a cloud server (2200).
상기 자율주행로봇(2100)은 센서 모듈(2110)과 비전 모듈(2120) 중 적어도 하나를 포함하고, 클라우드 서버(2200)는 DB 모듈(2210), 위치정보 추출 모듈(2220), 위치정보 재설정 모듈(2230) 및 DB 업데이트 모듈(2240) 중 적어도 하나를 포함할 수 있다. The above autonomous driving robot (2100) may include at least one of a sensor module (2110) and a vision module (2120), and the cloud server (2200) may include at least one of a DB module (2210), a location information extraction module (2220), a location information reset module (2230), and a DB update module (2240).
상기 자율주행로봇(2100)은 인터넷 통신망을 통해 클라우드 서버(2200)와 연결되어 클라우드 서버(2200)와 연동하는 방식으로 위치 오차 보정을 위한 동작을 수행할 수 있다. The above autonomous driving robot (2100) is connected to a cloud server (2200) through an Internet communication network and can perform an operation for position error correction by interworking with the cloud server (2200).
이하에서는 자율주행로봇(2100)에 구성된 센서 모듈(2110) 및 비전 모듈(2120)과, 클라우드 서버(2200)에 구성된 DB 모듈(2210), 위치정보 추출 모듈(2220), 위치정보 재설정 모듈(2230) 및 DB 업데이트 모듈(2240) 순서로 각 구성요소에 대하여 상세히 설명한다.Below, each component is described in detail in the following order: a sensor module (2110) and a vision module (2120) configured in an autonomous driving robot (2100), and a DB module (2210), a location information extraction module (2220), a location information reset module (2230), and a DB update module (2240) configured in a cloud server (2200).
상기 센서 모듈(2110)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(2100)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 DB 모듈(2210)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다. The above sensor module (2110) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (2100) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (2210) based on the calculated estimated location information.
상기 센서 모듈(2110)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(2100)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(2100)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.The above sensor module (2110) can compare the estimated location information of the autonomous driving robot (2100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (2100).
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(2110)은 자율주행로봇(2100)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.As described above, since each location group has a defined location range, i.e., a coordinate range, the sensor module (2110) can check which location group the estimated location information of the autonomous driving robot (2100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
상기 비전 모듈(2120)은, 자율주행로봇(2100)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.The above vision module (2120) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (2100).
이를 위해 비전 모듈(2120)은 도 11에 도시된 바와 같이, 주행영상 생성부(2121), 주행이미지 획득부(2122) 및 벡터데이터 추출부(2123) 중 적어도 하나를 포함할 수 있다.To this end, the vision module (2120) may include at least one of a driving image generation unit (2121), a driving image acquisition unit (2122), and a vector data extraction unit (2123), as illustrated in FIG. 11.
상기 주행영상 생성부(2121)는, 자율주행로봇(2100)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(2100)의 주행영상을 각각 생성할 수 있다.The above driving image generation unit (2121) can generate driving images of the autonomous driving robot (2100) through at least two cameras installed in the autonomous driving robot (2100) and shooting images in different directions or angles.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(2100)의 주행영상을 각각 생성할 수 있다. For example, to increase the accuracy of image similarity comparison, driving images of an autonomous driving robot (2100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
상기 주행이미지 획득부(2122)는, 일정 주기마다 자율주행로봇(2100)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다. The above driving image acquisition unit (2122) can acquire images of driving images of the autonomous driving robot (2100) at regular intervals and assign an image ID to each acquired image.
상기 벡터데이터 추출부(2123)는, 주행이미지 획득부(2122)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다. The above vector data extraction unit (2123) can extract current vector data from each driving image acquired through the driving image acquisition unit (2122) and provide it as a vision recognition result.
상기 DB 모듈(2210)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.The above DB module (2210) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
이러한 DB 모듈(2210)은 도 12에 도시된 바와 같이, 위치그룹 생성부(2211) 및 위치그룹 관리부(2212) 중 적어도 하나를 포함할 수 있다.Such DB module (2210) may include at least one of a location group creation unit (2211) and a location group management unit (2212), as illustrated in FIG. 12.
상기 위치그룹 생성부(2211)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다. 여기서, 설정영역이란 자율주행로봇(10)의 위치에서 유사도 검색을 진행할 위치그룹을 선택하는 범위를 의미하며, 하나의 위치그룹에는 일정간격을 통해 나누어져 고정된 표준 위치정보들이 정의되어 있다.The above location group generation unit (2211) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups. Here, the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (10), and standard location information that is divided and fixed at a certain interval is defined in one location group.
예를 들어, 도 5에 도시된 바와 같이 일정좌표범위로 이루어진 설정영역 'S1'(하나의 위치그룹과 대응됨)의 경우 자율주행로봇(10)이 표시된 위치가 그룹의 중앙부분이기 때문에 해당 그룹에서만 유사도 비교 검색하면 되고, 'S2'의 경우에는 자율주행로봇(10)이 표시된 위치가 그룹의 경계면에 위치하고 있기 때문에 그 주변의 그룹들까지 검색해야 함을 의미하며, 이에 따라 유사도 비교 검색을 진행할 그룹이 'S2'와 같이 상대적으로 더 넓게 선택될 수 있다. For example, in the case of a setting area 'S1' (corresponding to one location group) consisting of a certain coordinate range as illustrated in Fig. 5, since the location where the autonomous driving robot (10) is displayed is in the center of the group, a similarity comparison search can be performed only in that group, and in the case of 'S2', since the location where the autonomous driving robot (10) is displayed is located at the boundary of the group, it means that the surrounding groups must also be searched, and accordingly, the group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
상기 위치그룹 관리부(2212)는, 위치그룹 생성부(2211)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(2240)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.The above location group management unit (2212) can store a data set of a location group created through a location group creation unit (2211), and when a data update command and data to be updated are input by a DB update module (2240), it can modify previously stored data.
상기 위치정보 추출 모듈(2220)은, 센서 모듈(2110)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다. The above location information extraction module (2220) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specified location group through the sensor module (2110) and extract standard location information matching the vision data (DB vector data).
이를 위해 위치정보 추출 모듈(2220)는 도 13에 도시된 바와 같이, 데이터 입력부(2221), 위치그룹 선정부(2222), 유사도 결과 산출부(2123) 및 위치정보 제공부(2224) 중 적어도 하나를 포함할 수 있다.To this end, the location information extraction module (2220) may include at least one of a data input unit (2221), a location group selection unit (2222), a similarity result calculation unit (2123), and a location information provision unit (2224), as illustrated in FIG. 13.
상기 데이터 입력부(2221)는, 비전 모듈(2120)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(2110)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(2120)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(2110)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.The above data input unit (2221) can receive current vector data from the vision module (2120) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (2110), respectively. Accordingly, information on the image currently being captured through the vision module (2120), location information recognized through the sensor module (2110), and information on the location group corresponding to the location information can be input, respectively.
상기 위치그룹 선정부(2222)는, 데이터 입력부(2221)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 DB 모듈(2210)에 저장된 위치그룹을 선정할 수 있다. 상기 유사도 결과 산출부(2123)는, 위치그룹 선정부(2222)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(2221)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다. The above location group selection unit (2222) can select a location group stored in the DB module (2210) based on the location group information (location group ID or identification information) input through the data input unit (2221). The above similarity result calculation unit (2123) can perform a cosine similarity measurement between the 'DB vector data' belonging to the location group selected through the location group selection unit (2222) and the 'current vector data' input through the data input unit (2221) and calculate a score accordingly.
상기 위치정보 제공부(2224)는, 유사도 결과 산출부(2123)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다. The above location information providing unit (2224) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (2123) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
상기 위치정보 재설정 모듈(2230)은, 위치정보 추출 모듈(2220)을 통해 추출된 표준 위치정보 및 센서 모듈(2110)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(10)의 위치정보를 재 설정할 수 있다.The above location information reset module (2230) can compare the standard location information extracted through the location information extraction module (2220) and the estimated location information calculated through the sensor module (2110), and reset the location information of the autonomous driving robot (10) based on the comparison result.
좀 더 구체적으로 위치정보 재설정 모듈(2230)은, 센서 모듈(2110)을 통해 산출된 추정 위치정보 및 위치정보 제공부(2224)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 자율주행로봇(10)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(10)이 일시 정지된 상태에서 센서 모듈(2110)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(122s)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.More specifically, the location information reset module (2230) compares the estimated location information produced by the sensor module (2110) with the standard location information provided by the location information provider (2224) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (10), resets the LiDAR and Odometry of the sensor module (2110) while the autonomous driving robot (10) is temporarily stopped, and then sets the standard location information provided by the location information provider (122s) as the initial location information of the LiDAR and Odometry to correct the location error.
이러한 위치정보 재설정 모듈(2230)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(10)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다. This location information reset module (2230) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (10).
상기 DB 업데이트 모듈(2240)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 DB 모듈(2210)에 추가 등록하여 DB 모듈(2210)의 데이터 세트를 업데이트 할 수 있다.The above DB update module (2240) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the similarity score exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data. If the similarity score does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB. However, if the cumulative counter count for the corresponding image ID exceeds a preset threshold count by repeatedly performing the cosine similarity score calculation process and the threshold score comparison process, the DB module (2210) can additionally register the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data to the DB module (2210) to update the data set of the DB module (2210).
도 14는 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 15는 본 발명의 제3 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이고, 도 16은 본 발명의 제3 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 17은 본 발명의 제3 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.FIG. 14 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the third embodiment of the present invention, FIG. 15 is a block diagram showing the configuration of a DB module according to the third embodiment of the present invention, FIG. 16 is a block diagram showing the configuration of a vision module according to the third embodiment of the present invention, and FIG. 17 is a block diagram showing the configuration of a position information extraction module according to the third embodiment of the present invention.
도 14를 참조하면, 제3 실시예에 따른 SLAM 위치 오차 보정 시스템(3000)은 자율주행로봇(3100) 및 클라우드 서버(3200) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 14, the SLAM position error correction system (3000) according to the third embodiment may include at least one of an autonomous driving robot (3100) and a cloud server (3200).
상기 자율주행로봇(3100)은 DB 모듈(3110), 센서 모듈(3120), 비전 모듈(3130) 위치정보 추출 모듈(3140), 위치정보 재설정 모듈(3150), DB 업데이트 모듈(3160) 및 DB 모니터링 모듈(3170) 중 적어도 하나를 포함하고, 클라우드 서버(2200)는 DB 백업 모듈(3210) 및 DB 수정 모듈(3220) 중 적어도 하나를 포함할 수 있다. The above autonomous driving robot (3100) may include at least one of a DB module (3110), a sensor module (3120), a vision module (3130), a location information extraction module (3140), a location information reset module (3150), a DB update module (3160), and a DB monitoring module (3170), and the cloud server (2200) may include at least one of a DB backup module (3210) and a DB modification module (3220).
상기 자율주행로봇(3100)은 인터넷 통신망을 통해 클라우드 서버(3200)와 연결되어 클라우드 서버(3200)와 연동하는 방식으로 동작할 수 있다. The above autonomous driving robot (3100) can operate in a manner that is connected to a cloud server (3200) through an Internet communication network and interoperates with the cloud server (3200).
이하에서는 자율주행로봇(3100)에 구성된 DB 모듈(3110), 센서 모듈(3120), 비전 모듈(3130) 위치정보 추출 모듈(3140), 위치정보 재설정 모듈(3150), DB 업데이트 모듈(3160) 및 DB 모니터링 모듈(3170)과, 클라우드 서버(3200)에 구성된 DB 백업 모듈(3210) 및 DB 수정 모듈(3220) 순서로 각 구성요소에 대하여 상세히 설명한다.Below, each component is described in detail in the order of the DB module (3110), sensor module (3120), vision module (3130), location information extraction module (3140), location information reset module (3150), DB update module (3160), and DB monitoring module (3170) configured in the autonomous driving robot (3100), and the DB backup module (3210) and DB modification module (3220) configured in the cloud server (3200).
상기 DB 모듈(3110)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.The above DB module (3110) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
이러한 DB 모듈(3110)은 도 15에 도시된 바와 같이, 위치그룹 생성부(3111) 및 위치그룹 관리부(3112) 중 적어도 하나를 포함할 수 있다.Such DB module (3110) may include at least one of a location group creation unit (3111) and a location group management unit (3112), as illustrated in FIG. 15.
상기 위치그룹 생성부(3111)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다.The above location group generation unit (3111) can generate data sets by matching DB vector data extracted from each vision data (image of a driving video) and standard location information representing coordinate information where each vision data is generated, and can group multiple generated data sets according to a set area having a certain coordinate range to generate multiple location groups.
예를 들어, 도 5에 도시된 바와 같이, 일정좌표범위로 이루어진 설정영역 'S1'(또는 'S1'보다 넓은 설정영역 'S2') 별로 각각의 위치그룹이 정의될 수 있다. 하나의 위치그룹에는 다수의 표준 위치정보(location) 즉 표준 좌표데이터들이 일정 거리 간격마다 각각 정의되어 있으며, 각각의 표준 좌표마다 매칭되는 이미지가 벡터데이터로 정의되어 있다.For example, as illustrated in Fig. 5, each location group can be defined for each setting area 'S1' (or setting area 'S2' wider than 'S1') consisting of a certain coordinate range. In one location group, a plurality of standard location information (location), that is, standard coordinate data, are defined at certain distance intervals, and an image matching each standard coordinate is defined as vector data.
상기 위치그룹 관리부(3112)는, 위치그룹 생성부(3111)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(3160)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.The above location group management unit (3112) can store a data set of a location group created through a location group creation unit (3111), and when a data update command and data to be updated are input by a DB update module (3160), it can modify previously stored data.
상기 센서 모듈(3120)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(3100)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 DB 모듈(3110)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다. The above sensor module (3120) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (3100) through LiDAR and Odometry systems, and can specify one location group among a number of location groups defined in the DB module (3110) based on the calculated estimated location information.
상기 센서 모듈(3120)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(3100)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(3100)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.The above sensor module (3120) can compare the estimated location information of the autonomous driving robot (3100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (3100).
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(3120)은 자율주행로봇(3100)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.As described above, since each location group has a defined location range, i.e., a coordinate range, the sensor module (3120) can check which location group the estimated location information of the autonomous driving robot (3100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
상기 비전 모듈(3130)은, 자율주행로봇(3100)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.The above vision module (3130) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (3100).
이를 위해 비전 모듈(3130)은 도 16에 도시된 바와 같이, 주행영상 생성부(3131), 주행이미지 획득부(3132) 및 벡터데이터 추출부(3133) 중 적어도 하나를 포함할 수 있다.To this end, the vision module (3130) may include at least one of a driving image generation unit (3131), a driving image acquisition unit (3132), and a vector data extraction unit (3133), as illustrated in FIG. 16.
상기 주행영상 생성부(3131)는, 자율주행로봇(3100)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(3100)의 주행영상을 각각 생성할 수 있다.The above driving image generation unit (3131) can generate driving images of the autonomous driving robot (3100) through at least two cameras installed in the autonomous driving robot (3100) and shooting images in different directions or angles.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(3100)의 주행영상을 각각 생성할 수 있다. For example, to increase the accuracy of image similarity comparison, driving images of an autonomous driving robot (3100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
상기 주행이미지 획득부(3132)는, 일정 주기마다 자율주행로봇(3100)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다. The above driving image acquisition unit (3132) can acquire images of driving images of the autonomous driving robot (3100) at regular intervals and assign an image ID to each acquired image.
상기 벡터데이터 추출부(3133)는, 주행이미지 획득부(3132)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다. The above vector data extraction unit (3133) can extract current vector data from each driving image acquired through the driving image acquisition unit (3132) and provide it as a vision recognition result.
상기 위치정보 추출 모듈(3140)은, 센서 모듈(3120)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다. The above location information extraction module (3140) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specific location group through the sensor module (3120), and extract standard location information matching the vision data (DB vector data).
이를 위해 위치정보 추출 모듈(3140)는 도 17에 도시된 바와 같이, 데이터 입력부(3141), 위치그룹 선정부(3142), 유사도 결과 산출부(3143) 및 위치정보 제공부(3144) 중 적어도 하나를 포함할 수 있다.To this end, the location information extraction module (3140) may include at least one of a data input unit (3141), a location group selection unit (3142), a similarity result calculation unit (3143), and a location information provision unit (3144), as illustrated in FIG. 17.
상기 데이터 입력부(3141)는, 비전 모듈(3130)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(3120)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(3130)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(3120)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.The above data input unit (3141) can receive current vector data from the vision module (3130) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (3120), respectively. Accordingly, information on the image currently being captured through the vision module (3130), location information recognized through the sensor module (3120), and information on the location group corresponding to the location information can be input, respectively.
상기 위치그룹 선정부(3142)는, 데이터 입력부(3141)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 DB 모듈(3110)에 저장된 위치그룹을 선정할 수 있다. The above location group selection unit (3142) can select a location group stored in the DB module (3110) based on location group information (location group ID or identification information) input through the data input unit (3141).
상기 유사도 결과 산출부(3143)는, 위치그룹 선정부(3142)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(3141)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다. The above similarity result producing unit (3143) can perform a cosine similarity measurement between 'DB vector data' belonging to a location group selected through a location group selecting unit (3142) and 'current vector data' input through a data input unit (3141) and produce a score accordingly.
상기 위치정보 제공부(3144)는, 유사도 결과 산출부(3143)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다. The above location information providing unit (3144) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (3143) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
상기 위치정보 재설정 모듈(3150)은, 위치정보 추출 모듈(3140)을 통해 추출된 표준 위치정보 및 센서 모듈(3120)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(10)의 위치정보를 재 설정할 수 있다.The above location information reset module (3150) can compare the standard location information extracted through the location information extraction module (3140) and the estimated location information calculated through the sensor module (3120), and reset the location information of the autonomous driving robot (10) based on the comparison result.
좀 더 구체적으로 위치정보 재설정 모듈(3150)은, 센서 모듈(3120)을 통해 산출된 추정 위치정보 및 위치정보 제공부(3144)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 자율주행로봇(3100)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(3100)이 일시 정지된 상태에서 센서 모듈(3120)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(3144)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.More specifically, the location information reset module (3150) compares the estimated location information produced by the sensor module (3120) with the standard location information provided by the location information provider (3144) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (3100), resets the LiDAR and Odometry of the sensor module (3120) while the autonomous driving robot (3100) is temporarily stopped, and then sets the standard location information provided by the location information provider (3144) as the initial location information of the LiDAR and Odometry to correct the location error.
이러한 위치정보 재설정 모듈(3150)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(3100)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다. This location information reset module (3150) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (3100).
상기 DB 업데이트 모듈(3160)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 DB 모듈(3110)에 추가 등록하여 DB 모듈(3110)의 데이터 세트를 업데이트 할 수 있다.The above DB update module (3160) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the similarity score exceeds the threshold, it performs an up-count on the image ID of the corresponding vector data, and if the similarity score does not exceed the threshold, it assigns a new image ID and adds it to the candidate DB. However, if the cumulative counter number for the corresponding image ID exceeds a preset threshold number by repeatedly performing the cosine similarity score calculation process and the threshold score comparison process, the DB module (3110) can additionally register the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data to the DB module (3110) to update the data set of the DB module (3110).
상기 DB 모니터링 모듈(3170)은, DB 모듈(3110)에 저장된 데이터(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)에 대한 모니터링을 수행하고 DB 모니터링 데이터를 생성할 수 있다.The above DB monitoring module (3170) can perform monitoring on data (data set including DB vector data and standard location information) stored in the DB module (3110) and generate DB monitoring data.
좀 더 구체적으로 DB 모니터링 모듈(3170)은, 비전데이터의 최초 생성 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 최근 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 횟수 정보, 및 가장 높은 유사도 점수에 의해 선택된 표준 위치정보 및 센서 모듈(3120)의 추정 위치정보 간의 거리 및 방향 차이에 대한 비교 정보를 각각 모니터링 할 수 있다.More specifically, the DB monitoring module (3170) can monitor the initial creation time information of vision data, the most recent time information selected by the highest similarity score for each vision data, the number of times information selected by the highest similarity score for each vision data, and the comparison information on the distance and direction difference between the standard location information selected by the highest similarity score and the estimated location information of the sensor module (3120).
상기 DB 백업 모듈(3210)은, 자율주행로봇(3100)의 DB 모듈(3110)과 동기화되어 DB 모듈(3110)에 저장된 데이터(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)를 백업하여 관리하는 역할을 수행할 수 있다. The above DB backup module (3210) can be synchronized with the DB module (3110) of the autonomous driving robot (3100) and perform the role of backing up and managing data (data set including DB vector data and standard location information) stored in the DB module (3110).
상기 DB 수정 모듈(3220)은, 자율주행로봇(3100)의 DB 모니터링 모듈(3170)로부터 제공되는 DB 모니터링 데이터를 기반으로 DB 모듈(3110)에 필요하지 않은 데이터를 판단하여 해당 데이터를 삭제 관리하는 역할을 수행할 수 있다.The above DB modification module (3220) can perform the role of determining data that is not necessary for the DB module (3110) based on DB monitoring data provided from the DB monitoring module (3170) of the autonomous driving robot (3100) and deleting and managing the corresponding data.
이와 같이, 자율주행로봇(3100)에 저장되는 최종 데이터들(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)는 일정 주기 단위로 클라우드 서버(3200)의 DB 백업 모듈(3210)에 저장되며, DB 백업 모듈(3210)에 저장된 데이터들을 관리자를 통한 수정 작업을 수행한 후 자율주행로봇(3100)에 전송함으로써 수정된 데이터를 자율주행로봇(3100)에 적용시킬 수 있다.In this way, the final data (data set including DB vector data and standard location information) stored in the autonomous driving robot (3100) are stored in the DB backup module (3210) of the cloud server (3200) at regular intervals, and by performing a modification task through an administrator on the data stored in the DB backup module (3210) and then transmitting it to the autonomous driving robot (3100), the modified data can be applied to the autonomous driving robot (3100).
DB 모듈(3110)의 데이터 수정은 로컬 즉 자율주행로봇(3100)에서 진행되는 DB 자동 갱신 알고리즘에 더해서 변화되는 주변 환경에 따라 필요가 없어진 데이터와 오류가 있는 데이터를 각각 제거함으로써, DB 모듈(3110)에 저장된 데이터에 대한 신뢰도를 높일 수 있다. 이때, 관리자는 제거할 데이터를 선택하거나 알고리즘을 통해 특정 조건을 만족하는 데이터를 제거함으로써 DB 모듈(3110)의 데이터를 수정함으로써 자율주행로봇(3100)에 적용시킬 수 있다.Modification of data in the DB module (3110) can increase the reliability of data stored in the DB module (3110) by removing data that is no longer needed and data with errors according to the changing surrounding environment in addition to the DB automatic update algorithm that is performed locally, i.e., in the autonomous driving robot (3100). At this time, the administrator can modify the data in the DB module (3110) by selecting data to be removed or removing data that satisfies specific conditions through an algorithm, thereby applying it to the autonomous driving robot (3100).
도 18은 본 발명의 제4 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 19는 본 발명의 제4 실시예에 따른 제1 DB 모듈의 구성을 나타낸 블록도이고, 도 20은 본 발명의 제4 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 31은 본 발명의 제4 실시예에 따른 제1 위치정보 추출 모듈의 구성을 나타낸 블록도이다.FIG. 18 is a drawing showing the overall configuration and configuration form of a SLAM position error correction system according to the fourth embodiment of the present invention, FIG. 19 is a block diagram showing the configuration of a first DB module according to the fourth embodiment of the present invention, FIG. 20 is a block diagram showing the configuration of a vision module according to the fourth embodiment of the present invention, and FIG. 31 is a block diagram showing the configuration of a first position information extraction module according to the fourth embodiment of the present invention.
도 18을 참조하면, 제4 실시예에 따른 SLAM 위치 오차 보정 시스템(4000)은 자율주행로봇(4100) 및 클라우드 서버(4200) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 18, the SLAM position error correction system (4000) according to the fourth embodiment may include at least one of an autonomous driving robot (4100) and a cloud server (4200).
상기 자율주행로봇(4100)은 제1 DB 모듈(4110), 센서 모듈(4120), 비전 모듈(4130) 제1 위치정보 추출 모듈(4140), 위치정보 재설정 모듈(4150) 및 DB 업데이트 모듈(4160) 중 적어도 하나를 포함하고, 클라우드 서버(2200)는 제2 제1 DB 모듈(4210) 및 제2 위치정보 추출 모듈(4220) 중 적어도 하나를 포함할 수 있다. The above autonomous driving robot (4100) may include at least one of a first DB module (4110), a sensor module (4120), a vision module (4130), a first location information extraction module (4140), a location information reset module (4150), and a DB update module (4160), and the cloud server (2200) may include at least one of a second first DB module (4210) and a second location information extraction module (4220).
상기 자율주행로봇(4100)은 인터넷 통신망을 통해 클라우드 서버(4200)와 연결되어 클라우드 서버(4200)와 연동하는 방식으로 동작할 수 있다. The above autonomous driving robot (4100) can operate in a manner that is connected to a cloud server (4200) through an Internet communication network and interoperates with the cloud server (4200).
이하에서는 자율주행로봇(4100)에 구성된 제1 DB 모듈(4110), 센서 모듈(4120), 비전 모듈(4130) 제1 위치정보 추출 모듈(4140), 위치정보 재설정 모듈(4150) 및 DB 업데이트 모듈(4160)과, 클라우드 서버(4200)에 구성된 제2 DB 모듈(4210) 및 제2 위치정보 추출 모듈(4220) 순서로 각 구성요소에 대하여 상세히 설명한다.Below, each component is described in detail in the order of the first DB module (4110), sensor module (4120), vision module (4130), first location information extraction module (4140), location information reset module (4150), and DB update module (4160) configured in the autonomous driving robot (4100), and the second DB module (4210) and second location information extraction module (4220) configured in the cloud server (4200).
상기 제1 DB 모듈(4110)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.The above first DB module (4110) can store a plurality of pre-generated vision data and a plurality of standard location information by matching them with each other, and can store them as a plurality of location groups each grouped according to a set area having a certain coordinate range.
이러한 제1 DB 모듈(4110)은 도 19에 도시된 바와 같이, 위치그룹 생성부(4111) 및 위치그룹 관리부(4112) 중 적어도 하나를 포함할 수 있다.This first DB module (4110) may include at least one of a location group creation unit (4111) and a location group management unit (4112), as illustrated in FIG. 19.
상기 위치그룹 생성부(4111)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다. 여기서, 설정영역이란 자율주행로봇(4100)의 위치에서 유사도 검색을 진행할 위치그룹을 선택하는 범위를 의미하며, 하나의 위치그룹에는 일정간격을 통해 나누어져 고정된 표준 위치정보들이 정의되어 있다.The above location group generation unit (4111) matches the DB vector data extracted from each vision data (image of a driving video) and the standard location information representing the coordinate information where each vision data is generated to generate each data set, and groups the generated multiple data sets according to a set area having a certain coordinate range to generate multiple location groups. Here, the set area means a range for selecting a location group for performing a similarity search at the location of the autonomous driving robot (4100), and standard location information that is divided and fixed at a certain interval is defined in one location group.
예를 들어, 도 5에 도시된 바와 같이, 일정좌표범위로 이루어진 설정영역 'S1'(하나의 위치그룹과 대응됨)의 경우 자율주행로봇(4100)이 표시된 위치가 그룹의 중앙부분이기 때문에 해당 그룹에서만 유사도 비교 검색하면 되고, 'S2'의 경우에는 자율주행로봇(4100)이 표시된 위치가 그룹의 경계면에 위치하고 있기 때문에 그 주변의 그룹들까지 검색해야 함을 의미하며, 이에 따라 유사도 비교 검색을 진행할 그룹이 'S2'와 같이 상대적으로 더 넓게 선택될 수 있다. For example, as illustrated in FIG. 5, in the case of a setting area 'S1' (corresponding to one location group) consisting of a certain coordinate range, since the location where the autonomous driving robot (4100) is displayed is in the center of the group, a similarity comparison search only needs to be performed in that group, and in the case of 'S2', since the location where the autonomous driving robot (4100) is displayed is located at the boundary of the group, it means that the surrounding groups need to be searched as well, and accordingly, a group where a similarity comparison search is to be performed can be selected relatively more widely, such as 'S2'.
상기 위치그룹 관리부(4112)는, 위치그룹 생성부(4111)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(4160)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.The above location group management unit (4112) can store a data set of a location group created through a location group creation unit (4111), and when a data update command and data to be updated are input by a DB update module (4160), it can modify previously stored data.
상기 센서 모듈(4120)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(4100)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 제1 DB 모듈(4110)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다. The above sensor module (4120) calculates estimated location information (information estimating the location of the robot itself) of the autonomous driving robot (4100) through a LiDAR and Odometry system, and can specify one location group among a plurality of location groups defined in the first DB module (4110) based on the calculated estimated location information.
상기 센서 모듈(4120)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(4100)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(4100)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.The above sensor module (4120) can compare the estimated location information of the autonomous driving robot (4100) calculated through LiDAR and Odometry with the set area defined for each location group to determine the location group corresponding to the estimated location information of the autonomous driving robot (4100).
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(4120)은 자율주행로봇(4100)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.As described above, since each location group has a defined location range, i.e., a coordinate range, the sensor module (4120) can check which location group the estimated location information of the autonomous driving robot (4100) belongs to and output the estimated location information and the location group ID or identification information corresponding to the estimated location information.
상기 비전 모듈(4130)은, 자율주행로봇(4100)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.The above vision module (4130) can provide a vision recognition result through a vision recognition process for a driving image of an autonomous driving robot (4100).
이를 위해 비전 모듈(4130)은 도 20에 도시된 바와 같이, 주행영상 생성부(4131), 주행이미지 획득부(4132) 및 벡터데이터 추출부(4133) 중 적어도 하나를 포함할 수 있다.To this end, the vision module (4130) may include at least one of a driving image generation unit (4131), a driving image acquisition unit (4132), and a vector data extraction unit (4133), as illustrated in FIG. 20.
상기 주행영상 생성부(4131)는, 자율주행로봇(4100)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(4100)의 주행영상을 각각 생성할 수 있다.The above driving image generation unit (4131) can generate driving images of the autonomous driving robot (4100) through at least two cameras installed in the autonomous driving robot (4100) and shooting images in different directions or angles.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(4100)의 주행영상을 각각 생성할 수 있다. For example, to increase the accuracy of image similarity comparison, driving images of an autonomous driving robot (4100) can be generated using a camera facing the ceiling and a camera facing the front, respectively.
상기 주행이미지 획득부(4132)는, 일정 주기마다 자율주행로봇(4100)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다. The above driving image acquisition unit (4132) can acquire images of driving images of the autonomous driving robot (4100) at regular intervals and assign an image ID to each acquired image.
상기 벡터데이터 추출부(4133)는, 주행이미지 획득부(4132)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다. The above vector data extraction unit (4133) can extract current vector data from each driving image acquired through the driving image acquisition unit (4132) and provide it as a vision recognition result.
상기 제1 위치정보 추출 모듈(4140)은, 센서 모듈(4120)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다. The above first location information extraction module (4140) can find the vision data (DB vector data) most similar to the vision recognition result (current vector data) among the vision data (DB vector data) belonging to a specified location group through the sensor module (4120), and extract standard location information matching the corresponding vision data (DB vector data).
이를 위해 제1 위치정보 추출 모듈(4140)는 도 21에 도시된 바와 같이, 데이터 입력부(4141), 위치그룹 선정부(4142), 유사도 결과 산출부(4143) 및 위치정보 제공부(4144) 중 적어도 하나를 포함할 수 있다.To this end, the first location information extraction module (4140) may include at least one of a data input unit (4141), a location group selection unit (4142), a similarity result calculation unit (4143), and a location information provision unit (4144), as illustrated in FIG. 21.
상기 데이터 입력부(4141)는, 비전 모듈(4130)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(4120)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(4130)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(4120)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.The above data input unit (4141) can receive current vector data from the vision module (4130) and input estimated location information and specific location group information (location group ID or identification information) from the sensor module (4120), respectively. Accordingly, information on the image currently being captured through the vision module (4130), location information recognized through the sensor module (4120), and information on the location group corresponding to the location information can be input, respectively.
상기 위치그룹 선정부(4142)는, 데이터 입력부(4141)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 제1 DB 모듈(4110)에 저장된 위치그룹을 선정할 수 있다. 이와 같이, 비전 모듈(4130)을 통해 인식된 이미지와 유사한 이미지를 찾기 위하여 전체 DB 이미지에 대한 비교 과정을 수행하지 않고, 센서 모듈(4120)을 통해 인식된 위치에 속하는 그룹을 특정해 줌으로써, 비전 모듈(4130)에서 인식된 이미지와 비교할 대상인 후보 이미지들을 특정해 그 비교 대상 수를 줄여줄 수 있다. 이에 따라, 비교 횟수가 줄어들기 때문에 유사도 비교 과정을 위해 소요되는 시간을 줄일 수 있고, 위치 상 다른 곳이지만 이미지가 유사한 경우와 같은 오류를 제거할 수 있어 정확도를 높일 수 있다.The above location group selection unit (4142) can select a location group stored in the first DB module (4110) according to the location group information (location group ID or identification information) input through the data input unit (4141). In this way, instead of performing a comparison process on the entire DB image to find an image similar to the image recognized through the vision module (4130), by specifying a group belonging to the location recognized through the sensor module (4120), candidate images to be compared with the image recognized by the vision module (4130) can be specified, thereby reducing the number of comparison targets. Accordingly, since the number of comparisons is reduced, the time required for the similarity comparison process can be reduced, and errors such as cases where images are similar but located in different places can be eliminated, thereby increasing accuracy.
상기 유사도 결과 산출부(4143)는, 위치그룹 선정부(4142)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(4141)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다. The above similarity result producing unit (4143) can perform a cosine similarity measurement between the 'DB vector data' belonging to the location group selected through the location group selecting unit (4142) and the 'current vector data' input through the data input unit (4141) and produce a score accordingly.
상기 위치정보 제공부(4144)는, 유사도 결과 산출부(4143)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다. The above location information providing unit (4144) checks whether the highest similarity score among the similarity scores calculated through the similarity result calculating unit (4143) exceeds a preset threshold score, and if the highest similarity score exceeds the threshold score, extracts and provides standard location information that matches the DB vector data that received the highest similarity score.
상기 위치정보 재설정 모듈(4150)은, 제1 위치정보 추출 모듈(4140)을 통해 추출된 표준 위치정보 및 센서 모듈(4120)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(4100)의 위치정보를 재 설정할 수 있다.The above location information reset module (4150) can compare the standard location information extracted through the first location information extraction module (4140) and the estimated location information calculated through the sensor module (4120), and reset the location information of the autonomous driving robot (4100) based on the comparison result.
좀 더 구체적으로 위치정보 재설정 모듈(4150)은, 센서 모듈(4120)을 통해 산출된 추정 위치정보 및 위치정보 제공부(4144)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 자율주행로봇(4100)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(4100)이 일시 정지된 상태에서 센서 모듈(3000)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(4144)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.More specifically, the location information reset module (4150) compares the estimated location information produced by the sensor module (4120) with the standard location information provided by the location information provider (4144) to determine whether they match, and if they do not match, determines that there is an abnormality in the driving status of the autonomous driving robot (4100), resets the LiDAR and Odometry of the sensor module (3000) while the autonomous driving robot (4100) is temporarily stopped, and then sets the standard location information provided by the location information provider (4144) as the initial location information of the LiDAR and Odometry to correct the location error.
이러한 위치정보 재설정 모듈(4150)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(4100)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다. This location information reset module (4150) performs a similarity check between an image acquired in real time through visual loop detection and a pre-built database, and can readjust the initial location information from LiDAR and Odometry based on the location information estimated using visual information when there is an abnormality in the driving status of the autonomous driving robot (4100).
상기 DB 업데이트 모듈(4160)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 제1 DB 모듈(4110)에 추가 등록하여 제1 DB 모듈(4110)의 데이터 세트를 업데이트 할 수 있다.The above DB update module (4160) adds the image of the current vector data having the highest similarity score to the candidate DB if the highest similarity score does not exceed a threshold, and then performs a similarity comparison with vector data previously added to the candidate DB. If the image exceeds the threshold, an up-count is performed on the image ID of the corresponding vector data. If the image does not exceed the threshold, a new image ID is assigned and added to the candidate DB. However, if the cumulative counter count for the corresponding image ID exceeds a preset threshold count by repeatedly performing the cosine similarity score calculation process and the threshold score comparison process, the average value of the current vector data having the highest similarity score and the estimated location information corresponding to the current vector data is additionally registered in the first DB module (4110), so as to update the data set of the first DB module (4110).
상기 제2 DB 모듈(4210)은, 미리 생성된 다수의 비전데이터(DB 벡터데이터) 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 구성요소로서, 자율주행로봇(4100)에 설치된 제1 DB 모듈(4110)보다 더 많은 데이터(DB 벡터데이터, 표준 위치정보를 포함한 데이터 세트)를 보유하고 있어, 자율주행로봇(4100)에서 1차 위치 추정이 불가한 경우 클라우드 서버(4200)에서 자율주행로봇(4100)에 대한 2차 위치 추정을 진행할 수 있도록 한다. 이러한 제2 DB 모듈(4210)은 상술한 제1 DB 모듈(4210)과 동일한 데이터 구조로 구축되어 있으나, 다만 클라우드의 장점을 활용해 보다 많은 데이터들이 구축되어 있어 위치 추정에 대한 높은 정확도를 제공할 수 있도록 한다.The above second DB module (4210) is a component that stores a plurality of pre-generated vision data (DB vector data) and a plurality of standard location information by matching them with each other, and stores them as a plurality of location groups each grouped according to a set area having a certain coordinate range, and has more data (data set including DB vector data and standard location information) than the first DB module (4110) installed in the autonomous driving robot (4100), so that when the autonomous driving robot (4100) is unable to perform the first location estimation, the cloud server (4200) can perform the second location estimation for the autonomous driving robot (4100). This second DB module (4210) is constructed with the same data structure as the above-described first DB module (4210), but by utilizing the advantages of the cloud, more data is constructed so as to provide high accuracy for location estimation.
상기 제2 위치정보 추출 모듈(4220)은, 자율주행로봇(4100)의 제1 위치정보 추출 모듈(4140)을 통해 표준 위치정보가 추출되지 않는 경우(즉, 자율주행로봇(4100)에서 위치 추정이 불가한 경우), 자율주행로봇(4100)의 센서 모듈(4120)을 통해 특정된 위치그룹에 속한 비전데이터들 중 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출 즉, 2차 위치 추정 과정을 수행하고, 그에 따라 추출된 표준 위치정보를 추출하여 자율주행로봇(4100)의 제1 위치정보 추출 모듈(4140)로 제공할 수 있다. 다만, 클라우드 서버(4200)에서도 위치 추정(표준 위치정보 추출)이 불가한 경우에는 DB 자동 갱신 알고리즘을 통해 DB를 갱신할 수 있다The second location information extraction module (4220) above can extract standard location information that matches the vision data most similar to the vision recognition result among the vision data belonging to a specific location group through the sensor module (4120) of the autonomous driving robot (4100) when the standard location information is not extracted through the first location information extraction module (4140) of the autonomous driving robot (4100) (i.e., when the location estimation is not possible in the autonomous driving robot (4100), i.e., perform a second location estimation process, and extract the standard location information extracted accordingly and provide it to the first location information extraction module (4140) of the autonomous driving robot (4100). However, when location estimation (standard location information extraction) is not possible even in the cloud server (4200), the DB can be updated through the DB automatic update algorithm.
이러한 클라우드 서버(4200)는 다수의 자율주행로봇(4100)의 주행기록, 판단결과 등에 대한 데이터를 지속적으로 수신 및 축적한 후 복합적인 DB를 형성함으로써, 자율주행로봇(4100) 주행 시 가상 주행을 통해 해당 로봇(4100)의 주행 상태 판단을 돕고 주행 경로를 추천할 수 있다.These cloud servers (4200) continuously receive and accumulate data on driving records, judgment results, etc. of a plurality of autonomous driving robots (4100) and form a composite DB, thereby helping to determine the driving status of the autonomous driving robot (4100) through virtual driving and recommending a driving route while the robot is driving.
Claims (17)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2023-0073293 | 2023-06-08 | ||
| KR1020230073293A KR102631315B1 (en) | 2023-06-08 | 2023-06-08 | System capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
| KR1020230073292A KR102631313B1 (en) | 2023-06-08 | 2023-06-08 | Device capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
| KR10-2023-0073292 | 2023-06-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024253400A1 true WO2024253400A1 (en) | 2024-12-12 |
Family
ID=93796151
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2024/007583 Ceased WO2024253400A1 (en) | 2023-06-08 | 2024-06-03 | Apparatus and system capable of correcting position error through real-time analysis and comparison between vision data and lidar data for slam technology implementation |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024253400A1 (en) |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140003987A (en) * | 2012-06-25 | 2014-01-10 | 서울대학교산학협력단 | Slam system for mobile robot based on vision sensor data and motion sensor data fusion |
| KR20150004568A (en) * | 2013-07-03 | 2015-01-13 | 삼성전자주식회사 | Method for recognizing position of autonomous mobile robot |
| KR101976241B1 (en) * | 2016-01-22 | 2019-08-28 | 경희대학교 산학협력단 | Map building system and its method based on multi-robot localization |
| JP6605180B2 (en) * | 2017-06-01 | 2019-11-13 | 三菱電機株式会社 | Map processing apparatus, map processing method, and map processing program |
| KR102521280B1 (en) * | 2021-05-07 | 2023-04-17 | 휴림네트웍스 주식회사 | Position tracking method or device of robot using natural objects of SLAM-based mobile robot, computer-readable recording medium and computer program |
| KR102631313B1 (en) * | 2023-06-08 | 2024-01-31 | (주)인티그리트 | Device capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
| KR102631315B1 (en) * | 2023-06-08 | 2024-02-01 | (주)인티그리트 | System capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
-
2024
- 2024-06-03 WO PCT/KR2024/007583 patent/WO2024253400A1/en not_active Ceased
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140003987A (en) * | 2012-06-25 | 2014-01-10 | 서울대학교산학협력단 | Slam system for mobile robot based on vision sensor data and motion sensor data fusion |
| KR20150004568A (en) * | 2013-07-03 | 2015-01-13 | 삼성전자주식회사 | Method for recognizing position of autonomous mobile robot |
| KR101976241B1 (en) * | 2016-01-22 | 2019-08-28 | 경희대학교 산학협력단 | Map building system and its method based on multi-robot localization |
| JP6605180B2 (en) * | 2017-06-01 | 2019-11-13 | 三菱電機株式会社 | Map processing apparatus, map processing method, and map processing program |
| KR102521280B1 (en) * | 2021-05-07 | 2023-04-17 | 휴림네트웍스 주식회사 | Position tracking method or device of robot using natural objects of SLAM-based mobile robot, computer-readable recording medium and computer program |
| KR102631313B1 (en) * | 2023-06-08 | 2024-01-31 | (주)인티그리트 | Device capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
| KR102631315B1 (en) * | 2023-06-08 | 2024-02-01 | (주)인티그리트 | System capable of correcting location errors using real-time analysis and contrast between vision data and lidar data for the implementation of simultaneous localization and map-building technology |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2021040214A1 (en) | Mobile robot and method for controlling same | |
| WO2020230931A1 (en) | Robot generating map on basis of multi-sensor and artificial intelligence, configuring correlation between nodes and running by means of map, and method for generating map | |
| WO2018186583A1 (en) | Method for identifying obstacle on driving ground and robot for implementing same | |
| WO2016074169A1 (en) | Target detecting method, detecting device, and robot | |
| WO2017091008A1 (en) | Mobile robot and control method therefor | |
| WO2018143620A2 (en) | Robot cleaner and method of controlling the same | |
| WO2020241934A1 (en) | Method for estimating position by synchronizing multi-sensor, and robot for implementing same | |
| WO2018230852A1 (en) | Method for identifying moving object in three-dimensional space and robot for implementing same | |
| WO2020226187A1 (en) | Robot generating map on basis of multi-sensor and artificial intelligence and traveling by using map | |
| WO2015194866A1 (en) | Device and method for recognizing location of mobile robot by means of edge-based readjustment | |
| WO2020241930A1 (en) | Method for estimating location using multi-sensor and robot for implementing same | |
| WO2015194864A1 (en) | Device for updating map of mobile robot and method therefor | |
| WO2021137483A1 (en) | Method and system for updating map by using autonomous driving robot | |
| WO2017008224A1 (en) | Moving object distance detection method, device and aircraft | |
| WO2015194867A1 (en) | Device for recognizing position of mobile robot by using direct tracking, and method therefor | |
| WO2015194868A1 (en) | Device for controlling driving of mobile robot having wide-angle cameras mounted thereon, and method therefor | |
| WO2020046038A1 (en) | Robot and control method therefor | |
| WO2020153568A1 (en) | Electronic apparatus and control method thereof | |
| WO2015194865A1 (en) | Device and method for recognizing location of mobile robot by means of search-based correlation matching | |
| WO2021141396A1 (en) | Robot cleaner using artificial intelligence and control method thereof | |
| WO2020251100A1 (en) | Method for updating map in fusion slam and robot implementing same | |
| WO2019135437A1 (en) | Guide robot and operation method thereof | |
| WO2022119057A1 (en) | Image-based cooperative simultaneous localization and mapping system and method | |
| WO2019199112A1 (en) | Autonomous work system and method, and computer-readable recording medium | |
| WO2020141900A1 (en) | Mobile robot and driving method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24819551 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |