WO2024058402A1 - 주행 맵을 생성하는 주행 로봇 및 그 제어 방법 - Google Patents

주행 맵을 생성하는 주행 로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2024058402A1
WO2024058402A1 PCT/KR2023/010556 KR2023010556W WO2024058402A1 WO 2024058402 A1 WO2024058402 A1 WO 2024058402A1 KR 2023010556 W KR2023010556 W KR 2023010556W WO 2024058402 A1 WO2024058402 A1 WO 2024058402A1
Authority
WO
WIPO (PCT)
Prior art keywords
scan data
map
regional
driving robot
data sets
Prior art date
Application number
PCT/KR2023/010556
Other languages
English (en)
French (fr)
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 KR1020220139575A external-priority patent/KR20240037792A/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US18/232,595 priority Critical patent/US20240094740A1/en
Publication of WO2024058402A1 publication Critical patent/WO2024058402A1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods

Definitions

  • This disclosure relates to a driving robot that generates a driving map and a method of controlling the same.
  • Robots that cook ordered food are also appearing, and robots that serve food are also appearing.
  • the robot can receive orders from the user by touch or voice and cook food according to the set recipe.
  • the robot can identify the user's location and surrounding environment and drive autonomously to serve ordered food to the user's location by considering the identified surrounding environment.
  • a robot that drives autonomously can create a map using various sensors and set a driving route plan on the map to drive autonomously.
  • Many robots use 2D LiDAR as a sensor for driving.
  • 2D Lidar scans the surrounding environment only at the height mounted on the robot, and may cause problems with inaccurate scanning in environments with black materials that absorb light.
  • Small robots also use depth cameras.
  • 3D SLAM using all depth information requires a lot of computing resources.
  • a method was devised that uses only a specific height of depth information as virtual scan information, like a 2D lidar.
  • this method scans the surrounding environment at a specific height, like the method using 2D LIDAR, if there is no feature information at the scanned height, problems may arise where location recognition and localization on the map become inaccurate. .
  • a driving robot includes a camera including a depth camera and at least one processor.
  • the at least one processor may control the camera to obtain depth data in each area where the driving robot moves.
  • the at least one processor may identify scan data of a plurality of preset height levels from the acquired depth data.
  • the at least one processor may identify feature scores of each of the identified scan data of the plurality of height levels.
  • the at least one processor may generate scan data of at least one height level whose identified feature score is greater than or equal to a preset threshold as at least one regional map.
  • a method of controlling a driving robot may include acquiring depth data in each area where the driving robot moves.
  • the control method may identify scan data of a plurality of preset height levels from the acquired depth data.
  • the control method may include identifying feature scores of each of the identified scan data of the plurality of height levels.
  • the control method may include generating scan data of at least one height level whose identified feature score is equal to or greater than a preset threshold as at least one regional map.
  • the control method stored in a non-transitory computer-readable storage medium in which a program for performing the control method of a driving robot according to an embodiment of the present disclosure is recorded may include the step of acquiring depth data in each area where the driving robot moves. there is.
  • the control method may identify scan data of a plurality of preset height levels from the acquired depth data.
  • the control method may include identifying feature scores of each of the identified scan data of the plurality of height levels.
  • the control method may include generating scan data of at least one height level whose identified feature score is equal to or greater than a preset threshold as at least one regional map.
  • FIG. 1 is a diagram explaining a driving robot according to an embodiment.
  • Figure 2 is a block diagram explaining the configuration of a traveling robot according to an embodiment.
  • Figure 3 is a block diagram explaining the specific configuration of a traveling robot according to an embodiment.
  • FIGS. 4A to 4D are diagrams illustrating a process for generating a regional map of multiple height levels according to an embodiment.
  • FIGS. 5A and 5B are diagrams illustrating a localization process according to an embodiment.
  • Figure 6 is a flowchart explaining a method of controlling a traveling robot according to an embodiment.
  • a “module” or “unit” for a component used in this specification performs at least one function or operation. And, the “module” or “unit” may perform a function or operation by hardware, software, or a combination of hardware and software. Additionally, a plurality of “modules” or a plurality of “units” excluding a “module” or “unit” that must be performed on specific hardware or performed on at least one processor may be integrated into at least one module. Singular expressions include plural expressions unless the context clearly dictates otherwise.
  • each step should be understood as non-limiting unless the preceding step must be performed logically and temporally prior to the subsequent step. In other words, except for the above exceptional cases, even if the process described as a subsequent step is performed before the process described as a preceding step, the nature of disclosure is not affected, and the scope of rights must also be defined regardless of the order of the steps.
  • the expressions “at least one of a, b, or c” can mean “only a,” “only b,” “only c,” “both a and b,” “both a and c,” and “both b and c.” or “all of a, b, and c.”
  • the term “included” in this specification has the meaning of including additional components in addition to the elements listed as included.
  • each embodiment may be implemented or operated independently, but each embodiment may be implemented or operated in combination.
  • FIG. 1 is a diagram explaining a driving robot according to an embodiment.
  • a traveling robot 100 is shown.
  • the driving robot 100 can create a map while moving within a certain area.
  • the driving robot 100 may move to area A to create a local map of area A, and move to area B to create a local map of area B.
  • the driving robot 100 may generate an entire map (global map) based on the regional map generated in each region. Once the map is created, the driving robot 100 can set a movement plan based on the entire map.
  • the driving robot 100 may perform localization based on a local map of the area where the driving robot 100 is located while moving according to a set movement plan. Localization may include a process in which the driving robot 100 identifies the exact location and direction.
  • the driving robot 100 can identify the exact location and direction based on the overall map and driving map and move to the destination according to the movement plan.
  • the driving robot 100 moves to the first office and maps the area for the first office.
  • the traveling robot 100 may acquire information (data) about walls, objects, etc. of the first office. Information acquired by the traveling robot 100 from the first office may include depth information. As an example, the traveling robot 100 may obtain depth information about the desk 5 located in the first office.
  • the driving robot 100 may generate an area map for the first office based on the acquired depth information. Additionally, the driving robot 100 may generate an area map for the corridor while moving along the corridor, and may move to the second office to generate an area map for the second office.
  • the entire map of the third floor of the building may be generated based on the generated area map.
  • the traveling robot 100 can move from the first office to the second office.
  • the driving robot 100 may set a movement path to move from the first office to the second office based on the entire map created.
  • the driving robot 100 can move according to a set movement path.
  • the traveling robot 100 can identify its current location while moving.
  • the traveling robot 100 can obtain information about its current location while moving. For example, when the traveling robot 100 is located in a first office, depth information about walls, objects, etc. of the first office can be obtained.
  • the traveling robot 100 may compare the acquired depth information with the generated area map and identify that the acquired depth information matches or is most similar to the area map of the first office.
  • the traveling robot 100 may identify the current location as the first office.
  • the driving robot 100 may identify which area of the local map of the first office the depth information of the first office obtained from the front matches or is most similar to.
  • the driving robot 100 may identify the matching or most similar area in the area map of the first office as the direction in which the driving robot 100 is heading.
  • the driving robot 100 can identify the direction in which it should move and move based on the identified location and direction, the set movement path, and the entire map.
  • the traveling robot 10 can move from the first office to the second office while repeating the above-described process.
  • Figure 2 is a block diagram explaining the configuration of a traveling robot according to an embodiment.
  • the traveling robot 100 may include a camera 110 and a processor 120.
  • the camera 110 can capture the surrounding environment of the driving robot 100.
  • the processor 120 may identify information about the surrounding environment based on the image captured by the camera 110.
  • the camera 110 may include a depth camera and may acquire depth data about the surrounding environment. For example, when the camera 110 including a depth camera photographs a space where a wall and an object are placed, the camera 110 may acquire depth data for the wall and the object. Additionally, the camera 110 may include an RGB camera, a wide-angle camera, a telephoto camera, etc. in addition to a depth camera.
  • the driving robot 100 may include one or more processors 120.
  • the processor 120 can control each component of the driving robot 100.
  • the processor 120 may control the camera 110 to obtain depth data of the surrounding environment.
  • the processor 120 may identify scan data of a plurality of preset height levels from the acquired depth data.
  • the camera 110 can acquire all depth data within the field of view of the camera 110.
  • Processor 120 may include information about one or more specific height levels to virtually scan.
  • the processor 120 may identify scan data by scanning depth data at a preset height level from the acquired depth data. For example, the processor 120 may set the 0.2m height level, 0.4m height level, and 0.6m height level as the height levels to be scanned. Then, the processor 120 can scan each depth data corresponding to the set height level to identify scan data at the 0.2m height level, scan data at the 0.4m height level, and scan data at the 0.6m height level.
  • the processor 120 may identify feature scores from each identified scan data.
  • the processor 120 calculates feature scores based on the number of angles of scan data, angles (e.g., size of angles), number of lines, sharpness of scan data (or angles, lines), etc. can be identified.
  • the processor 120 may generate scan data of one or more height levels that are greater than or equal to an identified preset threshold as a regional map.
  • the preset threshold is 30 points, and the processor 120 sets the feature score of the scanned data at the 0.2m height level to 10 points, the feature score of the scanned data to the 0.4m height level to 40 points, and the feature score of the scanned data to the 0.6m height level. If the feature score of the scan data is identified as 60 points, the processor 120 can generate the scan data at the 0.4 m height level and the scan data at the 0.6 m height level as a regional map of the corresponding area.
  • the processor 120 When generating a plurality of regional maps, the processor 120 identifies the scan data with the highest feature score among height-level scan data whose feature scores are equal to or higher than a preset threshold as the main region map, and converts the remaining scan data into a sub-region map. can be identified. Additionally, the processor 120 may downscale the sub-region map. For example, the processor 120 identifies the 0.6m height level region map with the highest feature score among the 0.4m height level region maps and the 0.6m height level region maps as the main region map, and the remaining 0.4m height level region maps. The regional map can be identified as a sub-regional map. Processor 120 may downscale the region map to the 0.4 m height level identified as the sub-region map. That is, the processor 120 can reduce the size, resolution, and data amount of the sub-region map.
  • the processor 120 can identify multiple levels of scan data of the area where the driving robot 100 is located in the manner described above and generate one or more regional maps. .
  • the processor 120 may generate the entire map based on scan data of each area.
  • the processor 120 may identify feature scores for each height level for the entire region based on feature scores of scan data of a plurality of height levels identified in each region. Additionally, the processor 120 may generate scan data of the level with the highest feature score for each height level or the level with the highest average feature score for the entire region as an entire map.
  • the processor 120 has a feature score of 10 points for scanned data at a 0.2m height level in area A, a feature score of 40 points for scanned data at a 0.4m height level, and a feature score for scanned data at a 0.6m height level. can be identified with 60 points.
  • the processor 120 has a feature score of 30 points for scanned data at a 0.2m height level in area B, a feature score of 70 points for scanned data at a 0.4m height level, and 50 points for scanned data at a 0.6m height level. can be identified.
  • the processor 120 has a feature score of 40 points for the scanned data at the 0.2m height level in region C, a feature score of 30 points for the scanned data at the 0.4m height level, and 70 points for the scanned data at the 0.6m height level. can be identified.
  • the processor 120 has a feature score of 80 points (10 + 30 + 40) for the scanned data at the 0.2m height level for the entire area, and 140 points (40 + 70 + 30) for the scanned data at the 0.4m height level.
  • the feature score of the scanned data at the 0.6m height level can be identified as 180 points (60 + 50 + 70).
  • the processor 120 can generate the scan data at the 0.6 m height level as an entire map. That is, the processor 120 connects (or integrates) (e.g. connect, You can create an entire map by integrating, putting together.
  • the processor 120 may identify a reference height level and generate scan data of the reference height level identified in each region as an entire map.
  • the processor 120 may identify the height level of scan data with the highest identified feature score in the initial area where the driving robot is located as the reference height level.
  • the processor 120 may control the camera 110 to obtain 360-degree depth data while rotating the traveling robot 100 in the horizontal direction in the area where it is initially located.
  • the processor 120 may identify scan data of a plurality of preset height levels from the acquired 360-degree depth data.
  • the processor 120 may identify feature scores of scan data for each identified height level.
  • the processor 120 may identify the height level with the highest feature score of the scan data as the reference height level.
  • the processor 120 may identify scan data of the reference height level in each area where the driving robot 100 moves, and connect the scan data of the identified reference height level to generate an entire map.
  • the processor 120 may set a movement path based on the generated overall map and may perform a localization process of the driving robot 100 based on the generated area map.
  • the localization process may refer to a process in which the driving robot 100 identifies its current location and direction.
  • the processor 120 may identify the location and direction of the driving robot 100 based on the generated area map. After the map is created, the processor 120 may move the driving robot 100 from the current location of the driving robot 100 to the destination.
  • the processor 120 may set a weight for each region map based on the feature score of the generated region map (or scan data).
  • the processor 120 may set a high weight to a regional map with a high feature score and a low weight to a regional map with a low feature score.
  • the processor 120 may set the feature score as a weight.
  • the feature score corresponding to each regional map can be used as a weight.
  • weights can be set only for the regional map with the highest feature score and the remaining regional maps can be ignored.
  • the processor 120 may set a weight of 0 for a region map determined to be unnecessary in a specific area.
  • the processor 120 may acquire depth data in the area where the driving robot 100 is located and identify scan data of a preset height level.
  • Processor 120 may compare the identified scan data to the generated area map.
  • the processor 120 may identify a regional map that matches the identified scan data or a regional map that has the highest similarity to the scan data.
  • the processor 120 may identify the location and direction of the driving robot 100 based on the identified area map.
  • the processor 120 may generate an overall map to be used for route planning by integrating the regional map of the height level with the highest average score or the height level with the highest total feature score among the regional maps with feature scores greater than or equal to the threshold.
  • the processor 120 may perform localization by virtually scanning the area map of the candidate area and depth information corresponding to a specific height of the candidate area map.
  • the processor 120 may determine the current location of the robot by applying (or integrating) the weight of each region map. The results may vary depending on the localization algorithm, but in order to determine the current location of the robot 100, the processor 120 uses a regional map and weights corresponding to the virtual scan information at one or more specific heights determined through the above-described process. can be used.
  • Figure 3 is a block diagram explaining the specific configuration of a traveling robot according to an embodiment.
  • camera 110 processor 120, motor 130, input interface 135, communication interface 140, microphone 145, sensor 150, display 155, speaker ( 160), and may include memory 165.
  • the motor 130 can move the traveling robot 100 and move the configuration of the traveling robot 100.
  • the motor 130 may drive the wheels of the driving robot 100 to rotate or move the driving robot 100.
  • the motor 130 may move the camera 110 of the traveling robot 100 and may move an arm, etc.
  • a plurality of motors 130 may be included in the traveling robot 100, and each motor 130 may move each component of the traveling robot 100.
  • the input interface 135 can receive control commands from the user.
  • the input interface 135 may receive commands from the user such as power on/off, input for setting values of the traveling robot 100, and menu selection.
  • the input interface 135 may include a keyboard, buttons, key pad, touch pad, and touch screen.
  • the input interface 135 may also be called an input device, input unit, input module, etc.
  • the communication interface 140 can communicate with an external device.
  • the communication interface 140 uses at least one of the following communication methods: Wi-Fi, Wi-Fi Direct, Bluetooth, Zigbee, 3G (3rd Generation), 3GPP (3rd Generation Partnership Project), and LTE (Long Term Evolution). You can communicate with external devices using this communication method.
  • the communication interface 140 may be referred to as a communication device, communication unit, communication module, transceiver, etc.
  • the microphone 145 can receive the user's voice.
  • the microphone 145 can receive voice input of control commands, etc. from the user.
  • the processor 120 may recognize control commands based on the input of the user's voice and perform related control operations.
  • the traveling robot 100 may include one or more microphones 145.
  • the microphone 145 may include a general microphone, a surround microphone, a directional microphone, etc.
  • the sensor 150 can detect the surrounding environment.
  • the sensor 150 can detect depth data of the surrounding environment.
  • the sensor 150 may detect road surface conditions, unevenness of the floor, presence of obstacles, etc.
  • the sensor 180 may include an angle sensor, an acceleration sensor, a gravity sensor, a gyro sensor, a geomagnetic sensor, a direction sensor, an infrared sensor, an ultrasonic sensor, a time-of-flight (ToF) sensor, a lidar sensor, a laser sensor, and a motion recognition sensor.
  • It may include a sensor, a heat 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.
  • the display 155 may output data processed by the processor 120 as an image.
  • the display 155 can display information and output a screen corresponding to a recognized user's command.
  • the display 155 may be implemented as a liquid crystal display (LCD), organic light emitting diode (OLED), flexible display, touch screen, etc.
  • the driving robot 100 may receive control commands through the touch screen.
  • the speaker 160 can output a sound signal.
  • the speaker 160 may output information about the user's input command, warning-related information, status-related information of the driving robot 100, motion-related information, etc. as a voice or notification sound.
  • the memory 165 stores data and algorithms that perform the functions of the driving robot 100, and can store programs and commands that are driven by the driving robot 100.
  • the memory 165 may store information about one or more specific height levels to be virtually scanned, depth data, an entire map, a regional map, weight information, 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 creation or localization process.
  • the memory 165 may be implemented in the form of ROM, RAM, HDD, SSD, memory card, etc.
  • the traveling robot 100 may include all of the above-described configurations or may include some of the configurations. So far, the configuration of the traveling robot 100 has been described. Below, the process of creating a map by the driving robot 100 and the process of localization from the generated map will be described.
  • FIGS. 4A to 4D are diagrams illustrating a process for generating a regional map of multiple height levels according to an embodiment.
  • the driving robot 100 may acquire depth data 10 of the surrounding environment using the camera 110.
  • the camera 110 may include a depth camera and may acquire depth data 10 in a viewing angle range.
  • the depth data 10 may include depth information of a wall, depth information of an object, etc.
  • the traveling robot 100 may identify scan data of a plurality of height levels 11, 14, 15, and 17 from the acquired depth data 10.
  • the height level may be a preset height level that the traveling robot 100 will virtually scan from the acquired depth data 10.
  • the plurality of height levels 11, 14, 15, 17 are connected to the first level 11,...
  • fourth level (14), fifth level (15), ... may include a seventh level 17 (intermediate levels may also be scanned, but for the purposes of this disclosure only these exemplary levels are discussed), the first level 11 having an actual height of 1.4 m, the fourth The 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 can detect the distance from the wall using a distance sensor, an ultrasonic sensor, etc. Additionally, the traveling robot 100 may detect the angle of an object or a specific location of the object using an angle sensor or the like.
  • the driving robot 100 can recognize the angle information of the camera 110, it can identify the angle of an object, a specific location of the object, or a specific location of a wall based on the angle information of the camera 110.
  • the traveling robot 100 may calculate actual height information based on the sensed distance information and/or angle information.
  • the traveling robot 100 may acquire scan data 21, 24, 25, and 27 for each height level 11, 14, 15, and 17.
  • the first scan data 21 corresponds to the first height level
  • the fourth scan data 24 corresponds to the fourth height level
  • the fifth scan data 25 corresponds to the fifth level
  • the seventh scan data 27 may correspond to the seventh level 17.
  • Each scan data 21, 24, 25, and 27 may be data scanned along a line at a specific height of the depth data 10. Accordingly, each scan data 21, 24, 25, and 27 may include depth data.
  • the depth data 10 represents the depth of an object (or a wall) and may include unevenness information. Accordingly, each scan data 21, 24, 25, and 27 scanned along a line of a specific height may include lines and angles according to the depth (or depth, irregularities) of the object (or wall).
  • the traveling robot 100 can identify feature scores of scan data at each height level. For example, the feature score may be calculated based on the number of angles, angles, number of lines, sharpness of lines or angles, etc.
  • the driving robot 100 may be assigned a higher feature score as the number of angles and/or lines increases. Alternatively, the driving robot 100 may assign a higher feature score as the angle increases. Alternatively, the driving robot 100 may assign a higher feature score as the clarity increases.
  • a large number of angles and/or lines or a large angle may mean a large change in depth. In other words, this may mean that there are many features by which an object (or wall) can be identified. Additionally, higher clarity can mean more reflected light.
  • a white wall may have high clarity in scan data, and a black wall may have low clarity in scan data.
  • a lot of reflected light may mean that a lot of characteristic information about a wall or object has been acquired.
  • a high feature score of scan data may mean that it contains many features about walls or objects.
  • the driving robot 100 may generate scan data containing a feature score higher than a threshold as a regional map.
  • the driving robot 100 may identify scan data 21, 24, 25, and 27 including feature scores higher than a threshold value among scan data at each height level.
  • the traveling robot 100 may acquire depth data in various directions at the current location and acquire scan data in various directions similar to the above-described process. Also, a regional map can be created based on the acquired scan data in various directions.
  • the driving robot 100 includes the first scan data 21, the fourth scan data 24, the fifth scan data 25, and the seventh scan data 27 with a feature score higher than the threshold value. It can be identified by scanned data. As shown in FIG. 4C, the driving robot 100 generates the first scan data 21 as the first area map 31 and sets the fourth scan data 24 as the fourth area map 34. And, the fifth scan data 25 can be set as the fifth region map 35, and the seventh scan data 27 can be set as the seventh region map 37.
  • Each region map 31, 34, 35, and 37 shown in FIG. 4C may be a region map generated based on scan data of each height level of one depth data 10. Accordingly, each of the regional maps 31, 34, 35, and 37 shown in FIG. 4C may be regional maps of the same location with different heights.
  • the driving robot 100 may use area maps 31, 34, 35, and 37 that are higher than the threshold value in the localization process.
  • the driving robot 100 may distinguish between a main area map and a sub-area map and downscale the sub-area map to reduce the amount of data.
  • the driving robot 100 may generate a regional map of each level by connecting scan data of each level obtained from various directions of the corresponding location. For example, the driving robot 100 connects first level scan data obtained from various directions to create a first area map, connects fourth level scan data to create a fourth area map, and creates a fourth area map. 5 levels of scan data can be connected to create a 5th region map, and 7th level scan data can be connected to create a 7th region map.
  • the driving robot 100 may determine a regional map to be used for localization based on the feature scores of the generated regional map. For example, the driving robot 100 may determine the fourth region map 34, the fifth region map 35, and the seventh region map 37, which are higher than a preset threshold, as region maps to be used for localization.
  • the driving robot 100 may identify the scan data with the highest identified feature score as the main area map 34 and identify the remaining scan data as the sub area maps 35 and 37. For example, when the feature score of the fourth region map 34 is the highest, the driving robot 100 determines the fourth region map 34 as the main region map, and the fifth region map 35 and the seventh region map.
  • the regional map 37 may be determined as a sub-regional map. Additionally, the driving robot 100 may downscale the fifth region map 35 and the seventh region map 37 determined as sub-region maps.
  • the driving robot 100 can reduce the amount of data by downscaling the sub-region map.
  • the driving robot 100 stores the main area map (or scan data) and the sub-area map (or scan data), and uses area maps (or scan data) other than the area map decided to be used for localization. It can be deleted.
  • the driving robot 100 may delete area maps other than the main area map. That is, in order to reduce the amount of data, the driving robot 100 can only store area maps (or scan data) with feature scores greater than or equal to a preset score.
  • the driving robot 100 may store all area maps (or scan data) and use only area maps (or scan data) with a preset score or more for localization.
  • the driving robot 100 is not used for localization, but can use the stored area map (or scan data) for other purposes.
  • the driving robot 100 may use a stored area map when creating an entire map, and may also use an additional area map when the location or direction is not accurately identified.
  • the driving robot 100 can generate a regional map through the above-described process and determine the regional map to be used for localization.
  • the driving robot 100 can generate and determine a local map in each area.
  • the driving robot 100 can identify the feature scores of the regional map at each height level for the entire area.
  • the driving robot 100 can generate an entire map by connecting the regional maps at the height level with the highest feature score for the entire area.
  • the traveling robot 100 may acquire depth data while rotating around 360 degrees. Additionally, the driving robot 100 may obtain scan data for each height level from the acquired depth data and identify feature scores. The driving robot 100 may determine the scan data of the height level with the highest feature score among the scan data of each identified height level. The driving robot 100 may identify the height level of the scan data with the highest feature score as the reference height level and generate the entire map based on the scan data of the reference height level.
  • the driving robot 100 may use the entire map when setting a movement path, and may use a regional map of each region when determining the location and direction.
  • FIGS. 5A and 5B are diagrams illustrating a localization process according to an embodiment.
  • the driving robot 100 may create an entire map and then move from the current location (e.g., point A) to another location (e.g., point B).
  • the driving robot 100 can set a path to move from point A to point B using the entire map.
  • the driving robot 100 can move according to a set movement path.
  • the traveling robot 100 can identify its location and direction while moving.
  • the driving robot 100 may acquire depth data 50 of the surrounding environment 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 during movement may be the same or less than the scan data identified when generating the regional map.
  • the traveling robot 100 can acquire scan data 61, 62, and 63 for each height level.
  • the driving robot 100 may compare the acquired scan data 61, 62, and 63 of each height level with the generated area maps 71, 72, and 73.
  • the driving robot 100 may set weights for each region map (71, 72, and 73) based on the feature scores of the generated region maps (71, 72, and 73). For example, if the driving robot 100 has a high feature score in the order of the second region map 72, the third region map 73, and the first region map 71, the second region map 72, the third region map 71 Weights of 0.5, 0.3, and 0.2 can be set for the region map 73 and the first region map 71, respectively.
  • the weight may be the feature score of each region map (71, 72, 73).
  • the driving robot 100 determines the position and direction corresponding to the region map with the highest similarity or matching based on the weighted region maps 71, 72, and 73 and the acquired scan data 61, 62, and 63. can be identified.
  • the position and direction identified by the driving robot 100 may be the position and direction of the driving robot 100.
  • the traveling robot 100 can identify its location and direction while moving in the above-described manner.
  • the driving robot 100 generates a map and identifies its location and direction.
  • the control method of the driving robot is explained.
  • Figure 6 is a flowchart explaining a method of controlling a traveling robot according to an embodiment.
  • the driving robot can acquire depth data (S610).
  • the driving robot can acquire depth data in each area it moves.
  • the driving robot can identify the scan data (S620).
  • the driving robot can identify scan data of a plurality of preset height levels from the acquired depth data.
  • the driving robot can identify feature scores (S630).
  • the driving robot can identify the feature score of each of the identified scan data of the plurality of height levels. For example, the driving robot can identify feature scores based on the number of angles, angle, number of lines, sharpness, etc. of the scan data.
  • the driving robot can generate an area map (S640).
  • the driving robot can generate height-level scan data whose identified feature score is higher than a preset threshold as a regional map.
  • a driving robot can generate one or more area maps. For example, if a plurality of regional maps are generated, the driving robot can identify the regional map whose feature score is greater than or equal to a preset threshold.
  • the driving robot may identify the region map generated from scan data with the highest feature score among the region maps identified above the threshold as the main region map, and identify the region map generated from the remaining scan data as the sub-region map.
  • the driving robot can downscale the identified sub-region map.
  • the driving robot can also save or delete area maps other than those identified as the main area map or sub-area map (or scan data). Alternatively, the traveling robot may store or delete scan data that is below a preset threshold.
  • the driving robot can generate an entire map based on the local map. For example, the driving robot may identify feature scores for each height level for the entire region based on feature scores of scan data of a plurality of height levels identified in each region. The driving robot can generate scan data at the level with the highest feature score for each height level for the entire identified area as an entire map. Alternatively, the driving robot may identify the reference height level and generate scan data of the reference height level identified in each region as an entire map. For example, the driving robot may identify the height level of the scanned data with the highest identified feature score in the initial region as the reference height level.
  • the driving robot can set weights based on the feature scores of the local map.
  • the driving robot may identify the location and direction based on at least one area map with set weights and the acquired scan data.
  • the driving robot control method may be provided as a computer program product.
  • a computer program product may include the S/W program itself or a non-transitory computer readable medium in which the S/W program is stored.
  • a non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories.
  • the various applications or programs described above may be stored and provided on non-transitory readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

주행 로봇 및 그 제어 방법이 개시된다. 주행 로봇은 뎁스 카메라를 구성하는 카메라 및 주행 로봇이 이동하는 하나 이상의 지역에서 뎁스 데이터를 획득하도록 카메라를 제어하고, 획득된 뎁스 데이터에 기초하여 기 설정된 복수의 높이 레벨에 대응되는 복수의 스캔 데이터 셋(set)을 식별하며, 복수의 스캔 데이터 셋에 기초하여 식별된 복수의 스캔 데이터 셋 각각에 대응되는 복수의 특징 점수를 식별하고, 복수의 스캔 데이터 셋 중에서 적어도 하나의 스캔 데이터에 대응되는 적어도 하나의 지역 맵을 생성하며, 복수의 특징 점수 중 적어도 하나의 스캔 데이터에 대응되는 특징 점수는 기 설정된 임계 값 이상인 적어도 하나의 프로세서를 포함한다.

Description

주행 맵을 생성하는 주행 로봇 및 그 제어 방법
본 개시는 주행 맵을 생성하는 주행 로봇 및 그 제어 방법에 관한 것이다.
다양한 분야에서 로봇을 이용한 자동화 기술이 제공되고 있다. 공장에서는 로봇을 이용하여 제품을 생산하고 있다. 주문된 음식을 조리하는 로봇도 등장하고 있고, 음식의 서빙을 수행하는 로봇도 등장하고 있다.
로봇은 사용자로부터 터치 방식 또는 음성 방식으로 주문을 입력받고, 설정된 레시피에 따라 음식을 조리할 수 있다. 로봇은 사용자의 위치 및 주변 환경을 식별하고, 식별된 주변 환경을 고려하여 사용자의 위치로 주문된 음식을 서빙하도록 자율 주행을 할 수 있다.
자율 주행을 하는 로봇은 다양한 센서를 활용하여 맵을 만들고, 맵에서 주행 경로 계획을 설정하여 자율 주행을 할 수 있다. 많은 로봇은 주행을 위한 센서로서 2D 라이다를 이용하고 있다. 그러나, 2D 라이다는 로봇에 실장된 높이에서만 주변 환경을 스캔하며, 빛을 흡수하는 검은색 재질이 있는 환경에서는 부정확하게 스캔하는 문제가 발생할 수 있다. 소형 로봇은 뎁스(depth) 카메라를 이용하기도 한다. 그러나, 모든 뎁스 정보를 사용하는 3D 슬램(SLAM)은 많은 컴퓨팅 리소스를 필요로 한다. 최근 뎁스 정보의 특정 높이만을 가상의 스캔 정보로 이용하여 마치 2D 라이다처럼 사용하는 방식이 고안되었다. 그러나, 이러한 방식도 2D 라이다를 사용하는 방식과 같이 특정 높이의 주변 환경을 스캔하기 때문에 스캔되는 높이에 특징 정보가 없으면, 맵 상에서의 위치 인식 및 로컬라이제이션(localization)이 부정확해지는 문제가 발생할 수 있다.
본 개시의 실시 예에 따른 주행 로봇은 뎁스 카메라를 포함하는 카메라 및 적어도 하나의 프로세서를 포함한다. 상기 적어도 하나의 프로세서는 상기 주행 로봇이 이동하는 각 지역에서 뎁스 데이터를 획득하도록 상기 카메라를 제어할 수 있다. 상기 적어도 하나의 프로세서는 상기 획득된 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다. 상기 적어도 하나의 프로세서는 상기 식별된 복수의 높이 레벨의 스캔 데이터 각각의 특징 점수를 식별할 수 있다. 상기 적어도 하나의 프로세서는 식별된 특징 점수가 기 설정된 임계 값 이상인 적어도 하나의 높이 레벨의 스캔 데이터를 적어도 하나의 지역 맵으로 생성할 수 있다.
본 개시의 실시 예에 따른 주행 로봇의 제어 방법은 상기 주행 로봇이 이동하는 각 지역에서 뎁스 데이터를 획득하는 단계를 포함할 수 있다. 제어 방법은 상기 획득된 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다. 제어 방법은 상기 식별된 복수의 높이 레벨의 스캔 데이터 각각의 특징 점수를 식별하는 단계를 포함할 수 있다. 제어 방법은 식별된 특징 점수가 기 설정된 임계 값 이상인 적어도 하나의 높이 레벨의 스캔 데이터를 적어도 하나의 지역 맵으로 생성하는 단계를 포함할 수 있다.
본 개시의 실시 예에 따른 주행 로봇의 제어 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 저장 매체에 저장된 제어 방법은 상기 주행 로봇이 이동하는 각 지역에서 뎁스 데이터를 획득하는 단계를 포함할 수 있다. 제어 방법은 상기 획득된 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다. 제어 방법은 상기 식별된 복수의 높이 레벨의 스캔 데이터 각각의 특징 점수를 식별하는 단계를 포함할 수 있다. 제어 방법은 식별된 특징 점수가 기 설정된 임계 값 이상인 적어도 하나의 높이 레벨의 스캔 데이터를 적어도 하나의 지역 맵으로 생성하는 단계를 포함할 수 있다.
본 발명의 특정 실시예의 상기 및 다른 측면, 특징 및 이점은 첨부된 도면과 함께 취해진 다음의 설명으로부터 더욱 명백해질 것이다:
도 1은 일 실시 예에 따른 주행 로봇을 설명하는 도면이다.
도 2는 일 실시 예에 따른 주행 로봇의 구성을 설명하는 블록도이다.
도 3은 일 실시 예에 따른 주행 로봇의 구체적인 구성을 설명하는 블록도이다.
도 4a 내지 도 4d는 일 실시 예에 따른 복수의 높이 레벨의 지역 맵을 생성하는 과정을 설명하는 도면이다.
도 5a 및 도 5b는 일 실시 예에 따른 로컬라이제이션 과정을 설명하는 도면이다.
도 6은 일 실시 예에 따른 주행 로봇의 제어 방법을 설명하는 흐름도이다.
이하에서는 첨부된 도면을 참조하여 다양한 실시 예를 보다 상세하게 설명한다. 본 명세서에 기재된 실시 예는 다양하게 변형될 수 있다. 특정한 실시 예가 도면에서 묘사되고 상세한 설명에서 자세하게 설명될 수 있다. 그러나, 첨부된 도면에 개시된 특정한 실시 예는 다양한 실시 예를 쉽게 이해하도록 하기 위한 것일 뿐이다. 따라서, 첨부된 도면에 개시된 특정 실시 예에 의해 기술적 사상이 제한되는 것은 아니며, 개시의 사상 및 기술 범위에 포함되는 모든 균등물 또는 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이러한 구성요소들은 상술한 용어에 의해 한정되지는 않는다. 상술한 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
한편, 본 명세서에서 사용되는 구성요소에 대한 "모듈" 또는 "부"는 적어도 하나의 기능 또는 동작을 수행한다. 그리고, "모듈" 또는 "부"는 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합에 의해 기능 또는 동작을 수행할 수 있다. 또한, 특정 하드웨어에서 수행되어야 하거나 적어도 하나의 프로세서에서 수행되는 "모듈" 또는 "부"를 제외한 복수의 "모듈들" 또는 복수의 "부들"은 적어도 하나의 모듈로 통합될 수도 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 또한, "a, b 또는 c 중 적어도 하나"라는 표현은 "a만", "b만", "c만", "a와 b 모두", "a와 c 모두", "b와 c 모두" 또는 "a, b, c 모두"를 포함한다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그 밖에도, 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그에 대한 상세한 설명은 축약하거나 생략한다. 한편, 각 실시 예는 독립적으로 구현되거나 동작될 수도 있지만, 각 실시 예는 조합되어 구현되거나 동작될 수도 있다.
도 1은 일 실시 예에 따른 주행 로봇을 설명하는 도면이다.
도 1을 참조하면, 주행 로봇(100)이 도시되어 있다. 주행 로봇(100)은 일정 지역 내를 이동하면서 맵(map)을 생성할 수 있다. 주행 로봇(100)은 A 지역으로 이동하여 A 지역의 지역 맵을 생성하고, B 지역으로 이동하여 B 지역의 지역 맵을 생성할 수 있다. 주행 로봇(100)은 각 지역에서 생성된 지역 맵에 기초하여 전체 맵(글로벌 맵, global map)을 생성할 수 있다. 맵이 생성되면, 주행 로봇(100)은 전제 맵에 기초하여 이동 계획을 설정할 수 있다. 주행 로봇(100)은 설정된 이동 계획에 따라 이동하면서 주행 로봇(100)이 위치한 지역의 지역 맵에 기초하여 로컬라이제이션(localization)을 할 수 있다. 로컬라이제이션이란 주행 로봇(100)이 정확한 위치 및 방향을 식별하는 과정을 포함할 수 있다. 주행 로봇(100)은 전체 맵과 주행 맵에 기초하여 정확한 위치와 방향을 식별하며 이동 계획에 따라 목적지까지 이동할 수 있다.
예를 들어, 주행 로봇(100)이 제1 사무실, 복도, 제2 사무실을 포함하는 빌딩의 3층의 맵을 생성한다면, 주행 로봇(100)은 제1 사무실로 이동하여 제1 사무실에 대한 지역 맵을 생성할 수 있다. 주행 로봇(100)은 제1 사무실의 벽, 오브젝트 등에 대한 정보(데이터)를 획득할 수 있다. 주행 로봇(100)이 제1 사무실에서 획득하는 정보는 뎁스 정보를 포함할 수 있다. 일 예로서, 주행 로봇(100)은 제1 사무실에 위치한 책상(5)에 대한 뎁스 정보를 획득할 수 있다. 주행 로봇(100)은 획득한 뎁스 정보에 기초하여 제1 사무실에 대한 지역 맵을 생성할 수 있다. 그리고, 주행 로봇(100)은 복도를 따라 이동하면서 복도에 대한 지역 맵을 생성하고, 제2 사무실로 이동하여 제2 사무실에 대한 지역 맵을 생성할 수 있다.
주행 로봇(100)이 빌딩 3층의 각 구역의 지역 맵을 모두 생성하는 단계를 포함하는 경우에 있어서, 생성된 지역 맵에 기초하여 빌딩 3층의 전체 맵을 생성할 수 있다. 전체 맵이 생성된 이후, 주행 로봇(100)은 제1 사무실에서 제2 사무실로 이동할 수 있다. 주행 로봇(100)은 생성된 전체 맵에 기초하여 제1 사무실에서 제2 사무실로 이동하는 이동 경로를 설정할 수 있다. 주행 로봇(100)은 설정된 이동 경로에 따라 이동할 수 있다. 주행 로봇(100)은 이동 중에 현재 위치를 식별할 수 있다. 주행 로봇(100)은 이동하면서 현재 위치에 대한 정보를 획득할 수 있다. 예를 들어, 주행 로봇(100)이 제1 사무실에 위치하면, 제1 사무실의 벽, 오브젝트 등의 뎁스 정보를 획득할 수 있다. 주행 로봇(100)은 획득된 뎁스 정보와 생성된 지역 맵을 비교하고, 획득된 뎁스 정보가 제1 사무실의 지역 맵과 일치 또는 가장 유사하다고 식별할 수 있다. 주행 로봇(100)은 현재 위치가 제1 사무실이라고 식별할 수 있다. 또한, 주행 로봇(100)은 정면에서 획득한 제1 사무실의 뎁스 정보가 제1 사무실의 지역 맵 중 어느 영역과 일치 또는 가장 유사한지 식별할 수 있다. 주행 로봇(100)은 제1 사무실의 지역 맵 중 일치 또는 가장 유사한 영역이 주행 로봇(100)이 향하는 방향이라고 식별할 수 있다. 주행 로봇(100)은 식별된 위치 및 방향, 설정된 이동 경로, 전체 맵에 기초하여 이동해야 하는 방향을 식별하고 이동할 수 있다. 주행 로봇(10)은 상술한 과정을 반복하면서 제1 사무실에서 제2 사무실로 이동할 수 있다.
지금까지 주행 로봇(100)이 맵을 생성하고 이동하는 개략적인 예를 설명하였다. 아래에서는 주행 로봇의 구성을 설명한다.
도 2는 일 실시 예에 따른 주행 로봇의 구성을 설명하는 블록도이다.
도 2를 참조하면, 주행 로봇(100)은 카메라(110) 및 프로세서(120)를 포함할 수 있다.
카메라(110)는 주행 로봇(100)의 주변 환경을 촬영할 수 있다. 프로세서(120)는 카메라(110)로 촬영된 이미지에 기초하여 주변 환경에 대한 정보를 식별할 수 있다. 카메라(110)는 뎁스 카메라를 포함할 수 있고, 주변 환경에 대한 뎁스 데이터를 획득할 수 있다. 예를 들어, 뎁스 카메라를 포함하는 카메라(110)가 벽과 오브젝트가 배치된 공간을 촬영하면, 카메라(110)는 벽과 오브젝트에 대한 뎁스 데이터를 획득할 수 있다. 또한, 카메라(110)는 뎁스 카메라 외에도 RGB 카메라, 광각 카메라, 망원 카메라 등을 포함할 수 있다.
주행 로봇(100)은 하나 또는 복수의 프로세서(120)를 포함할 수 있다. 프로세서(120)는 주행 로봇(100)의 각 구성을 제어할 수 있다. 예를 들어, 프로세서(120)는 주변 환경의 뎁스 데이터를 획득하도록 카메라(110)를 제어할 수 있다.
프로세서(120)는 획득된 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다. 카메라(110)는 카메라(110)의 시야각(Field of View) 범위 내의 모든 뎁스 데이터를 획득할 수 있다. 프로세서(120)는 가상으로 스캔할 하나 이상 복수의 특정 높이 레벨에 대한 정보를 포함할 수 있다. 프로세서(120)는 획득된 뎁스 데이터로부터 기 설정된 높이 레벨의 뎁스 데이터를 스캔하여 스캔 데이터를 식별할 수 있다. 일 예로, 프로세서(120)는 0.2m 높이 레벨, 0.4m 높이 레벨, 0.6m 높이 레벨을 스캔할 높이 레벨로 설정할 수 있다. 그리고, 프로세서(120)는 설정된 높이 레벨에 대응하는 각각의 뎁스 데이터를 스캔하여 0.2m 높이 레벨의 스캔 데이터, 0.4m 높이 레벨의 스캔 데이터, 0.6m 높이 레벨의 스캔 데이터를 식별할 수 있다. 프로세서(120)는 식별된 각 스캔 데이터에서 특징 점수를 식별할 수 있다. 예를 들어, 프로세서(120)는 스캔 데이터의 각(angle)의 수, 각도(예를 들어, 각의 크기), 라인 수, 스캔 데이터(또는, 각, 선)의 선명도 등에 기초하여 특징 점수를 식별할 수 있다. 프로세서(120)는 식별된 기 설정된 임계 값 이상인 하나 이상의 높이 레벨의 스캔 데이터를 지역 맵으로 생성할 수 있다. 예를 들어, 기 설정된 임계 값은 30점이고, 프로세서(120)가 0.2m 높이 레벨의 스캔 데이터의 특징 점수는 10점, 0.4m 높이 레벨의 스캔 데이터의 특징 점수는 40점, 0.6m 높이 레벨의 스캔 데이터의 특징 점수는 60점으로 식별하면, 프로세서(120)는 0.4m 높이 레벨의 스캔 데이터 및 0.6m 높이 레벨의 스캔 데이터 각각을 해당 영역의 지역 맵으로 생성할 수 있다.
복수의 지역 맵을 생성하면, 프로세서(120)는 특징 점수가 기 설정된 임계 값 이상인 높이 레벨의 스캔 데이터 중 특징 점수가 가장 높은 스캔 데이터를 메인 지역 맵으로 식별하고, 나머지 스캔 데이터를 서브 지역 맵으로 식별할 수 있다. 그리고, 프로세서(120)는 서브 지역 맵을 다운스케일링할 수 있다. 예를 들어, 프로세서(120)는 0.4m 높이 레벨의 지역 맵 및 0.6m 높이 레벨의 지역 맵 중 특징 점수가 가장 높은 0.6m 높이 레벨의 지역 맵을 메인 지역 맵으로 식별하고, 나머지 0.4m 높이 레벨의 지역 맵을 서브 지역 맵으로 식별할 수 있다. 프로세서(120)는 서브 지역 맵으로 식별된 0.4m 높이 레벨의 지역 맵을 다운스케일링할 수 있다. 즉, 프로세서(120)는 서브 지역 맵의 크기, 해상도, 데이터량을 줄일 수 있다.
주행 로봇(100)이 각 영역을 이동함에 따라, 프로세서(120)는 상술한 방식으로 주행 로봇(100)이 위치한 영역의 복수의 레벨의 스캔 데이터를 식별하고, 하나 이상의 지역 맵을 생성할 수 있다. 주행 로봇(100)이 모든 영역을 탐색하고 모든 영역에 대한 지역 맵을 생성하면, 프로세서(120)는 각 영역의 스캔 데이터에 기초하여 전체 맵을 생성할 수 있다. 프로세서(120)는 각 지역에서 식별된 복수의 높이 레벨의 스캔 데이터의 특징 점수에 기초하여 전체 지역에 대한 높이 레벨 별 특징 점수를 식별할 수 있다. 그리고, 프로세서(120)는 전체 지역에 대한 높이 레벨 별 특징 점수가 가장 높은 레벨 또는 특징 점수의 평균이 가장 높은 레벨의 스캔 데이터를 전체 맵으로 생성할 수 있다.
예를 들어, 프로세서(120)는 A 지역의 0.2m 높이 레벨의 스캔 데이터의 특징 점수는 10점, 0.4m 높이 레벨의 스캔 데이터의 특징 점수는 40점, 0.6m 높이 레벨의 스캔 데이터의 특징 점수는 60점으로 식별할 수 있다. 프로세서(120)는 B 지역의 0.2m 높이 레벨의 스캔 데이터의 특징 점수는 30점, 0.4m 높이 레벨의 스캔 데이터의 특징 점수는 70점, 0.6m 높이 레벨의 스캔 데이터의 특징 점수는 50점으로 식별할 수 있다. 프로세서(120)는 C 지역의 0.2m 높이 레벨의 스캔 데이터의 특징 점수는 40점, 0.4m 높이 레벨의 스캔 데이터의 특징 점수는 30점, 0.6m 높이 레벨의 스캔 데이터의 특징 점수는 70점으로 식별할 수 있다. 프로세서(120)는 전체 지역에 대한 0.2m 높이 레벨의 스캔 데이터의 특징 점수는 80점(10 + 30 + 40), 0.4m 높이 레벨의 스캔 데이터의 특징 점수는 140점(40 + 70 + 30), 0.6m 높이 레벨의 스캔 데이터의 특징 점수는 180점(60 + 50 + 70)으로 식별할 수 있다. 전체 지역에 대해 0.6m 높이 레벨의 스캔 데이터의 특징 점수가 가장 높기 때문에 프로세서(120)는 0.6m 높이 레벨의 스캔 데이터를 전체 맵으로 생성할 수 있다. 즉, 프로세서(120)는 A 지역의 0.6m 높이 레벨의 스캔 데이터, B 지역의 0.6m 높이 레벨의 스캔 데이터, C 지역의 0.6m 높이 레벨의 스캔 데이터를 연결(또는, 통합)(e.g. connect, integrate, put together)하여 전체 맵을 생성할 수 있다.
또는, 프로세서(120)는 기준 높이 레벨을 식별하고, 각 지역에서 식별된 상기 기준 높이 레벨의 스캔 데이터를 전체 맵으로 생성할 수 있다. 일 예로서, 프로세서(120)는 주행 로봇이 위치한 최초 지역에서 식별된 특징 점수가 가장 높은 스캔 데이터의 높이 레벨을 기준 높이 레벨로 식별할 수 있다. 예를 들어, 프로세서(120)는 최초 위치한 영역에서 주행 로봇(100)을 수평 방향으로 회전시키면서 360도 뎁스 데이터를 획득하도록 카메라(110)를 제어할 수 있다. 프로세서(120)는 획득된 360도 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다. 프로세서(120)는 식별된 각 높이 레벨의 스캔 데이터의 특징 점수를 식별할 수 있다. 프로세서(120)는 스캔 데이터의 특징 점수가 가장 높은 높이 레벨을 기준 높이 레벨로 식별할 수 있다. 프로세서(120)는 주행 로봇(100)이 이동하는 각 영역에서 기준 높이 레벨의 스캔 데이터를 식별하고, 식별된 기준 높이 레벨의 스캔 데이터를 연결하여 전체 맵을 생성할 수 있다. 프로세서(120)는 생성된 전체 맵에 기초하여 이동 경로를 설정할 수 있고, 생성된 지역 맵에 기초하여 주행 로봇(100)의 로컬라이제이션(localization) 과정을 수행할 수 있다. 로컬라이제이션 과정이란 주행 로봇(100)이 현재 위치 및 방향을 식별하는 과정을 의미할 수 있다.
프로세서(120)는 생성된 지역 맵에 기초하여 주행 로봇(100)의 위치, 방향을 식별할 수 있다. 맵이 생성된 이후, 프로세서(120)는 주행 로봇(100)의 현재 위치에서 목적지로 주행 로봇(100)을 이동시킬 수 있다. 프로세서(120)는 생성된 지역 맵(또는, 스캔 데이터)의 특징 점수에 기초하여 각 지역 맵에 가중치를 설정할 수 있다. 프로세서(120)는 특징 점수가 높은 지역 맵에는 높은 가중치를 설정하고, 특징 점수가 낮은 지역 맵에는 낮은 가중치를 설정할 수 있다. 예를 들어, 프로세서(120)는 특징 점수를 가중치로 설정할 수 있다. 즉, 각 지역 맵에 대응되는 특징 점수는 가중치로 사용될 수 있다. 또는, 특징 점수가 가장 높은 지역 맵에만 가중치를 설정하고, 나머지 지역 맵을 무시할 수 있다. 또는, 프로세서(120)는 특정 영역에서 불필요하다고 판단된 지역 맵에는 0의 가중치를 설정할 수 있다. 프로세서(120)는 주행 로봇(100)이 위치한 영역에서 뎁스 데이터를 획득하고, 기 설정된 높이 레벨의 스캔 데이터를 식별할 수 있다. 프로세서(120)는 식별된 스캔 데이터를 생성된 지역 맵과 비교할 수 있다. 프로세서(120)는 식별된 스캔 데이터와 일치하는 지역 맵 또는 스캔 데이터와 유사도가 가장 높은 지역 맵을 식별할 수 있다. 프로세서(120)는 식별된 지역 맵에 기초하여 주행 로봇(100)의 위치 및 방향을 식별할 수 있다.
프로세서(120)는 임계 값 이상인 특징 점수를 갖는 지역 맵 중에서 평균 점수가 가장 높은 높이 레벨 또는 특징 점수의 총합이 가장 높은 높이 레벨의 지역 맵을 통합하여 경로 계획에 사용할 전체 맵을 생성할 수 있다. 로봇(100)이 주행 할 때, 프로세서(120)는 후보 지역의 지역 맵과 후보 지역 맵의 특정 높이에 대응되는 뎁스 정보를 가상으로 스캔하여 로컬라이제이션을 수행할 수 있다. 프로세서(120)는 각 지역 맵의 가중치를 적용(또는, 통합)하여 로봇의 현재 위치를 결정할 수 있다. 로컬라이제이션 알고리즘에 따라서 결과가 일부 달라질 수 있으나, 로봇(100)의 현재 위치를 결정하기 위해서 프로세서(120)는 상술한 과정을 통해서 결정된 하나 또는 복수의 특정 높이에서 가상 스캔 정보와 대응되는 지역 맵 및 가중치를 이용할 수 있다.
도 3은 일 실시 예에 따른 주행 로봇의 구체적인 구성을 설명하는 블록도이다.
도 3을 참조하면, 카메라(110), 프로세서(120), 모터(130), 입력 인터페이스(135), 통신 인터페이스(140), 마이크(145), 센서(150), 디스플레이(155), 스피커(160), 메모리(165)를 포함할 수 있다.
모터(130)는 주행 로봇(100)을 움직이게 하고 주행 로봇(100)의 구성을 움직일 수 있다. 예를 들어, 모터(130)는 주행 로봇(100)의 휠을 구동시켜 주행 로봇(100)을 회전 또는 이동시킬 수 있다. 또는 모터(130)는 주행 로봇(100)의 카메라(110)를 이동시킬 수 있고, 암(arm) 등을 움직일 수 있다. 모터(130)는 주행 로봇(100)에 복수 개 포함될 수 있고, 각 모터(130)는 주행 로봇(100)의 각 구성을 움직이게 할 수 있다.
입력 인터페이스(135)는 사용자로부터 제어 명령을 입력받을 수 있다. 예를 들어, 입력 인터페이스(135)는 사용자로부터 전원 온/오프, 주행 로봇(100)의 설정 값에 대한 입력, 메뉴 선택 등의 명령을 입력받을 수 있다. 입력 인터페이스(135)는 키보드, 버튼, 키 패드, 터치 패드, 터치 스크린을 포함할 수 있다. 입력 인터페이스(135)는 입력 장치, 입력부, 입력 모듈 등으로 불릴 수도 있다.
통신 인터페이스(140)는 외부 장치와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(140)는 Wi-Fi, Wi-Fi 다이렉트, 블루투스, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project) 및 LTE(Long Term Evoloution)의 통신 방식 중 적어도 하나 이상의 통신 방식으로 외부 장치와 통신을 수행할 수 있다. 통신 인터페이스(140)는 통신 장치, 통신부, 통신 모듈, 송수신부 등으로 지칭될 수 있다.
마이크(145)는 사용자의 음성을 입력받을 수 있다. 예를 들어, 마이크(145)는 사용자로부터 제어 명령 등을 음성으로 입력받을 수 있다. 프로세서(120)는 입력된 사용자의 음성에 기초하여 제어 명령을 인식하고 관련된 제어 동작을 수행할 수 있다. 예를 들어, 주행 로봇(100)은 하나 이상의 마이크(145)를 포함할 수 있다. 마이크(145)는 일반 마이크, 서라운드 마이크, 지향성 마이크 등을 포함할 수 있다.
센서(150)는 주변 환경을 감지할 수 있다. 센서(150)는 주변 환경의 뎁스 데이터를 감지할 수 있다. 또는, 센서(150)는 노면 상태, 바닥의 요철 여부, 장애물 여부 등을 감지할 수 있다. 예를 들어, 센서(180)는 각도 센서, 가속도 센서, 중력 센서, 자이로 센서, 지자기 센서, 방향 센서, 적외선 센서, 초음파 센서, ToF(Time-of-Flight), 라이다, 레이저 센서, 모션 인식 센서, 열 감지 센서, 이미지 센서, 트래킹 센서, 근접 센서, 조도 센서, 전압계, 전류계, 기압계, 습도계, 온도계, 터치 센서 등을 포함할 수 있다.
디스플레이(155)는 프로세서(120)에서 처리된 데이터를 영상으로 출력할 수 있다. 디스플레이(155)는 정보를 표시할 수 있고, 인식된 사용자의 명령에 대응되는 화면을 출력할 수 있다. 일 예로서, 디스플레이(155)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode), 플렉서블 디스플레이, 터치 스크린 등으로 구현될 수 있다. 디스플레이(155)가 터치 스크린으로 구현되는 경우, 주행 로봇(100)은 터치 스크린을 통해 제어 명령을 입력받을 수도 있다.
스피커(160)는 사운드 신호를 출력할 수 있다. 예를 들어, 스피커(160)는 사용자의 입력 명령에 대한 정보, 경고 관련 정보, 주행 로봇(100)의 상태 관련 정보, 동작 관련 정보 등을 음성이나 알림음으로 출력할 수 있다.
메모리(165)는 주행 로봇(100)의 기능을 수행하는 데이터, 알고리즘 등을 저장하고, 주행 로봇(100)에서 구동되는 프로그램, 명령어 등을 저장할 수 있다. 또는, 메모리(165)는 가상으로 스캔할 하나 이상 복수의 특정 높이 레벨에 대한 정보, 뎁스 데이터, 전체 맵, 지역 맵, 가중치 정보 등을 저장할 수 있다. 메모리(165)에 저장된 알고리즘 또는 데이터는 프로세서(120)의 제어에 의해 프로세서(120)에 로딩되어 맵 생성 또는 로컬라이제이션 과정을 수행할 수 있다. 예를 들어, 메모리(165)는 롬, 램, HDD, SSD, 메모리 카드 등의 타입으로 구현될 수 있다.
주행 로봇(100)은 상술한 구성을 모두 포함할 수 있고, 일부 구성을 포함할 수 있다. 지금까지 주행 로봇(100)의 구성을 설명하였다. 아래에서는 주행 로봇(100)이 맵을 생성하는 과정 및 생성된 맵으로부터 로컬라이제이션을 하는 과정을 설명한다.
도 4a 내지 도 4d는 일 실시 예에 따른 복수의 높이 레벨의 지역 맵을 생성하는 과정을 설명하는 도면이다.
도 4a를 참조하면, 뎁스 데이터가 도시되어 있다. 주행 로봇(100)은 카메라(110)를 이용하여 주변 환경의 뎁스 데이터(10)를 획득할 수 있다. 예를 들어, 카메라(110)는 뎁스 카메라를 포함할 수 있고, 시야각 범위의 뎁스 데이터(10)를 획득할 수 있다. 뎁스 데이터(10)는 벽면의 뎁스 정보, 오브젝트의 뎁스 정보 등을 포함할 수 있다.
주행 로봇(100)은 획득된 뎁스 데이터(10)로부터 복수의 높이 레벨(11, 14, 15, 17)의 스캔 데이터를 식별할 수 있다. 높이 레벨은 주행 로봇(100)이 획득된 뎁스 데이터(10)에서 가상으로 스캔할 기 설정된 높이 레벨일 수 있다. 일 예로서, 복수의 높이 레벨(11, 14, 15, 17)은 제1 레벨(11), …, 제4 레벨(14), 제5 레벨(15), …, 제7 레벨(17)을 포함할 수 있고(중간 레벨도 스캔될 수 있지만, 본 개시의 목적을 위해 이러한 예시적인 레벨만 논의됨), 제1 레벨(11)은 실제 높이 1.4m, 제4 레벨(14)은 실제 높이 0.8m, 제5 레벨(15)은 실제 높이 0.6m, 제7 레벨(17)은 실제 높이 0.2m에 대응되는 레벨일 수 있다. 주행 로봇(100)은 거리 센서, 초음파 센서 등을 이용하여 벽면과의 거리를 감지할 수 있다. 또한, 주행 로봇(100)은 각도 센서 등을 이용하여 오브젝트 또는 오브젝트의 특정 위치의 각도를 감지할 수 있다. 또는, 주행 로봇(100)은 카메라(110)의 각도 정보를 인지할 수 있으므로 카메라(110)의 각도 정보에 기초하여 오브젝트, 오브젝트의 특정 위치 또는 벽면의 특정 위치의 각도를 식별할 수 있다. 주행 로봇(100)은 감지된 거리 정보 및/또는 각도 정보에 기초하여 실제 높이 정보를 산출할 수 있다.
도 4b를 참조하면 각 높이 레벨의 스캔 데이터가 도시되어 있다.
주행 로봇(100)은 각 높이 레벨(11, 14, 15, 17)의 스캔 데이터(21, 24, 25, 27)을 획득할 수 있다. 제1 스캔 데이터(21)는 제1 높이 레벨에 대응되고, 제4 스캔 데이터(24)는 제4 높이 레벨에 대응되고, 제5 스캔 데이터(25)는 제5 레벨(15)에 대응되고, 제7 스캔 데이터(27)는 제7 레벨(17)에 대응될 수 있다.
각 스캔 데이터(21, 24, 25, 27)는 뎁스 데이터(10)의 특정 높이에서 라인을 따라 스캔한 데이터일 수 있다. 따라서, 각 스캔 데이터(21, 24, 25, 27)는 뎁스 데이터를 포함할 수 있다. 뎁스 데이터(10)는 오브젝트(또는, 벽면)의 깊이 정도를 나타내므로 요철 정보를 포함할 수 있다. 따라서, 특정 높이의 라인을 따라 스캔한 각 스캔 데이터(21, 24, 25, 27)는 오브젝트(또는, 벽면)의 뎁스(또는, 깊이, 요철)에 따라 라인, 각도를 포함할 수 있다.
주행 로봇(100)은 각 높이 레벨의 스캔 데이터의 특징 점수를 식별할 수 있다. 예를 들어, 특징 점수는 각(angle)의 수, 각도, 라인 수, 라인 또는 각의 선명도 등에 기초하여 산출될 수 있다. 예를 들어, 주행 로봇(100)은 각 및/또는 라인이 많을수록 높은 특징 점수를 부여할 수 있다. 또는, 주행 로봇(100)은 각도가 클수록 높은 특징 점수를 부여할 수 있다. 또는, 주행 로봇(100)은 선명도가 높을수록 높은 특징 점수를 부여할 수 있다. 각 및/또는 라인이 많거나 각도가 크다는 것은 뎁스의 변화가 큰 것을 의미할 수 있다. 즉, 오브젝트(또는, 벽면)이 식별될 수 있는 특징이 많다는 것을 의미할 수 있다. 또한, 선명도가 높다는 것은 반사된 빛이 많다는 것을 의미할 수 있다. 예를 들어, 흰색 벽은 스캔 데이터의 선명도가 높을 수 있고, 검은 벽은 스캔 데이터의 선명도가 낮을 수 있다. 반사된 빛이 많다는 것은 벽 또는 오브젝트에 대한 특징 정보를 많이 획득한 것을 의미할 수 있다. 즉, 스캔 데이터의 특징 점수가 높다는 것은 벽 또는 오브젝트에 대한 특징을 많이 포함하고 있다는 것을 의미할 수 있다.
주행 로봇(100)은 임계 값보다 높은 특징 점수를 포함하는 스캔 데이터를 지역 맵으로 생성할 수 있다.
주행 로봇(100)은 각 높이 레벨의 스캔 데이터 중에서 임계 값보다 높은 특징 점수를 포함하는 스캔 데이터(21, 24, 25, 27)를 식별할 수 있다. 주행 로봇(100)은 현재 위치에서 다양한 방향의 뎁스 데이터를 획득하고, 상술한 과정과 유사하게 다양한 방향의 스캔 데이터를 획득할 수 있다. 그리고, 획득된 다양한 방향의 스캔 데이터에 기초하여 지역 맵을 생성할 수 있다.
도 4c를 참조하면, 지역 맵이 도시되어 있다.
일 예로서, 주행 로봇(100)은 제1 스캔 데이터(21), 제4 스캔 데이터(24), 제5 스캔 데이터(25), 제7 스캔 데이터(27)를 임계 값보다 높은 특징 점수를 포함하는 스캔 데이터로 식별할 수 있다. 도 4c에 도시된 바와 같이, 주행 로봇(100)은 제1 스캔 데이터(21)를 제1 지역 맵(31)으로 생성하고, 제4 스캔 데이터(24)를 제4 지역 맵(34)으로 설정하고, 제5 스캔 데이터(25)를 제5 지역 맵(35)으로 설정하고, 제7 스캔 데이터(27)를 제7 지역 맵(37)으로 설정할 수 있다. 도 4c에 도시된 각 지역 맵(31, 34, 35, 37)은 하나의 뎁스 데이터(10)의 각 높이 레벨의 스캔 데이터에 기초하여 생성된 지역 맵일 수 있다. 따라서, 도 4c에 도시된 각 지역 맵(31, 34, 35, 37)은 동일한 위치의 높이만 다른 지역 맵일 수 있다.
주행 로봇(100)은 임계 값보다 높은 지역 맵(31, 34, 35, 37)을 로컬라이제이션 과정에서 이용할 수 있다. 주행 로봇(100)은 데이터량을 줄이기 위해 메인 지역 맵과 서브 지역 맵을 구별하고, 서브 지역 맵을 다운스케일링할 수 있다.
도 4d를 참조하면, 하나의 메인 지역 맵과 두 개의 서브 지역 맵이 도시되어 있다.
상술한 바와 같이, 주행 로봇(100)은 해당 위치의 다양한 방향에서 획득한 각 레벨의 스캔 데이터를 연결하여 각 레벨의 지역 맵을 생성할 수 있다. 예를 들어, 주행 로봇(100)은 다양한 방향에서 획득한 제1 레벨의 스캔 데이터를 연결하여 제1 지역 맵으로 생성하고, 제4 레벨의 스캔 데이터를 연결하여 제4 지역 맵으로 생성하고, 제5 레벨의 스캔 데이터를 연결하여 제5 지역 맵으로 생성하고, 제7 스캔 데이터를 연결하여 제7 지역 맵으로 생성할 수 있다. 주행 로봇(100)은 생성된 지역 맵의 특징 점수에 기초하여 로컬라이제이션에 사용할 지역 맵으로 결정할 수 있다. 예를 들어, 주행 로봇(100)은 기 설정된 임계 값보다 높은 제4 지역 맵(34), 제5 지역 맵(35), 제7 지역 맵(37)을 로컬라이제이션에 사용할 지역 맵으로 결정할 수 있다.
주행 로봇(100)은 식별된 특징 점수가 가장 높은 스캔 데이터를 메인 지역 맵(34)으로 식별하고, 나머지 스캔 데이터를 서브 지역 맵(35, 37)으로 식별할 수 있다. 예를 들어, 제4 지역 맵(34)의 특징 점수가 가장 높은 경우, 주행 로봇(100)은 제4 지역 맵(34)을 메인 지역 맵으로 결정하고, 제5 지역 맵(35) 및 제7 지역 맵(37)을 서브 지역 맵으로 결정할 수 있다. 그리고, 주행 로봇(100)은 서브 지역 맵으로 결정된 제5 지역 맵(35) 및 제7 지역 맵(37)을 다운스케일링할 수 있다.
주행 로봇(100)은 서브 지역 맵을 다운스케일링함으로써 데이터량을 줄일 수 있다. 또는, 주행 로봇(100)은 메인 지역 맵(또는, 스캔 데이터) 및 서브 지역 맵(또는, 스캔 데이터)을 저장하고, 로컬라이제이션에 사용하기로 결정한 지역 맵 이외의 지역 맵(또는, 스캔 데이터)를 삭제할 수 있다. 또는, 주행 로봇(100)은 메인 지역 맵 이외의 지역 맵을 삭제할 수 있다. 즉, 주행 로봇(100)은 데이터량을 줄이기 위해 특징 점수가 기 설정된 점수 이상인 지역 맵(또는, 스캔 데이터)만을 저장할 수 있다.
또는, 주행 로봇(100)은 모든 지역 맵(또는, 스캔 데이터)를 저장하고, 기 설정된 점수 이상인 지역 맵(또는, 스캔 데이터)만을 로컬라이제이션에 이용할 수 있다. 주행 로봇(100)은 로컬라이제이션에 이용하지 않지만 저장된 지역 맵(또는, 스캔 데이터)를 다른 용도로 사용할 수 있다. 예를 들어, 주행 로봇(100)은 전체 맵을 생성할 때 저장된 지역 맵을 이용할 수 있고, 위치나 방향이 정확히 식별되지 않을 때 추가 지역 맵을 이용할 수도 있다.
주행 로봇(100)은 상술한 과정을 통해 지역 맵을 생성하고, 로컬라이제이션에 사용할 지역 맵을 결정할 수 있다. 주행 로봇(100)은 각 영역에서 지역 맵을 생성하고 결정할 수 있다. 주행 로봇(100)이 전체 영역에서 지역 맵을 생성하면, 주행 로봇(100)은 전체 영역에 대해서 각 높이 레벨의 지역 맵의 특징 점수를 식별할 수 있다. 그리고, 주행 로봇(100)은 전체 영역에 대해서 가장 높은 특징 점수가 부여된 높이 레벨의 지역 맵을 연결하여 전체 맵을 생성할 수 있다.
또는, 주행 로봇(100)은 주변을 360도 회전하면서 뎁스 데이터를 획득할 수 있다. 그리고, 주행 로봇(100)은 획득한 뎁스 데이터에서 각 높이 레벨의 스캔 데이터를 획득하고 특징 점수를 식별할 수 있다. 주행 로봇(100)은 식별된 각 높이 레벨의 스캔 데이터 중 특징 점수가 가장 높은 높이 레벨의 스캔 데이터를 판단할 수 있다. 주행 로봇(100)은 특징 점수가 가장 높은 스캔 데이터의 높이 레벨을 기준 높이 레벨로 식별하고, 기준 높이 레벨의 스캔 데이터에 기초하여 전체 맵을 생성할 수 있다.
주행 로봇(100)은 이동 경로를 설정할 때 전체 맵을 이용하고, 위치 및 방향을 판단할 때 각 지역의 지역 맵을 이용할 수 있다.
도 5a 및 도 5b는 일 실시 예에 따른 로컬라이제이션 과정을 설명하는 도면이다.
도 5a를 참조하면, 뎁스 데이터가 도시되어 있다. 주행 로봇(100)은 전체 맵을 생성한 뒤 현재 위치(예, A 지점)에서 다른 위치(예, B 지점)로 이동할 수 있다. 주행 로봇(100)은 전체 맵을 이용하여 A 지점으로부터 B 지점으로 이동하는 경로를 설정할 수 있다. 주행 로봇(100)은 설정된 이동 경로에 따라 이동할 수 있다. 주행 로봇(100)은 이동 중에 위치 및 방향을 식별할 수 있다.
주행 로봇(100)은 카메라(110)를 이용하여 주변 환경의 뎁스 데이터(50)를 획득할 수 있다. 주행 로봇(100)은 획득된 뎁스 데이터(50)로부터 복수의 높이 레벨(51, 52, 53)의 스캔 데이터를 식별할 수 있다. 이동 중 식별하는 스캔 데이터는 지역 맵을 생성할 때 식별하는 스캔 데이터보다 같거나 적을 수 있다.
도 5b를 참조하면 각 높이 레벨의 스캔 데이터가 도시되어 있다.
주행 로봇(100)은 각 높이 레벨의 스캔 데이터(61, 62, 63)을 획득할 수 있다. 주행 로봇(100)은 획득한 각 높이 레벨의 스캔 데이터(61, 62, 63)을 생성된 지역 맵(71, 72, 73)과 비교할 수 있다. 이때, 주행 로봇(100)은 생성된 지역 맵(71, 72, 73)의 특징 점수에 기초하여 각 지역 맵(71, 72, 73)에 가중치를 설정할 수 있다. 예를 들어, 주행 로봇(100)은 제2 지역 맵(72), 제3 지역 맵(73), 제1 지역 맵(71)의 순서로 특징 점수가 높으면 제2 지역 맵(72), 제3 지역 맵(73), 제1 지역 맵(71)에 각각 0.5, 0.3, 0.2의 가중치를 설정할 수 있다. 가중치는 각 지역 맵(71, 72, 73)의 특징 점수일 수 있다. 그리고, 주행 로봇(100)은 가중치가 설정된 지역 맵(71, 72, 73) 및 획득된 스캔 데이터(61, 62, 63)에 기초하여 일치하는 또는 가장 유사도가 높은 지역 맵에 대응하는 위치 및 방향을 식별할 수 있다. 주행 로봇(100)이 식별한 위치 및 방향은 주행 로봇(100)의 위치 및 방향일 수 있다. 주행 로봇(100)은 상술한 방식으로 이동 중에 위치 및 방향을 식별할 수 있다.
지금까지 주행 로봇(100)이 맵을 생성하고 위치 및 방향을 식별하는 다양한 실시 예를 설명하였다. 아래에서는 주행 로봇의 제어 방법을 설명한다.
도 6은 일 실시 예에 따른 주행 로봇의 제어 방법을 설명하는 흐름도이다.
도 6을 참조하면, 주행 로봇은 뎁스 데이터를 획득할 수 있다(S610). 주행 로봇은 이동하는 각 지역에서 뎁스 데이터를 획득할 수 있다. 그리고, 주행 로봇은 스캔 데이터를 식별할 수 있다(S620). 주행 로봇은 획득된 뎁스 데이터로부터 기 설정된 복수의 높이 레벨의 스캔 데이터를 식별할 수 있다.
주행 로봇은 특징 점수를 식별할 수 있다(S630). 주행 로봇은 식별된 복수의 높이 레벨의 스캔 데이터 각각의 특징 점수를 식별할 수 있다. 예를 들어, 주행 로봇은 스캔 데이터의 각의 수, 각도, 라인 수, 선명도 등에 기초하여 특징 점수를 식별할 수 있다.
주행 로봇은 지역 맵을 생성할 수 있다(S640). 주행 로봇은 식별된 특징 점수가 기 설정된 임계 값 이상인 높이 레벨의 스캔 데이터를 지역 맵으로 생성할 수 있다. 주행 로봇은 하나 이상의 지역 맵을 생성할 수 있다. 예를 들어, 복수의 지역 맵을 생성하면, 주행 로봇은 특징 점수가 기 설정된 임계 값 이상인 지역 맵을 식별할 수 있다. 주행 로봇은 임계 값 이상으로 식별된 지역 맵 중 특징 점수가 가장 높은 스캔 데이터로부터 생성된 지역 맵을 메인 지역 맵으로 식별하고, 나머지 스캔 데이터로부터 생성된 지역 맵을 서브 지역 맵으로 식별할 수 있다. 주행 로봇은 식별된 서브 지역 맵을 다운스케일링할 수 있다. 주행 로봇은 메인 지역 맵이나 서브 지역 맵(또는, 스캔 데이터)으로 식별된 외의 지역 맵도 저장하거나 삭제할 수 있다. 또는, 주행 로봇은 기 설정된 임계 값 미만의 스캔 데이터를 저장하거나 삭제할 수 있다.
주행 로봇은 지역 맵에 기초하여 전체 맵을 생성할 수 있다. 예를 들어, 주행 로봇은 각 지역에서 식별된 복수의 높이 레벨의 스캔 데이터의 특징 점수에 기초하여 전체 지역에 대한 높이 레벨 별 특징 점수를 식별할 수 있다. 주행 로봇은 식별된 전체 지역에 대한 높이 레벨 별 특징 점수가 가장 높은 레벨의 스캔 데이터를 전체 맵으로 생성할 수 있다. 또는, 주행 로봇은 기준 높이 레벨을 식별하고, 각 지역에서 식별된 기준 높이 레벨의 스캔 데이터를 전체 맵으로 생성할 수 있다. 예를 들어, 주행 로봇은 최초 지역에서 식별된 특징 점수가 가장 높은 스캔 데이터의 높이 레벨을 기준 높이 레벨로 식별할 수 있다.
주행 로봇은 지역 맵의 특징 점수에 기초하여 가중치를 설정할 수 있다. 주행 로봇은 가중치가 설정된 적어도 하나의 지역 맵 및 획득된 스캔 데이터에 기초하여 위치 및 방향을 식별할 수 있다.
본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 상술한 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상술한 다양한 실시 예에 따른 주행 로봇의 제어 방법은 컴퓨터 프로그램 제품으로 제공될 수도 있다. 컴퓨터 프로그램 제품은 S/W 프로그램 자체 또는 S/W 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)를 포함할 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (15)

  1. 주행 로봇에 있어서,
    뎁스 카메라를 구성하는 카메라; 및
    상기 주행 로봇이 이동하는 하나 이상의 지역에서 뎁스 데이터를 획득하도록 상기 카메라를 제어하고,
    상기 획득된 뎁스 데이터에 기초하여 기 설정된 복수의 높이 레벨에 대응되는 복수의 스캔 데이터 셋(set)을 식별하며,
    상기 복수의 스캔 데이터 셋에 기초하여 상기 식별된 복수의 스캔 데이터 셋 각각에 대응되는 복수의 특징 점수를 식별하고,
    상기 복수의 스캔 데이터 셋 중에서 적어도 하나의 스캔 데이터에 대응되는 적어도 하나의 지역 맵을 생성하며, 상기 복수의 특징 점수 중 상기 적어도 하나의 스캔 데이터에 대응되는 특징 점수는 기 설정된 임계 값 이상인 적어도 하나의 프로세서;를 포함하는, 주행 로봇.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 스캔 데이터 셋 중, 상기 복수의 특징 점수 중 가장 높은 점수로 식별된 특징 점수에 대응되는 제1 스캔 데이터 셋을 메인 지역 맵으로 식별하고,
    상기 복수의 특징 점수 중 상기 기 설정된 임계 값을 초과하는 하나 이상의 특징 점수가 식별되면, 상기 제1 스캔 데이터 셋을 제외한 상기 복수의 스캔 데이터 셋 중에서, 상기 복수의 특징 점수 중 상기 기 설정된 임계 값을 초과하는 특징 점수에 대응되는 각 데이터 셋을 서브 지역 맵으로 식별하는, 주행 로봇.
  3. 제2항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 식별된 각 서브 지역 맵을 다운스케일링하는, 주행 로봇.
  4. 제2항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 스캔 데이터의 각(angle)의 수, 각도 크기, 라인 수 및 선명도 중 적어도 하나에 기초하여 상기 복수의 특징 점수를 식별하는, 주행 로봇.
  5. 제2항에 있어서,
    상기 주행 로봇이 이동하는 하나 이상의 지역은 집합적으로(collectively) 전체 지역을 형성하며,
    상기 적어도 하나의 프로세서는,
    상기 복수의 스캔 데이터 셋 내에서, 상기 전체 지역 내에서 상기 하나 이상의 지역 각각에 대응되는 하나 이상의 지역 스캔 데이터 셋을 식별하고,
    상기 하나 이상의 지역 스캔 데이터 셋 각각에 대하여, 복수의 기 설정된 높이 레벨 각각에 대응되는 복수의 지역 특징 점수를 식별하고,
    상기 복수의 지역 특징 점수에 기초하여, 상기 전체 지역 중에서 상기 복수의 기 설정된 높이 레벨에 대응되는 복수의 전체 지역 특징 점수를 식별하고,
    상기 복수의 기 설정된 높이 레벨 중, 상기 복수의 전체 지역 특징 점수 중 가장 높은 전체 지역 특징 점수에 대응되는 제1 기 설정된 높이 레벨을 식별하고,
    상기 제1 기 설정된 높이 레벨에 대응되는 복수의 스캔 데이터 셋 각각의 스캔 데이터 셋에 기초하여 전체 지역의 맵을 생성하는, 주행 로봇.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 지역 맵의 특징 점수에 기초하여 상기 적어도 하나의 지역 맵에 가중치를 설정하고, 상기 가중치가 설정된 적어도 하나의 지역 맵 및 상기 복수의 스캔 데이터 셋에 기초하여 상기 주행 로봇의 위치 및 방향을 식별하는, 주행 로봇.
  7. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 기 설정된 높이 레벨 중 가장 높은 레벨을 기준 높이 레벨로 식별하고,
    상기 복수의 스캔 데이터 셋 중에서, 상기 하나 이상의 지역 각각에서 식별된 상기 기준 높이 레벨에 대응되는 스캔 데이터 셋에 기초하여 전체 지역 맵을 생성하는, 주행 로봇.
  8. 제7항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 하나 이상의 지역 중 상기 주행 로봇이 상기 주행 로봇이 위치한 최초 지역에서, 상기 복수의 기 설정된 높이 레벨 중, 상기 복수의 특징 점수 중 가장 높은 특징 점수에 대응되는 높이 레벨을 상기 기준 높이 레벨로 식별하는, 주행 로봇.
  9. 주행 로봇의 제어 방법에 있어서,
    상기 주행 로봇이 이동하는 하나 이상의 지역에서 뎁스 데이터를 획득하는 단계;
    상기 획득된 뎁스 데이터에 기초하여 기 설정된 복수의 높이 레벨에 대응되는 복수의 스캔 데이터 셋(set)을 식별하는 단계;
    상기 복수의 스캔 데이터 셋에 기초하여 상기 식별된 복수의 스캔 데이터 셋 각각에 대응되는 복수의 특징 점수를 식별하는 단계; 및
    상기 복수의 스캔 데이터 셋 중에서 적어도 하나의 스캔 데이터에 대응되는 적어도 하나의 지역 맵을 생성하며, 상기 복수의 특징 점수 중 상기 적어도 하나의 스캔 데이터에 대응되는 특징 점수는 기 설정된 임계 값 이상인 단계;를 포함하는 주행 로봇의 제어 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 지역 맵을 생성하는 단계는,
    상기 복수의 스캔 데이터 셋 중, 상기 복수의 특징 점수 중 가장 높은 점수로 식별된 특징 점수에 대응되는 제1 스캔 데이터 셋을 메인 지역 맵으로 식별하는 단계; 및
    상기 복수의 특징 점수 중 상기 기 설정된 임계 값을 초과하는 하나 이상의 특징 점수가 식별되면, 상기 제1 스캔 데이터 셋을 제외한 상기 복수의 스캔 데이터 셋 중에서, 상기 복수의 특징 점수 중 상기 기 설정된 임계 값을 초과하는 특징 점수에 대응되는 각 데이터 셋을 서브 지역 맵으로 식별하는 단계;를 포함하는, 주행 로봇의 제어 방법.
  11. 제10항에 있어서,
    상기 식별된 각 서브 지역 맵을 다운스케일링하는 단계;를 더 포함하는 주행 로봇의 제어 방법.
  12. 제10항에 있어서,
    상기 복수의 특징 점수를 식별하는 단계는,
    상기 스캔 데이터의 각(angle)의 수, 각도 크기, 라인 수 및 선명도 중 적어도 하나에 기초하여 상기 복수의 특징 점수를 식별하는, 주행 로봇의 제어 방법.
  13. 제10항에 있어서,
    상기 주행 로봇이 이동하는 하나 이상의 지역은 집합적으로(collectively) 전체 지역을 형성하며,
    상기 제어 방법은,
    상기 복수의 스캔 데이터 셋 내에서, 상기 전체 지역 내에서 상기 하나 이상의 지역 각각에 대응되는 하나 이상의 지역 스캔 데이터 셋을 식별하는 단계;
    상기 하나 이상의 지역 스캔 데이터 셋 각각에 대하여, 복수의 기 설정된 높이 레벨 각각에 대응되는 복수의 지역 특징 점수를 식별하는 단계;
    상기 복수의 지역 특징 점수에 기초하여, 상기 전체 지역 중에서 상기 복수의 기 설정된 높이 레벨에 대응되는 복수의 전체 지역 특징 점수를 식별하는 단계;
    상기 복수의 기 설정된 높이 레벨 중, 상기 복수의 전체 지역 특징 점수 중 가장 높은 전체 지역 특징 점수에 대응되는 제1 기 설정된 높이 레벨을 식별하는 단계; 및
    상기 제1 기 설정된 높이 레벨에 대응되는 복수의 스캔 데이터 셋 각각의 스캔 데이터 셋에 기초하여 전체 지역의 맵을 생성하는 단계;를 포함하는, 주행 로봇의 제어 방법.
  14. 제13항에 있어서,
    상기 적어도 하나의 지역 맵의 특징 점수에 기초하여 상기 적어도 하나의 지역 맵에 가중치를 설정하고, 상기 가중치가 설정된 적어도 하나의 지역 맵 및 상기 복수의 스캔 데이터 셋에 기초하여 상기 주행 로봇의 위치 및 방향을 식별하는 단계;를 더 포함하는 주행 로봇의 제어 방법.
  15. 주행 로봇의 제어 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 주행 로봇이 이동하는 하나 이상의 지역에서 뎁스 데이터를 획득하는 단계;
    상기 획득된 뎁스 데이터에 기초하여 기 설정된 복수의 높이 레벨에 대응되는 복수의 스캔 데이터 셋(set)을 식별하는 단계;
    상기 복수의 스캔 데이터 셋에 기초하여 상기 식별된 복수의 스캔 데이터 셋 각각에 대응되는 복수의 특징 점수를 식별하는 단계; 및
    상기 복수의 스캔 데이터 셋 중에서 적어도 하나의 스캔 데이터에 대응되는 적어도 하나의 지역 맵을 생성하며, 상기 복수의 특징 점수 중 상기 적어도 하나의 스캔 데이터에 대응되는 특징 점수는 기 설정된 임계 값 이상인 단계;를 포함하는 주행 로봇의 제어 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 저장 매체.
PCT/KR2023/010556 2022-09-15 2023-07-21 주행 맵을 생성하는 주행 로봇 및 그 제어 방법 WO2024058402A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/232,595 US20240094740A1 (en) 2022-09-15 2023-08-10 Driving robot generating driving map and controlling method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0116603 2022-09-15
KR20220116603 2022-09-15
KR1020220139575A KR20240037792A (ko) 2022-09-15 2022-10-26 주행 맵을 생성하는 주행 로봇 및 그 제어 방법
KR10-2022-0139575 2022-10-26

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/232,595 Continuation US20240094740A1 (en) 2022-09-15 2023-08-10 Driving robot generating driving map and controlling method thereof

Publications (1)

Publication Number Publication Date
WO2024058402A1 true WO2024058402A1 (ko) 2024-03-21

Family

ID=90275233

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/010556 WO2024058402A1 (ko) 2022-09-15 2023-07-21 주행 맵을 생성하는 주행 로봇 및 그 제어 방법

Country Status (1)

Country Link
WO (1) WO2024058402A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217363A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd 環境地図生成装置、方法及びプログラム
KR20120047137A (ko) * 2010-11-03 2012-05-11 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR20170061373A (ko) * 2015-11-26 2017-06-05 삼성전자주식회사 이동 로봇 및 그 제어 방법
KR20190020006A (ko) * 2016-10-25 2019-02-27 엘지전자 주식회사 청소기 및 그 제어방법
KR20220039101A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 로봇 및 그의 제어 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217363A (ja) * 2008-03-07 2009-09-24 Hitachi Ltd 環境地図生成装置、方法及びプログラム
KR20120047137A (ko) * 2010-11-03 2012-05-11 엘지전자 주식회사 로봇 청소기 및 이의 제어 방법
KR20170061373A (ko) * 2015-11-26 2017-06-05 삼성전자주식회사 이동 로봇 및 그 제어 방법
KR20190020006A (ko) * 2016-10-25 2019-02-27 엘지전자 주식회사 청소기 및 그 제어방법
KR20220039101A (ko) * 2020-09-21 2022-03-29 삼성전자주식회사 로봇 및 그의 제어 방법

Similar Documents

Publication Publication Date Title
TWI663495B (zh) 移動式機器人系統及其控制方法
WO2021103987A1 (zh) 扫地机器人控制方法、扫地机器人及存储介质
WO2018088610A1 (ko) 레이저 스캐너를 이용한 대상 물체의 실시간 동적 위치 추적이 가능한 3d 레이저 스캐너 시스템
WO2018070686A1 (ko) 공항용 안내 로봇 및 그의 동작 방법
WO2019135514A1 (en) Mobile home robot and controlling method of the mobile home robot
TW201836541A (zh) 移動式機器人及其控制方法
US11257177B2 (en) Moving object action registration apparatus, moving object action registration system, and moving object action determination apparatus
WO2020017890A1 (en) System and method for 3d association of detected objects
WO2011040710A2 (ko) 단말기의 움직임 또는 자세에 기초하여 비주얼 서치를 수행하기 위한 방법, 단말기 및 컴퓨터 판독 가능한 기록 매체
WO2021235682A1 (en) Method and device for performing behavior prediction by using explainable self-focused attention
WO2021101045A1 (en) Electronic apparatus and method for controlling thereof
US20220063096A1 (en) Mobile robot and driving method thereof
WO2021125578A1 (ko) 시각 정보 처리 기반의 위치 인식 방법 및 시스템
KR20190094303A (ko) 인공지능을 이용하여 로봇의 위치를 재정의하는 방법 및 로봇
KR20190103511A (ko) 이동 로봇 및 그 제어방법
WO2024058402A1 (ko) 주행 맵을 생성하는 주행 로봇 및 그 제어 방법
WO2022059937A1 (ko) 로봇 및 그의 제어 방법
WO2022035054A1 (ko) 로봇 및 이의 제어 방법
US20220221872A1 (en) Information processing device, information processing method, and program
WO2019112296A1 (ko) 이미지 처리 장치, 및 이를 구비하는 이동 로봇
WO2022191424A1 (ko) 전자 장치 및 그 제어 방법
CN105929819B (zh) 一种控制电子设备的方法及电子设备
KR20240037792A (ko) 주행 맵을 생성하는 주행 로봇 및 그 제어 방법
WO2021133105A1 (ko) 이동 로봇 장치 및 이의 제어 방법
WO2019216673A1 (ko) 무인 이동체용 사물 유도 시스템 및 방법

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

Country of ref document: EP

Kind code of ref document: A1