Traveling robot for generating traveling map and control method thereof

The depth camera acquires multiple scan data sets of height levels and generates a region map with high feature scores, which solves the problem of inaccurate positioning of autonomous driving robots when lacking feature data, and improves the accuracy of maps and the reliability of positioning.

CN119604391APending Publication Date: 2025-03-11SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380055734.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-10-26
Filing Date
2023-07-21
Publication Date
2025-03-11

AI Technical Summary

Technical Problem

When existing autonomous driving robots lack feature data at scanning heights, map position identification and positioning may become inaccurate, especially in environments with black materials that absorb light.

Method used

A depth camera is used to acquire multiple scan data sets of predetermined height levels, and by identifying feature scores corresponding to these scan data sets, an area map with high feature scores is generated, thereby improving the accuracy of positioning.

Benefits of technology

By generating area maps of multiple height levels, more feature data can be obtained at different heights, improving the accuracy and reliability of the map, especially in complex environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119604391A_ABST
    Figure CN119604391A_ABST
Patent Text Reader

Abstract

Disclosed are a traveling robot and a control method thereof. The driving robot includes a camera including a depth camera and at least one processor that: controls the camera to acquire depth data in one or more regions in which the driving robot moves; identifying a plurality of scanning data sets corresponding to a plurality of preset height levels based on the acquired depth data; identifying a plurality of feature scores respectively corresponding to the plurality of scanning data sets based on the plurality of scanning data sets; at least one local map corresponding to at least one piece of scanning data in the multiple scanning data sets is generated, and the feature score, corresponding to the at least one piece of scanning data, in the multiple feature scores is at least a preset threshold score.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a driving robot for generating a driving map and a control method thereof. Background Art

[0002] Automation technology using robots has been provided in various fields. In factories, robots are used to produce products. Robots that cook ordered food have also appeared, and robots that serve food have also appeared.

[0003] The robot can receive orders from users by touch or voice and cook food based on set recipes. The robot can recognize the user's location and its surroundings, and autonomously drive to deliver the ordered food to the user's location taking into account the recognized surroundings.

[0004] Autonomous driving robots can perform their autonomous driving by using various sensors to generate maps and set driving path planning on the maps. Many robots use two-dimensional (2D) light detection and ranging (LiDAR) sensors as sensors for their driving. However, 2D LiDAR sensors can only scan the surrounding environment at the height at which the sensor is installed in the robot, and may perform inaccurate scanning in an environment with black materials that absorb light. Small robots can also use depth cameras. However, three-dimensional (3D) simultaneous localization and mapping (SLAM) using all depth data may require a lot of computing resources. Recently, a method has been designed in which only depth data at a specific height is used as virtual scanning data, just like a 2D LiDAR sensor. However, also in this method, the surrounding environment can be scanned at a specific height like the method using a 2D LiDAR sensor. Therefore, in the absence of feature data at the scanning height, position recognition and positioning on the map may become inaccurate. Summary of the invention

[0005] Technical Solution

[0006] According to one aspect of the present disclosure, a traveling robot includes: a camera, including a depth camera; and at least one processor, configured to: control the camera to acquire depth data in one or more areas in which the traveling robot moves, identify multiple scan data sets corresponding to multiple predetermined height levels from the acquired depth data, identify multiple feature scores corresponding to the multiple scan data sets based on the multiple scan data sets, and generate at least one area map corresponding to at least one scan data set of the multiple scan data sets, wherein a feature score among the multiple feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value.

[0007] According to one aspect of the present disclosure, a method for controlling a traveling robot includes: acquiring depth data in one or more areas in which the traveling robot moves; identifying a plurality of scan data sets corresponding to a plurality of predetermined height levels from the acquired depth data; identifying a plurality of feature scores corresponding to the plurality of scan data sets based on the plurality of scan data sets; and generating at least one area map corresponding to at least one scan data set among the plurality of scan data sets, wherein a feature score among the plurality of feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value.

[0008] According to one aspect of the present disclosure, a non-transitory computer-readable storage medium stores instructions, which, when executed by a processor, cause the processor to execute a method for controlling a traveling robot, the method comprising: acquiring depth data in one or more areas in which the traveling robot moves; identifying multiple scan data sets corresponding to multiple predetermined height levels from the acquired depth data; identifying multiple feature scores corresponding to the multiple scan data sets based on the multiple scan data sets; and generating at least one area map corresponding to at least one scan data set of the multiple scan data sets, wherein a feature score among the multiple feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other aspects, features and advantages of certain embodiments of the present disclosure will become more apparent through the following description in conjunction with the accompanying drawings, in which:

[0010] Figure 1 is a diagram showing a traveling robot according to one or more embodiments;

[0011] Figure 2 is a block diagram showing a configuration of a traveling robot according to one or more embodiments;

[0012] Figure 3 is a block diagram showing a specific configuration of a traveling robot according to one or more embodiments;

[0013] Figure 4a , Figure 4b , Figure 4c and Figure 4d is a diagram illustrating a process of generating an area map having multiple height levels according to one or more embodiments;

[0014] Figure 5a and Figure 5b is a diagram illustrating a positioning process according to one or more embodiments; and

[0015] Figure 6is a flowchart illustrating a control method of a traveling robot according to one or more embodiments. DETAILED DESCRIPTION

[0016] Hereinafter, various embodiments are described in more detail with reference to the accompanying drawings. One or more embodiments described in the specification may be modified in various ways. Specific embodiments may be shown in the accompanying drawings and described in detail in the specific embodiments. However, the specific embodiments disclosed in the accompanying drawings are only provided to help easily understand the various embodiments. Therefore, it should be understood that the spirit of the present disclosure is not limited to the specific embodiments shown in the accompanying drawings, and includes all equivalents and substitutes included in the spirit and scope of the present disclosure.

[0017] Terms including ordinal numbers such as "first" and "second" may be used to describe various components. However, these components are not limited by these terms. These terms are only used to distinguish one component from another.

[0018] It should be understood that the terms "include" and "comprising" used in the specification specify the presence of features, numbers, steps, operations, components, parts or combinations thereof mentioned in the specification, and do not exclude the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof. It should be understood that if a component is referred to as being "connected to" or "coupled to" another component, a component may be directly connected to or directly coupled to another component, or may be connected to or coupled to another component while a third component is interposed therebetween. On the other hand, it should be understood that if a component is referred to as being "directly connected to" or "directly coupled to" another component, a component may be connected to or coupled to another component without interposing a third component therebetween.

[0019] In addition, the term "module" or "device / processor" used for the component used in the specification performs at least one function or operation. In addition, the "module" or "device / processor" may perform a function or operation by hardware, software, or a combination of hardware and software. In addition, multiple "modules" or multiple "devices / processors" other than the "module" or "device / processor" executed by specific hardware or executed by at least one processor may be integrated in at least one module. A singular term may include its plural number unless otherwise clearly stated in the context.

[0020] When describing the present disclosure, the order of each operation should be understood as non-restrictive, unless the previous operation in the order of each operation needs to be logically and temporally before the subsequent operation. That is, except for the above-mentioned exceptions, the essence of the present disclosure is not affected even if the process described as the subsequent operation is performed before the process described as the previous operation, and the scope of the present disclosure should not be limited by the order of the disclosed operations. In addition, the expression "at least one of a, b or c" includes "only a", "only b", "only c", "both a and b", "both a and c", "both b and c", or "all of a, b and c". In addition, the term "comprising" in the specification may have the meaning of covering other components in addition to the components listed as included.

[0021] The specification only describes the necessary components necessary for describing the present disclosure, and does not mention components irrelevant to the essence of the present disclosure. In addition, it should not be interpreted as an exclusive meaning that the present disclosure only includes the mentioned components, but should be interpreted as a non-exclusive meaning that the present disclosure may also include other components.

[0022] In addition, when describing the present disclosure, in the case where a detailed description of known functions or configurations related to the present disclosure may unnecessarily obscure the gist of the present disclosure, the detailed description is summarized or omitted. In addition, the various embodiments may be implemented or operated independently, and may be implemented or operated in combination.

[0023] Figure 1 is a diagram illustrating a traveling robot according to one or more embodiments.

[0024] Figure 1 A traveling robot 100 is shown. The traveling robot 100 can generate a map while moving within a certain area. The traveling robot 100 can move to area A to generate an area map of area A, and move to area B to generate an area map of area B. The traveling robot 100 can generate an entire map (or a global map) based on the area map generated for each area. In the case of generating a map, the traveling robot 100 can set a movement plan based on the entire map. While moving based on the set movement plan, the traveling robot 100 can perform positioning based on the area map of the area where the traveling robot 100 is located. Positioning may include a process in which the traveling robot 100 identifies its exact position and direction. The traveling robot 100 can identify its exact position and direction based on the entire map and the driving map, and can move to the destination based on the movement plan.

[0025] For example, the traveling robot 100 can generate a map of the third floor of a building including a first office, a corridor, and a second office. In this case, the traveling robot 100 can move to the first office and generate an area map of the first office. The traveling robot 100 can obtain data about the walls, objects, etc. of the first office. The depth data may include data obtained by the traveling robot 100 from the first office. For example, the traveling robot 100 can obtain depth data of a table 5 located in the first office. The traveling robot 100 can generate an area map of the first office based on the acquired depth data. In addition, the traveling robot 100 can generate an area map of the corridor while moving along the corridor, and move to the second office to generate an area map of the second office.

[0026] In the case of generating each area map of each area on the third floor of the building, the traveling robot 100 can generate the entire map of the third floor of the building based on the generated area map. After generating the entire map, the traveling robot 100 can move from the first office to the second office. The traveling robot 100 can set a moving path from the first office to the second office based on the generated entire map. The traveling robot 100 can move based on the set moving path. The traveling robot 100 can identify its current position while moving. The traveling robot 100 can acquire data about the current position while moving. For example, in the case where the traveling robot 100 is located in the first office, it can acquire depth data of the walls, objects, etc. of the first office. The traveling robot 100 can compare the acquired depth data with the generated area map, and identify that the acquired depth data matches or is most similar to the area map of the first office. The traveling robot 100 can recognize that the current position is the first office. In addition, the traveling robot 100 can identify which area of ​​the area map of the first office the depth data acquired from the front matches or is most similar to. The traveling robot 100 may identify that the matching or most similar area in the area map of the first office is the direction in which the traveling robot 100 is moving. The traveling robot 100 may move by identifying the direction in which it is to move based on the identified position and direction, the set moving path, and the entire map. The traveling robot 100 may move from the first office to the second office while repeating the above process.

[0027] In the above, the description explains an exemplary example in which the traveling robot 100 generates a map and moves. The following description explains the configuration of the traveling robot.

[0028] Figure 2 is a block diagram showing a configuration of a traveling robot according to one or more embodiments.

[0029] refer to Figure 2 The traveling robot 100 may include a camera 110 and a processor 120 .

[0030] The camera 110 may capture the surrounding environment of the traveling robot 100. The processor 120 may recognize data about the surrounding environment based on the image captured by the camera 110. The camera 110 may include a depth camera and acquire depth data of the surrounding environment. For example, in the case where the camera 110 including the depth camera captures a space in which walls and objects are arranged, the camera 110 may acquire depth data of the walls and objects. In addition, in addition to the depth camera, the camera 110 may also include a red, green, and blue (RGB) camera, a wide-angle camera, a telephoto camera, and the like.

[0031] The traveling robot 100 may include one or more processors 120. The processor 120 may control each component of the traveling robot 100. For example, the processor 120 may control the camera 110 to acquire depth data of the surrounding environment.

[0032] The processor 120 may identify scan data of a plurality of predetermined height levels from the acquired depth data. The camera 110 may acquire all depth data within the field of view of the camera 110. The processor 120 may include data about one or more specific height levels to be virtually scanned. The processor 120 may identify the scan data by scanning the depth data of the predetermined height level from the acquired depth data. For example, the processor 120 may set the height level of 0.2m, the height level of 0.4m, and the height level of 0.6m as the height level to be scanned. Then, the processor 120 may scan each depth data corresponding to the set height level, and identify the scan data of the height level of 0.2m, the scan data of the height level of 0.4m, and the scan data of the height level of 0.6m. The processor 120 may identify the feature score of each identified scan data. For example, the processor 120 may identify the feature score based on the number of angles of the scan data, the angle (i.e., the angle size), the number of lines, and the sharpness (sharpness) of the scan data (or angle or line), etc. The processor 120 may generate the scan data of at least one height level having the identified predetermined critical value or higher value as an area map. For example, the predetermined critical value may be 30 points, and the processor 120 may set the scan data at a height level of 0.2 m to have a feature score of 10 points, the scan data at a height level of 0.4 m to have a feature score of 40 points, and the scan data at a height level of 0.6 m to have a feature score of 60 points. In this case, the processor 120 may generate each of the scan data at a height level of 0.4 m and the scan data at a height level of 0.6 m as an area map of the corresponding area.

[0033] In the case of generating multiple area maps, among the scan data at the height levels having feature scores of a predetermined critical value or higher, respectively, the processor 120 may identify the scan data having the highest feature score as the main area map, and identify the other scan data as sub-area maps. In addition, the processor 120 may reduce the sub-area map. For example, among the area map at a height level of 0.4m and the area map at a height level of 0.6m, the processor 120 may identify the area map at a height level of 0.6m having the highest feature score as the main area map, and may identify the other area maps at a height level of 0.4m as sub-area maps. The processor 120 may reduce the area map at a height level of 0.4m identified as the sub-area map. That is, the processor 120 may reduce the size, resolution, and data volume of the sub-area map.

[0034] When the traveling robot 100 moves in each area, the processor 120 can identify multiple levels of scan data of the area where the traveling robot 100 is located in the above manner, thereby generating one or more area maps. In the case where the traveling robot 100 explores all areas and generates area maps of all areas, the processor 120 can generate the entire map based on the scan data of each area. The processor 120 can identify the feature score of each height level in the entire area based on the feature scores of the scan data of multiple height levels identified in each area. In addition, the processor 120 can generate the scan data of the level with the highest feature score or the highest average feature score in the entire area as the entire map.

[0035] For example, the processor 120 may identify that the scan data at a height level of 0.2 m in region A has a feature score of 10 points, the scan data at a height level of 0.4 m has a feature score of 40 points, and the scan data at a height level of 0.6 m has a feature score of 60 points. The processor 120 may identify that the scan data at a height level of 0.2 m in region B has a feature score of 30 points, the scan data at a height level of 0.4 m has a feature score of 70 points, and the scan data at a height level of 0.6 m has a feature score of 50 points. The processor 120 may identify that the scan data at a height level of 0.2 m in region C has a feature score of 40 points, the scan data at a height level of 0.4 m has a feature score of 30 points, and the scan data at a height level of 0.6 m has a feature score of 70 points. The processor 120 can recognize that the scan data at a height level of 0.2m in the entire area has a feature score of 80 points (10 points + 30 points + 40 points), the scan data at a height level of 0.4m has a feature score of 140 points (40 points + 70 points + 30 points), and the scan data at a height level of 0.6m has a feature score of 180 points (60 points + 50 points + 70 points). Since the scan data at a height level of 0.6m has the highest feature score in the entire area, the processor 120 can generate the scan data at a height level of 0.6m as the entire map. That is, the processor 120 can generate the entire map by connecting or integrating (e.g., connecting, integrating, or putting together) the scan data at a height level of 0.6m in area A, the scan data at a height level of 0.6m in area B, and the scan data at a height level of 0.6m in area C.

[0036] Alternatively, the processor 120 may identify a reference height level, and generate the scan data of the reference height level identified in each area as the entire map. For example, the processor 120 may identify the height level of the scan data with the highest feature score identified in the area where the traveling robot is initially located as the reference height level. For example, the processor 120 may control the camera 110 to acquire depth data at 360 degrees while rotating the traveling robot 100 in the horizontal direction in the area where the traveling robot is initially located. The processor 120 may identify scan data of a plurality of predetermined height levels from the depth data acquired at 360 degrees. The processor 120 may identify the feature score of the scan data of each height level identified. The processor 120 may identify the level of the scan data with the highest feature score as the reference height level. The processor 120 may generate the entire map by identifying the scan data of the reference height level in each area in which the traveling robot 100 moves, and connecting the scan data of the identified reference height level to each other. The processor 120 may set a moving path based on the generated entire map, and may perform a positioning process of the traveling robot 100 based on the generated regional map. The positioning process may be a process in which the traveling robot 100 identifies its current position and direction.

[0037] The processor 120 may identify the position and direction of the traveling robot 100 based on the generated regional map. After generating the map, the processor 120 may move the traveling robot 100 from the current position of the traveling robot 100 to the destination. The processor 120 may set a weight for each regional map based on the feature score of the generated regional map (or scan data). The processor 120 may set a high weight for a regional map with a high feature score, and set a low weight for a regional map with a low feature score. For example, the processor 120 may set the feature score as a weight. That is, the feature score corresponding to each regional map may be used as a weight. Alternatively, the processor 120 may set a weight only for the regional map with the highest feature score, while ignoring other regional maps. Alternatively, the processor 120 may not set a weight for a regional map determined to be unnecessary in a specific area. The processor 120 may acquire depth data in the area where the traveling robot 100 is located, and identify scan data at a predetermined height level. The processor 120 may compare the identified scan data with the generated regional map. The processor 120 may identify a regional map that matches the identified scan data or a regional map that has the highest similarity with the scan data. The processor 120 may recognize the position and direction of the traveling robot 100 based on the recognized area map.

[0038] The processor 120 can generate an entire map to be used for path planning by integrating the area map with the highest average score or the area map with the highest feature score sum among the area maps with feature scores of a critical value or higher. In the case where the robot 100 is traveling, the processor 120 can perform positioning by virtually scanning the area map of the candidate area and the depth data corresponding to the specific height of the candidate area map. The processor 120 can determine the current position of the robot by applying (or integrating) the weight of each area map. The processor 120 can determine the current position of the robot 100 using the area map and weight corresponding to the virtual scanning data at one or more specific heights determined by the above process, even if the result may partially vary based on the positioning algorithm.

[0039] Figure 3 is a block diagram showing a specific configuration of a traveling robot according to one or more embodiments.

[0040] refer to Figure 3 The traveling robot may include a camera 110 , a processor 120 , a motor 130 , an input interface 135 , a communication interface 140 , a microphone 145 , a sensor 150 , a display 155 , a speaker 160 , and a memory 165 .

[0041] The motor 130 can move the traveling robot 100 and move the components of the traveling robot 100. For example, the motor 130 can rotate or move the traveling robot 100 by driving the wheels of the traveling robot 100. Alternatively, the motor 130 can move the camera 110 of the traveling robot 100, move the arm, etc. A plurality of motors 130 may be included in the traveling robot 100, and each motor 130 can move each component of the traveling robot 100.

[0042] The input interface 135 may receive control commands from the user. For example, the input interface 135 may receive commands such as power on / off, input of setting values ​​for traveling the robot 100, and menu selection from the user. The input interface 135 may include a keyboard, a button, a keypad, a touch pad, or a touch screen. The input interface 135 may also be referred to as an input device, an inputter, an input module, etc.

[0043] The communication interface 140 may perform communication with an external device. For example, the communication interface 140 may perform communication with an external device by using at least one of a communication method such as Wireless Fidelity (Wi-Fi), Wi-Fi Direct, Bluetooth, ZigBee, Third Generation (3G), Third Generation Partnership Project (3GPP), or Long Term Evolution (LTE). The communication interface 140 may also be referred to as a communication device, a communicator, a communication module, a transceiver, etc.

[0044] The microphone 145 may receive user voice. For example, the microphone 145 may receive a control command or the like from the user as voice input. The processor 120 may recognize the control command based on the input user voice and perform related control operations. For example, the traveling robot 100 may include one or more microphones 145. The microphone 145 may include a normal microphone, a surround microphone, a directional microphone, etc.

[0045] The sensor 150 may detect the surrounding environment. The sensor 150 may detect depth data of the surrounding environment. Optionally, the sensor 150 may detect road conditions, bumps on the floor, obstacles, etc. For example, the sensor 150 may include an angle sensor, an acceleration sensor, a gravity sensor, a gyroscope sensor, a geomagnetic sensor, a direction sensor, an infrared sensor, an ultrasonic sensor, a time of flight (ToF) sensor, a light detection and ranging (LiDAR) sensor, a laser sensor, a motion recognition sensor, a thermal sensor, an image sensor, a tracking sensor, a proximity sensor, an illumination sensor, a voltmeter, an ammeter, a barometer, a hygrometer, a thermometer, a touch sensor, etc.

[0046] The display 155 may output the data processed by the processor 120 as an image. The display 155 may display data and output a screen corresponding to the recognized user command. For example, the display 155 may be implemented as a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a flexible display, a touch screen, etc. In the case where the display 155 is implemented as a touch screen, the traveling robot 100 may receive a control command through the touch screen.

[0047] The speaker 160 may output a sound signal. For example, the speaker 160 may output data related to a user input command, data related to a warning, data related to the state of the traveling robot 100, data related to the operation of the traveling robot 100, etc. as voice or notification sound.

[0048] The memory 165 may store data, algorithms, etc. for executing the functions of the traveling robot 100, and may store programs, instructions, etc. driven by the traveling robot 100. Optionally, the memory 165 may store data related to one or more specific height levels to be virtually scanned, depth data, an entire map, an area map, weight data, etc. The algorithm or data stored in the memory 165 may be loaded into the processor 120 under the control of the processor 120 to perform a map generation process or a positioning process. For example, the memory 165 may be implemented as a read-only memory (ROM), a random access memory (RAM), a hard disk drive (HDD), a solid-state drive (SDD), a memory card, and the like.

[0049] The traveling robot 100 may include all of the above components or may include some of the components. Hereinafter, the description explains the configuration of the traveling robot 100. The following description explains a map generation process performed by the traveling robot 100 and a positioning process from the generated map.

[0050] Figure 4a , Figure 4b , Figure 4c and Figure 4d is a diagram illustrating a process of generating an area map having a plurality of altitude levels according to one or more embodiments.

[0051] Figure 4a The driving robot 100 may obtain depth data 10 of the surrounding environment by using a camera 110. For example, the camera 110 may include a depth camera and obtain depth data 10 within a field of view. The depth data 10 may include depth data of a wall, depth data of an object, and the like.

[0052] The traveling robot 100 may identify scanning data of a plurality of height levels 11, 14, 15, and 17 from the acquired depth data 10. The height level may be a predetermined height level to be virtually scanned by the traveling robot 100 from the acquired depth data 10. For example, the plurality of height levels 11, 14, 15, and 17 may include a first level 11, a fourth level 14, a fifth level 15, and a seventh level 17 (wherein intermediate levels may also be scanned, but for the purpose of this disclosure, only these exemplary levels are discussed). Here, the first level 11 may be a level corresponding to an actual height of 1.4 m, the fourth level 14 may be a level corresponding to an actual height of 0.8 m, the fifth level 15 may be a level corresponding to an actual height of 0.6 m, and the seventh level 17 may be a level corresponding to an actual height of 0.2 m. The traveling robot 100 may detect its distance to the wall surface by using a distance sensor, an ultrasonic sensor, or the like. In addition, the traveling robot 100 may detect the angle of an object or the angle of a specific position of an object by using an angle sensor, or the like. Alternatively, the traveling robot 100 may recognize angle data of the camera 110, and thus recognize the angle of an object, the angle of a specific position of an object, or the angle of a specific position of a wall surface based on the angle data of the camera 110. The traveling robot 100 may calculate actual height data based on the detected distance data or angle data.

[0053] Figure 4b Scan data for each height level is shown.

[0054] The traveling robot 100 may acquire scanning data 21, 24, 25, or 27 for each height level 11, 14, 15, or 17. The first scanning data 21 may correspond to the first level, the fourth scanning data 24 may correspond to the fourth level, the fifth scanning data 25 may correspond to the fifth level 15, and the seventh scanning data 27 may correspond to the seventh level 17.

[0055] Each scan data 21, 24, 25 or 27 may be data scanned along a line at a specific height of the depth data 10. Therefore, each scan data 21, 24, 25 or 27 may include depth data. The depth data 10 indicates the degree of depth of the object (or wall surface) and may therefore include unevenness data. Therefore, each scan data 21, 24, 25 or 27 scanned along a line at a specific height may include a line and an angle based on the depth (or unevenness) of the object (or wall surface).

[0056] The traveling robot 100 can identify the feature score of the scan data at each height level. For example, the feature score can be calculated based on the number of angles, the angle, the number of lines, the clarity of the lines or angles, etc. For example, the traveling robot 100 can assign a higher feature score to a larger angle or the number of lines. Alternatively, the traveling robot 100 can assign a higher feature score to a larger angle. Alternatively, the traveling robot 100 can assign a higher feature score to a higher clarity. A larger angle or the number of lines or a larger angle can indicate a larger depth change. That is, a high feature score can indicate that the object (or wall) has many identifiable features. In addition, high clarity can indicate a lot of reflected light. For example, a white wall can have high-definition scan data, and a black wall can have low-definition scan data. A lot of reflected light can indicate that a large amount of feature data of the wall or object has been acquired. That is, scan data with a high feature score can indicate that the scan data includes many features of the wall or object.

[0057] The traveling robot 100 may generate the scan data having a feature score higher than a critical value as an area map.

[0058] The traveling robot 100 can identify the scanning data 21, 24, 25 or 27 having a feature score higher than the critical value in the scanning data at each height level. The traveling robot 100 can obtain depth data in various directions from its current position, and obtain scanning data in various directions similarly to the above process. In addition, the traveling robot 100 can generate an area map based on the acquired scanning data in various directions.

[0059] Figure 4c A map of the region is shown.

[0060] For example, the traveling robot 100 may identify the first scanning data 21, the fourth scanning data 24, the fifth scanning data 25, and the seventh scanning data 27 as scanning data having a feature score higher than a critical value. Figure 4c As shown, the traveling robot 100 may generate the first scanning data 21 as a first area map 31 , set the fourth scanning data 24 as a fourth area map 34 , set the fifth scanning data 25 as a fifth area map 35 , and set the seventh scanning data 27 as a seventh area map 37 . Figure 4c Each of the area maps 31, 34, 35 or 37 shown in FIG. 1 may be an area map generated based on the scan data of each height level of one depth data 10. Therefore, Figure 4c Each of the area maps 31 , 34 , 35 , or 37 shown in FIG. 1 may be an area map having different altitudes at the same position.

[0061] The traveling robot 100 may use the area map 31, 34, 35, or 37 above the critical value in the positioning process. The traveling robot 100 may distinguish the main area map and the sub-area map from each other and reduce the sub-area map to reduce the amount of data.

[0062] Figure 4d A main region map and two sub-region maps are shown.

[0063] As described above, the traveling robot 100 can generate an area map for each level by connecting the scan data of each level acquired in each direction of the corresponding position. For example, the traveling robot 100 can generate a first area map by connecting the scan data of the first level acquired in each direction to each other, generate a fourth area map by connecting the scan data of the fourth level to each other, generate a fifth area map by connecting the scan data of the fifth level to each other, and generate a seventh area map by connecting the scan data of the seventh level to each other. The traveling robot 100 can determine the area map to be used for positioning based on the feature scores of the generated area maps. For example, the traveling robot 100 can determine the fourth area map 34, the fifth area map 35, and the seventh area map 37 that are above a predetermined critical value as the area maps to be used for positioning.

[0064] The traveling robot 100 may identify the scan data having the highest identified feature score as the main area map 34, and identify the other scan data as sub-area maps 35 and 37. For example, the fourth area map 34 may have the highest feature score. In this case, the traveling robot 100 may determine the fourth area map 34 as the main area map, and determine the fifth area map 35 and the seventh area map 37 as sub-area maps. In addition, the traveling robot 100 may reduce the fifth area map 35 and the seventh area map 37 determined as sub-area maps.

[0065] The traveling robot 100 can reduce the amount of data by reducing the sub-area map. Alternatively, the traveling robot 100 can store the main area map (or scan data) and the sub-area map (or scan data), and delete the area map (or scan data) other than the area map determined for positioning. Alternatively, the traveling robot 100 can delete the area map other than the main area map. That is, the traveling robot 100 can store only the area map (or scan data) with a feature score of a predetermined score or higher to reduce the amount of data.

[0066] Alternatively, the traveling robot 100 may store all area maps (or scan data) and use only area maps (or scan data) with a predetermined score or higher for positioning. The traveling robot 100 may use the stored area maps (or scan data) not used for positioning for another purpose. For example, the traveling robot 100 may use the stored area maps when generating the entire map, and may use the additional area maps when its position or direction cannot be accurately identified.

[0067] The traveling robot 100 can generate an area map through the above process and determine the area map to be used for positioning. The traveling robot 100 can generate and determine the area map of each area. In the case of generating an area map of the entire area, the traveling robot 100 can identify the feature score of the area map with each height level in the entire area. In addition, the traveling robot 100 can generate the entire map by connecting the area maps of the height level to which the highest feature score is assigned in the entire area to each other.

[0068] Optionally, the traveling robot 100 may acquire depth data while rotating around 360 degrees. In addition, the traveling robot 100 may acquire scan data of each height level from the acquired depth data and identify a feature score. The traveling robot 100 may determine scan data of a height level having the highest feature score among the scan data of each height level identified. The traveling robot 100 may identify the height level of the scan data having the highest feature score as a reference height level, and generate the entire map based on the scan data of the reference height level.

[0069] The traveling robot 100 may use the entire map when setting its movement path, and use the area map of each area when determining its position and direction.

[0070] Figure 5a and Figure 5b is a diagram illustrating a positioning process according to one or more embodiments.

[0071] Figure 5a Depth data is shown. The traveling robot 100 can generate an entire map and then move from its current position (e.g., point A) to another position (e.g., point B). The traveling robot 100 can set its path for moving from point A to point B by using the entire map. The traveling robot 100 can move based on the set moving path. The traveling robot 100 can identify its current position and direction while moving.

[0072] The traveling robot 100 may acquire depth data 50 of the surrounding environment by using the camera 110. The traveling robot 100 may identify scan data of a plurality of height levels 51, 52, and 53 from the acquired depth data 50. The scan data identified while the traveling robot moves may be equal to or less than the scan data identified when the traveling robot generates an area map.

[0073] Figure 5b Scan data for each height level is shown.

[0074] The traveling robot 100 may acquire the scan data 61, 62, or 63 of each height level. The traveling robot 100 may compare the acquired scan data 61, 62, or 63 of each height level with the generated area map 71, 72, or 73. Here, the traveling robot 100 may set a weight for each area map 71, 72, or 73 based on the feature score of the generated area map 71, 72, or 73. For example, in the case where the feature score increases in the order of the second area map 72, the third area map 73, and the first area map 71, the traveling robot 100 may set weights of 0.5, 0.3, and 0.2 for the second area map 72, the third area map 73, and the first area map 71, respectively. The weight may be the feature score of each area map 71, 72, or 73. In addition, the traveling robot 100 may identify the position and direction of the traveling robot 100 corresponding to the area map that matches or has the highest similarity based on the area map 71, 72, or 73 with the set weight and the acquired scan data 61, 62, or 63. The position and direction recognized by the traveling robot 100 may be the position and direction of the traveling robot 100. The traveling robot 100 may recognize the position and direction while moving in the above-described manner.

[0075] Hereinafter, various embodiments are described in which the traveling robot 100 generates a map and recognizes its position and direction. The following description describes a control method of the traveling robot.

[0076] Figure 6 is a flowchart illustrating a control method of a traveling robot according to one or more embodiments.

[0077] Reference Figure 6, the traveling robot may acquire depth data (S610). The traveling robot may acquire depth data of each area in which the traveling robot moves. Then, the traveling robot may identify the scan data (S620). The traveling robot may identify scan data of a plurality of predetermined height levels from the acquired depth data.

[0078] The traveling robot may identify a feature score (S630). The traveling robot 100 may identify a feature score for each of the identified scan data of the plurality of height levels. For example, the traveling robot may identify a feature score based on the number of angles, angles, number of lines, clarity, etc. of the scan data.

[0079] The traveling robot may generate an area map (S640). The traveling robot may generate scan data having a high level of feature scores of a predetermined critical value or higher value identified as an area map. The traveling robot may generate one or more area maps. For example, in the case of generating multiple area maps, the traveling robot may identify an area map having a feature score of a predetermined critical value or higher value. Among the area maps identified as having a critical value or higher value, the traveling robot may identify the area map generated from the scan data having the highest feature score as the main area map, and identify the area maps generated from other scan data as sub-area maps. The traveling robot may reduce the identified sub-area map. The traveling robot may also store or delete area maps other than the area maps identified as the main area map or the sub-area map (or scan data). Optionally, the traveling robot may store or delete scan data that is less than a predetermined critical value.

[0080] The traveling robot can generate an entire map based on the regional map. For example, the traveling robot can identify the feature score of each height level in the entire area based on the feature scores of the scan data of multiple height levels identified in each area. The traveling robot can generate the scan data of the level with the highest feature score for each height level in the identified entire area as the entire map. Optionally, the traveling robot can identify a reference height level and generate the scan data of the reference height level identified in each area as the entire map. For example, the traveling robot can identify the height level of the scan data with the highest feature score identified in the area where the traveling robot was initially located as the reference height level.

[0081] The traveling robot may set weights based on the feature scores of the area maps. The traveling robot may identify its position and direction based on at least one area map with the set weights and the acquired scan data.

[0082] The beneficial effects of the present disclosure are not limited to those mentioned above, and other effects not mentioned here can be obviously understood by those skilled in the art from the above description.

[0083] The control method of the traveling robot according to the above-described various embodiments may be provided as a computer program product. The computer program product may include a software (S / W) program itself or a non-transitory computer-readable medium in which the S / W program is stored.

[0084] A non-transitory computer-readable medium is not a medium that temporarily stores data (such as a register, cache, or memory), and indicates a medium that stores data semi-permanently and can be read by a machine. In detail, the above-mentioned various applications or programs can be stored and provided in a non-transitory computer-readable medium (such as a compact disk (CD), a digital versatile disk (DVD), a hard disk, a Blu-ray disk, a universal serial bus (USB), a memory card, or a read-only memory (ROM)).

[0085] In addition, although the embodiments are shown and described in the present disclosure as above, the present disclosure is not limited to the above-mentioned specific embodiments, and various modifications can be made by those skilled in the art to which the present disclosure belongs without departing from the gist of the present disclosure disclosed in the appended claims. These modifications should also be understood to fall within the scope and spirit of the present disclosure.

Claims

1. A traveling robot, comprising: Cameras, including depth cameras; as well as At least one processor configured to: controlling the camera to acquire depth data in one or more areas in which the traveling robot moves, identifying, from the acquired depth data, a plurality of scan data sets corresponding to a plurality of predetermined height levels, identifying a plurality of feature scores corresponding to the plurality of scan data sets based on the plurality of scan data sets, and At least one area map corresponding to at least one scan data set among the plurality of scan data sets is generated, wherein a feature score among the plurality of feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value.

2. The traveling robot according to claim 1, wherein: The at least one processor is further configured to: identifying a first scan data set of the plurality of scan data sets corresponding to an identified highest feature score of the plurality of feature scores as a primary region map, and Based on identifying one or more feature scores among the multiple feature scores that are greater than the predetermined critical value, each scan data set among the multiple scan data sets except the first scan data set that has a corresponding feature score among the multiple feature scores that is greater than the predetermined critical value is identified as a sub-area map.

3. The traveling robot according to claim 2, wherein: The at least one processor is further configured to zoom out of each identified sub-region map.

4. The traveling robot according to claim 1, wherein: The at least one processor is further configured to identify the plurality of feature scores based on at least one of a number of angles, a size of the angles, a number of lines, and a sharpness of the scan data.

5. The traveling robot according to claim 2, wherein: The one or more areas in which the traveling robot moves together form an entire area, Wherein, the at least one processor is further configured to: identifying, within the plurality of scan data sets, one or more regional scan data sets corresponding to each of the one or more regions within the entire region, identifying, for each of the one or more area scan data sets, a plurality of area feature scores corresponding to each of the plurality of predetermined height levels, identifying, in the entire area, a plurality of whole-area feature scores corresponding to the plurality of predetermined height levels based on the plurality of area feature scores, identifying a first predetermined height level among the plurality of predetermined height levels corresponding to a highest full-area feature score among the plurality of full-area feature scores, and A map of the entire area is generated based on each of the plurality of scan data sets corresponding to the first predetermined altitude level.

6. The traveling robot according to claim 5, wherein: The at least one processor is further configured to: Based on the feature score of the at least one area map, a weight is set for the at least one area map, and Based on the at least one area map having the set weights and the plurality of scan data sets, a position and an orientation of the traveling robot are identified.

7. The traveling robot according to claim 1, in, The at least one processor is further configured to: identifying a height level among the plurality of predetermined height levels as a reference height level, and A map of the entire area is generated based on scan data sets among the plurality of scan data sets corresponding to the reference altitude level identified in each of the one or more areas.

8. The traveling robot according to claim 7, wherein: The at least one processor is further configured to identify, as the reference height level, a height level among the plurality of predetermined height levels corresponding to a highest feature score among the plurality of feature scores identified in an area in which the traveling robot is initially located in the one or more areas.

9. A method for controlling a traveling robot, the method comprising: acquiring depth data in one or more areas in which the traveling robot moves; identifying, from the acquired depth data, a plurality of scan data sets corresponding to a plurality of predetermined height levels; identifying a plurality of feature scores corresponding to the plurality of scan data sets based on the plurality of scan data sets; as well as At least one area map corresponding to at least one scan data set among the plurality of scan data sets is generated, wherein a feature score among the plurality of feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value.

10. The method according to claim 9, wherein: The step of generating the at least one area map comprises: identifying a first scan data set of the plurality of scan data sets corresponding to an identified highest feature score of the plurality of feature scores as a primary region map, and Based on identifying one or more feature scores among the multiple feature scores that are greater than the predetermined critical value, each scan data set among the multiple scan data sets except the first scan data set that has a corresponding feature score among the multiple feature scores that is greater than the predetermined critical value is identified as a sub-area map.

11. The method according to claim 10, further comprising: Zoom out on each identified sub-region map.

12. The method according to claim 10, wherein: The step of identifying the plurality of feature scores includes identifying the plurality of feature scores based on at least one of a number of angles, a size of the angles, a number of lines, and a sharpness of the scan data.

13. The method according to claim 10, wherein: The one or more areas in which the traveling robot moves together form an entire area, Wherein, the method further comprises: identifying, within the plurality of scan data sets, one or more regional scan data sets corresponding to each of the one or more regions within the entire region, identifying, for each of the one or more area scan data sets, a plurality of area feature scores corresponding to each of the plurality of predetermined height levels, identifying, in the entire area, a plurality of whole-area feature scores corresponding to the plurality of predetermined height levels based on the plurality of area feature scores, identifying a first predetermined height level among the plurality of predetermined height levels corresponding to a highest full-area feature score among the plurality of full-area feature scores, and A map of the entire area is generated based on each of the plurality of scan data sets corresponding to the first predetermined altitude level.

14. The method according to claim 13, further comprising: Setting a weight for the at least one area map based on the feature score of the at least one area map; as well as Based on the at least one area map having the set weights and the plurality of scan data sets, a position and an orientation of the traveling robot are identified.

15. A non-transitory computer-readable storage medium storing instructions, wherein when the instructions are executed by a processor, the processor is prompted to perform a method of controlling a traveling robot, the method comprising: acquiring depth data in one or more areas in which the traveling robot moves; identifying, from the acquired depth data, a plurality of scan data sets corresponding to a plurality of predetermined height levels; identifying a plurality of feature scores corresponding to the plurality of scan data sets based on the plurality of scan data sets; as well as At least one area map corresponding to at least one scan data set among the plurality of scan data sets is generated, wherein a feature score among the plurality of feature scores corresponding to the at least one scan data set is greater than or equal to a predetermined critical value.