WO2019245320A1 - Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method - Google Patents

Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method Download PDF

Info

Publication number
WO2019245320A1
WO2019245320A1 PCT/KR2019/007499 KR2019007499W WO2019245320A1 WO 2019245320 A1 WO2019245320 A1 WO 2019245320A1 KR 2019007499 W KR2019007499 W KR 2019007499W WO 2019245320 A1 WO2019245320 A1 WO 2019245320A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
mobile robot
robot device
sensing data
bundle
Prior art date
Application number
PCT/KR2019/007499
Other languages
French (fr)
Korean (ko)
Inventor
홍순혁
명현
김형진
송승원
현지음
Original Assignee
삼성전자주식회사
한국과학기술원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020190024283A external-priority patent/KR102601141B1/en
Application filed by 삼성전자주식회사, 한국과학기술원 filed Critical 삼성전자주식회사
Priority to US17/055,415 priority Critical patent/US12001218B2/en
Publication of WO2019245320A1 publication Critical patent/WO2019245320A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0259Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means

Definitions

  • the present disclosure relates to a mobile robot device and a control method of fusion of an image sensor and a plurality of geomagnetic sensors to correct a position and to produce a map. More particularly, the present invention analyzes and simultaneously matches data acquired through each sensor and moves a mobile robot. An apparatus and a control method for estimating and correcting a current position of a.
  • Robots have improved work efficiency by performing tasks that are difficult to reach in various industries.
  • a robot arm type that has been fixed at a specific position and performing repetitive tasks has been used, but research and demand for a mobile robot device that is relatively free to move and can perform various tasks is gradually increasing. It is increasing.
  • SLAM Simultaneous Localization And Mapping
  • the SLAM technology has recently been developed in various fields, and has been spotlighted as an essential technology for efficiently driving a cleaning robot or an autonomous vehicle.
  • a graph-based SLAM that expresses the position and odometry of the robot as nodes and edges (constraint in other expressions) is widely used as one of the above SLAMs.
  • the technology of recognizing the position through the existing geomagnetic sensor has a disadvantage in that the matching is not accurate in an environment in which the magnetic field distortion is not large enough, and even if it is used, only the similarity between the positions is required, and thus, another auxiliary means is required.
  • the present disclosure has been made to solve the above-described problems, and an object of the present disclosure is to fuse a plurality of geomagnetic sensors with an image sensor having different characteristics, thereby enabling a mobile robot device to more efficiently use graph slam (SLAM) technology.
  • the present invention provides a mobile robot device and a control method thereof.
  • Mobile robot device for achieving the above object is a traveling unit; An image sensor; A plurality of geomagnetic sensors; A memory for storing at least one instruction; And a processor configured to execute the at least one instruction, wherein the processor acquires a plurality of image data through the image sensor while the mobile robot apparatus moves through the driving unit, and through the plurality of geomagnetic sensors.
  • a graph structure for estimating the position of the mobile robot device may be generated, and if the position recognition of the mobile robot device fails, the graph structure may be corrected.
  • the processor may control to extract the feature points from the plurality of image data using an ORF (Oriented FAST and Rotated BRIEF) algorithm.
  • ORF Oriented FAST and Rotated BRIEF
  • the processor may be configured to accumulate the feature points to form a submap, perform a random sample consensus (RANSAC) algorithm, and match the submap to the nearest node to obtain the key node.
  • RANSAC random sample consensus
  • the processor acquires a sensing data group by grouping the obtained sensing data, compares and matches a magnetic field value of the sensing data group with magnetic fields of a previously stored sensing data group, and matches the matched sensing data group. Based on this, it is possible to control to obtain a node bundle having a pair of graph structures.
  • the processor may determine whether the newly obtained node bundle exists between the previously stored node bundles, and if it is determined that the newly obtained node bundle exists between the previously stored node bundles, Only the newly acquired node bundle existing between the existing acquired node bundles may be extracted, and only the extracted newly obtained node bundle may be selected as the node sequence.
  • the processor updates an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle, and the distance difference between the extracted newly acquired node bundle and the updated existing acquired node bundle is most significant.
  • the small node bundle may be searched and controlled to find the position of the node sequence using the node bundle having the smallest distance difference.
  • the processor may control to update to an existing obtained node bundle having a smaller distance difference using a Gaussian process.
  • the processor detects location information different from the location information represented by the graph structure generated by the mobile robot device through a wheel sensor while the mobile robot device moves, and fails to recognize the location.
  • the device may be rotated and controlled to acquire new image data and sensing data through the image sensor and the plurality of magnetic sensor.
  • the mobile robot device obtains a new keynode and node sequence based on the newly acquired image data and the sensing data and compares it with the graph structure previously generated based on the obtained new keynode and node sequence. Control to determine whether or not a match.
  • the processor may control to correct the graph structure based on the new keynode and node sequences matching the previously generated graph structure.
  • the control method of the mobile robot device for achieving the above object obtains a plurality of image data through the image sensor while the mobile robot device is moving, sensing through a plurality of geomagnetic sensors Obtaining data; extracting feature points from the plurality of image data and acquiring key nodes based on the feature points; acquiring a node sequence based on the sensing data; obtaining the key nodes and the node sequence Generating a graph structure estimating a position of the mobile robot device based on the result; And correcting the graph structure when the mobile robot device fails to recognize the position.
  • the feature points may be extracted from the plurality of image data by using an ORF (Oriented FAST and Rotated BRIEF) algorithm.
  • ORF Oriented FAST and Rotated BRIEF
  • the acquiring of the key nodes may include accumulating the feature points to construct a submap; And performing the submap random sample consensus (RANSAC) algorithm and matching the nearest node to obtain the key node.
  • RANSAC submap random sample consensus
  • the acquiring of the node sequence may include acquiring a sensing data group by grouping the acquired sensing data; Comparing and matching magnetic field values of the sensing data group with magnetic field values of the previously stored sensing data group; And acquiring a node bundle having a pair of graph structures based on the matched sensing data group.
  • the acquiring of the node sequence may include determining whether the newly obtained node bundle exists between the previously stored node bundles; If it is determined that the newly acquired node bundle exists between the previously stored node bundles, extracting only the newly acquired node bundle existing between the existing acquired node bundles; And selecting only the extracted newly obtained node bundle as the node sequence.
  • the locating of the node sequence may include updating an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle; the newly acquired node bundle and the updated existing node bundle; Searching for a node bundle having a smallest distance difference among the obtained node bundles; And locating the node sequence using the node bundle having the smallest difference in distance.
  • the step of locating the node sequence may be updated with an existing acquired node bundle having a smaller distance difference using a Gaussian process.
  • the position sensor fails to detect position information different from the position information represented by the graph structure generated by the mobile robot apparatus through a wheel sensor.
  • the mobile robot device rotates and acquires new image data and sensing data through the image sensor and the plurality of magnetic sensor.
  • the correcting of the graph structure may include: acquiring a new key node and a node sequence based on the image data and the sensing data newly acquired by the mobile robot device; And comparing the new key node and the node sequence based on the acquired new key node and the node sequence to determine whether they match.
  • the correcting of the graph structure may include correcting the graph structure based on the new keynode and node sequences matching the previously generated graph structure.
  • the mobile robot device can generate a graph structure based on the location information by matching and fusing data obtained from the image sensor and the plurality of geomagnetic sensors, respectively, and the mobile robot. If the device fails to recognize the position, the graph can be corrected.
  • FIG. 1 is a block diagram briefly illustrating a configuration of a mobile robot apparatus according to an embodiment of the present disclosure
  • FIG. 2 is a block diagram illustrating in detail the configuration of a mobile robot apparatus according to an embodiment of the present disclosure
  • FIG. 3 is a block diagram illustrating a configuration of generating a graph by acquiring a sequence of key nodes and nodes according to an embodiment of the present disclosure
  • FIG. 4 is a block diagram illustrating a graph slam (SLAM) algorithm using an image sensor, according to an embodiment of the present disclosure
  • FIG. 5 is a flowchart illustrating a method of obtaining a key node from an image sensor according to an embodiment of the present disclosure
  • 6A is a diagram for describing a method of extracting feature points from image data, according to an exemplary embodiment.
  • 6B is a diagram for describing a submap in which feature points extracted from image data are accumulated, according to an embodiment of the present disclosure
  • FIG. 7 is a flowchart illustrating a method of obtaining a node bundle from sensing data according to an embodiment of the present disclosure
  • FIG. 8 is a diagram for describing a method of obtaining a node sequence by matching a node bundle according to an embodiment of the present disclosure
  • FIG. 9A is a diagram for describing a distance value between an existing node bundle and a newly obtained node bundle, according to an embodiment of the present disclosure.
  • FIG. 9B is a view for explaining a table for determining whether a distance value between a previously acquired node bundle and a newly acquired node bundle can be measured according to an embodiment of the present disclosure
  • FIG. 10 is a diagram for describing a method of determining a location of a newly obtained node bundle using an existing node bundle, according to an embodiment of the present disclosure
  • FIG. 11 is a diagram for describing a method of generating a graph structure using a key node and a node sequence, according to an embodiment of the present disclosure
  • 12A is a diagram for describing a method of matching a submap and a target node when the mobile robot apparatus fails to recognize a location according to an embodiment of the present disclosure
  • 12B is a diagram for describing a method of matching a feature point and a target node of a submap when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure
  • FIG. 13A is a diagram for describing a method of matching a target node when a mobile robot apparatus fails to recognize a position, according to an exemplary embodiment.
  • FIG. 13B is a diagram for describing a method of correcting a graph by matching a target node when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure
  • FIG. 14 is a flowchart illustrating a method of matching with a target node when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure
  • FIG. 15A is a diagram for describing a method of performing an experiment when a mobile robot apparatus fails to recognize a position, according to an exemplary embodiment.
  • FIG. 15B is a view for explaining a result of an experiment when a mobile robot apparatus fails to recognize a position according to one embodiment of the present disclosure
  • 16 is a flowchart illustrating a method of controlling a mobile robot device according to an embodiment of the present disclosure.
  • each step should be understood to be non-limiting unless the preceding step is to be performed logically and temporally prior to the later step. That is, except for the exceptional cases described above, even if the process described as the following step is performed before the process described as the preceding step, the nature of the disclosure is not affected and the scope of rights should be defined regardless of the order of the steps.
  • a or B is defined to mean not only selectively indicating any one of A and B, but also including both A and B.
  • the term “comprising” in this specification has the meaning encompassing further including other components in addition to the listed elements.
  • FIG. 1 is a block diagram schematically illustrating a configuration of a mobile robot apparatus 10 according to an embodiment of the present disclosure.
  • the mobile robot device 10 includes a processor 150, an image sensor 110, a plurality of geomagnetic sensors 120, a memory 130, and a driving unit 140.
  • the 3D image data including the color image and the depth image may be obtained using the image sensor 110, and a distance value corresponding to the pixel of the obtained 3D image data may be measured.
  • the image sensor 110 may include a stereo camera, a time of flight camera, an infrared camera, and the like, and may obtain depth data values of each pixel.
  • the image sensor 110 may operate in various situations such as the moving robot apparatus 10 moves, rotates, and stops.
  • the plurality of geomagnetic sensors 120 may be an IMU (Inertial Measurement Unit) sensor incorporating a three-axis geomagnetic sensor. Magnetic field sensing data may be obtained through the plurality of geomagnetic sensors 120. Sensing data obtained through the plurality of geomagnetic sensors 120 may be stored in the memory 130.
  • IMU Inertial Measurement Unit
  • the memory 130 may store instructions or data related to at least one other component of the mobile robot device 10.
  • the memory 130 may be implemented as a nonvolatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD).
  • the memory 130 may be accessed by the processor 150 and read / write / modify / delete / update of data by the processor 150 may be performed.
  • the term memory refers to a memory card (not shown) mounted on the memory 130, a ROM (not shown), a RAM (not shown), or the mobile robot device 10 (eg, micro). SD card, memory stick).
  • the memory 130 may store programs and data for configuring various screens to be displayed in the display area of the display.
  • the memory 130 may store the acquired 3D image data or the sensing data, and may store at least one instruction.
  • Various program instructions may be included, but various program instructions may be partially omitted, modified, or added depending on the type and characteristics of the mobile robot apparatus 10.
  • the driving unit 140 is a device that helps the mobile robot device 10 to move, and may be configured as a wheel, or may be configured as a device that can move in a non-standard moving form such as N-group walking. In addition, the driving unit 140 may rotate left and right as well as forward and backward and may also be configured to rotate. Therefore, the driving unit 140 may be configured in various ways according to the type and characteristics of the mobile robot device 10.
  • the processor 150 may control the overall operation of the mobile robot apparatus 10 using various instructions and modules stored in the memory 130.
  • the processor 150 acquires a plurality of image data through the image sensor 110 and senses through the plurality of geomagnetic sensors 120. Data can be obtained.
  • the processor 150 may extract feature points from the plurality of image data and obtain key nodes based on the feature points.
  • the processor 150 may extract the feature points from the plurality of image data using an ORF (Oriented FAST and Rotated BRIEF) algorithm.
  • the processor 150 may accumulate the extracted feature points to form a submap, perform a random sample consensus (RANSAC) algorithm on the submap, and match the nearest node to obtain a key node.
  • RFSAC random sample consensus
  • the processor 150 may obtain a node sequence based on the sensing data. Specifically, a graph structure for estimating the position of the mobile robot apparatus 10 based on the key nodes and the node sequence is generated, and when the position recognition of the mobile robot apparatus 10 fails, the graph structure is generated. You can correct it.
  • the processor 150 acquires a sensing data group by grouping the obtained sensing data, compares and matches the magnetic field values of the obtained sensing data group with the magnetic field values of a previously stored sensing data group, and matches Based on the sensing data group, a node bundle having a pair of graph structures may be obtained.
  • the processor 150 determines whether the newly obtained node bundle exists between the previously stored node bundles, and if it is determined that the newly obtained node bundle exists between the previously stored node bundles. Only the newly acquired node bundle existing between the existing obtained node bundles may be extracted, and only the newly acquired node bundle may be selected as the node sequence.
  • the processor 150 updates an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle and extracts a distance difference between the newly acquired node bundle and the updated existing node bundle.
  • the smallest node bundle may be searched and the node sequence having the smallest distance difference may be used to locate the node sequence.
  • the processor 150 may update a previously obtained node bundle having a smaller distance difference using a Gaussian process.
  • the processor 150 senses location information different from the location information represented by the graph structure generated by the mobile robot device 10 through the wheel sensor 160 while the mobile robot device 10 moves. If the position recognition fails, the mobile robot apparatus 10 may rotate and acquire new image data and sensing data through the image sensor 110 and the plurality of magnetic sensors.
  • the processor 150 acquires a new key node and node sequence based on the image data and the sensing data newly acquired by the mobile robot device 10, and based on the obtained new key node and node sequence. It may be determined whether or not a match is made by comparing the graph structure generated previously.
  • the processor 150 may correct the graph structure based on the new key node and node sequence matching the previously generated graph structure.
  • the mobile robot apparatus 10 includes a processor 150, an image sensor 110, a plurality of geomagnetic sensors 120, a wheel sensor 160, an input unit 170, a memory 130,
  • the driving unit 140 may include a communication unit 180, a display unit 190, and a function unit 195.
  • Figure 2 is a case where the mobile robot device 10 is a device having a variety of functions, such as content sharing function, communication function, display function, for example, shows a comprehensive view of the various components. Therefore, according to the exemplary embodiment, some of the components shown in FIG. 2 may be omitted or changed, and other components may be further added.
  • the number of the image sensors 110 may be plural and may be disposed in the central portion or the outer portion of the mobile robot apparatus 10 to photograph the surrounding environment. However, this is only an embodiment, and the number of image sensors 110 may be added, modified, or changed depending on the type and characteristics of the mobile robot apparatus 10.
  • the plurality of geomagnetic sensors 120 may measure magnetic field distortion of an indoor environment, and extract magnetic field characteristics and the like using a sequence. The plurality of geomagnetic sensors 120 may also operate regardless of the operating situation of the mobile robot device 10.
  • the plurality of geomagnetic sensors 120 may be symmetrically disposed to the left and right of the driving unit 140 of the mobile robot apparatus 10, but this is merely an example and may be disposed at various positions. According to the type and characteristics of the mobile robot device 10, the number of the plurality of geomagnetic sensors 120 may be added, modified or changed.
  • the wheel sensor 160 may detect a situation in which the wheel and the floor of the mobile robot apparatus 10 are lifted without contact, that is, a kidnapping situation. In addition to the kidnapping situation, the wheel sensor 160 may detect a location recognition failure situation that detects location information different from a graph structure indicating the location information of the mobile robot device 10 acquired by the mobile robot device 10. .
  • the wheel sensor 160 may be disposed on the driving unit 140 abutting the floor, but this is only an example and may be disposed anywhere touching the floor.
  • the input unit 170 may receive a user command for controlling the overall operation of the mobile robot device 10.
  • the input unit 170 may be implemented as a touch screen.
  • the input unit 170 may be implemented as another input device (for example, a mouse, a keyboard, or a microphone) according to the type and characteristics of the mobile robot apparatus 10. Can be.
  • the driving unit 140 may allow the mobile robot apparatus 10 to freely move, including forward and backward rotation.
  • the wheel sensor 160 may be disposed on the driving unit 140.
  • the driving unit 140 may be variously modified, such as quadruped walking.
  • the communication unit 180 is a component capable of communicating with various types of external devices according to various types of communication methods.
  • the communication unit 180 may include various communication chips such as a Wi-Fi chip, a Bluetooth chip, a wireless communication chip, and the like.
  • the Wi-Fi chip and the Bluetooth chip may communicate with each other by the Wi-Fi method and the Bluetooth method.
  • the wireless communication chip refers to a chip that performs communication according to various communication standards such as IEEE, Zigbee, 3rd Generatoin (3G), 3rd Generation Partnership Project (3GPP), Long term Evolution (LTE), and the like.
  • the display 190 may output image data under the control of the processor 150.
  • the content received through the communication unit 180 may be displayed, and when generating a graph structure based on the data acquired by the mobile robot device 10, the corresponding graph is displayed to display the mobile robot device 10. It is also possible to estimate the movement path. This is only an example and may display various functions according to the type and characteristics of the mobile robot apparatus 10.
  • the function unit 195 may perform various functions according to the type and characteristics of the mobile robot device 10. For example, if the mobile robot apparatus 10 is a robot cleaner, it may adsorb dust in the surroundings through the function unit 195 while moving. If the mobile robot device 10 is a robot that moves and plays various multimedia contents, the function unit 195 may be hardware that plays multimedia contents.
  • the processor 150 may process a digital signal, a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, and an application processor (AP). Or a communication processor (CP), one or more of ARM processors, or may be defined in the corresponding terms.
  • the processor 150 may be implemented in a System on Chip (SoC), a large scale integration (LSI) in which a processing algorithm is embedded, or may be implemented in the form of a field programmable gate array (FPGA).
  • SoC System on Chip
  • LSI large scale integration
  • FPGA field programmable gate array
  • the processor 150 may perform various functions by executing computer executable instructions stored in the memory 130.
  • the processor 150 may include at least one of a separate AI dedicated processor, a graphics-processing unit (GPU), a neural processing unit (NPU), and a visual processing unit (VPU) to perform an artificial intelligence function. have.
  • FIG. 3 is a block diagram illustrating a configuration of generating a graph by acquiring a sequence of key nodes and nodes according to an embodiment of the present disclosure.
  • the processor 150 may include a key node acquirer 310, a node sequence acquirer 320, and a graph generator 330 illustrated in FIG. 3.
  • the key node acquisition unit 310 may obtain a key node by extracting and matching feature points by using image data acquired by the image sensor 110 stored in the memory 130.
  • the image data is three-dimensional data including color data and depth data, and feature points may be extracted by using an ORB algorithm.
  • ORB Oriented FAST and Rotated BRIEF
  • three-dimensional image data can also be used using other algorithms (e.g., algorithms such as The speeded up robust features (SURF) and the Scale Invariant Feature Transform (SIFT)).
  • SURF speeded up robust features
  • SIFT Scale Invariant Feature Transform
  • the key node acquisition unit 310 may overcome an environment in which the feature points are insufficient by accumulating the extracted feature points to form a submap.
  • the submap is formed by accumulating three-dimensional feature points in the key node acquisition unit 310, and may be based on reliability of an odometry of the robot.
  • the key node acquisition unit 310 may acquire the image from the image sensor 110 in a new environment. Key nodes can be obtained by using three-dimensional image data.
  • the node sequence acquirer 320 may acquire a node sequence based on sensing data acquired through the plurality of geomagnetic sensors 120 stored in the memory 130.
  • the sensing data includes data in which magnetic field distortion of an indoor environment is reflected.
  • the data measured by the magnetic field distortion, such as the sensing data may derive the magnetic field value using a sequence of data instead of the value itself at a specific instant.
  • the node sequence obtainer 320 may group sensing data, match magnetic field values of the grouped sensing data, and generate a node bundle with the matched sensing data group.
  • the node bundle may be matched again to obtain a node sequence in the form of a loop closing.
  • the loop closing form refers to the closed loop form and means that the node is connected in the form of a sequence.
  • the node sequence obtainer 320 may apply a Gaussian process in the process of obtaining a node sequence by performing node bundle matching.
  • the Gaussian process is a type of supervised learning that is a set of random variables. In this case, the set variables follow a joint Gaussian distribution. Specifically, this will be described with reference to FIG. 10.
  • the node sequence acquisition unit 320 compares a newly obtained node bundle query value with a previously obtained node bundle to extract a query having the smallest error score. Can be.
  • the node bundle having the smallest distance difference can be selected as a node sequence in a loop closing form.
  • the graph generator 330 may generate a graph structure indicating the position information of the mobile robot apparatus 10 based on the keynode and node sequences acquired by the keynode acquirer 310 and the node sequence acquirer 320. have.
  • the graph structure generated by the graph generator 330 may be in the form of a loop closing, and may be composed of a key node and a node sequence. Such a graph structure may mean that 3D image data matching and sensing data matching may be simultaneously performed.
  • the graph generator 330 may not only be a kidnapping situation in which the wheel sensor 160 is currently held by the mobile robot device 10, but also an image sensor 110 and a plurality of geomagnetic sensors 120.
  • the graph can be corrected based on the data obtained from
  • the graph structure generated by the graph generator 330 may be displayed on the display 190, and is preset in the input unit 170 (eg, a touch screen, a microphone, a keyboard, etc.).
  • the input unit 170 eg, a touch screen, a microphone, a keyboard, etc.
  • the display 190 can see the simulation process.
  • FIG. 4 is a block diagram illustrating a graph slam (SLAM) algorithm using an image sensor 110 according to an embodiment of the present disclosure.
  • SLAM graph slam
  • a key node is obtained based on the 3D image data acquired by the image sensor 110, a graph structure is generated based on the obtained key node, and the position information of the mobile robot apparatus 10 is estimated.
  • the process of making a map 400 is shown.
  • the 3D image data including the depth data is acquired through the image sensor 110 that is a component of the mobile robot apparatus 10 (410).
  • the continuous or discontinuous three-dimensional image data is acquired through the image sensor 110, and the obtained three-dimensional image data is stored in the memory 130.
  • the mobile robot device 10 may perform a process of visual odometry 420.
  • the visual odometry 420 process refers to a process of determining the position and direction of the mobile robot device 10 by analyzing the image data acquired by the mobile robot device 10.
  • the mobile robot device 10 of the present disclosure uses a visual odometry 420 that can be effectively used for the mobile robot device 10 having a non-standard moving method such as a group N walking robot, but this is only one embodiment. Do.
  • the visual odometry 420 process performed by the mobile robot apparatus 10 is to perform image correction on the first three-dimensional image data obtained.
  • the mobile robot apparatus 10 may correct such as lens distortion that may occur while the image sensor 110 acquires 3D image data.
  • the mobile robot apparatus 10 may extract a feature point of the three-dimensional image data after the image correction is completed, and build an optical flow field with the extracted feature point.
  • the mobile robotic device 10 may determine the position and direction of the mobile robotic device 10 through the optical flow vector of the optical flow field.
  • the mobile robot apparatus 10 may extract feature points from an ORB algorithm using three-dimensional image data.
  • ORB Oriented FAST and Rotated BRIEF
  • FAST-9 Oriented FAST and Rotated BRIEF
  • the mobile robot device 10 accumulates and matches feature points extracted from the obtained 3D image data. This process is referred to as node management 430.
  • the mobile robot apparatus 10 may match a submap accumulated by collecting the feature points of the nodes, that is, the nodes of the mobile robot apparatus 10.
  • Equation (1) above is an equation for explaining that the processor 150 may configure a submap by accumulating the feature points extracted from the 3D image data.
  • M on the left side means the j-th submap accumulated feature points.
  • K and l are index numbers of the first and last nodes included in the j th submap.
  • the mobile robot apparatus 10 may match the submap formed by accumulating the feature points in two stages.
  • the mobile robot apparatus 10 may search for a submap closest to the target node by matching several submaps with the target node. Since the mobile robot device 10 is difficult to estimate the position of the mobile robot device 10 by performing matching on a single feature point in an environment in which the feature points are insufficient, the closest node, i. Rough matching may be performed with the target node.
  • the mobile robot device 10 may utilize a RANSAC algorithm based on rigid transformation when performing rough matching.
  • Rigid body transformation refers to a transformation that changes only the position and direction while maintaining the shape and size of the object to be converted.
  • the RANSAC algorithm is an algorithm that enables regression analysis of values outside the normal distribution called outliers to data belonging to the normal distribution.
  • the mobile robot device 10 selects any number of accumulated feature points, assumes the selected number of feature points as data (Inlier) belonging to a normal distribution, and then selects a regression model. You can get it.
  • the mobile robot apparatus 10 may determine whether the remaining feature points are within a preset tolerance, and if the tolerances are within the tolerance, include the data (Inlier) in a normal distribution and regression. Models can be constructed.
  • the mobile robot apparatus 10 may measure the reconfigured regression model, the data (Inlier) and the error belonging to the normal distribution, and determine whether to repeat the above-described process according to whether the error exceeds a preset tolerance. .
  • the mobile robot apparatus 10 may acquire a key node closest to the target node in the submap by matching the target node with the node including the feature points accumulated in the submap searched in the first step.
  • the mobile robot device 10 may look at one submap to which the RANSAC algorithm is applied and match the target node to search for the nearest submap, and the second step may be performed by the mobile robot device 10.
  • the mobile robot device 10 may determine depth based constraints 450 and feature based constraints of each of the keynodes. 460 may be generated.
  • the mobile robot device 10 may generate a constraint by connecting a region where the depth data of the key node matches the depth data of the target node, and the constraint may be a depth based constraint.
  • the mobile robot device 10 may generate a constraint by connecting a keynode's feature to an area matching the feature of the target node, and the constraint may be a feature based constraints ( 460).
  • the mobile robot apparatus 10 generates depth based constraints 450 and feature based constraints 460 based on the key node to form a loop closing shape.
  • optimizing the graph structure means that the mobile robot device 10 generates a graph based on the key node in order to best represent the position information of the mobile robot device 10. This means that it can be generated accurately and the error can be minimized.
  • Bow (Bag of words) Scene Matching 440 is a matching method that the mobile robot apparatus 10 may use in a situation such as kidnapping.
  • the mobile robot apparatus 10 extracts a representative feature point from feature points extracted from previously acquired image data, and comprises a codebook consisting of representative feature points. Can be generated. Then, when the mobile robot device 10 is placed on the floor after the kidnapping situation, the mobile robot device 10 can check whether the current position matches the existing position using a codebook.
  • FIG. 5 is a flowchart illustrating a method of obtaining a key node from the image sensor 110 according to an embodiment of the present disclosure.
  • the image sensor 110 such as an RGB-D sensor may acquire 3D image data.
  • the mobile robot apparatus 10 may store the obtained 3D image data in the memory 130. Can be stored.
  • the mobile robot apparatus 10 may extract a feature point by applying an ORB algorithm, in one embodiment, from the plurality of image data stored in the memory 130 (S520).
  • the mobile robot apparatus 10 may accumulate the extracted feature points to form a submap (S530), apply a RANSAC algorithm, and perform matching. (S540)
  • the matching method is divided into two steps as described above.
  • the mobile robot device 10 may view the submap that has undergone the RANSAC algorithm as one node and perform rough matching with the target node.
  • the mobile robot apparatus 10 may search for the nearest node by matching the nodes of the matched submap and the target node (S550). Thereafter, the mobile robot apparatus 10 may acquire a node that is closest to the target node, that is, a key node (S560).
  • 6A and 6B are diagrams for describing a method of extracting feature points from image data, according to an exemplary embodiment.
  • FIG. 6A illustrates the mobile robot device 10 extracting feature points from three-dimensional image data.
  • the mobile robot apparatus 10 may extract and view the vicinity of the leg 610 of the whiteboard as a feature point, which is continuously brighter than the pixels near the floor of the corridor.
  • the mobile robot apparatus 10 may view and extract a portion 620 attached to a white tape which is brighter than pixels Pixel near the bottom of the hall as a feature point.
  • the mobile robot apparatus 10 shows the accumulation of sub-maps of feature points extracted from the 3D image data.
  • the mobile robot apparatus 10 may apply the RANSAC algorithm to the submap formed by accumulating the feature points extracted from the image data and match the target node.
  • the mobile robot apparatus 10 may obtain a key node by matching the feature points constituting the matched submap and the target node.
  • FIG. 7 is a flowchart illustrating a method of obtaining a node bundle from sensing data according to an embodiment of the present disclosure.
  • the sensing data may be acquired by the plurality of geomagnetic sensors 120.
  • the sensing data is data obtained by measuring magnetic field distortion of an indoor environment, and should be formed in a sequence form. Can be grouped in a sequence form (S720).
  • the mobile robot apparatus 10 may compare and match the previously stored sensing data group with the newly acquired sensing data group and the magnetic field values. (S740) The mobile robot apparatus 10 compares and matches the magnetic field values of the sensing data group. By doing so, it is possible to construct a loop closing with the node sequence as a component.
  • Equation (2) above calculates a matching cost when the sensing data group is expressed as a vector.
  • the mobile robot apparatus 10 may obtain a matching cost by calculating a Euclidean distance between the previously stored sensing data group and the newly acquired sensing data.
  • the mobile robot device 10 may generate a node bundle with the matched sensing data group (S760). That is, the mobile robot device 10 may generate a node bundle having a pair of graph structures as matched sensing data groups.
  • FIGS. 8 to 10 are diagrams for describing a method of obtaining a node sequence by matching node bundles according to an embodiment of the present disclosure.
  • FIG. 8 compares the distance difference between the node bundle 800 (or target) previously acquired by the mobile robot device 10 and the node bundle 810 (or query) newly acquired. The process of finding a matching point is shown.
  • the mobile robot device 10 may calculate an error score by pushing the query 810 with the target 800.
  • the mobile robot device 10 may repeat the process 820 of obtaining a distance difference from the target 800 while continuously raising the position of the query 810. Therefore, it can be seen from the table 890 that the difference between the target 800 and the query 810 is the smallest in the case of (c) than in the case of (b) 840 or (d) 880. .
  • FIG. 9A a node bundle consisting of a pair of graph structures of a target_L 910 and a target_R 930 and a node bundle consisting of a pair of graph structures of a query_L 920 and a query_R 940 are illustrated. It is shown.
  • a table shows whether the target 800 is between queries 810 so that the mobile robot device 10 is in a range capable of measuring physical values between each node bundle.
  • the mobile robot apparatus 10 may calculate a distance difference between the target_L 910 and the target_R 930 based on the query_L 920 and the query_R 940. have. For example, the mobile robot apparatus 10 calculates the distance between the target_L 920 and LL based on the query_L 920 and the distance between the query_L 920 and the target_R 930 is LR. Can be calculated as
  • the mobile robot device 10 may measure the distance difference between the query bundle and the graph structure constituting the target bundle only when the query bundle is on the left side or on the right side.
  • the target 1020 extracts only the query and the Gaussian process to find the location of the extracted query 1010.
  • the process of updating the target 1030 having a smaller error score (Error Score) is shown.
  • the mobile robot device 10 may extract only a query existing between the targets 1020 and select the extracted query as a node sequence.
  • the mobile robot apparatus 10 may generate a target 1030 having a smaller query and distance difference than the target 1040 by using a Gaussian process to determine the position of the node sequence.
  • the mobile robot apparatus 10 performs a Gaussian process repeatedly until the distance between the curry selected as the node sequence is almost disappeared, that is, until the distance difference is smallest, and finally finds the position of the node sequence. Can be.
  • FIG. 11 is a diagram for describing a method of generating a graph structure using a key node and a node sequence, according to an exemplary embodiment.
  • the mobile robot device 10 may simultaneously configure a graph structure 1110 having a key node 1100 obtained based on 3D image data and a node sequence obtained based on sensing data, as components.
  • the mobile robot apparatus 10 may create the constraint 1120 using the key node 1100 and the node sequence, and perform a graph slam by generating a graph structure in the form of a loop closing. have.
  • FIG. 12 to 13 are diagrams for describing a method of calibrating a graph when the mobile robot apparatus 10 fails to recognize a position, according to an embodiment of the present disclosure
  • FIG. 14 is a view according to an embodiment of the present disclosure.
  • 2 is a flowchart illustrating a method of correcting a graph when the mobile robot apparatus 10 fails to recognize a position.
  • the wheel sensor 160 may detect a case where the mobile robot device 10 fails to recognize the position, such as a kid napping situation in which the mobile robot device 10 is heard, and the mobile robot device 10 may again detect an image sensor ( The key node and the node sequence may be obtained using the 110 and the plurality of geomagnetic sensors 120.
  • the mobile robot apparatus 10 may rough match the relocation node 1220 based on a submap in which feature points are equally accumulated in a situation such as kidnapping.
  • the mobile robot apparatus 10 may match a submap 1200 including a node relatively closer to the relocation node 1220 among various submaps.
  • the mobile robot apparatus 10 may identify that the submap 1210 including the relatively distant node does not match the relocation node 1220.
  • the mobile robot apparatus 10 may match the submap 1200 including the node closer to the relocation node 1220 again to search for the best match.
  • FIG. 13 illustrates in detail a loop closed graph structure in which the mobile robot device 10 finds the best matching pair, that is, a node, in the kidnapping 1300 situation.
  • the mobile robot device 10 finds the best-fit node 1310, the mobile robot device 10 places a constraint 1320 on the best-fit node 1310 and performs an existing graph slam. do.
  • FIG. 14 is a flowchart for describing a method of correcting a graph when the mobile robot apparatus 10 fails to recognize a position, according to an exemplary embodiment.
  • the wheel sensor 160 may detect a kidnapping situation such as the mobile robot device 10 being lifted (S1410). At this time, the mobile robot device 10 may generate generation of an odometry constraint. Therefore, the mobile robot apparatus 10 may rotate and simultaneously acquire three-dimensional image data and sensing data using the image sensor 110 and the plurality of geomagnetic sensors 120. (S1430)
  • the mobile robot apparatus 10 may newly acquire a key node and a node sequence based on the acquired new 3D image data and sensing data, and attempt to match the relocation node (S1440).
  • the mobile robot device 10 may determine the next step according to whether the matching is successful (S1450). If the matching does not succeed, the mobile robot device 10 attempts matching again (S1440). In this case, the graph may be corrected based on the matched keynode and node sequences (S1460).
  • FIG. 15 is a diagram for describing a method and a result of assuming an experiment when the mobile robot apparatus 10 fails to recognize a position, according to an exemplary embodiment.
  • FIG. 15A illustrates an experimental method for understanding how the mobile robot apparatus 10 operates when an experimenter randomly generates a kidnapping situation 1510 in the mobile robot apparatus 10 in a rectangular experiment site 13 m long and 8.5 m long. It is shown.
  • FIG. 15B a result value when the experiment planned in FIG. 15A is actually performed is illustrated.
  • the line 1520 indicated by the dotted line indicates the trajectory of the graph slam generated by the mobile robot device 10 in the kidnapping situation.
  • the line indicated by the solid line 1530 is an odometry trajectory of the mobile robot device 10, and even though the kidnapping 1510 occurs, it can be seen that the result value is derived to match the trajectory 1520 of the graph slam. .
  • FIG. 16 is a flowchart illustrating a control method of the mobile robot apparatus 10 according to an exemplary embodiment.
  • the mobile robot apparatus 10 may acquire a plurality of image data through the image sensor 110 and acquire sensing data through the plurality of geomagnetic sensors 120 (S1610).
  • the mobile robot apparatus 10 may extract a feature point from a plurality of image data, obtain a key node, and obtain a node sequence based on the sensing data (S1620).
  • the mobile robot apparatus 10 may generate a graph structure indicating the position information of the mobile robot apparatus 10 using the obtained key node and node sequence (S1630).
  • the mobile robot device 10 When the mobile robot device 10 fails to recognize the location (for example, in a situation such as kidnapping) (S1640), the mobile robot device 10 acquires a new node and node sequence again to obtain the location information of the mobile robot device 10. The graph structure shown can be corrected. (S1650)
  • the term “part” or “module” as used in the present disclosure includes a unit composed of hardware, software, or firmware, and for example, may be used interchangeably with terms such as logic, logic block, component, or circuit. Can be.
  • the "unit” or “module” may be an integrally formed part or a minimum unit or part of performing one or more functions.
  • the module may be configured as an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • the device may be a device capable of calling a stored command from a storage medium and operating according to the called command, and may include an electronic device according to the disclosed embodiments.
  • the processor may perform a function corresponding to the instruction directly or by using other components under the control of the processor.
  • the instructions can include code generated or executed by a compiler or interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary' means that the storage medium does not include a signal and is tangible, but does not distinguish that the data is stored semi-permanently or temporarily on the storage medium.
  • a method may be provided included in a computer program product.
  • the computer program product may be traded between the seller and the buyer as a product.
  • the computer program product may be distributed online in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or through an application store (eg Play StoreTM).
  • a device-readable storage medium eg compact disc read only memory (CD-ROM)
  • an application store eg Play StoreTM
  • at least a portion of the computer program product may be stored at least temporarily on a storage medium such as a server of a manufacturer, a server of an application store, or a relay server, or may be temporarily created.
  • Each component eg, a module or a program
  • some components eg, modules or programs
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or at least some of the operations may be executed in a different order, omitted, or another operation may be added. Can be.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Robotics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Provided are a mobile robot device and a control method thereof. The mobile robot device comprises: a driving unit; an image sensor; a plurality of geomagnetic sensors; a memory for storing at least one instruction; and a processor for executing at least one instruction, wherein the processor may acquire a plurality of image data through the image sensor while the mobile robot device moves by means of the driving unit, acquire sensing data through the plurality of geomagnetic sensors, extract a feature point from the plurality of image data and obtain key nodes on the basis of the feature point, obtain a node sequence on the basis of the sensing data, generate a graph structure that estimates a position of the mobile robot device on the basis of the key nodes and the node sequence, and correct the graph structure when position recognition of the mobile robot device fails.

Description

이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법Mobile robot device and control method by fusing an image sensor and a plurality of geomagnetic sensors
본 개시는 이미지 센서와 복수의 지자기 센서를 융합하여 위치를 보정하고 지도를 제작하는 이동 로봇 장치 및 제어방법에 관한 것으로, 더욱 상세하게는 각 센서를 통해 획득한 데이터를 분석하고 동시에 매칭하여 이동 로봇의 현재 위치를 추정하고 보정하는 장치 및 제어 방법에 관한 것이다.The present disclosure relates to a mobile robot device and a control method of fusion of an image sensor and a plurality of geomagnetic sensors to correct a position and to produce a map. More particularly, the present invention analyzes and simultaneously matches data acquired through each sensor and moves a mobile robot. An apparatus and a control method for estimating and correcting a current position of a.
로봇(Robot)은 각종 산업 분야에서 사람이 접근하기 어려운 일을 수행함으로써 업무의 효율성을 제고해왔다. 제조업과 관련된 산업분야에서는 특정 위치에 고정되어 반복적인 일을 수행하는 로봇 팔(Robot arm) 형태가 활용되어 왔으나, 비교적 이동이 자유롭고 다양한 일을 수행할 수 있는 이동 로봇 장치에 대한 연구 및 수요가 점차 증가하고 있다.Robots have improved work efficiency by performing tasks that are difficult to reach in various industries. In the industry related to the manufacturing industry, a robot arm type that has been fixed at a specific position and performing repetitive tasks has been used, but research and demand for a mobile robot device that is relatively free to move and can perform various tasks is gradually increasing. It is increasing.
다만, 이러한 이동 로봇 장치는 이동하기 위해서 자신이 현재 위치하고 있는 장소가 어디인지를 판단하여야 하고 동시에 주변의 환경을 인식하여 이동할 경로 즉 지도를 작성하여야 한다. 이 두 과정을 동시에 이루는 기술을 SLAM(Simultaneous Localization And Mapping)기술이라고 한다.However, in order to move, such a mobile robot device must determine where it is currently located, and at the same time, recognize a surrounding environment and create a path, that is, a map. The technology that accomplishes both processes is called SLAM (Simultaneous Localization And Mapping) technology.
이러한 슬램(SLAM) 기술은 최근 다방면으로 발전해왔으며, 청소 로봇 또는 자율 주행 자동차 등을 효율적으로 구동하기 위해서 필수적인 기술로 각광받고 있다. 그리고, 위 슬램(SLAM)의 한 종류로 로봇의 위치와 오도메트리(Odometry)를 노드와 엣지(Edge, 다른 표현으로는 Constraint)로 표현하는 그래프 기반 SLAM이 많이 사용되고 있다.The SLAM technology has recently been developed in various fields, and has been spotlighted as an essential technology for efficiently driving a cleaning robot or an autonomous vehicle. In addition, a graph-based SLAM that expresses the position and odometry of the robot as nodes and edges (constraint in other expressions) is widely used as one of the above SLAMs.
기존에 그래프 SLAM을 구현하기 위해서는 보편적으로 2D 혹은 3D LiDAR을 사용하였으나 현재까지 가격적인 측면에서 경쟁력이 떨어져 일반 로봇에 사용하기에 비효율적이었다.Conventionally, 2D or 3D LiDAR was commonly used to implement graph SLAM, but until now, it is inefficient to use for general robot due to its low price competitiveness.
또한, 기존에 카메라를 활용한 그래프 슬램(SLAM)의 경우, 특징점이 많지 않은 텅빈 복도와 같은 환경의 경우 효율적인 위치 인식이 어렵다는 단점과 광량의 영향을 받아 로버스트(Robust)하지 않다는 단점이 존재하였다. In addition, in the case of the SLAM using a camera, there are disadvantages in that it is difficult to efficiently recognize a location in an environment such as an empty corridor having few features and is not robust due to the amount of light. .
또한, 기존에 실내에서 Beacon이나 Wi-Fi 등을 활용하는 방식은 별도의 Beacon을 설치하거나 실내 공간에 모두 통신이 원활하게 되어야 한다는 제한이 있었다.In addition, the existing method of utilizing Beacon or Wi-Fi indoors had a limitation that a separate Beacon should be installed or communication should be smoothly performed in all indoor spaces.
그리고, 기존 지자기 센서를 통해 위치를 인식하는 기술은 자기장 왜곡이 충분히 크지 않은 환경에서는 매칭이 정확하지 않다는 단점이 있었으며, 활용하더라도 위치 간의 유사성만 알 수 있어 다른 보조적인 수단이 필요하였다.In addition, the technology of recognizing the position through the existing geomagnetic sensor has a disadvantage in that the matching is not accurate in an environment in which the magnetic field distortion is not large enough, and even if it is used, only the similarity between the positions is required, and thus, another auxiliary means is required.
따라서, 이동 로봇 장치에 그래프 슬램(SLAM) 기술을 적용하기 위해서 효율적으로 센서를 구성하고 데이터를 처리하는 기술이 필요하고, 각 센서들이 가진 특징을 이용하여 서로의 기능을 보완하는 방안의 모색이 요청된다.Therefore, in order to apply the SLAM technology to a mobile robot device, a technology for efficiently configuring sensors and processing data is required, and a search for a method of complementing each other's functions using the characteristics of each sensor is required. do.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로, 본 개시의 목적은 서로 다른 특성을 가지는 이미지 센서와 복수의 지자기 센서를 융합하여 이동 로봇 장치가 그래프 슬램(SLAM) 기술을 더욱 효율적으로 사용할 수 있는 이동 로봇 장치 및 그의 제어방법을 제공함에 있다.SUMMARY The present disclosure has been made to solve the above-described problems, and an object of the present disclosure is to fuse a plurality of geomagnetic sensors with an image sensor having different characteristics, thereby enabling a mobile robot device to more efficiently use graph slam (SLAM) technology. The present invention provides a mobile robot device and a control method thereof.
상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른 이동 로봇 장치는 주행부; 이미지 센서; 복수의 지자기 센서; 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및 상기 적어도 하나의 인스트럭션을 실행하는 프로세서;를 포함하고, 상기 프로세서는 상기 이동 로봇 장치가 상기 주행부를 통해 이동하는 동안 상기 이미지 센서를 통해 복수의 이미지 데이터를 획득하고, 상기 복수의 지자기 센서를 통해 센싱 데이터를 획득하며, 상기 복수의 이미지 데이터로부터 특징점을 추출하고 상기 특징점을 바탕으로 키 노드들을 획득하고, 상기 센싱 데이터를 바탕으로 노드 시퀀스를 획득하고, 상기 키 노드들과 상기 노드 시퀀스를 바탕으로 상기 이동 로봇 장치의 위치를 추정하는 그래프 구조를 생성하고, 상기 이동 로봇 장치의 위치 인식을 실패할 경우 상기 그래프 구조를 보정할 수 있다.Mobile robot device according to an embodiment of the present disclosure for achieving the above object is a traveling unit; An image sensor; A plurality of geomagnetic sensors; A memory for storing at least one instruction; And a processor configured to execute the at least one instruction, wherein the processor acquires a plurality of image data through the image sensor while the mobile robot apparatus moves through the driving unit, and through the plurality of geomagnetic sensors. Obtain sensing data, extract feature points from the plurality of image data, obtain key nodes based on the feature points, obtain a node sequence based on the sensing data, and based on the key nodes and the node sequence A graph structure for estimating the position of the mobile robot device may be generated, and if the position recognition of the mobile robot device fails, the graph structure may be corrected.
그리고, 상기 프로세서는 상기 복수의 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 상기 특징점들을 추출하도록 제어할 수 있다.In addition, the processor may control to extract the feature points from the plurality of image data using an ORF (Oriented FAST and Rotated BRIEF) algorithm.
또한, 상기 프로세서는 상기 특징점들을 누적하여 서브맵을 구성하고, 상기 서브맵을 RANSAC(Random sample consensus) 알고리즘을 수행하여고 가장 근접한 노드와 매칭하여 상기 키 노드를 획득하도록 제어할 수 있다.The processor may be configured to accumulate the feature points to form a submap, perform a random sample consensus (RANSAC) algorithm, and match the submap to the nearest node to obtain the key node.
그리고, 상기 프로세서는 상기 획득한 센싱 데이터를 그룹핑하여 센싱 데이터 그룹을 획득하고, 상기 센싱 데이터 그룹의 자기장값과 기존에 저장한 센싱 데이터 그룹의 자기장값들을 비교하여 매칭하고, 상기 매칭된 센싱 데이터 그룹을 바탕으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 획득하도록 제어할 수 있다.The processor acquires a sensing data group by grouping the obtained sensing data, compares and matches a magnetic field value of the sensing data group with magnetic fields of a previously stored sensing data group, and matches the matched sensing data group. Based on this, it is possible to control to obtain a node bundle having a pair of graph structures.
또한, 상기 프로세서는 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 지 여부를 판단하고, 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 것으로 판단되면, 상기 기존의 획득한 노드 번들 사이에 존재하는 상기 새로 획득한 노드 번들만을 추출하고, 상기 추출한 새로 획득한 노드 번들만을 상기 노드 시퀀스로 선정하도록 제어할 수 있다.The processor may determine whether the newly obtained node bundle exists between the previously stored node bundles, and if it is determined that the newly obtained node bundle exists between the previously stored node bundles, Only the newly acquired node bundle existing between the existing acquired node bundles may be extracted, and only the extracted newly obtained node bundle may be selected as the node sequence.
그리고, 상기 프로세서는 상기 추출한 새로 획득한 노드 번들과 거리 차이가 더 작은 기존의 획득한 노드 번들을 갱신하고, 상기 추출한 새로 획득한 노드 번들과 상기 갱신된 기존의 획득한 노드 번들 중 거리 차이가 가장 작은 노드 번들을 탐색하고,상기 거리 차이가 가장 작은 노드 번들을 이용하여 상기 노드 시퀀스의 위치를 알아내도록 제어할 수 있다.The processor updates an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle, and the distance difference between the extracted newly acquired node bundle and the updated existing acquired node bundle is most significant. The small node bundle may be searched and controlled to find the position of the node sequence using the node bundle having the smallest distance difference.
또한, 상기 프로세서는 가우시안 프로세스(Gaussian process)를 이용하여 상기 거리 차이가 더 작은 기존의 획득한 노드 번들로 갱신하도록 제어하도록 제어할 수 있다.In addition, the processor may control to update to an existing obtained node bundle having a smaller distance difference using a Gaussian process.
그리고, 상기 프로세서는 상기 이동 로봇 장치가 이동하는 동안, 휠 센서를 통해 상기 이동 로봇 장치가 생성한 상기 그래프 구조에서 나타내는 위치 정보와는 다른 위치 정보를 감지하여 위치 인식에 실패할 경우, 상기 이동 로봇 장치가 회전을 하며 상기 이미지 센서와 상기 복수의 자지기 센서를 통해 새로운 이미지 데이터와 센싱 데이터를 획득하도록 제어할 수 있다.The processor detects location information different from the location information represented by the graph structure generated by the mobile robot device through a wheel sensor while the mobile robot device moves, and fails to recognize the location. The device may be rotated and controlled to acquire new image data and sensing data through the image sensor and the plurality of magnetic sensor.
또한, 상기 이동 로봇 장치가 새로 획득한 상기 이미지 데이터와 상기 센싱 데이터를 바탕으로 새로운 키노드와 노드 시퀀스를 획득하고 획득한 상기 새로운 키노드와 노드 시퀀스를 바탕으로 기존에 생성한 상기 그래프 구조와 비교하여 매칭되는지 여부를 판단하도록 제어할 수 있다.In addition, the mobile robot device obtains a new keynode and node sequence based on the newly acquired image data and the sensing data and compares it with the graph structure previously generated based on the obtained new keynode and node sequence. Control to determine whether or not a match.
그리고, 상기 프로세서는 상기 기존에 생성한 그래프 구조와 매칭되는 상기 새로운 키노드와 노드 시퀀스를 바탕으로 상기 그래프 구조를 보정하도록 제어할 수 있다.The processor may control to correct the graph structure based on the new keynode and node sequences matching the previously generated graph structure.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시예에 따른 이동 로봇 장치의 제어 방법은 상기 이동 로봇 장치가 이동하는 동안 이미지 센서를 통해 복수의 이미지 데이터를 획득하고, 복수의 지자기 센서를 통해 센싱 데이터를 획득하는 단계;상기 복수의 이미지 데이터로부터 특징점을 추출하고 상기 특징점을 바탕으로 키 노드들을 획득하는 단계;상기 센싱 데이터를 바탕으로 노드 시퀀스를 획득하는 단계;상기 키 노드들과 상기 노드 시퀀스를 바탕으로 상기 이동 로봇 장치의 위치를 추정하는 그래프 구조를 생성하는 단계; 및 상기 이동 로봇 장치가 위치 인식을 실패할 경우 상기 그래프 구조를 보정하는 단계;를 포함할 수 있다.On the other hand, the control method of the mobile robot device according to an embodiment of the present disclosure for achieving the above object obtains a plurality of image data through the image sensor while the mobile robot device is moving, sensing through a plurality of geomagnetic sensors Obtaining data; extracting feature points from the plurality of image data and acquiring key nodes based on the feature points; acquiring a node sequence based on the sensing data; obtaining the key nodes and the node sequence Generating a graph structure estimating a position of the mobile robot device based on the result; And correcting the graph structure when the mobile robot device fails to recognize the position.
그리고, 상기 키 노드들을 획득하는 단계는 상기 복수의 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 상기 특징점들을 추출할 수 있다.In the obtaining of the key nodes, the feature points may be extracted from the plurality of image data by using an ORF (Oriented FAST and Rotated BRIEF) algorithm.
또한, 상기 키 노드들을 획득하는 단계는, 상기 특징점들을 누적하여 서브맵(Submap)을 구성하는 단계; 및 상기 서브맵 RANSAC(Random sample consensus) 알고리즘을 수행하고 가장 근접한 노드와 매칭하여 상기 키 노드를 획득하는 단계;를 포함할 수 있다.The acquiring of the key nodes may include accumulating the feature points to construct a submap; And performing the submap random sample consensus (RANSAC) algorithm and matching the nearest node to obtain the key node.
그리고, 상기 노드 시퀀스를 획득하는 단계는 상기 획득한 센싱 데이터를 그룹핑하여 센싱 데이터 그룹을 획득하는 단계; 상기 센싱 데이터 그룹의 자기장값과 기존에 저장한 센싱 데이터 그룹의 자기장값들을 비교하여 매칭하는 단계; 및 상기 매칭된 센싱 데이터 그룹을 바탕으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 획득하는 단계;를 포함할 수 있다.The acquiring of the node sequence may include acquiring a sensing data group by grouping the acquired sensing data; Comparing and matching magnetic field values of the sensing data group with magnetic field values of the previously stored sensing data group; And acquiring a node bundle having a pair of graph structures based on the matched sensing data group.
또한, 상기 노드 시퀀스를 획득하는 단계는, 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 지 여부를 판단하는 단계; 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 것으로 판단되면, 상기 기존의 획득한 노드 번들 사이에 존재하는 상기 새로 획득한 노드 번들만을 추출하는 단계; 및 상기 추출한 새로 획득한 노드 번들만을 상기 노드 시퀀스로 선정하는 단계;를 포함할 수 있다.The acquiring of the node sequence may include determining whether the newly obtained node bundle exists between the previously stored node bundles; If it is determined that the newly acquired node bundle exists between the previously stored node bundles, extracting only the newly acquired node bundle existing between the existing acquired node bundles; And selecting only the extracted newly obtained node bundle as the node sequence.
그리고, 상기 노드 시퀀스의 위치를 알아내는 단계는, 상기 추출한 새로 획득한 노드 번들과 거리 차이가 더 작은 기존의 획득한 노드 번들을 갱신하는 단계;상기 추출한 새로 획득한 노드 번들과 상기 갱신된 기존의 획득한 노드 번들 중 거리 차이가 가장 작은 노드 번들을 탐색하는 단계; 및 상기 거리 차이가 가장 작은 노드 번들을 이용하여 상기 노드 시퀀스의 위치를 알아내는 단계;를 포함할 수 있다.The locating of the node sequence may include updating an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle; the newly acquired node bundle and the updated existing node bundle; Searching for a node bundle having a smallest distance difference among the obtained node bundles; And locating the node sequence using the node bundle having the smallest difference in distance.
또한, 상기 노드 시퀀스의 위치를 알아내는 단계는, 가우시안 프로세스(Gaussian process)를 이용하여 상기 거리 차이가 더 작은 기존의 획득한 노드 번들로 갱신할 수 있다.In addition, the step of locating the node sequence may be updated with an existing acquired node bundle having a smaller distance difference using a Gaussian process.
그리고, 상기 그래프 구조를 보정하는 단계는, 상기 이동 로봇 장치가 이동하는 동안, 휠 센서를 통해 상기 이동 로봇 장치가 생성한 상기 그래프 구조에서 나타내는 위치 정보와는 다른 위치 정보를 감지하여 위치 인식에 실패할 경우, 상기 이동 로봇 장치가 회전을 하며 상기 이미지 센서와 상기 복수의 자지기 센서를 통해 새로운 이미지 데이터와 센싱 데이터를 획득하는 단계;를 포함할 수 있다.In the correcting of the graph structure, while the mobile robot apparatus moves, the position sensor fails to detect position information different from the position information represented by the graph structure generated by the mobile robot apparatus through a wheel sensor. In this case, the mobile robot device rotates and acquires new image data and sensing data through the image sensor and the plurality of magnetic sensor.
또한, 상기 그래프 구조를 보정하는 단계는, 상기 이동 로봇 장치가 새로 획득한 상기 이미지 데이터와 상기 센싱 데이터를 바탕으로 새로운 키노드와 노드 시퀀스를 획득하는 단계; 및 획득한 상기 새로운 키노드와 노드 시퀀스를 바탕으로 기존에 생성한 상기 그래프 구조와 비교하여 매칭되는지 여부를 판단하는 단계;를 포함할 수 있다.The correcting of the graph structure may include: acquiring a new key node and a node sequence based on the image data and the sensing data newly acquired by the mobile robot device; And comparing the new key node and the node sequence based on the acquired new key node and the node sequence to determine whether they match.
그리고, 상기 그래프 구조를 보정하는 단계는, 상기 기존에 생성한 그래프 구조와 매칭되는 상기 새로운 키노드와 노드 시퀀스를 바탕으로 상기 그래프 구조를 보정하는 단계;를 포함할 수 있다.The correcting of the graph structure may include correcting the graph structure based on the new keynode and node sequences matching the previously generated graph structure.
상술한 바와 같은 본 개시의 다양한 실시예에 의해, 이동 로봇 장치는 이미지 센서와 복수의 지자기 센서로부터 얻은 데이터를 각각 매칭하고 융합하여 위치 정보를 바탕으로 한 그래프 구조를 생성할 수 있게 되며, 이동 로봇 장치가 위치 인식을 실패하는 경우에는 그래프를 보정할 수 있게 된다.According to various embodiments of the present disclosure as described above, the mobile robot device can generate a graph structure based on the location information by matching and fusing data obtained from the image sensor and the plurality of geomagnetic sensors, respectively, and the mobile robot. If the device fails to recognize the position, the graph can be corrected.
도 1은 본 개시의 일 실시예에 따른, 이동 로봇 장치의 구성을 간략히 도시한 블록도,1 is a block diagram briefly illustrating a configuration of a mobile robot apparatus according to an embodiment of the present disclosure;
도 2는 본 개시의 일 실시예에 따른, 이동 로봇 장치의 구성을 상세히 도시한 블록도,2 is a block diagram illustrating in detail the configuration of a mobile robot apparatus according to an embodiment of the present disclosure;
도 3은 본 개시의 일 실시예에 따른, 키노드와 노드 시퀀스 획득하여 그래프를 생성하는 구성을 도시한 블록도,3 is a block diagram illustrating a configuration of generating a graph by acquiring a sequence of key nodes and nodes according to an embodiment of the present disclosure;
도 4는 본 개시의 일 실시예에 따른, 이미지 센서를 이용한 그래프 슬램(SLAM) 알고리즘을 도시한 블록도,4 is a block diagram illustrating a graph slam (SLAM) algorithm using an image sensor, according to an embodiment of the present disclosure;
도 5은 본 개시의 일 실시예에 따른, 이미지 센서로부터 키 노드를 획득하는 방법을 설명하기 위한 흐름도,5 is a flowchart illustrating a method of obtaining a key node from an image sensor according to an embodiment of the present disclosure;
도 6a는 본 개시의 일 실시예에 따른, 이미지 데이터에서 특징점을 추출하는 방법을 설명하기 위한 도면,6A is a diagram for describing a method of extracting feature points from image data, according to an exemplary embodiment.
도 6b는 본 개시의 일 실시예에 따른, 이미지 데이터에서 추출한 특징점을 누적한 서브맵을 설명하기 위한 도면,6B is a diagram for describing a submap in which feature points extracted from image data are accumulated, according to an embodiment of the present disclosure;
도 7은 본 개시의 일 실시예에 따른, 센싱 데이터로부터 노드 번들을 획득하는 방법을 설명하기 위한 흐름도,7 is a flowchart illustrating a method of obtaining a node bundle from sensing data according to an embodiment of the present disclosure;
도 8은 본 개시의 일 실시예에 따른, 노드 번들을 매칭하여 노드 시퀀스를 획득하는 방법을 설명하기 위한 도면,8 is a diagram for describing a method of obtaining a node sequence by matching a node bundle according to an embodiment of the present disclosure;
도 9a는 본 개시의 일 실시예에 따른, 기존에 획득한 노드 번들과 새로 획득한 노드 번들의 거리 값을 설명하기 위한 도면,FIG. 9A is a diagram for describing a distance value between an existing node bundle and a newly obtained node bundle, according to an embodiment of the present disclosure; FIG.
도 9b는 본 개시의 일 실시예에 따른, 기존에 획득한 노드 번들과 새로 획득한 노드 번들의 거리 값을 측정할 수 있는 지 여부를 판단하는 표를 설명하기 위한 도면,FIG. 9B is a view for explaining a table for determining whether a distance value between a previously acquired node bundle and a newly acquired node bundle can be measured according to an embodiment of the present disclosure; FIG.
도 10은 본 개시의 일 실시예에 따른, 기존에 획득한 노드 번들을 이용하여 새로 획득한 노드 번들의 위치를 알아내는 방법을 설명하기 위한 도면,FIG. 10 is a diagram for describing a method of determining a location of a newly obtained node bundle using an existing node bundle, according to an embodiment of the present disclosure; FIG.
도 11은 본 개시의 일 실시예에 따른, 키노드와 노드 시퀀스를 이용하여 그래프 구조를 생성하는 방법을 설명하기 위한 도면,FIG. 11 is a diagram for describing a method of generating a graph structure using a key node and a node sequence, according to an embodiment of the present disclosure; FIG.
도 12a는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패한 경우 서브맵과 목표 노드와 매칭하는 방법을 설명하기 위한 도면,12A is a diagram for describing a method of matching a submap and a target node when the mobile robot apparatus fails to recognize a location according to an embodiment of the present disclosure;
도 12b는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패한 경우 서브맵의 특징점과 목표 노드와 매칭하는 방법을 설명하기 위한 도면,12B is a diagram for describing a method of matching a feature point and a target node of a submap when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure;
도 13a는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패한 경우 목표 노드와 매칭하는 방법을 설명하기 위한 도면,FIG. 13A is a diagram for describing a method of matching a target node when a mobile robot apparatus fails to recognize a position, according to an exemplary embodiment.
도 13b는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패한 경우 목표 노드와 매칭하여 그래프를 보정하는 방법을 설명하기 위한 도면,FIG. 13B is a diagram for describing a method of correcting a graph by matching a target node when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure; FIG.
도 14는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패한 경우 목표 노드와 매칭하는 방법을 설명하기 위한 흐름도,14 is a flowchart illustrating a method of matching with a target node when the mobile robot apparatus fails to recognize a position according to an embodiment of the present disclosure;
도 15a는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패했을 때를 가정하여 실험하는 방법을 설명하기 위한 도면,FIG. 15A is a diagram for describing a method of performing an experiment when a mobile robot apparatus fails to recognize a position, according to an exemplary embodiment.
도 15b는 본 개시의 일 실시예에 따른, 이동 로봇 장치가 위치 인식을 실패했을 때를 가정하여 실험한 결과를 설명하기 위한 도면,FIG. 15B is a view for explaining a result of an experiment when a mobile robot apparatus fails to recognize a position according to one embodiment of the present disclosure; FIG.
도 16는 본 개시의 일 실시예에 따른, 이동 로봇 장치를 제어하는 방법을 설명하기 위한 흐름도이다.16 is a flowchart illustrating a method of controlling a mobile robot device according to an embodiment of the present disclosure.
이하에서 설명되는 실시 예는 본 개시의 이해를 돕기 위하여 예시적으로 나타낸 것이며, 본 개시는 여기서 설명되는 실시 예들과 다르게 다양하게 변형되어 실시될 수 있음이 이해되어야 할 것이다. 다만, 이하에서 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성요소에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명 및 구체적인 도시를 생략한다. 또한, 첨부된 도면은 개시의 이해를 돕기 위하여 실제 축척대로 도시된 것이 아니라 일부 구성요소의 치수가 과장되게 도시될 수 있다.Embodiments described below are shown by way of example in order to help understanding of the present disclosure, it should be understood that the present disclosure may be implemented in various modifications different from the embodiments described herein. However, in the following description of the present disclosure, when it is determined that a detailed description of a related known function or component may unnecessarily obscure the subject matter of the present disclosure, the detailed description and specific illustration thereof will be omitted. In addition, the accompanying drawings may be exaggerated in dimensions of some of the components, rather than drawn to scale to facilitate understanding of the disclosure.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. In the description of the present disclosure, the order of each step should be understood to be non-limiting unless the preceding step is to be performed logically and temporally prior to the later step. That is, except for the exceptional cases described above, even if the process described as the following step is performed before the process described as the preceding step, the nature of the disclosure is not affected and the scope of rights should be defined regardless of the order of the steps.
그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.And as used herein, "A or B" is defined to mean not only selectively indicating any one of A and B, but also including both A and B. In addition, the term "comprising" in this specification has the meaning encompassing further including other components in addition to the listed elements.
본 명세서에서는 본 개시의 각 실시 예의 설명에 필요한 구성요소를 설명한 것이므로, 반드시 이에 한정되는 것은 아니다. 따라서, 일부 구성요소는 변경 또는 생략될 수도 있으며, 다른 구성요소가 추가될 수도 있다. 또한, 서로 다른 독립적인 장치에 분산되어 배치될 수도 있다. In this specification, since the components required for the description of each embodiment of the present disclosure have been described, the present disclosure is not necessarily limited thereto. Thus, some components may be changed or omitted, and other components may be added. It may also be arranged distributed in different independent devices.
이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하도록 한다. 도 1은 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)의 구성을 간략하게 도시한 블록도이다. Hereinafter, with reference to the drawings will be described in more detail with respect to the present disclosure. 1 is a block diagram schematically illustrating a configuration of a mobile robot apparatus 10 according to an embodiment of the present disclosure.
도 1에 도시된 바와 같이, 이동 로봇 장치(10)는 프로세서(150), 이미지 센서(110), 복수의 지자기 센서(120), 메모리(130), 및 주행부(140)를 포함한다. As shown in FIG. 1, the mobile robot device 10 includes a processor 150, an image sensor 110, a plurality of geomagnetic sensors 120, a memory 130, and a driving unit 140.
이미지 센서(110)를 이용하여 컬러 이미지와 뎁스(Depth)이미지를 포함한 3차원 이미지 데이터를 획득할 수 있으며, 획득한 3차원 이미지 데이터의 픽셀(Pixel)에 대응되는 거리 값을 측정할 수 있다. 그리고, 이미지 센서(110)는 스테레오 카메라(Stereo camera), ToF 카메라(Time of Flight camera) 및 적외선 카메라 등을 포함할 수 있으며 각 픽셀(Pixel)의 뎁스(Depth) 데이터 값을 얻을 수 있다. 그리고, 이동 로봇 장치(10)가 움직이거나 회전 및 정지하는 등 다양한 상황에서도 이미지 센서(110)는 작동할 수 있다.The 3D image data including the color image and the depth image may be obtained using the image sensor 110, and a distance value corresponding to the pixel of the obtained 3D image data may be measured. The image sensor 110 may include a stereo camera, a time of flight camera, an infrared camera, and the like, and may obtain depth data values of each pixel. In addition, the image sensor 110 may operate in various situations such as the moving robot apparatus 10 moves, rotates, and stops.
복수의 지자기 센서(120)는 3축 지자기 센서를 내장한 IMU(Inertial Measurement Unit)센서 일 수 있다. 복수의 지자기 센서(120)를 통해 자기장 센싱 데이터를 획득할 수 있다. 복수의 지자기 센서(120)를 통해 획득한 센싱 데이터는 메모리(130)에 저장될 수 있다.The plurality of geomagnetic sensors 120 may be an IMU (Inertial Measurement Unit) sensor incorporating a three-axis geomagnetic sensor. Magnetic field sensing data may be obtained through the plurality of geomagnetic sensors 120. Sensing data obtained through the plurality of geomagnetic sensors 120 may be stored in the memory 130.
메모리(130)는 이동 로봇 장치(10)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 특히, 메모리(130)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(130)는 프로세서(150)에 의해 액세스되며, 프로세서(150)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(130), 프로세서(150) 내 롬(미도시), 램(미도시) 또는 이동 로봇 장치(10)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(130)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.The memory 130 may store instructions or data related to at least one other component of the mobile robot device 10. In particular, the memory 130 may be implemented as a nonvolatile memory, a volatile memory, a flash-memory, a hard disk drive (HDD), or a solid state drive (SSD). The memory 130 may be accessed by the processor 150 and read / write / modify / delete / update of data by the processor 150 may be performed. In the present disclosure, the term memory refers to a memory card (not shown) mounted on the memory 130, a ROM (not shown), a RAM (not shown), or the mobile robot device 10 (eg, micro). SD card, memory stick). In addition, the memory 130 may store programs and data for configuring various screens to be displayed in the display area of the display.
특히, 메모리(130)는 획득한 3차원 이미지 데이터나 센싱 데이터가 저장될 수 있으며, 적어도 하나의 인스트럭션을 저장할 수 있다. 다양한 프로그램 인스트럭션들이 포함 될 수 있으나 각종 프로그램 인스트럭션들은 이동 로봇 장치(10)의 종류 및 특성에 따라 일부 생략되거나 변형 또는 추가 될 수 있음은 물론이다.In particular, the memory 130 may store the acquired 3D image data or the sensing data, and may store at least one instruction. Various program instructions may be included, but various program instructions may be partially omitted, modified, or added depending on the type and characteristics of the mobile robot apparatus 10.
주행부(140)는 이동 로봇 장치(10)가 이동 할 수 있도록 도와주는 장치이며, 바퀴로 구성될 수도 있고, N족 보행 등 비 표준 이동 형태로 이동 할 수 있는 장치로 구성 될 수도 있다. 그리고, 주행부(140)는 전후진 뿐 만 아니라 좌, 우회전을 할 수 있으며 회전 역시 할 수 있도록 구성될 수 있다. 따라서, 주행부(140)는 이동 로봇 장치(10)의 종류 및 특성에 따라 다양하게 구성될 수 있다.The driving unit 140 is a device that helps the mobile robot device 10 to move, and may be configured as a wheel, or may be configured as a device that can move in a non-standard moving form such as N-group walking. In addition, the driving unit 140 may rotate left and right as well as forward and backward and may also be configured to rotate. Therefore, the driving unit 140 may be configured in various ways according to the type and characteristics of the mobile robot device 10.
프로세서(150)는 메모리(130)에 저장된 각종 인스트럭션 및 모듈 등을 이용하여 이동 로봇 장치(10)의 전반적인 동작을 제어할 수 있다.The processor 150 may control the overall operation of the mobile robot apparatus 10 using various instructions and modules stored in the memory 130.
구체적으로, 이동 로봇 장치(10)가 주행부(140)를 통해 이동하는 동안 프로세서(150)는 이미지 센서(110)를 통해 복수의 이미지 데이터를 획득하고, 복수의 지자기 센서(120)를 통해 센싱 데이터를 획득할 수 있다.In detail, while the mobile robot apparatus 10 moves through the driving unit 140, the processor 150 acquires a plurality of image data through the image sensor 110 and senses through the plurality of geomagnetic sensors 120. Data can be obtained.
그리고, 프로세서(150)는 복수의 이미지 데이터로부터 특징점을 추출하고 상기 특징점을 바탕으로 키 노드들을 획득할 수 있다. 구체적으로, 프로세서(150)는 복수의 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 특징점들을 추출할 수 있다. 그리고, 프로세서(150)는 추출된 특징점들을 누적하여 서브맵을 구성하고, 서브맵에 RANSAC(Random sample consensus) 알고리즘을 수행하고 가장 근접한 노드와 매칭하여 키 노드를 획득할 수 있다.The processor 150 may extract feature points from the plurality of image data and obtain key nodes based on the feature points. In detail, the processor 150 may extract the feature points from the plurality of image data using an ORF (Oriented FAST and Rotated BRIEF) algorithm. The processor 150 may accumulate the extracted feature points to form a submap, perform a random sample consensus (RANSAC) algorithm on the submap, and match the nearest node to obtain a key node.
또한, 프로세서(150)는 센싱 데이터를 바탕으로 노드 시퀀스를 획득할 수 있다. 구체적으로, 상기 키 노드들과 상기 노드 시퀀스를 바탕으로 상기 이동 로봇 장치(10)의 위치를 추정하는 그래프 구조를 생성하고, 상기 이동 로봇 장치(10)의 위치 인식을 실패할 경우 상기 그래프 구조를 보정할 수 있다.In addition, the processor 150 may obtain a node sequence based on the sensing data. Specifically, a graph structure for estimating the position of the mobile robot apparatus 10 based on the key nodes and the node sequence is generated, and when the position recognition of the mobile robot apparatus 10 fails, the graph structure is generated. You can correct it.
그리고, 프로세서(150)는 상기 획득한 센싱 데이터를 그룹핑하여 센싱 데이터 그룹을 획득하고, 획득한 센싱 데이터 그룹의 자기장값과 기존에 저장한 센싱 데이터 그룹의 자기장값들을 비교하여 매칭하고,상기 매칭된 센싱 데이터 그룹을 바탕으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 획득할 수 있다.The processor 150 acquires a sensing data group by grouping the obtained sensing data, compares and matches the magnetic field values of the obtained sensing data group with the magnetic field values of a previously stored sensing data group, and matches Based on the sensing data group, a node bundle having a pair of graph structures may be obtained.
또한, 프로세서(150)는 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 지 여부를 판단하고, 상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 것으로 판단되면, 상기 기존의 획득한 노드 번들 사이에 존재하는 상기 새로 획득한 노드 번들만을 추출하고 상기 추출한 새로 획득한 노드 번들만을 상기 노드 시퀀스로 선정할 수 있다.In addition, the processor 150 determines whether the newly obtained node bundle exists between the previously stored node bundles, and if it is determined that the newly obtained node bundle exists between the previously stored node bundles. Only the newly acquired node bundle existing between the existing obtained node bundles may be extracted, and only the newly acquired node bundle may be selected as the node sequence.
그리고, 프로세서(150)는 추출한 새로 획득한 노드 번들과 거리 차이가 더 작은 기존의 획득한 노드 번들을 갱신하고, 상기 추출한 새로 획득한 노드 번들과 상기 갱신된 기존의 획득한 노드 번들 중 거리 차이가 가장 작은 노드 번들을 탐색하고, 상기 거리 차이가 가장 작은 노드 번들을 이용하여 상기 노드 시퀀스의 위치를 알아낼 수 있다.The processor 150 updates an existing acquired node bundle having a smaller distance difference from the newly acquired node bundle and extracts a distance difference between the newly acquired node bundle and the updated existing node bundle. The smallest node bundle may be searched and the node sequence having the smallest distance difference may be used to locate the node sequence.
또한, 프로세서(150)는 가우시안 프로세스(Gaussian process)를 이용하여 상기 거리 차이가 더 작은 기존의 획득한 노드 번들로 갱신할 수 있다.In addition, the processor 150 may update a previously obtained node bundle having a smaller distance difference using a Gaussian process.
그리고, 프로세서(150)는 상기 이동 로봇 장치(10)가 이동하는 동안, 휠 센서(160)를 통해 상기 이동 로봇 장치(10)가 생성한 상기 그래프 구조에서 나타내는 위치 정보와는 다른 위치 정보를 감지하여 위치 인식에 실패할 경우, 상기 이동 로봇 장치(10)가 회전을 하며 상기 이미지 센서(110)와 상기 복수의 자지기 센서를 통해 새로운 이미지 데이터와 센싱 데이터를 획득할 수 있다.In addition, the processor 150 senses location information different from the location information represented by the graph structure generated by the mobile robot device 10 through the wheel sensor 160 while the mobile robot device 10 moves. If the position recognition fails, the mobile robot apparatus 10 may rotate and acquire new image data and sensing data through the image sensor 110 and the plurality of magnetic sensors.
또한, 프로세서(150)는 상기 이동 로봇 장치(10)가 새로 획득한 상기 이미지 데이터와 상기 센싱 데이터를 바탕으로 새로운 키노드와 노드 시퀀스를 획득하고, 획득한 상기 새로운 키노드와 노드 시퀀스를 바탕으로 기존에 생성한 상기 그래프 구조와 비교하여 매칭되는지 여부를 판단할 수 있다.In addition, the processor 150 acquires a new key node and node sequence based on the image data and the sensing data newly acquired by the mobile robot device 10, and based on the obtained new key node and node sequence. It may be determined whether or not a match is made by comparing the graph structure generated previously.
그리고, 프로세서(150)는 상기 기존에 생성한 그래프 구조와 매칭되는 상기 새로운 키노드와 노드 시퀀스를 바탕으로 상기 그래프 구조를 보정할 수 있다.In addition, the processor 150 may correct the graph structure based on the new key node and node sequence matching the previously generated graph structure.
도 2는 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)의 구성을 상세히 도시한 블록도이다. 도 2에 도시된 바와 같이, 이동 로봇 장치(10)는 프로세서(150), 이미지 센서(110), 복수의 지자기 센서(120), 휠 센서(160), 입력부(170), 메모리(130), 주행부(140), 통신부(180), 디스플레이부(190) 및 기능부(195)를 포함할 수 있다.2 is a block diagram showing in detail the configuration of the mobile robot device 10 according to an embodiment of the present disclosure. As shown in FIG. 2, the mobile robot apparatus 10 includes a processor 150, an image sensor 110, a plurality of geomagnetic sensors 120, a wheel sensor 160, an input unit 170, a memory 130, The driving unit 140 may include a communication unit 180, a display unit 190, and a function unit 195.
한편, 도 2에 도시된 이미지 센서(110), 복수의 지자기 센서(120), 메모리(130), 주행부(140) 및 프로세서(150)는 도 1에서 설명하였으므로, 중복되는 설명은 생략하기로 한다.Meanwhile, since the image sensor 110, the plurality of geomagnetic sensors 120, the memory 130, the driving unit 140, and the processor 150 illustrated in FIG. 2 have been described with reference to FIG. 1, redundant descriptions thereof will be omitted. do.
한편, 도 2는 이동 로봇 장치(10)가 컨텐츠 공유 기능, 통신 기능, 디스플레이 기능 등 다양한 기능을 구비한 장치인 경우를 예로 들어, 각종 구성 요소들을 종합적으로 도시한 것이다. 따라서, 실시 예에 따라서는, 도 2에 도시된 구성 요소 중 일부는 생략 또는 변경될 수도 있고, 다른 구성 요소가 더 추가될 수도 있다.On the other hand, Figure 2 is a case where the mobile robot device 10 is a device having a variety of functions, such as content sharing function, communication function, display function, for example, shows a comprehensive view of the various components. Therefore, according to the exemplary embodiment, some of the components shown in FIG. 2 may be omitted or changed, and other components may be further added.
이미지 센서(110)의 개수는 복수일 수 있으며 이동 로봇 장치(10)의 중앙부 혹은 외곽부 등에 배치되어 주변 환경을 촬영할 수 있다. 그러나 이는 일 실시예에 불과할 뿐, 이동 로봇 장치(10)의 종류 및 특성에 따라 이미지 센서(110)의 개수가 추가되거나 변형 또는 위치가 변할 수 있음은 물론이다.The number of the image sensors 110 may be plural and may be disposed in the central portion or the outer portion of the mobile robot apparatus 10 to photograph the surrounding environment. However, this is only an embodiment, and the number of image sensors 110 may be added, modified, or changed depending on the type and characteristics of the mobile robot apparatus 10.
복수의 지자기 센서(120)는 실내 환경의 자기장 왜곡을 측정할 수 있으며, 시퀀스를 이용하여 자기장 특성 등을 추출할 수 있다. 복수의 지자기 센서(120) 역시 이동 로봇 장치(10)의 동작 상황과는 무관하게 작동 할 수 있다.The plurality of geomagnetic sensors 120 may measure magnetic field distortion of an indoor environment, and extract magnetic field characteristics and the like using a sequence. The plurality of geomagnetic sensors 120 may also operate regardless of the operating situation of the mobile robot device 10.
그리고, 복수의 지자기 센서(120)는 이동 로봇 장치(10)의 주행부(140)의 좌 우측으로 대칭되게 배치할 수 있으나, 이는 일 실시예일에 불과할 뿐, 다양한 위치에 배치될 수 있다. 이동 로봇 장치(10)의 종류 및 특성에 따라 복수의 지자기 센서(120)의 개수가 추가되거나 변형 또는 위치가 변할 수 있음은 물론이다.The plurality of geomagnetic sensors 120 may be symmetrically disposed to the left and right of the driving unit 140 of the mobile robot apparatus 10, but this is merely an example and may be disposed at various positions. According to the type and characteristics of the mobile robot device 10, the number of the plurality of geomagnetic sensors 120 may be added, modified or changed.
휠 센서(160)는 일 실시예로, 이동 로봇 장치(10)의 바퀴와 바닥이 접촉되지 않고 들려 있는 상황 즉, 키드내핑(Kidnapping)상황을 감지할 수 있다. 키드내핑 상황뿐 아니라 휠 센서(160)는 이동 로봇 장치(10)가 획득한 이동 로봇 장치(10)의 위치정보를 나타내는 그래프 구조와는 다른 위치 정보를 감지하는 위치 인식 실패 상황도 감지 할 수 있다. 휠 센서(160)는 바닥에 맞닿는 주행부(140)에 배치 될 수 있으나 이는 일 실시예에 불과하고 바닥에 맞닿는 어느 곳에도 배치 될 수 있다.In an embodiment, the wheel sensor 160 may detect a situation in which the wheel and the floor of the mobile robot apparatus 10 are lifted without contact, that is, a kidnapping situation. In addition to the kidnapping situation, the wheel sensor 160 may detect a location recognition failure situation that detects location information different from a graph structure indicating the location information of the mobile robot device 10 acquired by the mobile robot device 10. . The wheel sensor 160 may be disposed on the driving unit 140 abutting the floor, but this is only an example and may be disposed anywhere touching the floor.
입력부(170)는 이동 로봇 장치(10)의 전반적인 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 이때, 입력부(170)는 터치 스크린으로 구현될 수 있으나, 이는 일 실시예에 불과하고 이동 로봇 장치(10)의 종류 및 특성에 따라 다른 입력 장치(예를 들어, 마우스, 키보드, 마이크)로 구현될 수 있다.The input unit 170 may receive a user command for controlling the overall operation of the mobile robot device 10. In this case, the input unit 170 may be implemented as a touch screen. However, the input unit 170 may be implemented as another input device (for example, a mouse, a keyboard, or a microphone) according to the type and characteristics of the mobile robot apparatus 10. Can be.
주행부(140)는 이동 로봇 장치(10)가 전후진을 포함하여 회전 등 자유롭게 움직이도록 할 수 있다. 상술한 바와 같이 주행부(140)에 휠 센서(160)가 배치될 수 도 있다. 이동 로봇 장치(10) 종류 및 특성에 따라 주행부(140)가 4족 보행등 다양하게 변형이 될 수 있다.The driving unit 140 may allow the mobile robot apparatus 10 to freely move, including forward and backward rotation. As described above, the wheel sensor 160 may be disposed on the driving unit 140. According to the type and characteristics of the mobile robot device 10, the driving unit 140 may be variously modified, such as quadruped walking.
통신부(180)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있는 구성이다.The communication unit 180 is a component capable of communicating with various types of external devices according to various types of communication methods.
통신부(180)는 와이파이(Wi-Fi) 칩, 블루투스 칩, 무선 통신 칩 등과 같은 다양한 통신 칩을 포함할 수 있다. 이때, 와이파이 칩 및 블루투스 칩은 각각 Wi-Fi 방식 및 블루투스 방식으로 통신을 수행할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generatoin), 3GPP(3rd Generation Partnership Project), LTE(Long term Evolution)등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.The communication unit 180 may include various communication chips such as a Wi-Fi chip, a Bluetooth chip, a wireless communication chip, and the like. In this case, the Wi-Fi chip and the Bluetooth chip may communicate with each other by the Wi-Fi method and the Bluetooth method. The wireless communication chip refers to a chip that performs communication according to various communication standards such as IEEE, Zigbee, 3rd Generatoin (3G), 3rd Generation Partnership Project (3GPP), Long term Evolution (LTE), and the like.
디스플레이부(190)는 프로세서(150)의 제어에 의해 영상 데이터를 출력할 수 있다. 특히, 통신부(180)를 통해 수신되는 컨텐츠 등을 디스플레이 할 수도 있으며, 이동 로봇 장치(10)가 획득한 데이터를 바탕으로 그래프 구조를 생성하는 경우, 해당 그래프를 디스플레이 하여 이동 로봇 장치(10)의 이동 경로를 추정할 수 도 있다. 이는 한 실시예에 불과할 뿐 이동 로봇 장치(10)의 종류 및 특성에 맞게 각종 기능을 디스플레이 할 수 있다.The display 190 may output image data under the control of the processor 150. In particular, the content received through the communication unit 180 may be displayed, and when generating a graph structure based on the data acquired by the mobile robot device 10, the corresponding graph is displayed to display the mobile robot device 10. It is also possible to estimate the movement path. This is only an example and may display various functions according to the type and characteristics of the mobile robot apparatus 10.
기능부(195)는 이동 로봇 장치(10)의 종류 및 특성에 따라 각종 기능을 수행할 수 있다. 예를 들면, 이동 로봇 장치(10)가 로봇 청소기라면 이동하면서 기능부(195)를 통해 주변에 있는 먼지를 흡착할 수 있다. 그리고 이동 로봇 장치(10)가 각종 멀티미디어 컨텐츠를 플레이하며 이동하는 로봇이라면 기능부(195)는 멀티미디어 컨텐츠를 재생하는 하드웨어 일 수 있다.The function unit 195 may perform various functions according to the type and characteristics of the mobile robot device 10. For example, if the mobile robot apparatus 10 is a robot cleaner, it may adsorb dust in the surroundings through the function unit 195 while moving. If the mobile robot device 10 is a robot that moves and plays various multimedia contents, the function unit 195 may be hardware that plays multimedia contents.
프로세서(150)는 디지털 신호를 처리하는 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(150)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 프로세서(150)는 메모리(130)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다. 뿐만 아니라, 프로세서(150)는 인공지능 기능을 수행하기 위하여, 별도의 AI 전용 프로세서인 GPU(graphics-processing unit), NPU(Neural Processing Unit), VPU(Visual Processing UniT) 중 적어도 하나를 포함할 수 있다.The processor 150 may process a digital signal, a central processing unit (CPU), a micro controller unit (MCU), a micro processing unit (MPU), a controller, and an application processor (AP). Or a communication processor (CP), one or more of ARM processors, or may be defined in the corresponding terms. In addition, the processor 150 may be implemented in a System on Chip (SoC), a large scale integration (LSI) in which a processing algorithm is embedded, or may be implemented in the form of a field programmable gate array (FPGA). The processor 150 may perform various functions by executing computer executable instructions stored in the memory 130. In addition, the processor 150 may include at least one of a separate AI dedicated processor, a graphics-processing unit (GPU), a neural processing unit (NPU), and a visual processing unit (VPU) to perform an artificial intelligence function. have.
도 3은 본 개시의 일 실시예에 따른 키노드와 노드 시퀀스 획득하여 그래프를 생성하는 구성을 도시한 블록도이다.3 is a block diagram illustrating a configuration of generating a graph by acquiring a sequence of key nodes and nodes according to an embodiment of the present disclosure.
프로세서(150)는 도 3에서 도시하고 있는 키노드 획득부(310), 노드 시퀀스 획득부(320) 및 그래프 생성부(330)를 포함할 수 있다.The processor 150 may include a key node acquirer 310, a node sequence acquirer 320, and a graph generator 330 illustrated in FIG. 3.
키노드 획득부(310)는 메모리(130)에 저장되어 있는 이미지 센서(110)에서 획득한 이미지 데이터를 이용하여 특징점을 추출하고 매칭하여 키노드를 획득할 수 있다. 이미지 데이터는 컬러 데이터와 뎁스(Depth)데이터를 포함한 3차원 데이터이며 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 특징점을 추출할 수 있다. ORB(Oriented FAST and Rotated BRIEF)알고리즘은 하나의 실시 예일 뿐, 다른 알고리즘(예를 들어, SURF(The speeded up robust features), SIFT(Scale Invariant Feature Transform과 같은 알고리즘)을 사용하여서도 3차원 이미지 데이터에서 특징점을 추출 할 수 있다.The key node acquisition unit 310 may obtain a key node by extracting and matching feature points by using image data acquired by the image sensor 110 stored in the memory 130. The image data is three-dimensional data including color data and depth data, and feature points may be extracted by using an ORB algorithm. ORB (Oriented FAST and Rotated BRIEF) algorithms are just one embodiment, and three-dimensional image data can also be used using other algorithms (e.g., algorithms such as The speeded up robust features (SURF) and the Scale Invariant Feature Transform (SIFT)). Feature points can be extracted from.
그리고, 키노드 획득부(310)에서는 추출한 특징점을 누적하여 서브맵을 구성하는 방법으로 특징점이 부족한 환경을 극복할 수 있다. 서브맵은 키노드 획득부(310)에서 3차원 특징점이 누적되어 만들어진 것이며, 로봇의 오도메터리(Odometry)의 신뢰도가 기반될 수 있다.In addition, the key node acquisition unit 310 may overcome an environment in which the feature points are insufficient by accumulating the extracted feature points to form a submap. The submap is formed by accumulating three-dimensional feature points in the key node acquisition unit 310, and may be based on reliability of an odometry of the robot.
일 실시예로, 키노드 획득부(310)는 휠 센서(160)가 이동 로봇 장치(10)의 키드내핑과 같이 위치 인식 실패 상황을 감지할 경우, 새로운 환경에서도 이미지 센서(110)로부터 획득한 3차원 이미지 데이터를 활용하여 키노드를 획득 할 수 있다.In an embodiment, when the wheel sensor 160 detects a location recognition failure situation such as kidnapping of the mobile robot device 10, the key node acquisition unit 310 may acquire the image from the image sensor 110 in a new environment. Key nodes can be obtained by using three-dimensional image data.
노드 시퀀스 획득부(320)는 메모리(130)에 저장되어 있는 복수의 지자기 센서(120)를 통해 획득한 센싱 데이터를 바탕으로 노드 시퀀스를 획득할 수 있다. 센싱 데이터는 실내 환경의 자기장 왜곡이 반영된 데이터가 포함되어 있다. 센싱 데이터와 같이 자기장 왜곡을 측정한 데이터는 특정 순간의 값 자체가 아니라 여러 데이터의 시퀀스를 이용하여 자기장 값 등을 도출할 수 있다.The node sequence acquirer 320 may acquire a node sequence based on sensing data acquired through the plurality of geomagnetic sensors 120 stored in the memory 130. The sensing data includes data in which magnetic field distortion of an indoor environment is reflected. The data measured by the magnetic field distortion, such as the sensing data, may derive the magnetic field value using a sequence of data instead of the value itself at a specific instant.
따라서, 노드 시퀀스 획득부(320)는 센싱 데이터를 그룹핑하고, 그룹핑한 센싱 데이터의 자기장 값을 매칭하고, 매칭 된 센싱 데이터 그룹으로 노드 번들을 생성 할 수 있다. 그리고, 노드 번들을 다시 매칭하여 루프 클로징(Loop Closing)형태의 노드 시퀀스를 획득할 수 있다. 루프 클로징(Loop closing)형태는 폐회로 형태를 의미하며 노드가 시퀀스의 형태로 이어진 것을 말한다. Accordingly, the node sequence obtainer 320 may group sensing data, match magnetic field values of the grouped sensing data, and generate a node bundle with the matched sensing data group. The node bundle may be matched again to obtain a node sequence in the form of a loop closing. The loop closing form refers to the closed loop form and means that the node is connected in the form of a sequence.
그리고, 노드 시퀀스 획득부(320)에서는 노드 번들 매칭을 수행하여 노드 시퀀스를 획득하는 과정에서 가우시안 프로세스(Gaussian process)가 적용될 수 있다. 가우시안 프로세스(Gaussian process)는 지도 학습(Supervised learning)의 일종으로 랜덤 변수의 집합이다. 이 때, 집합 변수들은 조인트 가우시안 분포(Joint Gaussian distribution)를 따른다. 구체적으로는 도 10을 참조하여 설명하도록 한다.The node sequence obtainer 320 may apply a Gaussian process in the process of obtaining a node sequence by performing node bundle matching. The Gaussian process is a type of supervised learning that is a set of random variables. In this case, the set variables follow a joint Gaussian distribution. Specifically, this will be described with reference to FIG. 10.
또한, 노드 시퀀스 획득부(320)에서는 새로 획득한 노드 번들인 쿼리(Query)값과 기존에 획득한 노드 번들(Target)을 비교하여 에러 스코어(Error Score)가 가장 작은 쿼리(Query)를 추출할 수 있다. 이렇게 거리 차이가 가장 작은 노드 번들을 루프 클로징 형태(Loop closing)형태의 노드 시퀀스로 선정할 수 있다. In addition, the node sequence acquisition unit 320 compares a newly obtained node bundle query value with a previously obtained node bundle to extract a query having the smallest error score. Can be. The node bundle having the smallest distance difference can be selected as a node sequence in a loop closing form.
그래프 생성부(330)는 키노드 획득부(310)와 노드 시퀀스 획득부(320)에서 획득한 키노드와 노드 시퀀스를 바탕으로 이동 로봇 장치(10)의 위치정보를 나타내는 그래프 구조를 생성할 수 있다.The graph generator 330 may generate a graph structure indicating the position information of the mobile robot apparatus 10 based on the keynode and node sequences acquired by the keynode acquirer 310 and the node sequence acquirer 320. have.
그리고, 그래프 생성부(330)에 의해 생성된 그래프 구조는 루프 크로징(Loop closing)형태일 수 있으며, 키노드와 노드 시퀀스로 구성될 수 있다. 이러한 그래프 구조는 3차원 이미지 데이터 매칭과 센싱 데이터의 매칭 각각 동시에 이루어질 수 있음을 의미할 수 있다.The graph structure generated by the graph generator 330 may be in the form of a loop closing, and may be composed of a key node and a node sequence. Such a graph structure may mean that 3D image data matching and sensing data matching may be simultaneously performed.
또한, 그래프 생성부(330)는 휠 센서(160)가 이동 로봇 장치(10)가 현재 들려 있는 상황인 키드내핑 상황뿐 아니라 각종 위치 인식 실패상황에는 이미지 센서(110)와 복수의 지자기 센서(120)로부터 획득한 데이터를 기반으로 그래프를 보정할 수 있다.In addition, the graph generator 330 may not only be a kidnapping situation in which the wheel sensor 160 is currently held by the mobile robot device 10, but also an image sensor 110 and a plurality of geomagnetic sensors 120. The graph can be corrected based on the data obtained from
그리고, 일 실시예로, 그래프 생성부(330)에서 생성한 그래프 구조는 디스플레이부(190)에서 디스플레이 될 수 있으며, 입력부(170)(예를 들어, 터치 스크린, 마이크, 키보드 등)에 기설정된 이벤트를 수행할 경우, 디스플레이부(190)에서 시뮬레이션 과정을 볼 수 있다.In addition, as an example, the graph structure generated by the graph generator 330 may be displayed on the display 190, and is preset in the input unit 170 (eg, a touch screen, a microphone, a keyboard, etc.). When performing the event, the display 190 can see the simulation process.
도 4는 본 개시의 일 실시예에 따른, 이미지 센서(110)를 이용한 그래프 슬램(SLAM) 알고리즘을 도시한 블록도이다. 4 is a block diagram illustrating a graph slam (SLAM) algorithm using an image sensor 110 according to an embodiment of the present disclosure.
즉, 도 4에서는 이미지 센서(110)에서 획득한 3차원 이미지 데이터를 바탕으로 키노드를 획득하고, 획득한 키노드를 바탕으로 그래프 구조를 생성하여 이동 로봇 장치(10)의 위치 정보를 추정하고 지도를 제작하는 과정(400)을 도시한 것이다. That is, in FIG. 4, a key node is obtained based on the 3D image data acquired by the image sensor 110, a graph structure is generated based on the obtained key node, and the position information of the mobile robot apparatus 10 is estimated. The process of making a map 400 is shown.
이동 로봇 장치(10)의 구성요소인 이미지 센서(110)를 통하여 거리(Depth)데이터가 포함된 3차원 이미지 데이터를 획득한다(410). 일 실시예에 따르면, 이미지 센서(110)를 통해 연속적 또는 비연속 3차원 이미지 데이터를 획득하며, 획득한 3차원 이미지 데이터는 메모리(130)에 저장된다.The 3D image data including the depth data is acquired through the image sensor 110 that is a component of the mobile robot apparatus 10 (410). According to an embodiment, the continuous or discontinuous three-dimensional image data is acquired through the image sensor 110, and the obtained three-dimensional image data is stored in the memory 130.
이미지 센서(110)를 통해 획득한 3차원 이미지 데이터를 이용하여 이동 로봇 장치(10)는 비쥬얼 오도메트리(Visual Odometry)(420)과정을 수행할 수 있다. 비쥬얼 오도메트리(420)과정은 이동 로봇 장치(10)가 획득한 이미지 데이터를 분석하여 이동 로봇 장치(10)의 위치와 방향을 결정하는 과정을 의미한다. 본 개시의 이동 로봇 장치(10)는 N족 보행하는 로봇 등, 비표준 이동방법을 지닌 이동 로봇 장치(10)에도 효과적으로 사용할 수 있는 비쥬얼 오도메트리(420)를 이용하나, 이는 한 실시예에 불과하다.Using the 3D image data acquired through the image sensor 110, the mobile robot device 10 may perform a process of visual odometry 420. The visual odometry 420 process refers to a process of determining the position and direction of the mobile robot device 10 by analyzing the image data acquired by the mobile robot device 10. The mobile robot device 10 of the present disclosure uses a visual odometry 420 that can be effectively used for the mobile robot device 10 having a non-standard moving method such as a group N walking robot, but this is only one embodiment. Do.
일 실시예로 이동 로봇 장치(10)가 수행하는 비쥬얼 오도메트리(420)과정은 먼저 획득한 3차원 이미지 데이터에 대해서 이미지 보정작업을 거치는 것이다. 구체적으로, 이동 로봇 장치(10)는 이미지 센서(110)가 3차원 이미지 데이터를 획득하는 과정에서 발생할 수 있는 렌즈 왜곡과 같은 것을 보정할 수 있다. 이동 로봇 장치(10)는 이미지 보정을 마친 3차원 이미지 데이터의 특징점을 추출하고, 추출한 특징점으로 광학 흐름 필드(Optical flow field)를 구축할 수 있다. 이동 로봇 장치(10)는 이 광학 흐름 필드(Optical flow field)의 광학 흐름 벡터(Optical flow vector)를 통하여 이동 로봇 장치(10)의 위치 및 방향을 결정할 수 있다.In one embodiment, the visual odometry 420 process performed by the mobile robot apparatus 10 is to perform image correction on the first three-dimensional image data obtained. In detail, the mobile robot apparatus 10 may correct such as lens distortion that may occur while the image sensor 110 acquires 3D image data. The mobile robot apparatus 10 may extract a feature point of the three-dimensional image data after the image correction is completed, and build an optical flow field with the extracted feature point. The mobile robotic device 10 may determine the position and direction of the mobile robotic device 10 through the optical flow vector of the optical flow field.
그리고, 일 실시예로, 이동 로봇 장치(10)는 3차원 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 특징점을 추출할 수 있다. ORB(Oriented FAST and Rotated BRIEF)알고리즘은 3차원 이미지 프레임 상의 특정한 점을 중심으로 반지름이 3인 원 상의 16개 픽셀(Pixel)값을 정하고, 특정한 점보다 기 설정된 값 이상 밝은 또는 어두운 픽셀(Pixel)들이 9개 이상 연속되어 있어 있다면 그 특징점을 코너(Corner)로 선정하는 FAST-9 알고리즘을 이용하여 특징점을 추출할 수 있다. 다만, 이는 일 실시예에 불과할 뿐, ORB(Oriented FAST and Rotated BRIEF)알고리즘을 사용하면서 연속되어 있는 밝거나 어두운 픽셀(Pixel)의 개수를 이동 로봇 장치(10)의 특성에 따라 변경할 수 있음은 물론이다.In an embodiment, the mobile robot apparatus 10 may extract feature points from an ORB algorithm using three-dimensional image data. ORB (Oriented FAST and Rotated BRIEF) algorithm determines 16 pixel values on a circle with a radius of 3 around a specific point on a three-dimensional image frame, and brighter or darker pixels that are lighter or darker than a certain point. If more than nine are consecutive, the feature points can be extracted using the FAST-9 algorithm which selects the feature points as corners. However, this is only an example, and the number of consecutive bright or dark pixels may be changed according to the characteristics of the mobile robot device 10 while using an ORB algorithm. to be.
이동 로봇 장치(10)는 획득한 3차원 이미지 데이터로부터 추출한 특징점들을 누적하여서 매칭는데 이러한 과정은 노드 매니지먼트(430)라고 한다. 구체적으로, 이동 로봇 장치(10)는 이동 로봇 장치(10)의 포즈(Pose), 즉, 노드 마다의 특징점을 모아서 누적한 서브맵을 매칭할 수 있다.The mobile robot device 10 accumulates and matches feature points extracted from the obtained 3D image data. This process is referred to as node management 430. In detail, the mobile robot apparatus 10 may match a submap accumulated by collecting the feature points of the nodes, that is, the nodes of the mobile robot apparatus 10.
Figure PCTKR2019007499-appb-I000001
(1)
Figure PCTKR2019007499-appb-I000001
(One)
위 (1) 수식은 프로세서(150)가 3차원 이미지 데이터에서 추출한 특징점을 누적하여 서브맵을 구성할 수 있는 것을 설명하기 위한 수식이다. 좌변의 M은 특징점들을 누적한 j번째 서브맵임을 의미한다. 우변의
Figure PCTKR2019007499-appb-I000002
는 상수이며,
Figure PCTKR2019007499-appb-I000003
는 i번째 이동 로봇 장치(10)의 오드메트리(Odmometry)를 의미하며,
Figure PCTKR2019007499-appb-I000004
은 이미지 센서(110)에서 이동 로봇 장치(10)로 좌표 변환(Coordinate transformation)을 의미하며,
Figure PCTKR2019007499-appb-I000005
는 i번째 로봇의 포즈(Pose) 즉, i 번째 노드의 특징점을 의미한다. K와 l은 j 번째 서브맵에 포함되는 첫번째 그리고 마지막 노드의 인덱스 번호를 의미한다.
Equation (1) above is an equation for explaining that the processor 150 may configure a submap by accumulating the feature points extracted from the 3D image data. M on the left side means the j-th submap accumulated feature points. Right
Figure PCTKR2019007499-appb-I000002
Is a constant,
Figure PCTKR2019007499-appb-I000003
Denotes an odd geometry of the i-th mobile robot apparatus 10,
Figure PCTKR2019007499-appb-I000004
Denotes a coordinate transformation from the image sensor 110 to the mobile robot device 10,
Figure PCTKR2019007499-appb-I000005
Is the pose of the i-th robot, that is, the feature point of the i-th node. K and l are index numbers of the first and last nodes included in the j th submap.
이동 로봇 장치(10)는 특징점들을 누적하여 구성한 서브맵을 2가지 단계로 매칭할 수 있다. 첫번째 단계는 이동 로봇 장치(10)가 여러 서브맵과 목표 노드를 매칭하여 목표 노드와 가장 근접한 서브맵을 탐색할 수 있는 단계이다. 이동 로봇 장치(10)는 특징점들이 부족한 환경에서는 특징점 하나 단위로 매칭을 실시하여 이동 로봇 장치(10)의 위치를 추정하기가 어려운바, 특징점이 누적되어 있는 서브맵 전체를 하나로 보고 가장 근접한 노드 즉, 목표 노드와 러프 매칭(Rough matching)을 할 수 있다. The mobile robot apparatus 10 may match the submap formed by accumulating the feature points in two stages. In the first step, the mobile robot apparatus 10 may search for a submap closest to the target node by matching several submaps with the target node. Since the mobile robot device 10 is difficult to estimate the position of the mobile robot device 10 by performing matching on a single feature point in an environment in which the feature points are insufficient, the closest node, i. Rough matching may be performed with the target node.
본 개시에서, 이동 로봇 장치(10)는 러프 매칭(Rough matching)을 할 때, 강체 변환(Rigid Transformation)을 기반으로 한 RANSAC알고리즘을 활용할 수 있다. 여기서 강체 변환이란 변환할 대상의 형태와 크기를 유지하는 동시에 위치와 방향만을 바꾸는 변환을 의미한다.In the present disclosure, the mobile robot device 10 may utilize a RANSAC algorithm based on rigid transformation when performing rough matching. Rigid body transformation refers to a transformation that changes only the position and direction while maintaining the shape and size of the object to be converted.
일 실시예로, RANSAC 알고리즘은 이상치(Outlier)라고 불리는 정상 분포에 벗어난 값들을 정상 분포에 속해 있는 데이터(Inlier)로 회귀 분석을 할 수 있게 해주는 알고리즘이다. 구체적으로는, 이동 로봇 장치(10)는 누적되어 있는 여러 특징점들 중 임의의 개수만큼을 선택하고, 선택한 임의의 개수만큼의 특징점을 정상 분포에 속해 있는 데이터(Inlier)로 가정한 뒤 회귀 모델을 구할 수 있다. 그리고, 이동 로봇 장치(10)는 나머지 특징점들을 회귀 모델과 비교하였을 때 나머지 특징점들이 기 설정된 허용 오차내에 있는지를 판단할 수 있고, 허용 오차내에 있다면 정상 분포에 있는 데이터(Inlier)로 포함시키고 다시 회귀 모델을 구성할 수 있다. 그리고, 이동 로봇 장치(10)는 다시 구성된 회귀 모델과 정상 분포에 속해 있는 데이터(Inlier)와 오차를 측정하고 그 오차가 기설정된 허용 오차를 넘어서는지 여부에 따라 상술한 과정을 반복하는지를 결정할 수 있다.In one embodiment, the RANSAC algorithm is an algorithm that enables regression analysis of values outside the normal distribution called outliers to data belonging to the normal distribution. Specifically, the mobile robot device 10 selects any number of accumulated feature points, assumes the selected number of feature points as data (Inlier) belonging to a normal distribution, and then selects a regression model. You can get it. In addition, when comparing the remaining feature points with the regression model, the mobile robot apparatus 10 may determine whether the remaining feature points are within a preset tolerance, and if the tolerances are within the tolerance, include the data (Inlier) in a normal distribution and regression. Models can be constructed. In addition, the mobile robot apparatus 10 may measure the reconfigured regression model, the data (Inlier) and the error belonging to the normal distribution, and determine whether to repeat the above-described process according to whether the error exceeds a preset tolerance. .
두번째 단계는, 이동 로봇 장치(10)가 첫번째 단계에서 탐색한 서브맵에 누적되어 있는 특징점이 포함된 노드와 목표 노드와 매칭하여 서브맵 중에 목표 노드와 가장 근접한 키노드를 획득할 수 있는 단계이다.In the second step, the mobile robot apparatus 10 may acquire a key node closest to the target node in the submap by matching the target node with the node including the feature points accumulated in the submap searched in the first step.
즉, 첫번째 단계는, 이동 로봇 장치(10)가 RANSAC 알고리즘을 적용한 서브맵을 하나로 보고 목표 노드와 매칭을 하여 가장 근접한 서브맵을 탐색할 수 있는 단계이며, 두번째 단계는 이동 로봇 장치(10)가 탐색한 서브맵의 특징점이 포함된 노드와 목표 노드를 매칭하여 목표 노드와 가장 근접한 노드인 키노드를 획득할 수 있는 단계이다.That is, in the first step, the mobile robot device 10 may look at one submap to which the RANSAC algorithm is applied and match the target node to search for the nearest submap, and the second step may be performed by the mobile robot device 10. A step of acquiring a key node which is a node closest to the target node by matching the node including the feature point of the submap with the target node.
위 노드 매니지먼트(430)를 거친 후에는, 이동 로봇 장치(10)는 키노드들 각각의 뎁스(또는 깊이) 기반 구속조건(Depth based constraints)(450)과 특징 기반 구속조건(Feature based Constraint)(460)을 생성할 수 있다.After going through the node management 430, the mobile robot device 10 may determine depth based constraints 450 and feature based constraints of each of the keynodes. 460 may be generated.
이동 로봇 장치(10)는 키노드의 뎁스 데이터가 목표 노드의 뎁스 데이터와 매칭되는 영역을 연결하여 구속 조건(Constraint)을 생성할 수 있고 이 구속조건(Constraint)은 뎁스 기반 구속조건(Depth based constraints)(450)이라 한다.The mobile robot device 10 may generate a constraint by connecting a region where the depth data of the key node matches the depth data of the target node, and the constraint may be a depth based constraint. (450)
이동 로봇 장치(10)는 키노드의 특징을 목표 노드의 특징과 매칭되는 영역을 연결하여 구속 조건(Constraint)을 생성할 수 있고 이 구속조건(Constraint)은 특징 기반 구속조건(Feature based constraints)(460)이라 한다.The mobile robot device 10 may generate a constraint by connecting a keynode's feature to an area matching the feature of the target node, and the constraint may be a feature based constraints ( 460).
그리고, 이동 로봇 장치(10)는 키노드를 바탕으로 뎁스 기반 구속조건(Depth based constraints)(450)과 특징 기반 구속조건(Feature based constraints)(460)을 생성하여 루프 크로징(Loop closing)형태의 그래프 구조를 생성하고 최적화할 수 있다.(470) 여기서 그래프 구조를 최적화한다는 것은 이동 로봇 장치(10)가 이동 로봇 장치(10)의 위치 정보를 가장 잘 나타내기 위하여 키노드를 바탕으로 그래프를 정확히 생성하고 오차를 최대한 줄일 수 있는 것을 의미한다.In addition, the mobile robot apparatus 10 generates depth based constraints 450 and feature based constraints 460 based on the key node to form a loop closing shape. In this case, optimizing the graph structure means that the mobile robot device 10 generates a graph based on the key node in order to best represent the position information of the mobile robot device 10. This means that it can be generated accurately and the error can be minimized.
한편, Bow(Bag of words)Scene 매칭(440)이란, 이동 로봇 장치(10)가 키드내핑과 같은 상황에서 사용할 수 있는 매칭방법이다. 일 실시예로, 휠 센서(160)가 키드내핑 상황을 감지하였을때, 이동 로봇 장치(10)는 기존에 획득한 이미지 데이터로부터 추출한 특징점 중에서 대표 특징점을 추출하고, 대표 특징점으로 이루어진 코드북(Codebook)을 생성할 수 있다. 그리고, 이동 로봇 장치(10)는 키드내핑 상황 후 바닥에 내려놔졌을 때, 현재 위치가 기존의 있던 위치와 맞는지 코드북을 이용하여 확인할 수 있다.Meanwhile, Bow (Bag of words) Scene Matching 440 is a matching method that the mobile robot apparatus 10 may use in a situation such as kidnapping. In an embodiment, when the wheel sensor 160 detects a kidnapping situation, the mobile robot apparatus 10 extracts a representative feature point from feature points extracted from previously acquired image data, and comprises a codebook consisting of representative feature points. Can be generated. Then, when the mobile robot device 10 is placed on the floor after the kidnapping situation, the mobile robot device 10 can check whether the current position matches the existing position using a codebook.
도 5은 본 개시의 일 실시예에 따른, 이미지 센서(110)로부터 키 노드를 획득하는 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method of obtaining a key node from the image sensor 110 according to an embodiment of the present disclosure.
우선, 일 실시예로 RGB-D센서와 같은 이미지 센서(110)는 3차원 이미지 데이터를 획득할 수 있다.(S510) 이동 로봇 장치(10)는 획득한 3차원 이미지 데이터를 메모리(130)에 저장할 수 있다.First, as an example, the image sensor 110 such as an RGB-D sensor may acquire 3D image data. (S510) The mobile robot apparatus 10 may store the obtained 3D image data in the memory 130. Can be stored.
그리고, 이동 로봇 장치(10)는 메모리(130)에 저장된 복수의 이미지 데이터에서 일 실시예로ORB(Oriented FAST and Rotated BRIEF)알고리즘을 적용하여 특징점을 추출할 수 있다.(S520)In addition, the mobile robot apparatus 10 may extract a feature point by applying an ORB algorithm, in one embodiment, from the plurality of image data stored in the memory 130 (S520).
그리고, 이동 로봇 장치(10)는 추출한 특징점을 누적하여 서브맵을 구성하고(S530) RANSAC알고리즘을 적용하고 매칭을 실시할 수 있다.(S540) 위 매칭의 방법은 상술한 바와 같이 두 단계로 나뉜다.The mobile robot apparatus 10 may accumulate the extracted feature points to form a submap (S530), apply a RANSAC algorithm, and perform matching. (S540) The matching method is divided into two steps as described above.
첫 단계로는 이동 로봇 장치(10)가 RANSAC알고리즘을 거친 서브맵을 하나의 노드로 보고 목표 노드와 러프 매칭(Rough matching)을 할 수 있는 단계이다.In the first step, the mobile robot device 10 may view the submap that has undergone the RANSAC algorithm as one node and perform rough matching with the target node.
두번째 단계로는, 이동 로봇 장치(10)가 매칭된 서브맵의 노드와 목표 노드를 매칭하여 가장 근접한 노드를 탐색할 수 있는 단계이다(S550). 그 이후에, 이동 로봇 장치(10)는 목표 노드와 가장 근접한 노드, 즉 키노드를 획득할 수 있다.(S560)In the second step, the mobile robot apparatus 10 may search for the nearest node by matching the nodes of the matched submap and the target node (S550). Thereafter, the mobile robot apparatus 10 may acquire a node that is closest to the target node, that is, a key node (S560).
도 6a 및 도 6b는 본 개시의 일 실시예에 따른, 이미지 데이터에서 특징점을 추출하는 방법을 설명하기 위한 도면이다.6A and 6B are diagrams for describing a method of extracting feature points from image data, according to an exemplary embodiment.
도 6a는 이동 로봇 장치(10)가 3차원 이미지 데이터에서 특징점을 추출하는 모습을 도시하고 있다. 이동 로봇 장치(10)는 복도의 바닥 부근의 픽셀(Pixel)보다 연속적으로 밝은 화이드 보드의 다리 부근(610)을 특징점으로 보고 추출할 수 있다. 동시에, 이동 로봇 장치(10)는 복도의 바닥 부근의 픽셀(Pixel)보다 연속적으로 밝은 흰색 테이프가 붙은 부분(620)을 특징점으로 보고 추출할 수 있다.6A illustrates the mobile robot device 10 extracting feature points from three-dimensional image data. The mobile robot apparatus 10 may extract and view the vicinity of the leg 610 of the whiteboard as a feature point, which is continuously brighter than the pixels near the floor of the corridor. At the same time, the mobile robot apparatus 10 may view and extract a portion 620 attached to a white tape which is brighter than pixels Pixel near the bottom of the hall as a feature point.
도 6b에서는 이동 로봇 장치(10)를 통해, 3차원 이미지 데이터에서 특징점을 추출한 것을 서브맵으로 누적한 것을 도시한 것이다. 상술한 바와 같이, 이동 로봇 장치(10)는 이미지 데이터에서 추출한 특징점을 누적하여 구성한 서브맵을 RANSAC알고리즘을 적용하고 목표 노드와 매칭을 할 수 있다. 그리고, 이동 로봇 장치(10)는 매칭된 서브맵을 구성하고 있는 특징점과 목표 노드와 매칭하여 키노드를 획득할 수 있다.In FIG. 6B, the mobile robot apparatus 10 shows the accumulation of sub-maps of feature points extracted from the 3D image data. As described above, the mobile robot apparatus 10 may apply the RANSAC algorithm to the submap formed by accumulating the feature points extracted from the image data and match the target node. In addition, the mobile robot apparatus 10 may obtain a key node by matching the feature points constituting the matched submap and the target node.
도 7은 본 개시의 일 실시예에 따른, 센싱 데이터로부터 노드 번들을 획득하는 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a method of obtaining a node bundle from sensing data according to an embodiment of the present disclosure.
우선, 복수의 지자기 센서(120)에서 센싱 데이터를 획득할 수 있다.(S700) 센싱 데이터는 실내 환경의 자기장 왜곡을 측정한 데이터이며 시퀀스 형태로 이루어져야 하는바, 이동 로봇 장치(10)는 센싱 데이터를 시퀀스 형태로 그루핑(Grouping)할 수 있다.(S720)First, the sensing data may be acquired by the plurality of geomagnetic sensors 120. (S700) The sensing data is data obtained by measuring magnetic field distortion of an indoor environment, and should be formed in a sequence form. Can be grouped in a sequence form (S720).
이동 로봇 장치(10)는 기존에 저장한 센싱 데이터 그룹과 새로 획득한 센싱 데이터 그룹과 자기장값들을 비교 매칭할 수 있다.(S740) 이동 로봇 장치(10)는 센싱 데이터 그룹의 자기장 값들을 비교 매칭함으로써, 노드 시퀀스를 구성요소로 루프 클로징(Loop closing)을 구성할 수 있다.The mobile robot apparatus 10 may compare and match the previously stored sensing data group with the newly acquired sensing data group and the magnetic field values. (S740) The mobile robot apparatus 10 compares and matches the magnetic field values of the sensing data group. By doing so, it is possible to construct a loop closing with the node sequence as a component.
Figure PCTKR2019007499-appb-I000006
(2)
Figure PCTKR2019007499-appb-I000006
(2)
위 (2) 수식은 센싱 데이터 그룹을 벡터로 표시하였을 때 매칭 코스트(Matching cost)를 계산하는 식이다. 이동 로봇 장치(10)는 매칭 코스트(Matching cost)를 기존에 저장된 센싱 데이터 그룹과 새로 획득한 센싱 데이터의 유클리드 거리를 계산하여 획득할 수 있다.Equation (2) above calculates a matching cost when the sensing data group is expressed as a vector. The mobile robot apparatus 10 may obtain a matching cost by calculating a Euclidean distance between the previously stored sensing data group and the newly acquired sensing data.
이동 로봇 장치(10)는 매칭된 센싱 데이터 그룹으로 노드 번들을 생성할 수 있다.(S760). 즉 이동 로봇 장치(10)가 매칭된 센싱 데이터 그룹으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 생성할 수 있다.The mobile robot device 10 may generate a node bundle with the matched sensing data group (S760). That is, the mobile robot device 10 may generate a node bundle having a pair of graph structures as matched sensing data groups.
도 8 내지 도 10은 본 개시의 일 실시예에 따른, 노드 번들을 매칭하여 노드 시퀀스를 획득하는 방법을 설명하기 위한 도면이다.8 to 10 are diagrams for describing a method of obtaining a node sequence by matching node bundles according to an embodiment of the present disclosure.
도 8은 이동 로봇 장치(10)가 기존에 획득한 노드 번들(800)(또는, 타겟(Target))과 새로 획득한 노드 번들(810)(또는, 쿼리(query))의 거리 차이를 비교하면서 매칭 지점을 찾는 과정을 도시한 것이다.FIG. 8 compares the distance difference between the node bundle 800 (or target) previously acquired by the mobile robot device 10 and the node bundle 810 (or query) newly acquired. The process of finding a matching point is shown.
이동 로봇 장치(10)는 타켓(800)을 두고 쿼리(810)를 밀면서 에러 스코어(Error score)를 산출할 수 있다. 이동 로봇 장치(10)는 쿼리(810)의 위치를 계속 위로 올리면서 타켓(800)과의 거리 차이를 구하는 과정(820)을 반복할 수 있다. 따라서, (b)(840)나 (d)(880)의 경우보다, (c)의 경우가 타켓(800)과 쿼리(810)와 거리차이가 제일 작은 것을 표(890)를 통해 알 수 있다.The mobile robot device 10 may calculate an error score by pushing the query 810 with the target 800. The mobile robot device 10 may repeat the process 820 of obtaining a distance difference from the target 800 while continuously raising the position of the query 810. Therefore, it can be seen from the table 890 that the difference between the target 800 and the query 810 is the smallest in the case of (c) than in the case of (b) 840 or (d) 880. .
도 9a에서는, 타켓_L(910)과 타켓_R(930) 한 쌍의 그래프 구조로 이루어진 노드 번들 그리고 쿼리_L(920)와 쿼리_R(940) 한 쌍의 그래프 구조로 이루어진 노드 번들을 도시하고 있다.In FIG. 9A, a node bundle consisting of a pair of graph structures of a target_L 910 and a target_R 930 and a node bundle consisting of a pair of graph structures of a query_L 920 and a query_R 940 are illustrated. It is shown.
도 9b에서는, 타켓(800)이 쿼리(810)사이에 존재해서 이동 로봇 장치(10)가 각 노드 번들 사이의 물리값을 측정할 수 있는 범위에 있는지 여부를 표로 도시한 것이다.In FIG. 9B, a table shows whether the target 800 is between queries 810 so that the mobile robot device 10 is in a range capable of measuring physical values between each node bundle.
도 9a에서 도시한 바와 같이, 이동 로봇 장치(10)는 쿼리_L(920)와 쿼리_R(940)을 기준으로 타켓_L(910)과 타켓_R(930) 의 거리 차이를 계산할 수 있다. 예를 들면, 이동 로봇 장치(10)는 쿼리_L(920)을 기준으로 타켓_L(920)과의 거리는 LL로 계산하고 쿼리_L(920)과 타켓_R(930)과의 거리는 LR로 계산할 수 있다.As shown in FIG. 9A, the mobile robot apparatus 10 may calculate a distance difference between the target_L 910 and the target_R 930 based on the query_L 920 and the query_R 940. have. For example, the mobile robot apparatus 10 calculates the distance between the target_L 920 and LL based on the query_L 920 and the distance between the query_L 920 and the target_R 930 is LR. Can be calculated as
도 9b에서 도시한 바와 같이, 이동 로봇 장치(10)는 쿼리 번들이 좌측에 있든 우측에 있든 타켓 번들 사이에 있어야 쿼리 번들과 타켓 번들을 이루고 있는 그래프 구조간에 거리차이를 측정할 수 있다.As shown in FIG. 9B, the mobile robot device 10 may measure the distance difference between the query bundle and the graph structure constituting the target bundle only when the query bundle is on the left side or on the right side.
도 10에서는 이동 로봇 장치(10)가 쿼리(1010)가 타켓(1020)사이에 존재하는 것으로 판단되면, 타켓(1020)은 쿼리만을 추출하고, 추출한 쿼리(1010)의 위치를 알아내기 위해 가우시안 프로세스를 이용하여 에러 스코어(Error Score)가 더 작은 타켓(1030)을 갱신하는 과정을 도시한 것이다.In FIG. 10, when the mobile robot device 10 determines that the query 1010 exists between the targets 1020, the target 1020 extracts only the query and the Gaussian process to find the location of the extracted query 1010. The process of updating the target 1030 having a smaller error score (Error Score) is shown.
이동 로봇 장치(10)는 타켓(1020) 사이에 존재하는 쿼리만을 추출하고 추출한 쿼리를 노드 시퀀스로 선정할 수 있다. 그리고, 이동 로봇 장치(10)는 노드 시퀀스의 위치를 알아내기 위해 기존의 타켓(1040)보다 더 쿼리와 거리 차이가 작은 타켓(1030)을 가우시안 프로세서(Gaussian process)를 이용하여 생성할 수 있다.The mobile robot device 10 may extract only a query existing between the targets 1020 and select the extracted query as a node sequence. In addition, the mobile robot apparatus 10 may generate a target 1030 having a smaller query and distance difference than the target 1040 by using a Gaussian process to determine the position of the node sequence.
이동 로봇 장치(10)는 노드 시퀀스로 선정된 커리와 거리 차이가 거의 없어질 때까지 즉, 거리 차이가 가장 작아질 때까지 가우시안 프로세서(Gaussian process)를 반복 수행하여 최종적으로 노드 시퀀스의 위치를 알아낼 수 있다.The mobile robot apparatus 10 performs a Gaussian process repeatedly until the distance between the curry selected as the node sequence is almost disappeared, that is, until the distance difference is smallest, and finally finds the position of the node sequence. Can be.
도 11은 본 개시의 일 실시예에 따른, 키노드와 노드 시퀀스를 이용하여 그래프 구조를 생성하는 방법을 설명하기 위한 도면이다.FIG. 11 is a diagram for describing a method of generating a graph structure using a key node and a node sequence, according to an exemplary embodiment.
이동 로봇 장치(10)는 3차원 이미지 데이터를 바탕으로 획득한 키노드(1100)와 센싱 데이터를 바탕으로 획득한 노드 시퀀스을 구성요소로 하는 그래프 구조(1110)를 구성하여 동시에 매칭을 할 수 있다.The mobile robot device 10 may simultaneously configure a graph structure 1110 having a key node 1100 obtained based on 3D image data and a node sequence obtained based on sensing data, as components.
구체적으로, 이동 로봇 장치(10)는 키노드(1100)와 노드 시퀀스를 이용하여 구속조건(1120)를 만들수 있고, 루프 클루징(Loop closing)형태의 그래프 구조를 생성하여 그래프 슬램을 수행할 수 있다.In detail, the mobile robot apparatus 10 may create the constraint 1120 using the key node 1100 and the node sequence, and perform a graph slam by generating a graph structure in the form of a loop closing. have.
도 12 내지 도 13은 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)가 위치 인식을 실패한 경우 그래프를 보정하는 방법을 설명하기 위한 도면이고, 도14 는 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)가 위치 인식을 실패한 경우 그래프를 보정하는 방법을 설명하기 위한 흐름도이다.12 to 13 are diagrams for describing a method of calibrating a graph when the mobile robot apparatus 10 fails to recognize a position, according to an embodiment of the present disclosure, and FIG. 14 is a view according to an embodiment of the present disclosure. 2 is a flowchart illustrating a method of correcting a graph when the mobile robot apparatus 10 fails to recognize a position.
휠 센서(160)가 이동 로봇 장치(10)가 들리는 키드내핑 상황 등 이동 로봇 장치(10)가 위치 인식을 실패하게 되는 경우를 감지 할 수 있고, 이때 이동 로봇 장치(10)는 다시 이미지 센서(110)와 복수의 지자기 센서(120)를 이용하여 키노드와 노드 시퀀스를 획득할 수 있다.The wheel sensor 160 may detect a case where the mobile robot device 10 fails to recognize the position, such as a kid napping situation in which the mobile robot device 10 is heard, and the mobile robot device 10 may again detect an image sensor ( The key node and the node sequence may be obtained using the 110 and the plurality of geomagnetic sensors 120.
이동 로봇 장치(10)는 키드내핑과 같은 상황에서 똑같이 특징점이 누적되어 있는 서브맵을 기반으로 재배치 노드(Relocation Node)(1220)와 러프 매칭(Rough matching)을 할 수 있다.The mobile robot apparatus 10 may rough match the relocation node 1220 based on a submap in which feature points are equally accumulated in a situation such as kidnapping.
도 12a에 도시한 바와 같이 이동 로봇 장치(10)는 여러 서브맵 중에서 재배치 노드(1220)와 비교적 더 근접한 노드가 포함되어 있는 서브맵(1200)과 매칭할 수 있다. 그리고, 이동 로봇 장치(10)는 비교적 멀리 있는 노드가 포함되어 있는 서브맵(1210)은 재배치 노드(1220)와 매칭되지 않는 것으로 식별할 수 있다.As shown in FIG. 12A, the mobile robot apparatus 10 may match a submap 1200 including a node relatively closer to the relocation node 1220 among various submaps. In addition, the mobile robot apparatus 10 may identify that the submap 1210 including the relatively distant node does not match the relocation node 1220.
그리고, 도 12b에서 도시한 바와 같이 이동 로봇 장치(10)는 재배치 노드(1220)와 더 근접한 노드가 포함되어 있는 서브맵(1200)과 다시 한번 매칭을 하여 제일 잘 매칭되는 짝을 탐색할 수 있다.As shown in FIG. 12B, the mobile robot apparatus 10 may match the submap 1200 including the node closer to the relocation node 1220 again to search for the best match.
도 13은 이동 로봇 장치(10)가 키드내핑(1300) 상황에서 가장 잘 매칭되는 짝 즉, 노드를 찾는 과정을 루프 클루징(Loop closing)된 그래프 구조에서 상세하게 도시한 것이다.FIG. 13 illustrates in detail a loop closed graph structure in which the mobile robot device 10 finds the best matching pair, that is, a node, in the kidnapping 1300 situation.
이동 로봇 장치(10)가 제일 잘 맞는 노드(1310)를 찾은 경우에는, 이동 로봇 장치(10)는 제일 잘 맞는 노드(1310)에 구속조건(Constraint)(1320)을 걸고 기존의 그래프 슬램을 수행한다.When the mobile robot device 10 finds the best-fit node 1310, the mobile robot device 10 places a constraint 1320 on the best-fit node 1310 and performs an existing graph slam. do.
도 14는 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)가 위치 인식을 실패한 경우 그래프를 보정하는 방법을 설명하기 위한 흐름도이다.14 is a flowchart for describing a method of correcting a graph when the mobile robot apparatus 10 fails to recognize a position, according to an exemplary embodiment.
우선, 휠 센서(160)는 이동 로봇 장치(10)가 들리는 등 키드내핑 상황을 감지할 수 있다.(S1410) 이때, 이동 로봇 장치(10)는 오도메트리 구속조건(Odometry constraint)의 생성을 중지할 수 있다.(S1420) 따라서, 이동 로봇 장치(10)는 회전을 하는 동시에, 이미지 센서(110)과 복수의 지자기 센서(120)를 이용하여 3차원 이미지 데이터와 센싱 데이터를 새롭게 획득할 수 있다.(S1430)First, the wheel sensor 160 may detect a kidnapping situation such as the mobile robot device 10 being lifted (S1410). At this time, the mobile robot device 10 may generate generation of an odometry constraint. Therefore, the mobile robot apparatus 10 may rotate and simultaneously acquire three-dimensional image data and sensing data using the image sensor 110 and the plurality of geomagnetic sensors 120. (S1430)
그리고 이동 로봇 장치(10)는 획득한 새로운 3차원 이미지 데이터와 센싱 데이터를 바탕으로 키노드와 노드 시퀀스를 새롭게 획득하고, 재배치 노드와 매칭을 시도할 수 있다.(S1440)In addition, the mobile robot apparatus 10 may newly acquire a key node and a node sequence based on the acquired new 3D image data and sensing data, and attempt to match the relocation node (S1440).
이동 로봇 장치(10)는 매칭이 성공되는지 여부에 따라 다음 단계를 결정할 수 있다.(S1450) 이동 로봇 장치(10)는 매칭이 성공하지 않는 경우는 다시 매칭을 시도하고(S1440) 매칭이 성공하는 경우에는 매칭된 키노드와 노드 시퀀스를 바탕으로 그래프를 보정할 수 있다.(S1460)The mobile robot device 10 may determine the next step according to whether the matching is successful (S1450). If the matching does not succeed, the mobile robot device 10 attempts matching again (S1440). In this case, the graph may be corrected based on the matched keynode and node sequences (S1460).
도 15는 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)가 위치 인식을 실패했을 때를 가정하여 실험하는 방법 및 결과를 설명하기 위한 도면이다.FIG. 15 is a diagram for describing a method and a result of assuming an experiment when the mobile robot apparatus 10 fails to recognize a position, according to an exemplary embodiment.
도 15a는, 가로 13m, 세로 8.5m인 직사각형 실험장에서 실험자가 이동 로봇 장치(10)에게 키드내핑 상황을(1510) 임의로 발생시켰을 때, 이동 로봇 장치(10)가 어떻게 작동하는지를 알기 위한 실험 방법을 도시하고 있다.FIG. 15A illustrates an experimental method for understanding how the mobile robot apparatus 10 operates when an experimenter randomly generates a kidnapping situation 1510 in the mobile robot apparatus 10 in a rectangular experiment site 13 m long and 8.5 m long. It is shown.
도 15b에서 도 15a에서 계획한 실험을 실제 진행하였을 때의 결과값이 도시되어 있다. 점선으로 표시된 선(1520)은 키드내핑 상황에서 이동 로봇 장치(10)가 생성한 그래프 슬램의 궤적을 표시한 것이다. 그리고 실선으로 표시된 선은(1530)은 이동 로봇 장치(10)의 오도메트리 궤적으로, 키드내핑(1510)상황이 발생하였어도 그래프 슬램의 궤적(1520)에 맞게 결과값이 도출된 것을 알 수 있다.In FIG. 15B, a result value when the experiment planned in FIG. 15A is actually performed is illustrated. The line 1520 indicated by the dotted line indicates the trajectory of the graph slam generated by the mobile robot device 10 in the kidnapping situation. In addition, the line indicated by the solid line 1530 is an odometry trajectory of the mobile robot device 10, and even though the kidnapping 1510 occurs, it can be seen that the result value is derived to match the trajectory 1520 of the graph slam. .
도 16은 본 개시의 일 실시예에 따른, 이동 로봇 장치(10)의 제어방법을 설명하기 위한 순서도이다.FIG. 16 is a flowchart illustrating a control method of the mobile robot apparatus 10 according to an exemplary embodiment.
우선, 이동 로봇 장치(10)는 이미지 센서(110)를 통해 복수의 이미지 데이터를 획득하고 복수의 지자기 센서(120)를 통해 센싱 데이터를 획득할수 있다.(S1610)First, the mobile robot apparatus 10 may acquire a plurality of image data through the image sensor 110 and acquire sensing data through the plurality of geomagnetic sensors 120 (S1610).
그리고, 이동 로봇 장치(10)는 복수의 이미지 데이터에서 특징점을 추출하여 키노드를 획득하고, 센싱 데이터를 바탕으로 노드 시퀀스를 획득할 수 있다.(S1620)In addition, the mobile robot apparatus 10 may extract a feature point from a plurality of image data, obtain a key node, and obtain a node sequence based on the sensing data (S1620).
그리고, 이동 로봇 장치(10)는 획득한 키노드와 노드 시퀀스를 이용하여 이동 로봇 장치(10)의 위치 정보를 나타내는 그래프 구조를 생성할 수 있다.(S1630)In addition, the mobile robot apparatus 10 may generate a graph structure indicating the position information of the mobile robot apparatus 10 using the obtained key node and node sequence (S1630).
그리고, 이동 로봇 장치(10)가 위치 인식을 실패하는 경우(예를 들면, 키드내핑과 같은 상황)에는(S1640) 다시 새롭게 키노드와 노드 시퀀스를 획득하여 이동 로봇 장치(10)의 위치 정보를 나타내는 그래프 구조를 보정할 수 있다.(S1650)When the mobile robot device 10 fails to recognize the location (for example, in a situation such as kidnapping) (S1640), the mobile robot device 10 acquires a new node and node sequence again to obtain the location information of the mobile robot device 10. The graph structure shown can be corrected. (S1650)
한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.On the other hand, the term "part" or "module" as used in the present disclosure includes a unit composed of hardware, software, or firmware, and for example, may be used interchangeably with terms such as logic, logic block, component, or circuit. Can be. The "unit" or "module" may be an integrally formed part or a minimum unit or part of performing one or more functions. For example, the module may be configured as an application-specific integrated circuit (ASIC).
본 개시의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Various embodiments of the present disclosure may be implemented in software that includes instructions stored in a machine-readable storage media. The device may be a device capable of calling a stored command from a storage medium and operating according to the called command, and may include an electronic device according to the disclosed embodiments. When an instruction is executed by a processor, the processor may perform a function corresponding to the instruction directly or by using other components under the control of the processor. The instructions can include code generated or executed by a compiler or interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' means that the storage medium does not include a signal and is tangible, but does not distinguish that the data is stored semi-permanently or temporarily on the storage medium.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, a method according to various embodiments disclosed herein may be provided included in a computer program product. The computer program product may be traded between the seller and the buyer as a product. The computer program product may be distributed online in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)) or through an application store (eg Play StoreTM). In the case of an online distribution, at least a portion of the computer program product may be stored at least temporarily on a storage medium such as a server of a manufacturer, a server of an application store, or a relay server, or may be temporarily created.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.Each component (eg, a module or a program) according to various embodiments may be composed of a singular or plural number of objects, and some of the above-described subcomponents may be omitted, or other subcomponents may be omitted. It may be further included in various embodiments. Alternatively or additionally, some components (eg, modules or programs) may be integrated into one entity to perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or at least some of the operations may be executed in a different order, omitted, or another operation may be added. Can be.

Claims (15)

  1. 이동 로봇 장치에 있어서,In a mobile robotic device,
    주행부;Driving unit;
    이미지 센서;An image sensor;
    복수의 지자기 센서;A plurality of geomagnetic sensors;
    적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및A memory for storing at least one instruction; And
    상기 적어도 하나의 인스트럭션을 실행하는 프로세서;를 포함하고,A processor for executing the at least one instruction;
    상기 프로세서는,The processor,
    상기 이동 로봇 장치가 상기 주행부를 통해 이동하는 동안 상기 이미지 센서를 통해 복수의 이미지 데이터를 획득하고, 상기 복수의 지자기 센서를 통해 센싱 데이터를 획득하며,While the mobile robot device is moving through the driving unit, a plurality of image data is obtained through the image sensor, and sensing data is obtained through the plurality of geomagnetic sensors.
    상기 복수의 이미지 데이터로부터 특징점을 추출하고 상기 특징점을 바탕으로 키 노드들을 획득하고,Extracting feature points from the plurality of image data and obtaining key nodes based on the feature points;
    상기 센싱 데이터를 바탕으로 노드 시퀀스를 획득하고,Obtaining a node sequence based on the sensing data,
    상기 키 노드들과 상기 노드 시퀀스를 바탕으로 상기 이동 로봇 장치의 위치를 추정하는 그래프 구조를 생성하고,Generate a graph structure estimating the position of the mobile robot device based on the key nodes and the node sequence,
    상기 이동 로봇 장치의 위치 인식을 실패할 경우 상기 그래프 구조를 보정하는 이동 로봇 장치.The mobile robot device for correcting the graph structure when the position recognition of the mobile robot device fails.
  2. 제 1항에 있어서,The method of claim 1,
    상기 프로세서는,The processor,
    상기 복수의 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 상기 특징점들을 추출하는 것을 특징으로 하는 이동 로봇 장치.And extracting the feature points from the plurality of image data by using an oriented fast and rotated BRIEF (ORB) algorithm.
  3. 제 1항에 있어서,The method of claim 1,
    상기 프로세서는,The processor,
    상기 특징점들을 누적하여 서브맵을 구성하고,Accumulating the feature points to form a submap,
    상기 서브맵을 RANSAC(Random sample consensus) 알고리즘을 수행하고 가장 근접한 노드와 매칭하여 상기 키 노드를 획득하는 것을 특징으로 하는 이동 로봇 장치.And performing the random sample consensus (RANSAC) algorithm on the submap and matching the closest node to obtain the key node.
  4. 제 1항에 있어서,The method of claim 1,
    상기 프로세서는,The processor,
    상기 획득한 센싱 데이터를 그룹핑하여 센싱 데이터 그룹을 획득하고,Grouping the acquired sensing data to obtain a sensing data group,
    상기 센싱 데이터 그룹의 자기장값과 기존에 저장한 센싱 데이터 그룹의 자기장값들을 비교하여 매칭하고,Compare and match the magnetic field values of the sensing data group with the magnetic field values of the previously stored sensing data group,
    상기 매칭된 센싱 데이터 그룹을 바탕으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 획득하는 것을 특징으로 하는 이동 로봇 장치.And a node bundle having a pair of graph structures based on the matched sensing data group.
  5. 제 4항에 있어서,The method of claim 4, wherein
    상기 프로세서는,The processor,
    상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 지 여부를 판단하고,It is determined whether the newly obtained node bundle exists between the previously stored node bundles.
    상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 것으로 판단되면, 상기 기존의 획득한 노드 번들 사이에 존재하는 상기 새로 획득한 노드 번들만을 추출하고,If it is determined that the newly acquired node bundle exists between the previously stored node bundles, only the newly acquired node bundle existing between the existing acquired node bundles is extracted,
    상기 추출한 새로 획득한 노드 번들만을 상기 노드 시퀀스로 선정하는 것을 특징으로 하는 이동 로봇 장치.And only the extracted newly acquired node bundle as the node sequence.
  6. 제 5항에 있어서,The method of claim 5,
    상기 프로세서는,The processor,
    상기 추출한 새로 획득한 노드 번들과 거리 차이가 더 작은 기존의 획득한 노드 번들을 갱신하고,Update the existing obtained node bundle with a smaller distance difference from the extracted newly acquired node bundle,
    상기 추출한 새로 획득한 노드 번들과 상기 갱신된 기존의 획득한 노드 번들 중 거리 차이가 가장 작은 노드 번들을 탐색하고,Search for the node bundle having the smallest distance difference between the extracted newly acquired node bundle and the updated existing acquired node bundle,
    상기 거리 차이가 가장 작은 노드 번들을 이용하여 상기 노드 시퀀스의 위치를 알아내는 것을 특징으로 하는 이동 로봇 장치.And locate the node sequence using the node bundle having the smallest difference in distance.
  7. 제 6항에 있어서,The method of claim 6,
    상기 프로세서는,The processor,
    가우시안 프로세스(Gaussian process)를 이용하여 상기 거리 차이가 더 작은 기존의 획득한 노드 번들로 갱신하는 것을 특징으로 하는 이동 로봇 장치.A mobile robotic device, characterized in that for updating a previously obtained node bundle having a smaller distance difference using a Gaussian process.
  8. 제 1항에 있어서,The method of claim 1,
    상기 프로세서는,The processor,
    상기 이동 로봇 장치가 이동하는 동안, 휠 센서를 통해 상기 이동 로봇 장치가 생성한 상기 그래프 구조에서 나타내는 위치 정보와는 다른 위치 정보를 감지하여 위치 인식에 실패할 경우, 상기 이동 로봇 장치가 회전을 하며 상기 이미지 센서와 상기 복수의 자지기 센서를 통해 새로운 이미지 데이터와 센싱 데이터를 획득하는 것을 특징으로 하는 이동 로봇 장치While the mobile robot device moves, if the mobile robot device detects location information different from the location information indicated by the graph structure generated by the mobile robot device and fails to recognize the location, the mobile robot device rotates. A mobile robot apparatus, wherein new image data and sensing data are acquired through the image sensor and the plurality of magnetic sensor sensors.
  9. 제 8항에 있어서,The method of claim 8,
    상기 프로세서는,The processor,
    상기 이동 로봇 장치가 새로 획득한 상기 이미지 데이터와 상기 센싱 데이터를 바탕으로 새로운 키노드와 노드 시퀀스를 획득하고,The mobile robot device obtains a new key node and node sequence based on the newly acquired image data and the sensing data.
    획득한 상기 새로운 키노드와 노드 시퀀스를 바탕으로 기존에 생성한 상기 그래프 구조와 비교하여 매칭되는지 여부를 판단하는 것을 특징으로 하는 이동 로봇 장치.And comparing the graph structure with the previously generated graph structure based on the acquired new key node and node sequence to determine whether or not a match is made.
  10. 제 9항에 있어서,The method of claim 9,
    상기 프로세서는,The processor,
    상기 기존에 생성한 그래프 구조와 매칭되는 상기 새로운 키노드와 노드 시퀀스를 바탕으로 상기 그래프 구조를 보정하는 것을 특징으로 하는 이동 로봇 장치The mobile robot device, characterized in that for correcting the graph structure on the basis of the new key node and node sequence matching the previously created graph structure
  11. 이동 로봇 장치의 제어 방법에 있어서,In the control method of a mobile robot device,
    상기 이동 로봇 장치가 이동하는 동안 이미지 센서를 통해 복수의 이미지 데이터를 획득하고, 복수의 지자기 센서를 통해 센싱 데이터를 획득하는 단계;Acquiring a plurality of image data through an image sensor and sensing data through a plurality of geomagnetic sensors while the mobile robot apparatus moves;
    상기 복수의 이미지 데이터로부터 특징점을 추출하고 상기 특징점을 바탕으로 키 노드들을 획득하는 단계;Extracting feature points from the plurality of image data and obtaining key nodes based on the feature points;
    상기 센싱 데이터를 바탕으로 노드 시퀀스를 획득하는 단계;Obtaining a node sequence based on the sensing data;
    상기 키 노드들과 상기 노드 시퀀스를 바탕으로 상기 이동 로봇 장치의 위치를 추정하는 그래프 구조를 생성하는 단계; 및Generating a graph structure for estimating the position of the mobile robot device based on the key nodes and the node sequence; And
    상기 이동 로봇 장치가 위치 인식을 실패할 경우 상기 그래프 구조를 보정하는 단계;를 포함하는 이동 로봇 장치의 제어방법.Correcting the graph structure when the mobile robot device fails to recognize a position.
  12. 제 11항에 있어서,The method of claim 11,
    상기 키 노드들을 획득하는 단계는,Obtaining the key nodes,
    상기 복수의 이미지 데이터에서 ORB(Oriented FAST and Rotated BRIEF)알고리즘을 이용하여 상기 특징점들을 추출하는 이동 로봇 장치의 제어방법.And extracting the feature points from the plurality of image data using an ORB algorithm.
  13. 제 11항에 있어서,The method of claim 11,
    상기 키 노드들을 획득하는 단계는,Obtaining the key nodes,
    상기 특징점들을 누적하여 서브맵(Submap)을 구성하는 단계;Accumulating the feature points to form a submap;
    상기 서브맵을 RANSAC(Random sample consensus) 알고리즘을 수행하고 가장 근접한 노드와 매칭하여 상기 키 노드를 획득하는 단계;를 포함하는 이동 로봇 장치의 제어방법.And performing the random sample consensus (RANSAC) algorithm on the submap and matching the closest node to obtain the key node.
  14. 제 11항에 있어서,The method of claim 11,
    상기 노드 시퀀스를 획득하는 단계는,Acquiring the node sequence,
    상기 획득한 센싱 데이터를 그룹핑하여 센싱 데이터 그룹을 획득하는 단계;Grouping the obtained sensing data to obtain a sensing data group;
    상기 센싱 데이터 그룹의 자기장값과 기존에 저장한 센싱 데이터 그룹의 자기장값들을 비교하여 매칭하는 단계; 및Comparing and matching magnetic field values of the sensing data group with magnetic field values of the previously stored sensing data group; And
    상기 매칭된 센싱 데이터 그룹을 바탕으로 한 쌍의 그래프 구조로 이루어진 노드 번들을 획득하는 단계;를 포함하는 이동 로봇 장치의 제어방법.Obtaining a node bundle having a pair of graph structures based on the matched sensing data group.
  15. 제 14항에 있어서,The method of claim 14,
    상기 노드 시퀀스를 획득하는 단계는,Acquiring the node sequence,
    상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 지 여부를 판단하는 단계; Determining whether the newly obtained node bundle exists between the previously stored node bundles;
    상기 기존에 저장된 노드 번들 사이에 상기 새로 획득한 노드 번들이 존재하는 것으로 판단되면, 상기 기존의 획득한 노드 번들 사이에 존재하는 상기 새로 획득한 노드 번들만을 추출하는 단계; 및 If it is determined that the newly acquired node bundle exists between the previously stored node bundles, extracting only the newly acquired node bundle existing between the existing acquired node bundles; And
    상기 추출한 새로 획득한 노드 번들만을 상기 노드 시퀀스로 선정하는 단계;를 포함하는 이동 로봇 장치의 제어방법.And selecting only the extracted newly acquired node bundle as the node sequence.
PCT/KR2019/007499 2018-06-22 2019-06-21 Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method WO2019245320A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/055,415 US12001218B2 (en) 2018-06-22 2019-06-21 Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862688700P 2018-06-22 2018-06-22
US62/688,700 2018-06-22
KR1020190024283A KR102601141B1 (en) 2018-06-22 2019-02-28 mobile robots and Localization method using fusion image sensor and multiple magnetic sensors
KR10-2019-0024283 2019-02-28

Publications (1)

Publication Number Publication Date
WO2019245320A1 true WO2019245320A1 (en) 2019-12-26

Family

ID=68983379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/007499 WO2019245320A1 (en) 2018-06-22 2019-06-21 Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method

Country Status (1)

Country Link
WO (1) WO2019245320A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275697A (en) * 2020-02-10 2020-06-12 西安交通大学 Battery silk-screen quality detection method based on ORB feature matching and LK optical flow method
CN114358166A (en) * 2021-12-29 2022-04-15 青岛星科瑞升信息科技有限公司 Multi-target positioning method based on self-adaptive k-means clustering
CN115993807A (en) * 2023-03-23 2023-04-21 日照鲁光电子科技有限公司 Production monitoring optimization control method and system for silicon carbide

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801261B1 (en) * 2006-11-03 2008-02-04 주식회사 에스씨티 Control method for robot having earth magnetic sensor
CN103674015A (en) * 2013-12-13 2014-03-26 国家电网公司 Trackless positioning navigation method and device
US20160377688A1 (en) * 2015-06-05 2016-12-29 Irobot Corporation Magnetic field localization and navigation
KR20160150504A (en) * 2015-06-22 2016-12-30 한국과학기술원 Method and apparatus for localization mobile robot usign indoor magnetic field
JP2017045447A (en) * 2015-08-28 2017-03-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Map generation method, own position estimation method, robot system and robot

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801261B1 (en) * 2006-11-03 2008-02-04 주식회사 에스씨티 Control method for robot having earth magnetic sensor
CN103674015A (en) * 2013-12-13 2014-03-26 国家电网公司 Trackless positioning navigation method and device
US20160377688A1 (en) * 2015-06-05 2016-12-29 Irobot Corporation Magnetic field localization and navigation
KR20160150504A (en) * 2015-06-22 2016-12-30 한국과학기술원 Method and apparatus for localization mobile robot usign indoor magnetic field
JP2017045447A (en) * 2015-08-28 2017-03-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Map generation method, own position estimation method, robot system and robot

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275697A (en) * 2020-02-10 2020-06-12 西安交通大学 Battery silk-screen quality detection method based on ORB feature matching and LK optical flow method
CN111275697B (en) * 2020-02-10 2022-04-22 西安交通大学 Battery silk-screen quality detection method based on ORB feature matching and LK optical flow method
CN114358166A (en) * 2021-12-29 2022-04-15 青岛星科瑞升信息科技有限公司 Multi-target positioning method based on self-adaptive k-means clustering
CN114358166B (en) * 2021-12-29 2023-11-07 青岛星科瑞升信息科技有限公司 Multi-target positioning method based on self-adaptive k-means clustering
CN115993807A (en) * 2023-03-23 2023-04-21 日照鲁光电子科技有限公司 Production monitoring optimization control method and system for silicon carbide
CN115993807B (en) * 2023-03-23 2023-06-09 日照鲁光电子科技有限公司 Production monitoring optimization control method and system for silicon carbide

Similar Documents

Publication Publication Date Title
US11127203B2 (en) Leveraging crowdsourced data for localization and mapping within an environment
WO2017091008A1 (en) Mobile robot and control method therefor
WO2019245320A1 (en) Mobile robot device for correcting position by fusing image sensor and plurality of geomagnetic sensors, and control method
WO2018074903A1 (en) Control method of mobile robot
WO2011013862A1 (en) Control method for localization and navigation of mobile robot and mobile robot using same
WO2019031714A1 (en) Method and apparatus for recognizing object
WO2020046038A1 (en) Robot and control method therefor
WO2016074169A1 (en) Target detecting method, detecting device, and robot
WO2019059505A1 (en) Method and apparatus for recognizing object
WO2015194864A1 (en) Device for updating map of mobile robot and method therefor
WO2015194867A1 (en) Device for recognizing position of mobile robot by using direct tracking, and method therefor
WO2020075954A1 (en) Positioning system and method using combination of results of multimodal sensor-based location recognition
WO2018124500A1 (en) Method and electronic device for providing object recognition result
CN108303094A (en) The Position Fixing Navigation System and its positioning navigation method of array are merged based on multiple vision sensor
JPWO2017017766A1 (en) Object detection method and object detection apparatus
WO2018207969A1 (en) Object detecting and classifying method
WO2020256517A2 (en) Automatic phase mapping processing method and system based on omnidirectional image information
WO2024155137A1 (en) Method and device for performing visual localization
WO2020080734A1 (en) Face recognition method and face recognition device
WO2020251151A1 (en) Method and apparatus for estimating user's pose by using three-dimensional virtual space model
CN118189959A (en) Unmanned aerial vehicle target positioning method based on YOLO attitude estimation
KR102601141B1 (en) mobile robots and Localization method using fusion image sensor and multiple magnetic sensors
Sun et al. Real-time and fast RGB-D based people detection and tracking for service robots
Wang et al. Online spatial and temporal initialization for a monocular visual-inertial-LiDAR system
WO2021221333A1 (en) Method for predicting position of robot in real time through map information and image matching, and robot

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: 19823087

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19823087

Country of ref document: EP

Kind code of ref document: A1