[go: up one dir, main page]

WO2024111893A1 - Robot traveling in space using map, and method for identifying location thereof - Google Patents

Robot traveling in space using map, and method for identifying location thereof Download PDF

Info

Publication number
WO2024111893A1
WO2024111893A1 PCT/KR2023/016167 KR2023016167W WO2024111893A1 WO 2024111893 A1 WO2024111893 A1 WO 2024111893A1 KR 2023016167 W KR2023016167 W KR 2023016167W WO 2024111893 A1 WO2024111893 A1 WO 2024111893A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
map
clue
area
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2023/016167
Other languages
French (fr)
Korean (ko)
Inventor
이태윤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of WO2024111893A1 publication Critical patent/WO2024111893A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/243Means capturing signals occurring naturally from the environment, e.g. ambient optical, acoustic, gravitational or magnetic signals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]

Definitions

  • This disclosure relates to a robot and a method of identifying its location, and more specifically, to a robot that travels in space using a map and a method of identifying its location.
  • robots In general, robots have been developed for industrial purposes and are widely used in various industrial fields. Recently, the field using robots has expanded further, and they are being used not only in ordinary homes but also in various stores.
  • the robot can move within the space where the robot is located using a map of the space where the robot is located. To do this, the robot can estimate its location on the map.
  • a robot that travels in space using a map includes a camera, a microphone, memory, and one or more processors.
  • One or more processors repeatedly process an object fixedly located in the space and a specific location in the space based on an image captured through the camera and a sound received through the microphone while the robot travels the space using a map. Identify the sound received as a clue.
  • One or more processors generate a clue map with information about the clue added to the map and store it in the memory. When a preset event occurs, one or more processors identify the area where the robot is located on the map using the clue map, and perform relocalization on the identified area to identify the location of the robot on the map. .
  • the information about the clue may include at least one of a feature point of the object and a location of the object.
  • the information about the clue may include at least one of the characteristics of the sound and the location of the sound source that output the sound.
  • the one or more processors acquire information about the object using an image taken of the surrounding area of the robot through the camera, and generate sound using the sound received through the microphone. Obtain information about, generate an image patch corresponding to the area where the robot is currently located using the obtained information about the object and the information about the sound, and compare the generated image patch with the clue map. , the area where the robot is located can be identified on the map.
  • the one or more processors when the information about the clue included in one of the plurality of regions of the clue map matches the information about the object and the information about the sound included in the image patch, the one or more processors generate the clue map
  • the area matching the image patch can be identified as the area where the robot is located.
  • the one or more processors may identify an area in the clue map in which the clue does not exist as the area where the robot is located.
  • the preset event may include an event in which the robot cannot identify a location on the map or an event in which the robot that has been turned off is turned on.
  • a method for identifying the location of a robot that includes a camera and a microphone and travels in a space using a map includes an image captured by the camera while the robot is traveling in the space using a map, and Identifying an object fixedly located in the space and a sound repeatedly received at a specific location in the space based on the sound received through the microphone as a clue, creating a clue map to which information about the clue is added to the map.
  • a generating step and a preset event occur, identifying the area where the robot is located on the map using the clue map, and performing relocalization on the identified area to identify the location of the robot on the map. Includes steps.
  • a non-transitory computer readable device that includes a camera and a microphone according to an embodiment of the present disclosure and stores computer instructions that, when executed by one or more processors of a robot that navigates space using a map, cause the robot to perform an action.
  • the operation may be performed on an object fixedly located in the space and on the space based on an image captured by the camera and a sound received through the microphone while the robot travels the space using a map.
  • FIG. 1 is a diagram for explaining a robot according to an embodiment of the present disclosure
  • Figure 2A is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure
  • Figure 2b is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure
  • FIG. 3 is a diagram for explaining an example of a clue map according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram for explaining a method of updating a clue map according to an embodiment of the present disclosure
  • FIG. 5 is a diagram for explaining an example of an image patch according to an embodiment of the present disclosure.
  • FIGS. 6 and 7 are diagrams illustrating a method of identifying an area where a robot is currently located using a clue map and performing relocalization on the identified area according to an embodiment of the present disclosure
  • FIGS. 8A and 8B are diagrams illustrating a method of identifying an area where a robot is currently located using a user's voice according to an embodiment of the present disclosure.
  • Figure 9 is a flowchart for explaining a method for identifying the location of a robot according to an embodiment of the present disclosure.
  • expressions such as “have,” “may have,” “includes,” or “may include” indicate the presence of the corresponding feature (e.g., a numerical value, function, operation, or component such as a part). indicates, does not rule out the presence of additional features.
  • expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together.
  • “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, or (3) it may refer to all cases including both at least one A and at least one B.
  • a component e.g., a first component
  • another component e.g., a second component
  • any component may be directly connected to the other component or may be connected through another component (e.g., a third component).
  • a component e.g., a first component
  • another component e.g., a second component
  • no other component e.g., a third component
  • the expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. ,” can be used interchangeably with “designed to,” “adapted to,” “made to,” or “capable of.”
  • the term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware.
  • the expression “a device configured to” may mean that the device is “capable of” working with other devices or components.
  • the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device.
  • a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.
  • FIG. 1 is a diagram for explaining a robot according to an embodiment of the present disclosure.
  • the robot 100 may be a home service robot. That is, the robot 100 is located at home and can provide various services such as housework, education, healthcare, etc. to the user. However, this is an example, and the type of robot 100 is not limited to home service robots.
  • the robot 100 may be located in an office, store, department store, restaurant, etc. Additionally, the robot 100 can perform various functions, such as guiding the user on a route, explaining a product to the user, or carrying the user's items and moving along with the user.
  • the robot 100 can drive using a map of the space (eg, home) where the robot 100 is located.
  • a map of the space where the robot 100 is located is a map of the space where the robot 100 is located, and the map used for driving the robot 100 is referred to as a driving map.
  • the robot 100 can drive in space using the driving map.
  • the robot 100 can use SLAM (Simultaneous Localization and Mapping) to create a driving map and estimate the position of the robot 100 in the driving map to perform autonomous driving in space. .
  • SLAM Simultaneous Localization and Mapping
  • the robot 100 can obtain information about the surrounding environment through the sensor of the robot 100.
  • the robot 100 re-estimates the position of the robot 100 on the driving map.
  • the process of doing so that is, relocalization, can be performed.
  • the robot 100 does not identify the location of the robot 100 by searching the entire driving map, but first identifies the area in the driving map where the robot 100 is located, and then identifies the area where the robot 100 is located. By performing relocalization on the area, the location of the robot 100 can be identified on the driving map.
  • the robot 100 can use various information existing within the area as a clue to identify the area where the robot 100 is located.
  • the robot 100 estimates the area in which the robot 100 is currently located in the driving map and performs relocalization on the estimated area rather than the entire driving map, so that the robot 100
  • the success rate of location estimation of (100) can be increased.
  • FIG. 2A is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a camera 110, a microphone 120, a memory 130, and one or more processors 140.
  • Camera 110 can generate images.
  • the camera may include at least one of a camera (ie, a monocular camera), a stereo camera, and an RGB-D camera.
  • the camera 110 may generate an image by photographing the surrounding area of the robot 100. At this time, if there is an object existing around the robot 100, the image may include the object.
  • objects are various objects that exist in a space (e.g., a house), such as walls, doors, ceilings, home appliances (e.g., TV, air conditioner, refrigerator, etc.), furniture (e.g., bed, sofa, dining table, sink, etc.) It can be.
  • the microphone 120 can receive sound.
  • the microphone 120 may receive sound generated around the robot 100.
  • a driving map may be stored in the memory 130.
  • the driving map is a map of the space in which the robot 100 drives, and can be created based on SLAM.
  • the robot 100 can drive in the space where the robot 100 is located using the driving map.
  • a clue map may be stored in the memory 130.
  • the Clue map may be a map to which information about Clue is added to a driving map.
  • the clue may include objects and sounds that can be used to estimate the area where the robot 100 is located on the driving map.
  • One or more processors 140 are electrically connected to the camera 110, microphone 120, and memory 130 to control the overall operation and functions of the robot 100.
  • One or more processors 140 include a Central Processing Unit (CPU), Graphics Processing Unit (GPU), Accelerated Processing Unit (APU), Many Integrated Core (MIC), Digital Signal Processor (DSP), Neural Processing Unit (NPU), and hardware. It may include one or more of an accelerator or machine learning accelerator.
  • One or more processors 140 may control one or any combination of other components of the robot 100 and may perform operations related to communication or data processing.
  • One or more processors 140 may execute one or more programs or instructions stored in memory. For example, one or more processors 140 may perform a method according to an embodiment of the present disclosure by executing one or more instructions stored in memory.
  • the plurality of operations may be performed by one processor or by a plurality of processors.
  • the first operation, the second operation, and the third operation may all be performed by the first processor.
  • the first operation and the second operation may be performed by a first processor (eg, a general-purpose processor) and the third operation may be performed by a second processor (eg, an artificial intelligence-specific processor).
  • the one or more processors 140 may be implemented as a single core processor including one core, or one or more multi-cores including a plurality of cores (e.g., homogeneous multi-core or heterogeneous multi-core). It may also be implemented as a processor (multicore processor). When one or more processors 140 are implemented as multi-core processors, each of the plurality of cores included in the multi-core processor may include processor internal memory such as cache memory and on-chip memory, and may include a plurality of processor internal memories such as cache memory and on-chip memory. A common cache shared by cores may be included in multi-core processors.
  • each of the plurality of cores (or some of the plurality of cores) included in the multi-core processor may independently read and perform program instructions for implementing the method according to an embodiment of the present disclosure, and all of the plurality of cores may (or part of it) may be linked to read and perform program instructions for implementing the method according to an embodiment of the present disclosure.
  • the plurality of operations may be performed by one core among a plurality of cores included in a multi-core processor, or may be performed by a plurality of cores.
  • the first operation, the second operation, and the third operation are all included in the multi-core processor. It may be performed by a core, and the first operation and the second operation may be performed by the first core included in the multi-core processor, and the third operation may be performed by the second core included in the multi-core processor. .
  • a processor may mean a system-on-chip (SoC) in which one or more processors and other electronic components are integrated, a single-core processor, a multi-core processor, or a core included in a single-core processor or a multi-core processor.
  • SoC system-on-chip
  • the core may be implemented as a CPU, GPU, APU, MIC, DSP, NPU, hardware accelerator, or machine learning accelerator, but embodiments of the present disclosure are not limited thereto.
  • processor 140 one or more processors 140 will be referred to as processor 140.
  • the processor 140 processes objects and A sound that is repeatedly received at a specific location in space is identified as a clue. Thereafter, the processor 140 generates a Clue map to which information about the Clue is added to the driving map and stores it in the memory 130.
  • the clue may include objects and sounds that can be used to estimate the area where the robot 100 is located on the driving map. Additionally, information about the clue may include information about the object and information about the sound.
  • the processor 140 identifies the area where the robot 100 is located on the driving map using the clue map, and performs relocalization on the area to identify the robot 100 on the driving map. Identify the location of
  • the processor 140 compares the information about objects and sounds acquired in the area where the robot 100 is currently located with the information about the clue included in the clue map, and determines whether the robot 100 is currently located on the driving map.
  • the area in which it is located can be identified. Additionally, the processor 140 may identify the location of the robot 100 on the driving map by performing relocalization on the identified area.
  • the success rate of location estimation of the robot 100 can be increased in that relocalization is performed on the area where the robot 100 is currently located rather than the entire driving map.
  • Figure 2b is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 includes a camera 110, an inertial measurement unit (IMU) sensor 111, an encoder 112, a lidar sensor 113, a microphone 120, a memory 130, and a processor. It may include (140), a driving unit 150, a communication unit 160, an input unit 170, and an output unit 180.
  • IMU inertial measurement unit
  • the robot 100 includes a camera 110, an inertial measurement unit (IMU) sensor 111, an encoder 112, a lidar sensor 113, a microphone 120, a memory 130, and a processor. It may include (140), a driving unit 150, a communication unit 160, an input unit 170, and an output unit 180.
  • this configuration is an example, and of course, in carrying out the present disclosure, new configurations may be added or some configurations may be omitted in addition to these configurations.
  • FIG. 2B parts that overlap with parts already described in FIG. 2A will be omitted or abbreviated.
  • the processor 140 may obtain information about the surrounding environment using at least one sensor among the camera 110, IMU sensor 111, encoder 112, and lidar sensor 113.
  • the IMU sensor 111 can sense the acceleration and angular velocity of the robot 100 using an accelerometer, gyroscope, magnetometer, etc.
  • the encoder 112 can sense the rotation speed and rotation direction of each of the plurality of wheels installed on the robot 100.
  • the plurality of wheels are rotated by a motor and may serve to move the robot 100.
  • the lidar sensor 113 can rotate 360 degrees and output a laser. And, when the laser is reflected and received from an object around the robot 100, the LIDAR sensor 113 can detect the distance to the object based on the time when the laser was received.
  • the processor 140 generates a driving map using the image acquired through the camera 110 and the information obtained from the IMU sensor 111, encoder 112, and lidar sensor 113, The location of the robot 100 can be identified on the driving map.
  • the driving unit 150 can move the robot 100.
  • the driving unit 150 may include a plurality of wheels 152 and a motor 152 for rotating the plurality of wheels 152.
  • the driving unit 150 may further include gears, actuators, etc.
  • the motor 151 controls the plurality of wheels 152 according to the control of the processor 140, and can control various driving operations of the robot 100, such as movement, stopping, speed control, and direction change.
  • the communication unit 160 includes circuitry.
  • the communication unit 160 is a component that performs communication with an external device.
  • the processor 140 can transmit various data to an external device and receive various data from the external device through the communication unit 160.
  • the processor 140 may receive a user command for controlling the operation of the robot 100 through the communication unit 160.
  • the communication interface 160 can communicate with an external device through a wireless communication method such as Bluetooth (BT), Bluetooth Low Energy (BLE), or Wireless Fidelity (WI-FI).
  • BT Bluetooth
  • BLE Bluetooth Low Energy
  • WI-FI Wireless Fidelity
  • the input unit 170 includes a circuit.
  • the input unit 170 can receive user commands for setting or selecting various functions supported by the robot 100.
  • the input unit 170 may include at least one button.
  • the input unit 170 may be implemented as a touch screen that can simultaneously perform the functions of the display 181.
  • the processor 140 may control the operation of the robot 100 based on a user command input through the input unit 170.
  • the processor 140 operates the robot ( 100) can be controlled.
  • the output unit 180 may include a display 181 and a speaker 182.
  • the display 181 can display various information.
  • the display 181 may be implemented as a liquid crystal display (LCD) or the like.
  • the display 181 may be implemented as a touch screen that can simultaneously perform the functions of the input unit 170.
  • the processor 140 may display information related to the operation of the robot 100 on the display 181.
  • Speaker 182 can output audio. Specifically, the processor 140 may output various notification sounds or voice guidance messages related to the operation of the robot 100 through the speaker 182.
  • the processor 140 may generate a driving map and store the driving map in the memory 130. Additionally, the processor 140 can control the robot 100 to drive in the space where the robot 100 is located using the driving map.
  • the processor 140 may obtain information about the surrounding environment using at least one of the camera 110, the IMU sensor 111, the encoder 112, and the LiDAR sensor 113. Additionally, the processor 140 can generate a driving map using SLAM based on the acquired information and identify the location of the robot 100 in the driving map. Additionally, the processor 140 may control the driving unit 150 so that the robot 100 travels based on the location where the robot 100 is identified.
  • the processor 140 may generate a clue map. To this end, the processor 140 can identify the clue.
  • the clue may include objects and sounds that can be used to estimate the spatial area where the robot 100 is located.
  • the processor 140 specifies objects and spaces fixedly located in space based on images captured through the camera 110 and sounds received through the microphone 120 while the robot 100 is traveling in space. A sound that is repeatedly received at a location can be identified as a clue.
  • the processor 140 acquires an image using the camera 110 while the robot 100 travels in space using a driving map, and identifies objects that are fixedly located in space based on the acquired image. can do.
  • the processor 140 may acquire an image taken through the camera 110 while the robot 100 travels in space, detect an object in the acquired image, and obtain feature points of the object.
  • the characteristic points of the object may include edges, corners, ridges, etc.
  • the processor 140 can identify the location of the object on the driving map.
  • the location of the object may include coordinate values on the driving map.
  • the processor 140 may identify the location of the robot 100 on the driving map.
  • the processor 140 analyzes images captured by the robot 100 through the camera 110 using the location of the robot 100, the shooting direction of the camera 110, and the distance between the robot 100 and the object.
  • the location of the object can be identified on the driving map.
  • the processor 140 uses the information about the names stored in the memory 130 to determine the name of the area where the object is located. can be identified.
  • the driving map is divided into a plurality of areas, and the names of the plurality of areas are “living room,” “kitchen,” and “room.”
  • the processor 140 may identify the object as being located in the “living room” area.
  • the processor 140 may store information about the feature points of the object and the location of the object in the memory 130.
  • the processor 140 repeats the above-described process while the robot 100 runs in space more than a preset number of times (here, the preset number of times is n (n is a natural number of 2 or more)), and moves the robot 100 fixedly in space.
  • the located object can be identified.
  • the processor 140 detects an object with the same feature point at the same location more than a preset number of times while the robot 100 travels in space more than a preset number of times (here, the preset number is m ( m is a natural number of 2 or more)), the detected object can be identified as an object that is fixedly located in space.
  • the processor 140 uses a driving map to receive sound through the microphone 120 while the robot 100 is traveling in space, and identifies sounds that are repeatedly received at a specific location in space based on the sound. can do.
  • the processor 140 may obtain characteristics of the sound from the received sound.
  • the characteristics of the sound may include waveform, wavelength, frequency band, amplitude, frequency, etc.
  • the characteristics of a sound may include various parameters that can distinguish the sound from other sounds.
  • the processor 140 may identify the location of the robot 100 on the driving map and identify the location where the robot 100 received the sound on the driving map.
  • the location where the robot 100 received the sound may include coordinate values on the driving map.
  • the processor 140 may identify the location of a sound source that outputs sound based on the identified location.
  • the processor 140 may estimate the location where the robot 100 received the sound on the driving map as the location of the sound source.
  • the processor 140 may estimate an area including the location where the robot 100 received the sound among the plurality of areas of the driving map as the location of the sound source. For example, the processor 140 may estimate that the sound source is located in area 2 if the location where the robot 100 received the sound is included in area 2 among areas 1 and 2 of the driving map. .
  • the processor 140 uses the information about the names stored in the memory 130 to make the robot 100 produce sound.
  • the name of the received area can be identified.
  • the driving map is divided into a plurality of areas, and the names of the plurality of areas are “living room,” “kitchen,” and “room.”
  • the processor 140 determines the location where the robot 100 received the sound. can be identified as being a “living room” area and a “kitchen” area.
  • the processor 140 may store information about the characteristics of the sound and the location of the sound source in the memory 130.
  • the processor 140 repeats the above-described process while the robot 100 travels in space more than a preset number of times (here, the preset number of times is n (n is a natural number of 2 or more)) to determine a specific location in space. You can identify sounds that are repeatedly received within the system.
  • the processor 140 receives sounds having the same characteristics more than a preset number of times while the robot 100 travels in space more than a preset number of times, and positions the sound source corresponding to the sound received more than the preset number of times. If is identified as the same, the corresponding sound can be identified as a sound that is received repeatedly.
  • the processor 140 can identify fixedly located objects and sounds that are repeatedly received.
  • the processor 140 may identify the identified objects and sounds as a clue, generate a clue map to which information about the clue is added to the driving map, and store it in the memory 130.
  • the information about the clue may include information about the object identified as the clue and information about the sound identified as the clue.
  • information about the object may include at least one of the characteristic points of the object and the location of the object.
  • information about the sound may include at least one of the characteristics of the sound and the location of the sound source that output the sound.
  • the processor 140 can display the location of the object on the driving map and map the feature points of the object obtained from the object to the location of the object. Additionally, the processor 140 may display the location of the sound source on the driving map and map the characteristics of the sound obtained from the sound to the location of the sound source. Accordingly, the processor 140 may generate a clue map. In this case, the information constituting the Clue map can be stored and managed in the Clue DB.
  • Figure 3 is a diagram for explaining an example of a clue map according to an embodiment of the present disclosure.
  • the processor 140 may generate a clue map 400 by adding information about the clue to the driving map 300 .
  • the locations 411 to 419 of the objects identified as the clues are displayed on the clue map 400, and the characteristic points of the objects may be mapped for each object.
  • the clue map 320 displays the locations 421 and 422 of sound sources corresponding to sounds identified as clues, and the characteristics of the sound can be mapped for each sound source.
  • the clue map includes feature points of the object.
  • the clue map may include an image in which an object identified as a clue is captured.
  • the processor 140 may obtain feature points of the object from the image.
  • the processor 140 may display the location of the object on the driving map. As described above, the processor 140 can travel through space multiple times and identify the location of an object in space each time it travels. At this time, the location of the same object may be measured with different coordinate values due to error. In this case, the processor 140 may determine the position of the object using the average value of the positions of the identified objects, or may determine the position of the object using images taken of the object from a plurality of viewpoints through the camera 110. Additionally, the processor 140 may display the location of the determined object on the driving map.
  • the processor 140 may update the clue map. Specifically, the processor 140 may identify the clu based on the image acquired through the camera 110 and the sound acquired through the microphone 120 while the robot 100 travels in space.
  • the processor 140 compares the information about the object and sound identified as a clue with the information about the clip included in the clip map, and if the information about the object and sound is not included in the clip map, the object and sound You can update the Clue map by adding information about it to the Clue map.
  • Figure 4 is a diagram for explaining a method of updating a clue map according to an embodiment of the present disclosure.
  • the processor 140 displays the location 431 of the object newly identified as a clue on the clip map 400, and maps the feature points of the object newly identified as a clip to that location. You can.
  • the processor 140 can create and update a clue map.
  • the processor 140 identifies the spatial area in which the robot 100 is located in the driving map using a clue map, and performs relocalization on the spatial area to identify the robot (100) in the driving map. 100) identifies the location.
  • the processor 140 acquires information about the object using an image taken of the surrounding area of the robot 100 using the camera 110 and uses the microphone 120 to obtain information about the object. Information about the sound can be obtained using the received sound.
  • the preset event may include an event in which the robot 100 cannot identify its location on the driving map. That is, the processor 140 can identify the location of the robot 100 on the driving map using SLAM. In this case, a case may occur where the user arbitrarily changes the location of the robot 100 or the processor 140 cannot identify the location of the robot 100 on the driving map for reasons such as the surrounding environment of the robot 100. there is.
  • the preset event may include an event in which the power of the robot 100 that was turned off is turned on.
  • the processor 140 acquires information about the object using an image taken of the surrounding area of the robot 100 through the camera 110 and uses the sound received through the microphone 120. You can use this to obtain information about sound.
  • the processor 140 may obtain information about the object using the acquired image and obtain information about the sound using the received sound.
  • information about the object may include at least one of the characteristic points of the object and the location of the object.
  • information about the sound may include at least one of the characteristics of the sound and the location of the sound source that output the sound.
  • the processor 140 may generate an image patch corresponding to the area where the robot 100 is currently located using the acquired information about the object and information about the sound.
  • the image patch is based on the relationship between the positions of objects existing around the robot 100 based on the current position of the robot 100 and the position of the sound source that outputs the sound that the robot 100 receives at the current position. This can be created by imaging the area corresponding to the current location of the robot 100.
  • the processor 140 may obtain an image by photographing the surrounding area of the robot 100 through the camera 110.
  • the processor 140 may obtain an image by photographing the surroundings of the robot 100 in a 360-degree direction using the camera 110.
  • the camera 110 can be installed on the robot 100 so that it can rotate 360 degrees.
  • the processor 140 may control the driving unit 150 so that the robot 100 rotates 360 degrees and perform imaging using the camera 110 while the robot 100 rotates.
  • the processor 140 may analyze an image taken of the surrounding area of the robot 100 and detect a boundary object in the image.
  • the boundary object may be a plane.
  • the processor 140 analyzes images taken of the surrounding area of the robot 100 using the shooting direction of the camera 110 and the distance between the robot 100 and the boundary object, and determines the location of the robot 100. The location of the boundary object can be identified as a reference.
  • the processor 140 may detect an object in an image taken of the surrounding area of the robot 100 and obtain feature points of the object.
  • feature points of the object may include boundaries, corners, curves, etc. of the object.
  • the processor 140 can identify the location of the object. Specifically, the processor 140 analyzes images taken of the surrounding area of the robot 100 using the shooting direction of the camera 110 and the distance between the robot 100 and the object, and determines the location of the robot 100. The location of the object can be identified based on the reference.
  • the processor 140 may receive sound from around the robot 100 using the microphone 120.
  • the processor 140 may obtain sound characteristics from the received sound.
  • the characteristics of the sound may include waveform, wavelength, frequency band, amplitude, frequency, etc.
  • the processor 140 can identify the location of a sound source that outputs sound. For example, the processor 140 may estimate the current location of the robot 100 as the location of the sound source. Additionally, the processor 140 may set the area within the boundary object as the location of the sound source.
  • the processor 140 may generate an image patch using information about the object and information about the sound.
  • Figure 5 is a diagram for explaining an example of an image patch according to an embodiment of the present disclosure.
  • the processor 140 may acquire an image by photographing the surrounding area of the robot 100 through the camera 110.
  • the processor 140 can detect boundary objects located in the first direction of the robot 100 and a second direction opposite to the first direction from the acquired image, and detect objects located around the robot 100. there is.
  • the processor 140 may receive sound through the microphone 120.
  • the processor 140 may generate an image patch using the location of the boundary object, the location of the object, and the location of the sound source.
  • the image patch 510 may display the locations of boundary objects 511 and 512, the location of the object 521, and the location of the sound source 531.
  • the characteristic points of the object obtained from the object may be mapped to the location 521 of the object, and the characteristics of the sound obtained from the sound may be mapped to the location 531 of the sound source.
  • the processor 140 may compare the generated image patch with the clue map to identify the area where the robot is located on the driving map.
  • the processor 140 matches the image patch in the clue map when information about the clue included in one of the plurality of areas of the clue map matches information about the object and information about the sound included in the image patch.
  • the area can be identified as the area where the robot 100 is located.
  • the processor 140 may identify an area that matches the image patch in the clue map using a template matching algorithm.
  • the template matching algorithm may refer to an algorithm that overlaps the template image on the original image, moves the template image, and finds an area in the original image that matches the template image.
  • the clue map since the clue map is created based on the driving map, it may include a boundary object corresponding to a wall existing in the space in which the robot 100 drives. Additionally, the location of the object identified as a clue and the location of the sound source that output the sound identified as a clue may be displayed on the clue map.
  • an image patch may be created by imaging information about the area around the robot 100 based on the current location of the robot 100. Additionally, the location of the boundary object around the robot 100, the location of the object around the robot 100, and the location of the sound source that output the sound received by the robot 100 may be displayed on the image patch.
  • the processor 140 may overlap the image patch on the clue map, move the image patch, and search for an area that matches the image patch in the clue map. Accordingly, the area of the clue map where the location of the boundary object, the location of the object, and the location of the sound source matches the image patch can be searched.
  • the processor 140 If the feature points of the object included in the searched area match the feature points of the object included in the image patch, and the features of the sound included in the searched area match the features of the sound included in the image patch,
  • the searched area can be identified as the area where the robot 100 is located.
  • the processor 140 determines the same area in the driving map as the area where the robot 100 identified in the clue map is located, and The area where the robot 100 is located can be identified.
  • the processor 140 may generate an image patch using information about the object and information about the sound. Additionally, the processor 140 may search for an area that matches the image patch in the clue map. In this case, an area of the clue map where the location of the object and the location of the sound source matches the image patch can be searched.
  • the processor 140 may identify the area in the clue map where the clue does not exist as the area where the robot 100 is located.
  • the processor 140 determines the area where the object and sound source is not located in the clue map as the area where the robot 100 is located in the driving map. can be identified.
  • the area where the object is not located when the area where the object is not located is captured through the camera 110, the area includes the area where the object is not captured in the Clue map depending on the location of the object, the location of the boundary object, and the angle of view of the camera 110. can do. Additionally, the area where the object is not located may include at least one area where the object is not located among the plurality of areas when the clue map is divided into a plurality of areas by a boundary object such as a wall.
  • the area in which the sound source is not located may include the remaining area excluding the location of the sound source determined based on the location where the sound identified as the clue in the clue map was received.
  • the processor 140 may identify the location of the robot 100 on the driving map by performing relocalization on the area where the robot is located on the driving map.
  • the processor 140 may perform relocalization for each of the plurality of areas.
  • Figures 6 and 7 are diagrams for explaining a method of identifying an area where a robot is currently located using a clue map and performing relocalization on the identified area according to an embodiment of the present disclosure.
  • the processor 140 may identify an area 441 that matches the image patch 510 in the clue map 400. Additionally, the processor 140 may identify an area 321 at the same location as the area 441 in the driving map 300 and perform relocalization on the area 321.
  • the processor 140 selects areas 442, 443, and 444 in the clue map where objects and sound sources are not located. ) can be identified.
  • the processor 140 identifies areas 322, 323, and 324 in the same location as the areas 442, 443, and 444 in the driving map 300, and performs relocalization for each area 322, 323, and 324. It can be done.
  • a robot performing autonomous driving can create a map and then drive through location recognition, that is, localization, to find its own location on the map.
  • location recognition that is, localization
  • the robot may incorrectly estimate its location due to environmental factors (e.g. feature-less, etc.).
  • the robot In the case of a small home robot, if a person turns the robot off, moves it to a random location, and then turns it back on, the robot will not be able to recognize its current location. In this case, the robot must find its location on the map again, and it finds its location through relocalization.
  • relocalization is not performed on the entire driving map, but first, the area where the robot 100 is currently located is identified in the driving map, and relocalization is performed on the identified area to determine the driving map.
  • the location of the robot 100 can be identified on the map. Accordingly, the success rate of estimating the position of the robot 100 may increase.
  • the processor 140 may identify the area where the robot 100 is located based on the user's voice.
  • the name of each of a plurality of areas of the Clue map may be stored in the memory 130. That is, each of the plurality of areas may be labeled with the name of the area. In this case, the name of the area can be entered according to the user command. Additionally, information about the names labeled in each area can be stored and managed in Clue DB. For example, as shown in FIG. 8A, the area 451 of the clue map 400 may be labeled with the name “kitchen,” and the area 452 may be labeled with the name “room.”
  • the processor 140 may receive the user's voice through the microphone 120 and identify the area where the robot 100 is located based on the user's voice.
  • the processor 140 performs voice recognition on the user's voice received through the microphone 120, obtains information about the area where the robot 100 included in the user's voice is located, and stores the obtained information. By comparing the names labeled for each area, the area where the robot 100 is located can be identified.
  • the processor 140 may output a sound such as “Where am I?” through the speaker 182 of the robot 100, and receive a user voice such as “room” in response.
  • the processor 140 may obtain “room” from the user's voice through voice recognition and search the area 452 labeled “room” in the clue map 400. Accordingly, the processor 140 may identify that the robot 100 is currently located in the area 452 in the clue map 400.
  • the processor 140 may update the clue map based on the acquired information.
  • the processor 140 uses an image patch to label the robot 100 in the clue map.
  • the area where this is located can be identified.
  • the processor 140 may update the Clue map by storing information about the area where the robot 100, obtained from the user's voice, is located as the name of the identified area.
  • the processor 140 may use an image patch to identify the robot 100 as being located in the area 452 and label the area 452 as “large room.” Accordingly, area 452 may be labeled “room” and “large room.”
  • the area where the robot 100 is currently located may be identified using the user's voice.
  • Figure 9 is a flowchart for explaining a method for identifying the location of a robot according to an embodiment of the present disclosure.
  • the robot includes a camera and microphone, and can navigate the space using a map.
  • the area where the robot is located on the map is identified using the clue map, and relocalization is performed on the identified area to identify the location of the robot on the map (S930).
  • information about the clue may include at least one of the feature points of the object and the location of the object. Additionally, information about the clue may include at least one of the characteristics of the sound and the location of the sound source that output the sound.
  • step S930 when a preset event occurs, information about the object is obtained using an image taken of the surrounding area of the robot through a camera, information about the sound is obtained using sound received through a microphone, and , Using the information about the acquired object and the information about the sound, an image patch corresponding to the area where the robot is currently located is created, and the generated image patch is compared with the Clue map to identify the area where the robot is located on the map. can do.
  • step S930 when the information about the clue included in an area among the plurality of areas of the clue map matches the information about the object and the information about the sound included in the image patch, the area matching the image patch in the clue map is selected. It can be identified as the area where the robot is located.
  • step S930 if there is no area matching the image patch created in the clue map, the area in the clue map where the clue does not exist can be identified as the area where the robot is located.
  • the preset event may include an event in which the robot cannot identify its location on the map or an event in which the power of the robot that was turned off is turned on.
  • the method according to the embodiments of the present disclosure may be included and provided in a computer program product.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online.
  • a portion of the computer program product e.g., a downloadable app
  • a machine-readable storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
  • Each component e.g., module or program
  • each component may be composed of a single or multiple entities, and some of the sub-components described above may be omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration.
  • operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.
  • unit or “module” used in the present disclosure includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. You can.
  • a “part” or “module” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof.
  • a module may be comprised of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a non-transitory computer readable medium storing a program that sequentially performs the control method according to the present disclosure.
  • 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.
  • embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer).
  • the device is a device capable of calling instructions stored in a storage medium and operating according to the called instructions, and may include an electronic device (eg, robot 100) according to the disclosed embodiments.
  • the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor.
  • Instructions may contain code generated or executed by a compiler or interpreter.

Landscapes

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

Abstract

Disclosed is a robot that travels in a space using a map. The robot comprises: a camera; a microphone; memory; and one or more processors which identify objects, present at fixed locations in the space, and sounds, repeatedly received from a specific location in the space, as clues on the basis of images captured through the camera and sounds received through the microphone while the robot is traveling in the space using the map, generate a clue map by adding information about the clues to the map and save the clue map in the memory, and, when a preset event occurs, use the clue map to identify the area in which the robot is located on the map and perform relocalization on the identified area to identify the location of the robot on the map.

Description

맵을 이용하여 공간을 주행하는 로봇 및 그의 위치 식별 방법A robot traveling in space using a map and its location identification method

본 개시는 로봇 및 그의 위치 식별 방법에 관한 것으로, 보다 상세하게는 맵을 이용하여 공간을 주행하는 로봇 및 그의 위치 식별 방법에 관한 것이다.This disclosure relates to a robot and a method of identifying its location, and more specifically, to a robot that travels in space using a map and a method of identifying its location.

일반적으로 로봇은 산업용으로 개발되어 여러 산업 현장에서 널리 사용되고 있다. 최근에는 로봇을 이용한 분야가 더욱 확대되어, 일반 가정집 뿐만 아니라, 다양한 매장에서도 활용되고 있다.In general, robots have been developed for industrial purposes and are widely used in various industrial fields. Recently, the field using robots has expanded further, and they are being used not only in ordinary homes but also in various stores.

로봇은 로봇이 위치하는 공간에 대한 맵을 이용하여, 로봇이 위치하는 공간 내에서 이동할 수 있다. 이를 위해, 로봇은 맵에서 자신의 위치를 추정할 수 있다.The robot can move within the space where the robot is located using a map of the space where the robot is located. To do this, the robot can estimate its location on the map.

본 개시의 일 실시 예에 따른 맵을 이용하여 공간을 주행하는 로봇은 카메라, 마이크, 메모리 및 하나 이상의 프로세서를 포함한다. 하나 이상의 프로세서는 상기 로봇이 맵을 이용하여 상기 공간을 주행하는 동안 상기 카메라를 통해 촬영한 이미지 및 상기 마이크를 통해 수신한 사운드에 기초하여 상기 공간에서 고정적으로 위치한 오브젝트 및 상기 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별한다. 하나 이상의 프로세서는 상기 맵에 상기 클루에 대한 정보가 부가된 클루 맵을 생성하여 상기 메모리에 저장한다. 하나 이상의 프로세서는 기설정된 이벤트가 발생한 경우, 상기 클루 맵을 이용하여 상기 맵에서 상기 로봇이 위치한 영역을 식별하고, 상기 식별된 영역에 대해 리로컬라이제이션을 수행하여 상기 맵에서 상기 로봇의 위치를 식별한다.A robot that travels in space using a map according to an embodiment of the present disclosure includes a camera, a microphone, memory, and one or more processors. One or more processors repeatedly process an object fixedly located in the space and a specific location in the space based on an image captured through the camera and a sound received through the microphone while the robot travels the space using a map. Identify the sound received as a clue. One or more processors generate a clue map with information about the clue added to the map and store it in the memory. When a preset event occurs, one or more processors identify the area where the robot is located on the map using the clue map, and perform relocalization on the identified area to identify the location of the robot on the map. .

여기에서, 상기 클루에 대한 정보는 상기 오브젝트의 특징점 및 상기 오브젝트의 위치 중 적어도 하나를 포함할 수 있다.Here, the information about the clue may include at least one of a feature point of the object and a location of the object.

또한, 상기 클루에 대한 정보는 상기 사운드의 특징 및 상기 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함할 수 있다.Additionally, the information about the clue may include at least one of the characteristics of the sound and the location of the sound source that output the sound.

그리고, 상기 하나 이상의 프로세서는 상기 기설정된 이벤트가 발생한 경우, 상기 카메라를 통해 상기 로봇의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, 상기 마이크를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득하고, 상기 획득된 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 상기 로봇이 현재 위치하는 영역에 대응되는 이미지 패치를 생성하고, 상기 생성된 이미지 패치를 상기 클루 맵과 비교하여, 상기 맵에서 상기 로봇이 위치한 영역을 식별할 수 있다.And, when the preset event occurs, the one or more processors acquire information about the object using an image taken of the surrounding area of the robot through the camera, and generate sound using the sound received through the microphone. Obtain information about, generate an image patch corresponding to the area where the robot is currently located using the obtained information about the object and the information about the sound, and compare the generated image patch with the clue map. , the area where the robot is located can be identified on the map.

또한, 상기 하나 이상의 프로세서는 상기 클루 맵의 복수의 영역 중 영역에 포함된 상기 클루에 대한 정보가 상기 이미지 패치에 포함된 상기 오브젝트에 대한 정보 및 상기 사운드에 대한 정보와 매칭되는 경우, 상기 클루 맵에서 상기 이미지 패치에 매칭되는 영역을 상기 로봇이 위치한 영역인 것으로 식별할 수 있다.In addition, when the information about the clue included in one of the plurality of regions of the clue map matches the information about the object and the information about the sound included in the image patch, the one or more processors generate the clue map The area matching the image patch can be identified as the area where the robot is located.

그리고, 상기 하나 이상의 프로세서는 상기 클루 맵에 상기 생성된 이미지 패치와 매칭되는 영역이 존재하지 않는 경우, 상기 클루 맵에서 상기 클루가 존재하지 않는 영역을 상기 로봇이 위치한 영역인 것으로 식별할 수 있다.In addition, when there is no area matching the generated image patch in the clue map, the one or more processors may identify an area in the clue map in which the clue does not exist as the area where the robot is located.

또한, 상기 기설정된 이벤트는 상기 로봇이 상기 맵에서 위치를 식별하지 못하는 이벤트 또는 상기 오프되었던 로봇의 전원이 온되는 이벤트를 포함할 수 있다.Additionally, the preset event may include an event in which the robot cannot identify a location on the map or an event in which the robot that has been turned off is turned on.

본 개시의 일 실시 예에 따른 카메라 및 마이크를 포함하며, 맵을 이용하여 공간을 주행하는 로봇의 위치 식별 방법은 상기 로봇이 맵을 이용하여 상기 공간을 주행하는 동안 상기 카메라를 통해 촬영한 이미지 및 상기 마이크를 통해 수신한 사운드에 기초하여 상기 공간에서 고정적으로 위치한 오브젝트 및 상기 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별하는 단계, 상기 맵에 상기 클루에 대한 정보가 부가된 클루 맵을 생성하는 단계 및 기설정된 이벤트가 발생한 경우, 상기 클루 맵을 이용하여 상기 맵에서 상기 로봇이 위치한 영역을 식별하고, 상기 식별된 영역에 대해 리로컬라이제이션을 수행하여 상기 맵에서 상기 로봇의 위치를 식별하는 단계를 포함한다.A method for identifying the location of a robot that includes a camera and a microphone and travels in a space using a map according to an embodiment of the present disclosure includes an image captured by the camera while the robot is traveling in the space using a map, and Identifying an object fixedly located in the space and a sound repeatedly received at a specific location in the space based on the sound received through the microphone as a clue, creating a clue map to which information about the clue is added to the map. When a generating step and a preset event occur, identifying the area where the robot is located on the map using the clue map, and performing relocalization on the identified area to identify the location of the robot on the map. Includes steps.

본 개시의 일 실시 예에 따른 카메라 및 마이크를 포함하며, 맵을 이용하여 공간을 주행하는 로봇의 하나 이상의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은 상기 로봇이 맵을 이용하여 상기 공간을 주행하는 동안 상기 카메라를 통해 촬영한 이미지 및 상기 마이크를 통해 수신한 사운드에 기초하여 상기 공간에서 고정적으로 위치한 오브젝트 및 상기 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별하는 단계, 상기 맵에 상기 클루에 대한 정보가 부가된 클루 맵을 생성하는 단계 및 기설정된 이벤트가 발생한 경우, 상기 클루 맵을 이용하여 상기 맵에서 상기 로봇이 위치한 영역을 식별하고, 상기 식별된 영역에 대해 리로컬라이제이션을 수행하여 상기 맵에서 상기 로봇의 위치를 식별하는 단계를 포함한다.A non-transitory computer readable device that includes a camera and a microphone according to an embodiment of the present disclosure and stores computer instructions that, when executed by one or more processors of a robot that navigates space using a map, cause the robot to perform an action. In the enabling medium, the operation may be performed on an object fixedly located in the space and on the space based on an image captured by the camera and a sound received through the microphone while the robot travels the space using a map. Identifying a sound that is repeatedly received at a specific location as a clue, generating a clue map to which information about the clue is added to the map, and when a preset event occurs, using the clue map to It includes identifying the area where the robot is located and performing relocalization on the identified area to identify the location of the robot on the map.

도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면,1 is a diagram for explaining a robot according to an embodiment of the present disclosure;

도 2a는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도,Figure 2A is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure;

도 2b는 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도,Figure 2b is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure;

도 3은 본 개시의 일 실시 예에 따른 클루 맵의 일 예를 설명하기 위한 도면,3 is a diagram for explaining an example of a clue map according to an embodiment of the present disclosure;

도 4는 본 개시의 일 실시 예에 따라 클루 맵을 업데이트하는 방법을 설명하기 위한 도면,4 is a diagram for explaining a method of updating a clue map according to an embodiment of the present disclosure;

도 5는 본 개시의 일 실시 예에 따른 이미지 패치의 일 예를 설명하기 위한 도면,5 is a diagram for explaining an example of an image patch according to an embodiment of the present disclosure;

도 6 및 도 7은 본 개시의 일 실시 예에 따라 클루 맵을 이용하여 로봇이 현재 위치한 영역을 식별하고, 식별된 영역에 대해 리로컬라이제이션을 수행하는 방법을 설명하기 위한 도면들,FIGS. 6 and 7 are diagrams illustrating a method of identifying an area where a robot is currently located using a clue map and performing relocalization on the identified area according to an embodiment of the present disclosure;

도 8a 및 도 8b는 본 개시의 일 실시 예에 따라 사용자 음성을 이용하여 로봇이 현재 위치한 영역을 식별하는 방법을 설명하기 위한 도면들, 그리고FIGS. 8A and 8B are diagrams illustrating a method of identifying an area where a robot is currently located using a user's voice according to an embodiment of the present disclosure; and

도 9는 본 개시의 일 실시 예에 따른 로봇의 위치 식별 방법을 설명하기 위한 흐름도이다. Figure 9 is a flowchart for explaining a method for identifying the location of a robot according to an embodiment of the present disclosure.

본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Since these embodiments can be modified in various ways and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, and should be understood to include various modifications, equivalents, and/or alternatives to the embodiments of the present disclosure. In connection with the description of the drawings, similar reference numbers may be used for similar components.

본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. In describing the present disclosure, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present disclosure, the detailed description thereof will be omitted.

덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.In addition, the following examples may be modified into various other forms, and the scope of the technical idea of the present disclosure is not limited to the following examples. Rather, these embodiments are provided to make the present disclosure more faithful and complete and to completely convey the technical idea of the present disclosure to those skilled in the art.

본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.The terms used in this disclosure are merely used to describe specific embodiments and are not intended to limit the scope of rights. Singular expressions include plural expressions unless the context clearly dictates otherwise.

본 개시에서 "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. In the present disclosure, expressions such as “have,” “may have,” “includes,” or “may include” indicate the presence of the corresponding feature (e.g., a numerical value, function, operation, or component such as a part). indicates, does not rule out the presence of additional features.

본 개시에서 "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In the present disclosure, expressions such as “A or B,” “at least one of A or/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, or (3) it may refer to all cases including both at least one A and at least one B.

본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. Expressions such as “first,” “second,” “first,” or “second,” used in the present disclosure can modify various components regardless of order and/or importance, and can refer to one component. It is only used to distinguish from other components and does not limit the components.

어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. A component (e.g., a first component) is “(operatively or communicatively) coupled with/to” another component (e.g., a second component). When referred to as being “connected to,” it should be understood that any component may be directly connected to the other component or may be connected through another component (e.g., a third component).

반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.On the other hand, when a component (e.g., a first component) is said to be “directly connected” or “directly connected” to another component (e.g., a second component), It may be understood that no other component (e.g., a third component) exists between other components.

본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. The expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. ," can be used interchangeably with "designed to," "adapted to," "made to," or "capable of." The term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware.

대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.Instead, in some contexts, the expression “a device configured to” may mean that the device is “capable of” working with other devices or components. For example, the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored on a memory device. , may refer to a general-purpose processor (e.g., CPU or application processor) capable of performing the corresponding operations.

실시 예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of 'modules' or a plurality of 'units' may be integrated into at least one module and implemented with at least one processor, except for 'modules' or 'units' that need to be implemented with specific hardware.

한편, 도면에서의 다양한 요소와 영역은 개략적으로 그려진 것이다. 따라서, 본 발명의 기술적 사상은 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. Meanwhile, various elements and areas in the drawing are schematically drawn. Accordingly, the technical idea of the present invention is not limited by the relative sizes or spacing drawn in the attached drawings.

이하에서는 첨부한 도면을 참고하여 본 개시에 따른 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Hereinafter, with reference to the attached drawings, embodiments according to the present disclosure will be described in detail so that those skilled in the art can easily implement them.

도 1은 본 개시의 일 실시 예에 따른 로봇을 설명하기 위한 도면이다.1 is a diagram for explaining a robot according to an embodiment of the present disclosure.

도 1을 참조하면, 로봇(100)은 홈서비스 로봇일 수 있다. 즉, 로봇(100)은 집에 위치하며, 사용자에게 가사, 교육, 헬스케어 등과 같은 다양한 서비스를 제공할 수 있다. 다만, 이는 일 예이고, 로봇(100)의 종류는 홈서비스 로봇에 한정되지 않는다. 예를 들어, 로봇(100)은 사무실, 상점, 백화점, 음식점 등에 위치할 수 있다. 그리고, 로봇(100)은 사용자에게 경로를 안내하거나, 제품을 사용자에게 설명하거나, 또는 사용자의 물건을 들고 사용자를 따라 이동하는 등의 다양한 기능을 수행할 수 있다. Referring to FIG. 1, the robot 100 may be a home service robot. That is, the robot 100 is located at home and can provide various services such as housework, education, healthcare, etc. to the user. However, this is an example, and the type of robot 100 is not limited to home service robots. For example, the robot 100 may be located in an office, store, department store, restaurant, etc. Additionally, the robot 100 can perform various functions, such as guiding the user on a route, explaining a product to the user, or carrying the user's items and moving along with the user.

로봇(100)은 로봇(100)이 위치하는 공간(예: 집)에 대한 맵을 이용하여 주행할 수 있다. 이하에서는 로봇(100)이 위치하는 공간에 대한 맵으로, 로봇(100)의 주행에 이용되는 맵을 주행용 맵이라 한다. 즉, 로봇(100)은 주행용 맵을 이용하여 공간을 주행할 수 있다. The robot 100 can drive using a map of the space (eg, home) where the robot 100 is located. Hereinafter, it is a map of the space where the robot 100 is located, and the map used for driving the robot 100 is referred to as a driving map. In other words, the robot 100 can drive in space using the driving map.

예를 들어, 로봇(100)은 SLAM(Simultaneous Localization and Mapping)을 이용하여, 주행용 맵을 생성하고 주행용 맵에서 로봇(100)의 위치를 추정하여, 공간 내에서 자율 주행을 수행할 수 있다. 이를 위해, 로봇(100)은 로봇(100)의 센서를 통해 주변 환경에 대한 정보를 획득할 수 있다.For example, the robot 100 can use SLAM (Simultaneous Localization and Mapping) to create a driving map and estimate the position of the robot 100 in the driving map to perform autonomous driving in space. . To this end, the robot 100 can obtain information about the surrounding environment through the sensor of the robot 100.

한편, 로봇(100)이 주행용 맵에서 위치를 추정하는데 실패하거나, 로봇(100)의 전원이 오프되었다가 다시 온된 경우, 로봇(100)은 주행용 맵에서 로봇(100)의 위치를 다시 추정하는 과정 즉, 리로컬라이제이션(relocalization)을 수행할 수 있다. Meanwhile, if the robot 100 fails to estimate its position on the driving map, or if the power of the robot 100 is turned off and then turned on again, the robot 100 re-estimates the position of the robot 100 on the driving map. The process of doing so, that is, relocalization, can be performed.

이때, 본 개시에 따른 로봇(100)은 주행용 맵 전체를 검색하여 로봇(100)의 위치를 식별하는 것이 아니라, 먼저, 주행용 맵에서 로봇(100)이 위치하는 영역을 식별하고, 식별된 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. At this time, the robot 100 according to the present disclosure does not identify the location of the robot 100 by searching the entire driving map, but first identifies the area in the driving map where the robot 100 is located, and then identifies the area where the robot 100 is located. By performing relocalization on the area, the location of the robot 100 can be identified on the driving map.

이 경우, 로봇(100)은 로봇(100)이 위치하는 영역을 식별하기 위해, 영역 내에 존재하는 다양한 정보를 클루(clue)로서 이용할 수 있다.In this case, the robot 100 can use various information existing within the area as a clue to identify the area where the robot 100 is located.

이와 같이, 본 개시에 따르면, 로봇(100)은 주행용 맵에서 로봇(100)이 현재 위치하는 영역을 추정하고, 주행용 맵 전체가 아닌 추정된 영역에 대해 리로컬라이제이션을 수행한다는 점에서, 로봇(100)의 위치 추정의 성공률이 높아질 수 있다.As such, according to the present disclosure, the robot 100 estimates the area in which the robot 100 is currently located in the driving map and performs relocalization on the estimated area rather than the entire driving map, so that the robot 100 The success rate of location estimation of (100) can be increased.

도 2a는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 블록도이다.FIG. 2A is a block diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.

도 2a를 참조하면, 로봇(100)은 카메라(110), 마이크(120), 메모리(130) 및 하나 이상의 프로세서(140)를 포함한다.Referring to FIG. 2A, the robot 100 includes a camera 110, a microphone 120, a memory 130, and one or more processors 140.

카메라(110)는 이미지를 생성할 수 있다. 여기에서, 카메라는 카메라(즉, 단안 카메라), 스테레오 카메라 및 RGB-D 카메라 중 적어도 하나를 포함할 수 있다. Camera 110 can generate images. Here, the camera may include at least one of a camera (ie, a monocular camera), a stereo camera, and an RGB-D camera.

카메라(110)는 로봇(100)의 주변 영역을 촬영하여 이미지를 생성할 수 있다. 이때, 로봇(100) 주변에 존재하는 오브젝트가 존재하는 경우, 이미지는 오브젝트를 포함할 수 있다. 여기에서, 오브젝트는 벽, 문, 천장, 가전 기기(가령, TV, 에어콘, 냉장고 등), 가구(가령, 침대, 소파, 식탁, 싱크대 등) 등과 같이 공간(가령, 집)에 존재하는 다양한 물체일 수 있다.The camera 110 may generate an image by photographing the surrounding area of the robot 100. At this time, if there is an object existing around the robot 100, the image may include the object. Here, objects are various objects that exist in a space (e.g., a house), such as walls, doors, ceilings, home appliances (e.g., TV, air conditioner, refrigerator, etc.), furniture (e.g., bed, sofa, dining table, sink, etc.) It can be.

마이크(120)는 사운드를 수신할 수 있다. 예를 들어, 마이크(120)는 로봇(100) 주변에서 발생된 사운드를 수신할 수 있다.The microphone 120 can receive sound. For example, the microphone 120 may receive sound generated around the robot 100.

메모리(130)에는 주행용 맵이 저장될 수 있다. 주행용 맵은 로봇(100)이 주행하는 공간에 대한 맵으로, SLAM에 기초하여 생성될 수 있다. 로봇(100)은 주행용 맵을 이용하여 로봇(100)이 위치하는 공간을 주행할 수 있다. A driving map may be stored in the memory 130. The driving map is a map of the space in which the robot 100 drives, and can be created based on SLAM. The robot 100 can drive in the space where the robot 100 is located using the driving map.

또한, 메모리(130)에는 클루 맵(clue map)이 저장될 수 있다. 클루 맵은 주행용 맵에 클루에 대한 정보가 부가된 맵일 수 있다. 여기에서, 클루는 주행용 맵에서 로봇(100)이 위치하는 영역을 추정하는데 이용될 수 있는 오브젝트 및 사운드를 포함할 수 있다.Additionally, a clue map may be stored in the memory 130. The Clue map may be a map to which information about Clue is added to a driving map. Here, the clue may include objects and sounds that can be used to estimate the area where the robot 100 is located on the driving map.

하나 이상의 프로세서(140)는 카메라(110), 마이크(120) 및 메모리(130)와 전기적으로 연결되어, 로봇(100)의 전반적인 동작 및 기능을 제어할 수 있다. One or more processors 140 are electrically connected to the camera 110, microphone 120, and memory 130 to control the overall operation and functions of the robot 100.

하나 이상의 프로세서(140)는 CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerated Processing Unit), MIC(Many Integrated Core), DSP(Digital Signal Processor), NPU(Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 하나 이상의 프로세서(140)는 로봇(100)의 다른 구성요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 하나 이상의 프로세서(140)는 메모리에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 하나 이상의 프로세서(140)는 메모리에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다. One or more processors 140 include a Central Processing Unit (CPU), Graphics Processing Unit (GPU), Accelerated Processing Unit (APU), Many Integrated Core (MIC), Digital Signal Processor (DSP), Neural Processing Unit (NPU), and hardware. It may include one or more of an accelerator or machine learning accelerator. One or more processors 140 may control one or any combination of other components of the robot 100 and may perform operations related to communication or data processing. One or more processors 140 may execute one or more programs or instructions stored in memory. For example, one or more processors 140 may perform a method according to an embodiment of the present disclosure by executing one or more instructions stored in memory.

한편, 본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작, 제3 동작이 수행될 때, 제1 동작, 제2 동작, 및 제3 동작 모두 제1 프로세서에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 제1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제3 동작은 제2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다. Meanwhile, when the method according to an embodiment of the present disclosure includes a plurality of operations, the plurality of operations may be performed by one processor or by a plurality of processors. For example, when the first operation, the second operation, and the third operation are performed by the method according to one embodiment, the first operation, the second operation, and the third operation may all be performed by the first processor. , the first operation and the second operation may be performed by a first processor (eg, a general-purpose processor) and the third operation may be performed by a second processor (eg, an artificial intelligence-specific processor).

하나 이상의 프로세서(140)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 하나 이상의 프로세서(140)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.The one or more processors 140 may be implemented as a single core processor including one core, or one or more multi-cores including a plurality of cores (e.g., homogeneous multi-core or heterogeneous multi-core). It may also be implemented as a processor (multicore processor). When one or more processors 140 are implemented as multi-core processors, each of the plurality of cores included in the multi-core processor may include processor internal memory such as cache memory and on-chip memory, and may include a plurality of processor internal memories such as cache memory and on-chip memory. A common cache shared by cores may be included in multi-core processors. In addition, each of the plurality of cores (or some of the plurality of cores) included in the multi-core processor may independently read and perform program instructions for implementing the method according to an embodiment of the present disclosure, and all of the plurality of cores may (or part of it) may be linked to read and perform program instructions for implementing the method according to an embodiment of the present disclosure.

본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작, 및 제3 동작이 수행될 때, 제1 동작, 제2 동작, 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 멀티 코0어 프로세서에 포함된 제1 코어에 의해 수행되고 제3 동작은 멀티 코어 프로세서에 포함된 제2 코어에 의해 수행될 수도 있다. When a method according to an embodiment of the present disclosure includes a plurality of operations, the plurality of operations may be performed by one core among a plurality of cores included in a multi-core processor, or may be performed by a plurality of cores. there is. For example, when the first operation, the second operation, and the third operation are performed by the method according to an embodiment, the first operation, the second operation, and the third operation are all included in the multi-core processor. It may be performed by a core, and the first operation and the second operation may be performed by the first core included in the multi-core processor, and the third operation may be performed by the second core included in the multi-core processor. .

본 개시의 실시 예들에서, 프로세서는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다.In embodiments of the present disclosure, a processor may mean a system-on-chip (SoC) in which one or more processors and other electronic components are integrated, a single-core processor, a multi-core processor, or a core included in a single-core processor or a multi-core processor. Here, the core may be implemented as a CPU, GPU, APU, MIC, DSP, NPU, hardware accelerator, or machine learning accelerator, but embodiments of the present disclosure are not limited thereto.

이하에서는 설명의 편의를 위해 하나 이상의 프로세서(140)를 프로세서(140)로 명명하도록 한다.Hereinafter, for convenience of explanation, one or more processors 140 will be referred to as processor 140.

프로세서(140)는 로봇(100)이 주행용 맵을 이용하여 공간을 주행하는 동안 카메라(110)를 통해 촬영한 이미지 및 마이크(120)를 통해 수신한 사운드에 기초하여 공간에서 고정적으로 위치한 오브젝트 및 공간 내의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별한다. 이후, 프로세서(140)는 주행용 맵에 클루에 대한 정보가 부가된 클루 맵을 생성하여 메모리(130)에 저장한다.The processor 140 processes objects and A sound that is repeatedly received at a specific location in space is identified as a clue. Thereafter, the processor 140 generates a Clue map to which information about the Clue is added to the driving map and stores it in the memory 130.

여기에서, 클루는 주행용 맵에서 로봇(100)이 위치하는 영역을 추정하는데 이용될 수 있는 오브젝트 및 사운드를 포함할 수 있다. 그리고, 클루에 대한 정보는 오브젝트에 대한 정보 및 사운드에 대한 정보를 포함할 수 있다.Here, the clue may include objects and sounds that can be used to estimate the area where the robot 100 is located on the driving map. Additionally, information about the clue may include information about the object and information about the sound.

그리고, 프로세서(140)는 기설정된 이벤트가 발생한 경우, 클루 맵을 이용하여 주행용 맵에서 로봇(100)이 위치한 영역을 식별하고, 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별한다. Then, when a preset event occurs, the processor 140 identifies the area where the robot 100 is located on the driving map using the clue map, and performs relocalization on the area to identify the robot 100 on the driving map. Identify the location of

이와 같이, 프로세서(140)는 로봇(100)이 현재 위치하는 영역에서 획득한 오브젝트 및 사운드에 대한 정보를 클루 맵에 포함된 클루에 대한 정보와 비교하여, 주행용 맵에서 로봇(100)이 현재 위치하는 영역을 식별할 수 있다. 그리고, 프로세서(140)는 식별된 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. In this way, the processor 140 compares the information about objects and sounds acquired in the area where the robot 100 is currently located with the information about the clue included in the clue map, and determines whether the robot 100 is currently located on the driving map. The area in which it is located can be identified. Additionally, the processor 140 may identify the location of the robot 100 on the driving map by performing relocalization on the identified area.

이에 따라, 본 개시에 따르면, 주행용 맵 전체가 아닌 로봇(100)이 현재 위치하는 영역에 대해 리로컬라이제이션을 수행한다는 점에서, 로봇(100)의 위치 추정의 성공률이 높아질 수 있다.Accordingly, according to the present disclosure, the success rate of location estimation of the robot 100 can be increased in that relocalization is performed on the area where the robot 100 is currently located rather than the entire driving map.

도 2b는 본 개시의 일 실시 예에 따른 로봇의 세부 구성을 설명하기 위한 블록도이다.Figure 2b is a block diagram for explaining the detailed configuration of a robot according to an embodiment of the present disclosure.

도 2b를 참조하면, 로봇(100)은 카메라(110), IMU(inertial measurement unit) 센서(111), 인코더(112), 라이다 센서(113), 마이크(120), 메모리(130), 프로세서(140), 구동부(150), 통신부(160), 입력부(170) 및 출력부(180)를 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다. 한편, 도 2b를 설명함에 있어, 도 2a에서 이미 설명한 부분과 중복되는 부분은 생략하거나 축약하여 설명하도록 한다.Referring to Figure 2b, the robot 100 includes a camera 110, an inertial measurement unit (IMU) sensor 111, an encoder 112, a lidar sensor 113, a microphone 120, a memory 130, and a processor. It may include (140), a driving unit 150, a communication unit 160, an input unit 170, and an output unit 180. However, this configuration is an example, and of course, in carrying out the present disclosure, new configurations may be added or some configurations may be omitted in addition to these configurations. Meanwhile, when describing FIG. 2B, parts that overlap with parts already described in FIG. 2A will be omitted or abbreviated.

프로세서(140)는 카메라(110), IMU 센서(111), 인코더(112) 및 라이다 센서(113) 중 적어도 하나의 센서를 이용하여 주변 환경에 대한 정보를 획득할 수 있다.The processor 140 may obtain information about the surrounding environment using at least one sensor among the camera 110, IMU sensor 111, encoder 112, and lidar sensor 113.

IMU 센서(111)는 가속도계(accelerometer), 각속도계(gyroscope), 지자계(magnetometer) 등을 이용하여, 로봇(100)의 가속도 및 각속도 등을 센싱할 수 있다. The IMU sensor 111 can sense the acceleration and angular velocity of the robot 100 using an accelerometer, gyroscope, magnetometer, etc.

인코더(112)는 로봇(100)에 설치된 복수의 휠 각각의 회전수 및 회전방향을 센싱할 수 있다. 여기에서, 복수의 휠은 모터에 의해 회전되며, 로봇(100)을 이동시키는 역할을 수행할 수 있다. The encoder 112 can sense the rotation speed and rotation direction of each of the plurality of wheels installed on the robot 100. Here, the plurality of wheels are rotated by a motor and may serve to move the robot 100.

라이다 센서(113)는 360도 회전하며 레이저를 출력할 수 있다. 그리고, 라이다 센서(113)는 레이저가 로봇(100) 주변의 오브젝트로부터 반사되어 수신되면, 레이저가 수신된 시간에 기초하여 오브젝트와의 거리를 감지할 수 있다.The lidar sensor 113 can rotate 360 degrees and output a laser. And, when the laser is reflected and received from an object around the robot 100, the LIDAR sensor 113 can detect the distance to the object based on the time when the laser was received.

이 경우, 프로세서(140)는 카메라(110)를 통해 획득한 이미지와 IMU 센서(111), 인코더(112) 및 라이다 센서(113)로부터 획득한 정보를 이용하여, 주행용 맵을 생성하고, 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. In this case, the processor 140 generates a driving map using the image acquired through the camera 110 and the information obtained from the IMU sensor 111, encoder 112, and lidar sensor 113, The location of the robot 100 can be identified on the driving map.

구동부(150)는 로봇(100)을 이동시킬 수 있다. 이를 위해, 구동부(150)는 복수의 휠(152) 및 복수의 휠(152)을 회전시키기 위한 모터(152)를 포함할 수 있다. 다만, 도시하지 않았지만, 구동부(150)는 기어, 액츄에이더 등을 더 포함할 수도 있다. 모터(151)는 프로세서(140)의 제어에 따라 복수의 휠(152)를 제어하여, 로봇(100)의 이동, 정지, 속도 제어 및 방향 전환 등과 같은 다양한 주행 동작을 제어할 수 있다.The driving unit 150 can move the robot 100. To this end, the driving unit 150 may include a plurality of wheels 152 and a motor 152 for rotating the plurality of wheels 152. However, although not shown, the driving unit 150 may further include gears, actuators, etc. The motor 151 controls the plurality of wheels 152 according to the control of the processor 140, and can control various driving operations of the robot 100, such as movement, stopping, speed control, and direction change.

통신부(160)는 회로(circuitry)를 포한한다. 통신부(160)는 외부 장치와 통신을 수행하는 구성이다. 프로세서(140)는 통신부(160)를 통해 각종 데이터를 외부 장치로 전송하고, 각종 데이터를 외부 장치로부터 수신할 수 있다. 예를 들어, 프로세서(140)는 통신부(160)를 통해 로봇(100)의 동작을 제어하기 위한 사용자 명령을 수신할 수 있다. 이를 위해, 통신 인터페이스(160)는 BT(Bluetooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity) 등과 같은 무선 통신 방식을 통해 외부 장치와 통신을 수행할 수 있다. The communication unit 160 includes circuitry. The communication unit 160 is a component that performs communication with an external device. The processor 140 can transmit various data to an external device and receive various data from the external device through the communication unit 160. For example, the processor 140 may receive a user command for controlling the operation of the robot 100 through the communication unit 160. To this end, the communication interface 160 can communicate with an external device through a wireless communication method such as Bluetooth (BT), Bluetooth Low Energy (BLE), or Wireless Fidelity (WI-FI).

입력부(170)는 회로를 포함한다. 입력부(170)는 로봇(100)에서 지원하는 각종 기능을 설정 또는 선택하기 위한 사용자 명령을 입력받을 수 있다. 이를 위해, 입력부(170)는 적어도 하나의 버튼을 포함할 수 있다. 또한, 입력부(170)는 디스플레이(181)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. 이 경우, 프로세서(140)는 입력부(170)를 통해 입력된 사용자 명령에 기초하여 로봇(100)의 동작을 제어할 수 있다. 예를 들어, 프로세서(140)는 로봇(100)의 입력부(170)를 통해 입력된 로봇(100)의 전원의 온/오프 명령, 로봇(100)의 기능의 온/오프 명령 등에 기초하여 로봇(100)을 제어할 수 있다. The input unit 170 includes a circuit. The input unit 170 can receive user commands for setting or selecting various functions supported by the robot 100. For this purpose, the input unit 170 may include at least one button. Additionally, the input unit 170 may be implemented as a touch screen that can simultaneously perform the functions of the display 181. In this case, the processor 140 may control the operation of the robot 100 based on a user command input through the input unit 170. For example, the processor 140 operates the robot ( 100) can be controlled.

출력부(180)는 디스플레이(181) 및 스피커(182)를 포함할 수 있다. The output unit 180 may include a display 181 and a speaker 182.

디스플레이(181)는 다양한 정보를 표시할 수 있다. 이를 위해, 디스플레이(181)는 LCD(Liquid Crystal Display) 등으로 구현될 수 있다. 디스플레이(181)는 입력부(170)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다. 구체적으로, 프로세서(140)는 로봇(100)의 동작과 관련된 정보를 디스플레이(181)에 표시할 수 있다.The display 181 can display various information. To this end, the display 181 may be implemented as a liquid crystal display (LCD) or the like. The display 181 may be implemented as a touch screen that can simultaneously perform the functions of the input unit 170. Specifically, the processor 140 may display information related to the operation of the robot 100 on the display 181.

스피커(182)는 오디오를 출력할 수 있다. 구체적으로, 프로세서(140)는 로봇(100)의 동작과 관련된 다양한 알림음 또는 음성 안내 메시지를 스피커(182)를 통해 출력할 수 있다.Speaker 182 can output audio. Specifically, the processor 140 may output various notification sounds or voice guidance messages related to the operation of the robot 100 through the speaker 182.

이하에서는 로봇(100)이 클루 맵을 이용하여 로봇(100)이 위치하는 영역을 식별하는 방법에 대해 보다 구체적으로 설명하도록 한다.Hereinafter, a more detailed description will be given of how the robot 100 identifies the area where the robot 100 is located using the clue map.

먼저, 프로세서(140)는 주행용 맵을 생성하고, 주행용 맵을 메모리(130)에 저장할 수 있다. 그리고, 프로세서(140)는 주행용 맵을 이용하여 로봇(100)이 위치하는 공간을 주행하도록 로봇(100)을 제어할 수 있다.First, the processor 140 may generate a driving map and store the driving map in the memory 130. Additionally, the processor 140 can control the robot 100 to drive in the space where the robot 100 is located using the driving map.

예를 들어, 프로세서(140)는 카메라(110), IMU 센서(111), 인코더(112) 및 라이다 센서(113) 중 적어도 하나를 이용하여 주변 환경에 대한 정보를 획득할 수 있다. 그리고, 프로세서(140)는 획득된 정보를 바탕으로 SLAM을 이용하여 주행용 맵을 생성하고, 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. 그리고, 프로세서(140)는 로봇(100)이 식별된 위치를 기반으로 로봇(100)이 주행하도록 구동부(150)를 제어할 수 있다. For example, the processor 140 may obtain information about the surrounding environment using at least one of the camera 110, the IMU sensor 111, the encoder 112, and the LiDAR sensor 113. Additionally, the processor 140 can generate a driving map using SLAM based on the acquired information and identify the location of the robot 100 in the driving map. Additionally, the processor 140 may control the driving unit 150 so that the robot 100 travels based on the location where the robot 100 is identified.

또한, 프로세서(140)는 클루 맵을 생성할 수 있다. 이를 위해, 프로세서(140)는 클루를 식별할 수 있다. 여기에서, 클루는 로봇(100)이 위치한 공간 영역을 추정하는데 이용될 수 있는 오브젝트 및 사운드를 포함할 수 있다. Additionally, the processor 140 may generate a clue map. To this end, the processor 140 can identify the clue. Here, the clue may include objects and sounds that can be used to estimate the spatial area where the robot 100 is located.

구체적으로, 프로세서(140)는 로봇(100)이 공간을 주행하는 동안 카메라(110)를 통해 촬영한 이미지 및 마이크(120)를 통해 수신한 사운드에 기초하여 공간에서 고정적으로 위치한 오브젝트 및 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별할 수 있다. Specifically, the processor 140 specifies objects and spaces fixedly located in space based on images captured through the camera 110 and sounds received through the microphone 120 while the robot 100 is traveling in space. A sound that is repeatedly received at a location can be identified as a clue.

먼저, 프로세서(140)는 주행용 맵을 이용하여 로봇(100)이 공간을 주행하는 동안 카메라(110)를 이용하여 이미지를 획득하고, 획득된 이미지에 기초하여 공간에서 고정적으로 위치하는 오브젝트를 식별할 수 있다.First, the processor 140 acquires an image using the camera 110 while the robot 100 travels in space using a driving map, and identifies objects that are fixedly located in space based on the acquired image. can do.

구체적으로, 프로세서(140)는 로봇(100)이 공간을 주행하는 동안 카메라(110)를 통해 촬영한 이미지를 획득하고, 획득한 이미지에서 오브젝트를 검출하고 오브젝트의 특징점(feature)을 획득할 수 있다. 여기에서, 오브젝트의 특징점은 엣지(edge), 코너(corner), 굴곡(ridge) 등을 포함할 수 있다. Specifically, the processor 140 may acquire an image taken through the camera 110 while the robot 100 travels in space, detect an object in the acquired image, and obtain feature points of the object. . Here, the characteristic points of the object may include edges, corners, ridges, etc.

그리고, 프로세서(140)는 주행용 맵에서 오브젝트의 위치를 식별할 수 있다. 여기에서, 오브젝트의 위치는 주행용 맵 상에서의 좌표 값을 포함할 수 있다.Additionally, the processor 140 can identify the location of the object on the driving map. Here, the location of the object may include coordinate values on the driving map.

예를 들어, 프로세서(140)는 카메라(110)를 이용하여 이미지를 촬영하였을 때, 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. 그리고, 프로세서(140)는 로봇(100)의 위치, 카메라(110)의 촬영 방향 및 로봇(100)과 오브젝트 간의 거리 등을 이용하여 로봇(100)이 카메라(110)를 통해 촬영한 이미지들을 분석하여, 주행용 맵에서 오브젝트의 위치를 식별할 수 있다.For example, when the processor 140 captures an image using the camera 110, the processor 140 may identify the location of the robot 100 on the driving map. In addition, the processor 140 analyzes images captured by the robot 100 through the camera 110 using the location of the robot 100, the shooting direction of the camera 110, and the distance between the robot 100 and the object. Thus, the location of the object can be identified on the driving map.

한편, 프로세서(140)는 주행용 맵의 복수의 영역의 명칭에 대한 정보가 메모리(130)에 저장되어 있는 경우, 메모리(130)에 저장된 명칭에 대한 정보를 이용하여 오브젝트가 위치하는 영역의 명칭을 식별할 수 있다. Meanwhile, when information about the names of a plurality of areas of the driving map is stored in the memory 130, the processor 140 uses the information about the names stored in the memory 130 to determine the name of the area where the object is located. can be identified.

예를 들어, 주행용 맵이 복수의 영역으로 구분되고, 복수의 영역의 명칭이 "거실", "부엌" 및 "방"와 같은 경우를 가정한다. 이 경우, 프로세서(140)는 주행용 맵에서 식별된 오브젝트의 위치가 복수의 영역 중 "거실" 영역 내에 포함되어 있는 경우, 오브젝트가 "거실" 영역에 위치하는 것으로 식별할 수 있다. For example, assume that the driving map is divided into a plurality of areas, and the names of the plurality of areas are “living room,” “kitchen,” and “room.” In this case, if the location of the object identified in the driving map is included in the “living room” area among the plurality of areas, the processor 140 may identify the object as being located in the “living room” area.

그리고, 프로세서(140)는 오브젝트의 특징점 및 오브젝트의 위치에 대한 정보를 메모리(130)에 저장할 수 있다. Additionally, the processor 140 may store information about the feature points of the object and the location of the object in the memory 130.

한편, 프로세서(140)는 로봇(100)이 공간을 기설정된 횟수 이상 주행하는 동안 전술한 과정을 반복하여(여기에서, 기설정된 횟수는 n이다(n은 2 이상의 자연수)), 공간에서 고정적으로 위치하는 오브젝트를 식별할 수 있다. Meanwhile, the processor 140 repeats the above-described process while the robot 100 runs in space more than a preset number of times (here, the preset number of times is n (n is a natural number of 2 or more)), and moves the robot 100 fixedly in space. The located object can be identified.

예를 들어, 프로세서(140)는 로봇(100)이 공간을 기설정된 횟수 이상 주행하는 동안 동일한 특징점을 갖는 오브젝트가 동일한 위치에서 기설정된 횟수 이상 검출되는 경우(여기에서, 기설정된 횟수는 m이다(m은 2 이상의 자연수)), 검출된 오브젝트를 공간 내에 고정적으로 위치하는 오브젝트인 것으로 식별할 수 있다. For example, the processor 140 detects an object with the same feature point at the same location more than a preset number of times while the robot 100 travels in space more than a preset number of times (here, the preset number is m ( m is a natural number of 2 or more)), the detected object can be identified as an object that is fixedly located in space.

또한, 프로세서(140)는 주행용 맵을 이용하여 로봇(100)이 공간을 주행하는 동안 마이크(120)를 통해 사운드를 수신하고, 사운드에 기초하여 공간의 특정 위치에서 반복적으로 수신되는 사운드를 식별할 수 있다. In addition, the processor 140 uses a driving map to receive sound through the microphone 120 while the robot 100 is traveling in space, and identifies sounds that are repeatedly received at a specific location in space based on the sound. can do.

구체적으로, 프로세서(140)는 로봇(100)이 공간을 주행하는 동안 마이크(120)를 통해 사운드가 수신되면, 수신된 사운드로부터 사운드의 특징을 획득할 수 있다. 여기에서, 사운드의 특징은 파형, 파장, 주파수 대역, 진폭, 진동수 등을 포함할 수 있다. 다만, 이 예에 한정되는 것은 아니고, 사운드의 특징은 해당 사운드를 다른 사운드와 구별할 수 있는 다양한 파라미터를 포함할 수 있다. Specifically, when sound is received through the microphone 120 while the robot 100 travels in space, the processor 140 may obtain characteristics of the sound from the received sound. Here, the characteristics of the sound may include waveform, wavelength, frequency band, amplitude, frequency, etc. However, it is not limited to this example, and the characteristics of a sound may include various parameters that can distinguish the sound from other sounds.

또한, 프로세서(140)는 주행용 맵에서 로봇(100)의 위치를 식별하여, 주행용 맵에서 로봇(100)이 사운드를 수신한 위치를 식별할 수 있다. 여기에서, 로봇(100)이 사운드를 수신한 위치는 주행용 맵 상에서의 좌표 값을 포함할 수 있다.Additionally, the processor 140 may identify the location of the robot 100 on the driving map and identify the location where the robot 100 received the sound on the driving map. Here, the location where the robot 100 received the sound may include coordinate values on the driving map.

그리고, 프로세서(140)는 식별된 위치에 기초하여 사운드를 출력하는 사운드 소스의 위치를 식별할 수 있다. Additionally, the processor 140 may identify the location of a sound source that outputs sound based on the identified location.

예를 들어, 프로세서(140)는 주행용 맵에서 로봇(100)이 사운드를 수신한 위치를 사운드 소스의 위치로 추정할 수 있다. For example, the processor 140 may estimate the location where the robot 100 received the sound on the driving map as the location of the sound source.

또한, 프로세서(140)는 주행용 맵의 복수의 영역 중 로봇(100)이 사운드를 수신한 위치가 포함된 영역을 사운드 소스의 위치로 추정할 수 있다. 예를 들어, 프로세서(140)는 주행용 맵의 영역 1 및 영역 2 중에서 로봇(100)이 사운드를 수신한 위치가 영역 2에 포함된 경우, 사운드 소스가 영역 2에 위치하는 것으로 추정할 수 있다. Additionally, the processor 140 may estimate an area including the location where the robot 100 received the sound among the plurality of areas of the driving map as the location of the sound source. For example, the processor 140 may estimate that the sound source is located in area 2 if the location where the robot 100 received the sound is included in area 2 among areas 1 and 2 of the driving map. .

한편, 프로세서(140)는 주행용 맵의 복수의 영역의 명칭에 대한 정보가 메모리(130)에 저장되어 있는 경우, 메모리(130)에 저장된 명칭에 대한 정보를 이용하여 로봇(100)이 사운드를 수신한 영역의 명칭을 식별할 수 있다. Meanwhile, when information about the names of a plurality of areas of the driving map is stored in the memory 130, the processor 140 uses the information about the names stored in the memory 130 to make the robot 100 produce sound. The name of the received area can be identified.

전술한 예와 같이, 주행용 맵이 복수의 영역으로 구분되고, 복수의 영역의 명칭이 "거실", "부엌" 및 "방"와 같은 경우를 가정한다. 이 경우, 프로세서(140)는 주행용 맵의 복수의 영역 중 로봇(100)이 "거실" 영역 및 "부엌" 영역에 위치하는 동안 사운드를 수신한 경우, 로봇(100)이 사운드를 수신한 위치는 "거실" 영역 및 "부엌" 영역인 것으로 식별할 수 있다. As in the above-mentioned example, assume that the driving map is divided into a plurality of areas, and the names of the plurality of areas are “living room,” “kitchen,” and “room.” In this case, when the processor 140 receives sound while the robot 100 is located in the “living room” area and the “kitchen” area among the plurality of areas of the driving map, the processor 140 determines the location where the robot 100 received the sound. can be identified as being a “living room” area and a “kitchen” area.

그리고, 프로세서(140)는 사운드의 특징 및 사운스 소스의 위치에 대한 정보를 메모리(130)에 저장할 수 있다. Additionally, the processor 140 may store information about the characteristics of the sound and the location of the sound source in the memory 130.

한편, 프로세서(140)는 로봇(100)이 공간을 기설정된 횟수 이상 주행하는 동안 전술한 과정을 반복하여(여기에서, 기설정된 횟수는 n이다(n은 2 이상의 자연수)), 공간의 특정 위치 내에서 반복적으로 수신되는 사운드를 식별할 수 있다. Meanwhile, the processor 140 repeats the above-described process while the robot 100 travels in space more than a preset number of times (here, the preset number of times is n (n is a natural number of 2 or more)) to determine a specific location in space. You can identify sounds that are repeatedly received within the system.

예를 들어, 프로세서(140)는 로봇(100)이 공간을 기설정된 횟수 이상 주행하는 동안 동일한 특징을 갖는 사운드를 기설정된 횟수 이상 수신하고, 기설정된 횟수 이상 수신된 사운드에 대응되는 사운드 소스의 위치가 동일한 것으로 식별되면, 해당 사운드를 반복적으로 수신되는 사운드인 것으로 식별할 수 있다.For example, the processor 140 receives sounds having the same characteristics more than a preset number of times while the robot 100 travels in space more than a preset number of times, and positions the sound source corresponding to the sound received more than the preset number of times. If is identified as the same, the corresponding sound can be identified as a sound that is received repeatedly.

이와 같이, 프로세서(140)는 고정적으로 위치한 오브젝트 및 반복적으로 수신되는 사운드를 식별할 수 있다.In this way, the processor 140 can identify fixedly located objects and sounds that are repeatedly received.

그리고, 프로세서(140)는 식별된 오브젝트 및 사운드를 클루로서 식별하고, 주행용 맵에 클루에 대한 정보가 부가된 클루 맵을 생성하여 메모리(130)에 저장할 수 있다.Additionally, the processor 140 may identify the identified objects and sounds as a clue, generate a clue map to which information about the clue is added to the driving map, and store it in the memory 130.

여기에서, 클루에 대한 정보는 클루로서 식별된 오브젝트에 대한 정보 및 클루로서 식별된 사운드에 대한 정보를 포함할 수 있다. Here, the information about the clue may include information about the object identified as the clue and information about the sound identified as the clue.

이 경우, 오브젝트에 대한 정보는 오브젝트의 특징점 및 오브젝트의 위치 중 적어도 하나를 포함할 수 있다. 또한, 사운드에 대한 정보는 사운드의 특징 및 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함할 수 있다.In this case, information about the object may include at least one of the characteristic points of the object and the location of the object. Additionally, information about the sound may include at least one of the characteristics of the sound and the location of the sound source that output the sound.

즉, 프로세서(140)는 오브젝트의 위치를 주행용 맵 상에서 표시하고, 오브젝트의 위치에 오브젝트로부터 획득된 오브젝트의 특징점을 맵핑할 수 있다. 또한, 프로세서(140)는 사운드 소스의 위치를 주행용 맵 상에서 표시하고, 사운드 소스의 위치에 사운드로부터 획득된 사운드의 특징을 맵핑할 수 있다. 이에 따라, 프로세서(140)는 클루 맵을 생성할 수 있다. 이 경우, 클루 맵을 구성하는 정보는 클루 DB에 저장되어 관리될 수 있다.That is, the processor 140 can display the location of the object on the driving map and map the feature points of the object obtained from the object to the location of the object. Additionally, the processor 140 may display the location of the sound source on the driving map and map the characteristics of the sound obtained from the sound to the location of the sound source. Accordingly, the processor 140 may generate a clue map. In this case, the information constituting the Clue map can be stored and managed in the Clue DB.

도 3은 본 개시의 일 실시 예에 따른 클루 맵의 일 예를 설명하기 위한 도면이다.Figure 3 is a diagram for explaining an example of a clue map according to an embodiment of the present disclosure.

도 3을 참조하면, 프로세서(140)는 주행용 맵(300)에 클루에 대한 정보를 부가하여 클루 맵(400)을 생성할 수 있다.Referring to FIG. 3 , the processor 140 may generate a clue map 400 by adding information about the clue to the driving map 300 .

이 경우, 클루 맵(400)에는 클루로서 식별된 오브젝트의 위치(411 내지 419)가 표시되며, 오브젝트 별로 오브젝트의 특징점이 맵핑될 수 있다. 또한, 클루 맵(320)에는 클루로서 식별된 사운드에 대응되는 사운드 소스의 위치(421, 422)가 표시되며, 사운드 소스 별로 사운드의 특징이 맵핑될 수 있다.In this case, the locations 411 to 419 of the objects identified as the clues are displayed on the clue map 400, and the characteristic points of the objects may be mapped for each object. Additionally, the clue map 320 displays the locations 421 and 422 of sound sources corresponding to sounds identified as clues, and the characteristics of the sound can be mapped for each sound source.

한편, 전술한 예에서, 클루 맵이 오브젝트의 특징점을 포함하는 것으로 설명하였다. 다만, 이는 일 예이고, 클루 맵은 클루로서 식별된 오브젝트가 촬영된 이미지를 포함할 수도 있다. 이 경우, 프로세서(140)는 이미지로부터 오브젝트의 특징점을 획득할 수 있다.Meanwhile, in the above-described example, it was explained that the clue map includes feature points of the object. However, this is an example, and the clue map may include an image in which an object identified as a clue is captured. In this case, the processor 140 may obtain feature points of the object from the image.

한편, 프로세서(140)는 주행용 맵 상에 오브젝트의 위치를 표시할 수 있다. 전술한 바와 같이, 프로세서(140)는 공간을 복수 회 주행하고, 주행할 때마다 공간에서 오브젝트의 위치를 식별할 수 있다. 이때, 동일한 오브젝트의 위치가 오차로 인해 서로 다른 좌표 값으로 측정될 수 있다. 이 경우, 프로세서(140)는 식별된 오브젝트의 위치들의 평균 값으로 오브젝트의 위치를 결정하거나, 카메라(110)를 통해 오브젝트를 복수의 시점에서 촬영한 이미지들을 이용하여 오브젝트의 위치를 결정할 수 있다. 그리고, 프로세서(140)는 결정된 오브젝트의 위치를 주행용 맵 상에 표시할 수 있다.Meanwhile, the processor 140 may display the location of the object on the driving map. As described above, the processor 140 can travel through space multiple times and identify the location of an object in space each time it travels. At this time, the location of the same object may be measured with different coordinate values due to error. In this case, the processor 140 may determine the position of the object using the average value of the positions of the identified objects, or may determine the position of the object using images taken of the object from a plurality of viewpoints through the camera 110. Additionally, the processor 140 may display the location of the determined object on the driving map.

또한, 프로세서(140)는 클루 맵을 업데이트할 수 있다. 구체적으로, 프로세서(140)는 로봇(100)이 공간을 주행하는 동안 카메라(110)를 통해 획득한 이미지 및 마이크(120)를 통해 획득한 사운드에 기초하여 클루를 식별할 수 있다.Additionally, the processor 140 may update the clue map. Specifically, the processor 140 may identify the clu based on the image acquired through the camera 110 and the sound acquired through the microphone 120 while the robot 100 travels in space.

그리고, 프로세서(140)는 클루로서 식별된 오브젝트 및 사운드에 대한 정보를 클루 맵에 포함된 클루에 대한 정보와 비교하여, 오브젝트 및 사운드에 대한 정보가 클루 맵에 포함되어 있지 않은 경우, 오브젝트 및 사운드에 대한 정보를 클루 맵에 추가하여 클루 맵을 업데이트할 수 있다.In addition, the processor 140 compares the information about the object and sound identified as a clue with the information about the clip included in the clip map, and if the information about the object and sound is not included in the clip map, the object and sound You can update the Clue map by adding information about it to the Clue map.

도 4는 본 개시의 일 실시 예에 따라 클루 맵을 업데이트하는 방법을 설명하기 위한 도면이다.Figure 4 is a diagram for explaining a method of updating a clue map according to an embodiment of the present disclosure.

예를 들어, 도 4와 같이, 프로세서(140)는 클루로서 새롭게 식별된 오브젝트의 위치(431)을 클루 맵(400) 상에 표시하고, 해당 위치에 클루로서 새롭게 식별된 오브젝트의 특징점을 맵핑할 수 있다. For example, as shown in FIG. 4, the processor 140 displays the location 431 of the object newly identified as a clue on the clip map 400, and maps the feature points of the object newly identified as a clip to that location. You can.

이와 같이, 프로세서(140)는 클루 맵을 생성 및 업데이트할 수 있다. In this way, the processor 140 can create and update a clue map.

한편, 프로세서(140)는 기설정된 이벤트가 발생한 경우, 클루 맵을 이용하여 주행용 맵에서 로봇(100)이 위치한 공간 영역을 식별하고, 공간 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별한다. Meanwhile, when a preset event occurs, the processor 140 identifies the spatial area in which the robot 100 is located in the driving map using a clue map, and performs relocalization on the spatial area to identify the robot (100) in the driving map. 100) identifies the location.

구체적으로, 프로세서(140)는 기설정된 이벤트가 발생한 경우, 카메라(110)를 이용하여 로봇(100)의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, 마이크(120)를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득할 수 있다. Specifically, when a preset event occurs, the processor 140 acquires information about the object using an image taken of the surrounding area of the robot 100 using the camera 110 and uses the microphone 120 to obtain information about the object. Information about the sound can be obtained using the received sound.

여기에서, 기설정된 이벤트는 로봇(100)이 주행용 맵에서 위치를 식별하지 못하는 이벤트를 포함할 수 있다. 즉, 프로세서(140)는 SLAM을 이용하여 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. 이 경우, 사용자가 임의로 로봇(100)의 위치를 변경하거나, 로봇(100)의 주변 환경 등의 이유로 프로세서(140)가 주행용 맵에서 로봇(100)의 위치를 식별하지 못하는 경우가 발생될 수 있다. Here, the preset event may include an event in which the robot 100 cannot identify its location on the driving map. That is, the processor 140 can identify the location of the robot 100 on the driving map using SLAM. In this case, a case may occur where the user arbitrarily changes the location of the robot 100 or the processor 140 cannot identify the location of the robot 100 on the driving map for reasons such as the surrounding environment of the robot 100. there is.

또한, 기설정된 이벤트는 오프되었던 로봇(100)의 전원이 온되는 이벤트를 포함할 수 있다. Additionally, the preset event may include an event in which the power of the robot 100 that was turned off is turned on.

프로세서(140)는 기설정된 이벤트가 발생한 경우, 카메라(110)를 통해 로봇(100)의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, 마이크(120)를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득할 수 있다. When a preset event occurs, the processor 140 acquires information about the object using an image taken of the surrounding area of the robot 100 through the camera 110 and uses the sound received through the microphone 120. You can use this to obtain information about sound.

그리고, 프로세서(140)는 획득된 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, 수신된 사운드를 이용하여 사운드에 대한 정보를 획득할 수 있다. Additionally, the processor 140 may obtain information about the object using the acquired image and obtain information about the sound using the received sound.

여기에서, 오브젝트에 대한 정보는 오브젝트의 특징점 및 오브젝트의 위치 중 적어도 하나를 포함할 수 있다. 또한, 사운드에 대한 정보는 사운드의 특징 및 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함할 수 있다.Here, information about the object may include at least one of the characteristic points of the object and the location of the object. Additionally, information about the sound may include at least one of the characteristics of the sound and the location of the sound source that output the sound.

그리고, 프로세서(140)는 획득된 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 로봇(100)의 현재 위치하는 영역에 대응되는 이미지 패치(patch)를 생성할 수 있다.Additionally, the processor 140 may generate an image patch corresponding to the area where the robot 100 is currently located using the acquired information about the object and information about the sound.

여기에서, 이미지 패치는 로봇(100)의 현재 위치를 기준으로 로봇(100) 주변에 존재하는 오브젝트의 위치 및 로봇(100)이 현재 위치에서 수신하는 사운드를 출력하는 사운드 소스의 위치 간의 관계를 기반으로, 로봇(100)의 현재 위치에 대응되는 영역을 이미지화하여 생성될 수 있다. Here, the image patch is based on the relationship between the positions of objects existing around the robot 100 based on the current position of the robot 100 and the position of the sound source that outputs the sound that the robot 100 receives at the current position. This can be created by imaging the area corresponding to the current location of the robot 100.

구체적으로, 프로세서(140)는 카메라(110)를 통해 로봇(100)의 주변 영역을 촬영하여 이미지를 획득할 수 있다.Specifically, the processor 140 may obtain an image by photographing the surrounding area of the robot 100 through the camera 110.

이 경우, 프로세서(140)는 카메라(110)를 이용하여 로봇(100) 주변을 360도 방향으로 촬영하여 이미지를 획득할 수 있다. 이를 위해, 카메라(110)는 360도 회전 가능하도록 로봇(100)에 설치될 수 있다. 또는, 프로세서(140)는 로봇(100)이 360도 회전하도록 구동부(150)를 제어하고, 로봇(100)이 회전하는 동안 카메라(110)를 이용하여 촬영을 수행할 수 있다. In this case, the processor 140 may obtain an image by photographing the surroundings of the robot 100 in a 360-degree direction using the camera 110. To this end, the camera 110 can be installed on the robot 100 so that it can rotate 360 degrees. Alternatively, the processor 140 may control the driving unit 150 so that the robot 100 rotates 360 degrees and perform imaging using the camera 110 while the robot 100 rotates.

그리고, 프로세서(140)는 로봇(100)의 주변 영역을 촬영한 이미지를 분석하여 이미지에서 경계 오브젝트를 검출할 수 있다. 여기에서, 경계 오브젝트는 플래인(plane)일 수 있다. 예를 들어, 로봇(100) 주변에 벽이 존재하는 경우, 로봇(100)에서 벽이 위치한 방향을 촬영한 이미지에서 플래인이 검출될 수 있다. 그리고, 프로세서(140)는 카메라(110)의 촬영 방향 및 로봇(100)과 경계 오브젝트 간의 거리 등을 이용하여 로봇(100)의 주변 영역을 촬영한 이미지들을 분석하여, 로봇(100)의 위치를 기준으로 경계 오브젝트의 위치를 식별할 수 있다. Additionally, the processor 140 may analyze an image taken of the surrounding area of the robot 100 and detect a boundary object in the image. Here, the boundary object may be a plane. For example, if a wall exists around the robot 100, a plane may be detected in an image taken from the robot 100 in the direction in which the wall is located. In addition, the processor 140 analyzes images taken of the surrounding area of the robot 100 using the shooting direction of the camera 110 and the distance between the robot 100 and the boundary object, and determines the location of the robot 100. The location of the boundary object can be identified as a reference.

또한, 프로세서(140)는 로봇(100)의 주변 영역을 촬영한 이미지에서 오브젝트를 검출하고, 오브젝트의 특징점을 획득할 수 있다. 여기에서, 오브젝트의 특징점은 오브젝트의 경계, 코너, 굴곡 등을 포함할 수 있다.Additionally, the processor 140 may detect an object in an image taken of the surrounding area of the robot 100 and obtain feature points of the object. Here, feature points of the object may include boundaries, corners, curves, etc. of the object.

그리고, 프로세서(140)는 오브젝트의 위치를 식별할 수 있다. 구체적으로, 프로세서(140)는 카메라(110)의 촬영 방향 및 로봇(100)과 오브젝트 간의 거리 등을 이용하여 로봇(100)의 주변 영역을 촬영한 이미지들을 분석하여, 로봇(100)의 위치를 기준으로 오브젝트의 위치를 식별할 수 있다. And, the processor 140 can identify the location of the object. Specifically, the processor 140 analyzes images taken of the surrounding area of the robot 100 using the shooting direction of the camera 110 and the distance between the robot 100 and the object, and determines the location of the robot 100. The location of the object can be identified based on the reference.

한편, 프로세서(140)는 마이크(120)를 이용하여 로봇(100) 주변으로부터 사운드를 수신할 수 있다. Meanwhile, the processor 140 may receive sound from around the robot 100 using the microphone 120.

이 경우, 프로세서(140)는 수신된 사운드로부터 사운드의 특징을 획득할 수 있다. 여기에서, 사운드의 특징은 파형, 파장, 주파수 대역, 진폭, 진동수 등을 포함할 수 있다. 또한, 프로세서(140)는 사운드를 출력하는 사운드 소스의 위치를 식별할 수 있다. 예를 들어, 프로세서(140)는 로봇(100)의 현재 위치를 사운드 소스의 위치로 추정할 수 있다. 또한, 프로세서(140)는 경계 오브젝트 내의 영역을 사운드 소스의 위치로 할 수 있다. In this case, the processor 140 may obtain sound characteristics from the received sound. Here, the characteristics of the sound may include waveform, wavelength, frequency band, amplitude, frequency, etc. Additionally, the processor 140 can identify the location of a sound source that outputs sound. For example, the processor 140 may estimate the current location of the robot 100 as the location of the sound source. Additionally, the processor 140 may set the area within the boundary object as the location of the sound source.

그리고, 프로세서(140)는 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 이미지 패치를 생성할 수 있다. Additionally, the processor 140 may generate an image patch using information about the object and information about the sound.

도 5는 본 개시의 일 실시 예에 따른 이미지 패치의 일 예를 설명하기 위한 도면이다.Figure 5 is a diagram for explaining an example of an image patch according to an embodiment of the present disclosure.

도 5에서는 로봇(100)이 주행용 맵(300) 상의 지점(310)에 위치하는 것으로 가정한다. In FIG. 5 , it is assumed that the robot 100 is located at point 310 on the driving map 300.

프로세서(140)는 카메라(110)를 통해 로봇(100)의 주변 영역을 촬영하여 이미지를 획득할 수 있다. 이 경우, 프로세서(140)는 획득한 이미지로부터 로봇(100)의 제1 방향 및 제1 방향과 반대인 제2 방향에 위치한 경계 오브젝트를 검출하고, 로봇(100) 주변에 위치한 오브젝트를 검출할 수 있다. The processor 140 may acquire an image by photographing the surrounding area of the robot 100 through the camera 110. In this case, the processor 140 can detect boundary objects located in the first direction of the robot 100 and a second direction opposite to the first direction from the acquired image, and detect objects located around the robot 100. there is.

그리고, 프로세서(140)는 마이크(120)를 통해 사운드를 수신할 수 있다. Additionally, the processor 140 may receive sound through the microphone 120.

이 경우, 프로세서(140)는 경계 오브젝트의 위치, 오브젝트의 위치 및 사운드 소스의 위치를 이용하여 이미지 패치를 생성할 수 있다. 예를 들어, 도 5와 같이, 이미지 패치(510)에는 경계 오브젝트의 위치(511, 512), 오브젝트의 위치(521) 및 사운드 소스의 위치(531)가 표시될 수 있다. 이 경우, 오브젝트의 위치(521)에는 오브젝트로부터 획득된 오브젝트의 특징점이 맵핑되고, 사운드 소스의 위치(531)에 사운드로부터 획득된 사운드의 특징이 맵핑될 수 있다.In this case, the processor 140 may generate an image patch using the location of the boundary object, the location of the object, and the location of the sound source. For example, as shown in FIG. 5 , the image patch 510 may display the locations of boundary objects 511 and 512, the location of the object 521, and the location of the sound source 531. In this case, the characteristic points of the object obtained from the object may be mapped to the location 521 of the object, and the characteristics of the sound obtained from the sound may be mapped to the location 531 of the sound source.

그리고, 프로세서(140)는 생성된 이미지 패치를 클루 맵과 비교하여, 주행용 맵에서 로봇이 위치한 영역을 식별할 수 있다.Additionally, the processor 140 may compare the generated image patch with the clue map to identify the area where the robot is located on the driving map.

구체적으로, 프로세서(140)는 클루 맵의 복수의 영역 중 영역에 포함된 클루에 대한 정보가 이미지 패치에 포함된 오브젝트에 대한 정보 및 사운드에 대한 정보와 매칭되는 경우, 클루 맵에서 이미지 패치에 매칭되는 영역을 로봇(100)이 위치한 영역인 것으로 식별할 수 있다. Specifically, the processor 140 matches the image patch in the clue map when information about the clue included in one of the plurality of areas of the clue map matches information about the object and information about the sound included in the image patch. The area can be identified as the area where the robot 100 is located.

이 경우, 프로세서(140)는 탬플릿 매칭 알고리즘을 이용하여 클루 맵에서 이미지 패치에 매칭되는 영역을 식별할 수 있다.In this case, the processor 140 may identify an area that matches the image patch in the clue map using a template matching algorithm.

탬플릿 매칭 알고리즘은 원본 이미지 상에 탬플릿 이미지를 오버랩시키고, 탬플릿 이미지를 이동시키면서 원본 이미지에서 탬플릿 이미지와 일치하는 영역을 찾는 알고리즘을 의미할 수 있다.The template matching algorithm may refer to an algorithm that overlaps the template image on the original image, moves the template image, and finds an area in the original image that matches the template image.

전술한 바와 같이, 클루 맵은 주행용 맵을 기반으로 생성된다는 점에서, 로봇(100)이 주행하는 공간에 존재하는 벽에 대응되는 경계 오브젝트를 포함할 수 있다. 그리고, 클루로서 식별된 오브젝트의 위치 및 클루로서 식별된 사운드를 출력한 사운드 소스의 위치가 클루 맵에 표시될 수 있다.As described above, since the clue map is created based on the driving map, it may include a boundary object corresponding to a wall existing in the space in which the robot 100 drives. Additionally, the location of the object identified as a clue and the location of the sound source that output the sound identified as a clue may be displayed on the clue map.

또한, 이미지 패치는 로봇(100)의 현재 위치를 기준으로 로봇(100) 주변의 영역에 대한 정보를 이미지화시켜 생성될 수 있다. 그리고, 로봇(100) 주변의 경계 오브젝트의 위치, 로봇(100) 주변의 오브젝트의 위치 및 로봇(100)이 수신한 사운드를 출력한 사운드 소스의 위치가 이미지 패치에 표시될 수 있다.Additionally, an image patch may be created by imaging information about the area around the robot 100 based on the current location of the robot 100. Additionally, the location of the boundary object around the robot 100, the location of the object around the robot 100, and the location of the sound source that output the sound received by the robot 100 may be displayed on the image patch.

이 경우, 프로세서(140)는 이미지 패치를 클루 맵 상에 오버랩시키고, 이미지 패치를 이동시켜면서 클루 맵에서 이미지 패치와 매칭되는 영역을 검색할 수 있다. 이에 따라, 경계 오브젝트의 위치, 오브젝트의 위치 및 사운드 소스의 위치가 이미지 패치와 매칭되는 클루 맵의 영역이 검색될 수 있다.In this case, the processor 140 may overlap the image patch on the clue map, move the image patch, and search for an area that matches the image patch in the clue map. Accordingly, the area of the clue map where the location of the boundary object, the location of the object, and the location of the sound source matches the image patch can be searched.

그리고, 프로세서(140)는 검색된 영역에 포함된 오브젝트의 특징점이 이미지 패치에 포함된 오브젝트의 특징점과 일치하고, 검색된 영역에 포함된 사운드의 특징이 이미지 패치에 포함된 사운드의 특징과 일치하는 경우, 검색된 영역을 로봇(100)이 위치한 영역인 것으로 식별할 수 있다. Then, the processor 140: If the feature points of the object included in the searched area match the feature points of the object included in the image patch, and the features of the sound included in the searched area match the features of the sound included in the image patch, The searched area can be identified as the area where the robot 100 is located.

이 경우, 클루 맵은 주행용 맵을 기반으로 생성된다는 점에서, 프로세서(140)는 클루 맵에서 식별된 로봇(100)이 위치하는 영역과 동일한 영역을 주행용 맵에서 판단하여, 주행용 맵에서 로봇(100)이 위치하는 영역을 식별할 수 있다.In this case, given that the clue map is generated based on the driving map, the processor 140 determines the same area in the driving map as the area where the robot 100 identified in the clue map is located, and The area where the robot 100 is located can be identified.

한편, 전술한 예에서는 이미지 패치를 생성할 때, 카메라(110)를 통해 로봇(100)의 주변 영역을 촬영한 이미지에서 경계 오브젝트가 검출되는 것으로 설명하였다. 다만, 이 예에 한정되는 것은 아니다. 즉, 로봇(100)의 주변에 벽이 존재하지 않는 경우, 로봇(100)의 주변 영역을 촬영한 이미지에서 경계 오브젝트가 검출되지 않을 수 있다. 이 경우, 프로세서(140)는 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 이미지 패치를 생성할 수 있다. 그리고, 프로세서(140)는 클루 맵에서 이미지 패치와 매칭되는 영역을 검색할 수 있다. 이 경우, 오브젝트의 위치 및 사운드 소스의 위치가 이미지 패치와 매칭되는 클루 맵의 영역이 검색될 수 있다.Meanwhile, in the above-described example, it was explained that when creating an image patch, a boundary object is detected in an image taken of the surrounding area of the robot 100 through the camera 110. However, it is not limited to this example. That is, if there is no wall around the robot 100, a boundary object may not be detected in an image taken of the surrounding area of the robot 100. In this case, the processor 140 may generate an image patch using information about the object and information about the sound. Additionally, the processor 140 may search for an area that matches the image patch in the clue map. In this case, an area of the clue map where the location of the object and the location of the sound source matches the image patch can be searched.

한편, 프로세서(140)는 클루 맵에 이미지 패치와 매칭되는 영역이 존재하지 않는 경우, 클루 맵에서 클루가 존재하지 않는 영역을 로봇(100)이 위치하는 영역인 것으로 식별할 수 있다.Meanwhile, if there is no area in the clue map that matches the image patch, the processor 140 may identify the area in the clue map where the clue does not exist as the area where the robot 100 is located.

예를 들어, 로봇(100)의 현재 위치의 주변에 오브젝트가 존재하지 않고, 또한, 로봇(100)에 사운드가 수신되지 않는 경우를 가정한다. 이 경우, 이미지 패치에 오브젝트의 위치 및 사운드 소스의 위치가 표시되지 않는다는 점에서, 클루 맵에서 이미지 패치와 매칭되는 영역이 검색되지 않을 수 있다.For example, assume that there are no objects around the current location of the robot 100 and that no sound is received by the robot 100. In this case, since the location of the object and the location of the sound source are not displayed in the image patch, the area matching the image patch may not be searched in the Clue map.

예를 들어, 로봇(100)의 현재 위치의 주변에 오브젝트가 존재하지만, 해당 오브젝트가 클루로서 식별된 오브젝트가 아닌 경우가 존재할 수 있다. 이와 마찬가지로, 로봇(100)에 사운드가 수신되지만, 수신된 사운드가 클루로서 식별된 사운드가 아닌 경우가 존재할 수 있다. 이 경우, 오브젝트의 위치 및 사운드 소스의 위치가 서로 매칭되지 않는다는 점에서, 클루 맵에서 이미지 패치와 매칭되는 영역이 검색되지 않을 수 있다.For example, there may be a case where an object exists around the current location of the robot 100, but the object is not an object identified as a clue. Likewise, there may be a case where a sound is received by the robot 100, but the received sound is not a sound identified as a clue. In this case, since the location of the object and the location of the sound source do not match each other, the area matching the image patch may not be searched in the clue map.

이에 따라, 프로세서(140)는 클루 맵에서 이미지 패치와 매칭되는 영역이 검색되지 않는 경우, 클루 맵에서 오브젝트 및 사운드 소스가 위치하는 않는 영역을 주행용 맵에서 로봇(100)이 위치하는 영역인 것으로 식별할 수 있다. Accordingly, when the processor 140 does not search for an area matching the image patch in the clue map, the processor 140 determines the area where the object and sound source is not located in the clue map as the area where the robot 100 is located in the driving map. can be identified.

여기에서, 오브젝트가 위치하지 않는 영역은 카메라(110)를 통해 촬영하였을 때, 영역은 오브젝트의 위치, 경계 오브젝트의 위치 및 카메라(110)의 화각 등에 따라 클루 맵에서 오브젝트가 촬영되지 않는 영역을 포함할 수 있다. 또한, 오브젝트가 위치하지 않는 영역은 클루 맵이 벽과 같은 경계 오브젝트에 의해 복수의 영역으로 구분된 경우, 복수의 영역 중 오브젝트가 위치하지 않은 적어도 하나의 영역을 포함할 수 있다.Here, when the area where the object is not located is captured through the camera 110, the area includes the area where the object is not captured in the Clue map depending on the location of the object, the location of the boundary object, and the angle of view of the camera 110. can do. Additionally, the area where the object is not located may include at least one area where the object is not located among the plurality of areas when the clue map is divided into a plurality of areas by a boundary object such as a wall.

또한, 사운드 소스가 위치하는 않는 영역은 클루 맵에서 클루로서 식별된 사운드를 수신한 위치에 기초하여 결정된 사운드 소스의 위치를 제외한 나머지 영역을 포함할 수 있다. Additionally, the area in which the sound source is not located may include the remaining area excluding the location of the sound source determined based on the location where the sound identified as the clue in the clue map was received.

그리고, 프로세서(140)는 주행용 맵에서 로봇이 위치한 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다.Additionally, the processor 140 may identify the location of the robot 100 on the driving map by performing relocalization on the area where the robot is located on the driving map.

이 경우, 프로세서(140)는 로봇이 위치한 영역이 복수 개 식별되면, 복수의 영역 각각에 대해 리로컬라이제이션을 수행할 수 있다.In this case, if a plurality of areas where the robot is located are identified, the processor 140 may perform relocalization for each of the plurality of areas.

도 6 및 도 7은 본 개시의 일 실시 예에 따라 클루 맵을 이용하여 로봇이 현재 위치한 영역을 식별하고, 식별된 영역에 대해 리로컬라이제이션을 수행하는 방법을 설명하기 위한 도면이다.Figures 6 and 7 are diagrams for explaining a method of identifying an area where a robot is currently located using a clue map and performing relocalization on the identified area according to an embodiment of the present disclosure.

도 6을 참조하면, 프로세서(140)는 클루 맵(400)에서 이미지 패치(510)와 매칭되는 영역(441)을 식별할 수 있다. 그리고, 프로세서(140)는 주행용 맵(300)에서 영역(441)과 동일한 위치의 영역(321)을 식별하고, 영역(321)에 대해 리로컬라이제이션을 수행할 수 있다.Referring to FIG. 6 , the processor 140 may identify an area 441 that matches the image patch 510 in the clue map 400. Additionally, the processor 140 may identify an area 321 at the same location as the area 441 in the driving map 300 and perform relocalization on the area 321.

도 7을 참조하면, 프로세서(140)는 클루 맵(400)에서 이미지 패치(510)와 매칭되는 영역이 존재하지 않는 경우, 클루 맵에서 오브젝트 및 사운드 소스가 위치하는 않는 영역(442, 443, 444)을 식별할 수 있다. 프로세서(140)는 주행용 맵(300)에서 영역(442, 443, 444)과 동일한 위치의 영역(322, 323, 324)을 식별하고, 각 영역(322, 323, 324)에 대해 리로컬라이제이션을 수행할 수 있다.Referring to FIG. 7, when there is no area matching the image patch 510 in the clue map 400, the processor 140 selects areas 442, 443, and 444 in the clue map where objects and sound sources are not located. ) can be identified. The processor 140 identifies areas 322, 323, and 324 in the same location as the areas 442, 443, and 444 in the driving map 300, and performs relocalization for each area 322, 323, and 324. It can be done.

즉, 자율 주행을 수행하는 로봇은 맵을 생성한 후, 맵 상에서 자신의 위치를 찾는 위치 인식 즉, 로컬라이제이션을 통해서 주행을 할 수 있다. 이 경우, 때때로 환경적 요인(예: feature-less 등)에 의해 로봇이 자신의 위치를 잘못 추정하는 경우가 발생될 수 있다. 소형 홈 로봇의 경우, 사람이 로봇의 전원을 오프시킨 후 임의의 위치로 이동시키고, 다시 온 시키는 경우, 로봇은 현재 위치를 인식하지 못하게 된다. 이러한 경우, 로봇은 맵 상에서 자신의 위치를 다시 찾아야 하는데, 리로컬라이제이션을 통해 자신의 위치를 찾게 된다.In other words, a robot performing autonomous driving can create a map and then drive through location recognition, that is, localization, to find its own location on the map. In this case, sometimes the robot may incorrectly estimate its location due to environmental factors (e.g. feature-less, etc.). In the case of a small home robot, if a person turns the robot off, moves it to a random location, and then turns it back on, the robot will not be able to recognize its current location. In this case, the robot must find its location on the map again, and it finds its location through relocalization.

이 경우, 본 개시에서는 주행용 맵 전체에 대해 리로컬라이제이션을 수행하지 않고, 먼저, 주행용 맵에서 로봇(100)이 현재 위치하는 영역을 식별하고, 식별된 영역에 대해 리로컬라이제이션을 수행하여 주행용 맵에서 로봇(100)의 위치를 식별할 수 있다. 이에 따라, 로봇(100)의 위치 추정의 성공률이 높아질 수 있다.In this case, in this disclosure, relocalization is not performed on the entire driving map, but first, the area where the robot 100 is currently located is identified in the driving map, and relocalization is performed on the identified area to determine the driving map. The location of the robot 100 can be identified on the map. Accordingly, the success rate of estimating the position of the robot 100 may increase.

한편, 프로세서(140)는 사용자 음성에 기초하여 로봇(100)이 위치하는 영역을 식별할 수도 있다.Meanwhile, the processor 140 may identify the area where the robot 100 is located based on the user's voice.

이를 위해, 메모리(130)에는 클루 맵의 복수의 영역 각각에 대한 명칭에 대한 저장되어 있을 수 있다. 즉, 복수의 영역 각각에는 영역의 명칭이 레이블링되어 있을 수 있다. 이 경우, 영역의 명칭은 사용자 명령에 따라 입력될 수 있다. 그리고, 각 영역에 레이블링된 명칭에 대한 정보는 클루 DB에 저장되어 관리될 수 있다. 예를 들어, 도 8a와 같이, 클루 맵(400)의 영역(451)에 대해 "부엌"이라는 명칭이 레이블링되고, 영역(452)에 대해 "방"이라는 명칭이 레이블링될 수 있다.For this purpose, the name of each of a plurality of areas of the Clue map may be stored in the memory 130. That is, each of the plurality of areas may be labeled with the name of the area. In this case, the name of the area can be entered according to the user command. Additionally, information about the names labeled in each area can be stored and managed in Clue DB. For example, as shown in FIG. 8A, the area 451 of the clue map 400 may be labeled with the name “kitchen,” and the area 452 may be labeled with the name “room.”

프로세서(140)는 마이크(120)를 통해 사용자 음성을 수신하고, 사용자 음성에 기초하여 로봇(100)이 위치하는 영역을 식별할 수 있다. The processor 140 may receive the user's voice through the microphone 120 and identify the area where the robot 100 is located based on the user's voice.

구체적으로, 프로세서(140)는 마이크(120)를 통해 수신된 사용자 음성에 대한 음성 인식을 수행하여, 사용자 음성에 포함된 로봇(100)이 위치하는 영역에 대한 정보를 획득하고, 획득된 정보를 각 영역에 레이블링된 명칭과 비교하여, 로봇(100)이 위치하는 영역을 식별할 수 있다. Specifically, the processor 140 performs voice recognition on the user's voice received through the microphone 120, obtains information about the area where the robot 100 included in the user's voice is located, and stores the obtained information. By comparing the names labeled for each area, the area where the robot 100 is located can be identified.

예를 들어, 프로세서(140)는 로봇(100)의 스피커(182)를 통해 "여기는 어디인가요?"와 같은 사운드를 출력하고, 그에 대한 응답으로 "방"과 같은 사용자 음성을 수신할 수 있다. 이 경우, 프로세서(140)는 음성 인식을 통해 사용자 음성으로부터 "방"을 획득하고, 클루 맵(400)에서 "방"이 레이블링된 영역(452)을 검색할 수 있다. 이에 따라, 프로세서(140)는 현재 로봇(100)이 클루 맵(400)에서 영역(452)에 위치하는 것으로 식별할 수 있다. For example, the processor 140 may output a sound such as “Where am I?” through the speaker 182 of the robot 100, and receive a user voice such as “room” in response. In this case, the processor 140 may obtain “room” from the user's voice through voice recognition and search the area 452 labeled “room” in the clue map 400. Accordingly, the processor 140 may identify that the robot 100 is currently located in the area 452 in the clue map 400.

또한, 프로세서(140)는 사용자 음성으로부터 획득한 로봇(100)이 위치하는 영역에 대한 정보가 클루 맵에 존재하지 않는 것으로 식별되면, 획득된 정보에 기초하여 클루 맵을 업데이트할 수 있다. Additionally, if it is determined that information about the area where the robot 100, obtained from the user's voice, is located does not exist in the clue map, the processor 140 may update the clue map based on the acquired information.

구체적으로, 프로세서(140)는 사용자 음성으로부터 획득한 로봇(100)이 위치하는 영역에 대한 정보가 클루 맵의 복수의 영역에 레이블링되어 있지 않은 경우, 이미지 패치를 이용하여 클루 맵에서 로봇(100)이 위치하는 영역을 식별할 수 있다. 그리고, 프로세서(140)는 사용자 음성으로부터 획득한 로봇(100)이 위치하는 영역에 대한 정보를 식별된 영역의 명칭으로 저장하여, 클루 맵을 업데이트할 수 있다. Specifically, if the information about the area where the robot 100 is located obtained from the user's voice is not labeled in a plurality of areas of the clue map, the processor 140 uses an image patch to label the robot 100 in the clue map. The area where this is located can be identified. Additionally, the processor 140 may update the Clue map by storing information about the area where the robot 100, obtained from the user's voice, is located as the name of the identified area.

예를 들어, 로봇(100)이 영역(452)에 위치하는 상태에서, "큰방"과 같은 사용자 음성을 수신한 경우를 가정한다. 이 경우, 도 8b와 같이, 프로세서(140)는 이미지 패치를 이용하여 로봇(100)이 영역(452)에 위치하는 것으로 식별하고, 영역(452)에 "큰방"을 레이블링할 수 있다. 이에 따라, 영역(452)은 "방" 및 "큰방"이 레이블링될 수 있다.For example, assume that the robot 100 is located in the area 452 and receives a user voice such as “big room.” In this case, as shown in FIG. 8B, the processor 140 may use an image patch to identify the robot 100 as being located in the area 452 and label the area 452 as “large room.” Accordingly, area 452 may be labeled “room” and “large room.”

이와 같이, 본 개시에 따르면 사용자 음성을 이용하여 로봇(100)이 현재 위치하는 영역을 식별할 수도 있다.In this way, according to the present disclosure, the area where the robot 100 is currently located may be identified using the user's voice.

도 9는 본 개시의 일 실시 예에 따른 로봇의 위치 식별 방법을 설명하기 위한 흐름도이다. Figure 9 is a flowchart for explaining a method for identifying the location of a robot according to an embodiment of the present disclosure.

이 경우, 로봇은 카메라 및 마이크를 포함하며, 맵을 이용하여 공간을 주행할 수 있다.In this case, the robot includes a camera and microphone, and can navigate the space using a map.

먼저, 로봇이 맵을 이용하여 공간을 주행하는 동안 카메라를 통해 촬영한 이미지 및 마이크를 통해 수신한 사운드에 기초하여 공간에서 고정적으로 위치한 오브젝트 및 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별한다(S910).First, based on images captured through cameras and sounds received through microphones while the robot travels through space using a map, objects that are fixedly located in space and sounds repeatedly received from specific locations in space are identified as clues. Do (S910).

이후, 맵에 클루에 대한 정보가 부가된 클루 맵을 생성한다(S920).Afterwards, a Clue map is created with information about the Clue added to the map (S920).

그리고, 기설정된 이벤트가 발생한 경우, 클루 맵을 이용하여 맵에서 로봇이 위치한 영역을 식별하고, 식별된 영역에 대해 리로컬라이제이션을 수행하여 맵에서 로봇의 위치를 식별한다(S930).Then, when a preset event occurs, the area where the robot is located on the map is identified using the clue map, and relocalization is performed on the identified area to identify the location of the robot on the map (S930).

여기에서, 클루에 대한 정보는 오브젝트의 특징점 및 오브젝트의 위치 중 적어도 하나를 포함할 수 있다. 또한, 클루에 대한 정보는 사운드의 특징 및 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함할 수 있다.Here, information about the clue may include at least one of the feature points of the object and the location of the object. Additionally, information about the clue may include at least one of the characteristics of the sound and the location of the sound source that output the sound.

한편, S930 단계는 기설정된 이벤트가 발생한 경우, 카메라를 통해 로봇의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, 마이크를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득하고, 획득된 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 로봇이 현재 위치하는 영역에 대응되는 이미지 패치를 생성하고, 생성된 이미지 패치를 클루 맵과 비교하여, 맵에서 상기 로봇이 위치한 영역을 식별할 수 있다.Meanwhile, in step S930, when a preset event occurs, information about the object is obtained using an image taken of the surrounding area of the robot through a camera, information about the sound is obtained using sound received through a microphone, and , Using the information about the acquired object and the information about the sound, an image patch corresponding to the area where the robot is currently located is created, and the generated image patch is compared with the Clue map to identify the area where the robot is located on the map. can do.

또한, S930 단계는 클루 맵의 복수의 영역 중 영역에 포함된 클루에 대한 정보가 이미지 패치에 포함된 오브젝트에 대한 정보 및 사운드에 대한 정보와 매칭되는 경우, 클루 맵에서 이미지 패치에 매칭되는 영역을 로봇이 위치한 영역인 것으로 식별할 수 있다. In addition, in step S930, when the information about the clue included in an area among the plurality of areas of the clue map matches the information about the object and the information about the sound included in the image patch, the area matching the image patch in the clue map is selected. It can be identified as the area where the robot is located.

그리고, S930 단계는 클루 맵에 생성된 이미지 패치와 매칭되는 영역이 존재하지 않는 경우, 클루 맵에서 클루가 존재하지 않는 영역을 로봇이 위치한 영역인 것으로 식별할 수 있다.And, in step S930, if there is no area matching the image patch created in the clue map, the area in the clue map where the clue does not exist can be identified as the area where the robot is located.

한편, 기설정된 이벤트는 로봇이 상기 맵에서 위치를 식별하지 못하는 이벤트 또는 오프되었던 로봇의 전원이 온되는 이벤트를 포함할 수 있다.Meanwhile, the preset event may include an event in which the robot cannot identify its location on the map or an event in which the power of the robot that was turned off is turned on.

한편, 일 실시 예에 따르면, 본 개시의 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.Meanwhile, according to one embodiment, the method according to the embodiments of the present disclosure may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smartphones) or online. In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) is stored on a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.

이상에서 상술한 바와 같은 본 개시의 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. Each component (e.g., module or program) according to various embodiments of the present disclosure as described above may be composed of a single or multiple entities, and some of the sub-components described above may be omitted. Alternatively, other sub-components may be further included in various embodiments. Alternatively or additionally, some components (e.g., modules or programs) may be integrated into a single entity and perform the same or similar functions performed by each corresponding component prior to integration.

다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or at least some operations may be executed in a different order, omitted, or other operations may be added. You can.

한편, 본 개시에서 사용된 용어 "부" 또는 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "부" 또는 "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.Meanwhile, the term "unit" or "module" used in the present disclosure includes a unit comprised of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. You can. A “part” or “module” may be an integrated part, a minimum unit that performs one or more functions, or a part thereof. For example, a module may be comprised of an application-specific integrated circuit (ASIC).

한편, 본 개시에 따른 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다. 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.Meanwhile, a non-transitory computer readable medium storing a program that sequentially performs the control method according to the present disclosure may be provided. 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. Specifically, 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.

또한, 본 개시의 실시 예는 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 로봇(100))를 포함할 수 있다. Additionally, embodiments of the present disclosure may be implemented as software including instructions stored in a machine-readable storage media (e.g., a computer). The device is a device capable of calling instructions stored in a storage medium and operating according to the called instructions, and may include an electronic device (eg, robot 100) according to the disclosed embodiments.

상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. When the instruction is executed by a processor, the processor may perform the function corresponding to the instruction directly or using other components under the control of the processor. Instructions may contain code generated or executed by a compiler or interpreter.

이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.In the above, preferred embodiments of the present disclosure have been shown and described, but the present disclosure is not limited to the specific embodiments described above, and may be used in the technical field to which the disclosure pertains without departing from the gist of the disclosure as claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood individually from the technical ideas or perspectives of the present disclosure.

Claims (14)

맵을 이용하여 공간을 주행하는 로봇에 있어서,In a robot that travels in space using a map, 카메라;camera; 마이크;mike; 메모리; 및Memory; and 상기 로봇이 맵을 이용하여 상기 공간을 주행하는 동안 상기 카메라를 통해 촬영한 이미지 및 상기 마이크를 통해 수신한 사운드에 기초하여 상기 공간에서 고정적으로 위치한 오브젝트 및 상기 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별하고, Objects fixedly located in the space and sounds repeatedly received at a specific location in the space based on images captured through the camera and sounds received through the microphone while the robot travels through the space using a map Identify as a clue, 상기 맵에 상기 클루에 대한 정보가 부가된 클루 맵을 생성하여 상기 메모리에 저장하고, Creating a clue map with information about the clue added to the map and storing it in the memory, 기설정된 이벤트가 발생한 경우, 상기 클루 맵을 이용하여 상기 맵에서 상기 로봇이 위치한 영역을 식별하고, 상기 식별된 영역에 대해 리로컬라이제이션(relocalization)을 수행하여 상기 맵에서 상기 로봇의 위치를 식별하는 하나 이상의 프로세서;를 포함하는, 로봇.When a preset event occurs, one identifies the area where the robot is located on the map using the Clue map, and performs relocalization on the identified area to identify the location of the robot on the map. A robot containing one or more processors. 제1항에 있어서,According to paragraph 1, 상기 클루에 대한 정보는,Information about the above Clue, 상기 오브젝트의 특징점 및 상기 오브젝트의 위치 중 적어도 하나를 포함하는, 로봇.A robot including at least one of a feature point of the object and a location of the object. 제1항에 있어서,According to paragraph 1, 상기 클루에 대한 정보는,Information about the above Clue, 상기 사운드의 특징 및 상기 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함하는, 로봇.A robot comprising at least one of characteristics of the sound and a location of a sound source that outputs the sound. 제1항에 있어서,According to paragraph 1, 상기 하나 이상의 프로세서는,The one or more processors: 상기 기설정된 이벤트가 발생한 경우, 상기 카메라를 통해 상기 로봇의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하고, When the preset event occurs, information about the object is obtained using an image taken of the surrounding area of the robot through the camera, 상기 마이크를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득하고, Obtain information about the sound using the sound received through the microphone, 상기 획득된 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 상기 로봇이 현재 위치하는 영역에 대응되는 이미지 패치를 생성하고, Generate an image patch corresponding to the area where the robot is currently located using the acquired information about the object and the information about the sound, 상기 생성된 이미지 패치를 상기 클루 맵과 비교하여, 상기 맵에서 상기 로봇이 위치한 영역을 식별하는, 로봇.A robot that compares the generated image patch with the clue map to identify an area in the map where the robot is located. 제4항에 있어서,According to paragraph 4, 상기 하나 이상의 프로세서는,The one or more processors: 상기 클루 맵의 복수의 영역 중 영역에 포함된 상기 클루에 대한 정보가 상기 이미지 패치에 포함된 상기 오브젝트에 대한 정보 및 상기 사운드에 대한 정보와 매칭되는 경우, 상기 클루 맵에서 상기 이미지 패치에 매칭되는 영역을 상기 로봇이 위치한 영역인 것으로 식별하는, 로봇.When the information about the clue included in one of the plurality of areas of the clue map matches the information about the object and the information about the sound included in the image patch, the clue is matched to the image patch in the clue map. A robot that identifies an area as being an area in which the robot is located. 제4항에 있어서,According to paragraph 4, 상기 하나 이상의 프로세서는,The one or more processors: 상기 클루 맵에 상기 생성된 이미지 패치와 매칭되는 영역이 존재하지 않는 경우, 상기 클루 맵에서 상기 클루가 존재하지 않는 영역을 상기 로봇이 위치한 영역인 것으로 식별하는, 로봇.When there is no area matching the generated image patch in the clue map, the robot identifies an area in the clue map in which the clue does not exist as the area where the robot is located. 제1항에 있어서,According to paragraph 1, 상기 기설정된 이벤트는,The preset events are, 상기 로봇이 상기 맵에서 위치를 식별하지 못하는 이벤트 또는 상기 오프되었던 로봇의 전원이 온되는 이벤트를 포함하는, 로봇.A robot, including an event in which the robot cannot identify a location on the map or an event in which the power of the robot that has been turned off is turned on. 카메라 및 마이크를 포함하며, 맵을 이용하여 공간을 주행하는 로봇의 위치 식별 방법에 있어서, In a method for identifying the location of a robot that includes a camera and a microphone and travels in space using a map, 상기 로봇이 맵을 이용하여 상기 공간을 주행하는 동안 상기 카메라를 통해 촬영한 이미지 및 상기 마이크를 통해 수신한 사운드에 기초하여 상기 공간에서 고정적으로 위치한 오브젝트 및 상기 공간의 특정 위치에서 반복적으로 수신되는 사운드를 클루로서 식별하는 단계; Objects fixedly located in the space and sounds repeatedly received at a specific location in the space based on images captured through the camera and sounds received through the microphone while the robot travels through the space using a map identifying as a clue; 상기 맵에 상기 클루에 대한 정보가 부가된 클루 맵을 생성하는 단계; 및 Generating a clue map to which information about the clue is added to the map; and 기설정된 이벤트가 발생한 경우, 상기 클루 맵을 이용하여 상기 맵에서 상기 로봇이 위치한 영역을 식별하고, 상기 식별된 영역에 대해 리로컬라이제이션(relocalization)을 수행하여 상기 맵에서 상기 로봇의 위치를 식별하는 단계;를 포함하는, 위치 식별 방법.When a preset event occurs, identifying the area where the robot is located on the map using the clue map, and performing relocalization on the identified area to identify the location of the robot on the map. A location identification method, including ; 제8항에 있어서,According to clause 8, 상기 클루에 대한 정보는,Information about the above Clue, 상기 오브젝트의 특징점 및 상기 오브젝트의 위치 중 적어도 하나를 포함하는, 위치 식별 방법.A location identification method including at least one of a feature point of the object and a location of the object. 제8항에 있어서,According to clause 8, 상기 클루에 대한 정보는,Information about the above Clue, 상기 사운드의 특징 및 상기 사운드를 출력한 사운드 소스의 위치 중 적어도 하나를 포함하는, 위치 식별 방법.A location identification method comprising at least one of a characteristic of the sound and a location of a sound source that outputs the sound. 제8항에 있어서,According to clause 8, 상기 로봇의 위치를 식별하는 단계는,The step of identifying the location of the robot is, 상기 기설정된 이벤트가 발생한 경우, 상기 카메라를 통해 상기 로봇의 주변 영역을 촬영한 이미지를 이용하여 오브젝트에 대한 정보를 획득하는 단계; When the preset event occurs, obtaining information about an object using an image taken of the surrounding area of the robot through the camera; 상기 마이크를 통해 수신된 사운드를 이용하여 사운드에 대한 정보를 획득하는 단계;Obtaining information about sound using sound received through the microphone; 상기 획득된 오브젝트에 대한 정보 및 사운드에 대한 정보를 이용하여 상기 로봇이 현재 위치하는 영역에 대응되는 이미지 패치를 생성하는 단계; 및 generating an image patch corresponding to the area where the robot is currently located using the obtained information about the object and the information about the sound; and 상기 생성된 이미지 패치를 상기 클루 맵과 비교하여, 상기 맵에서 상기 로봇이 위치한 영역을 식별하는 단계;를 포함하는, 위치 식별 방법.A location identification method including; comparing the generated image patch with the clue map to identify an area in the map where the robot is located. 제11항에 있어서,According to clause 11, 상기 로봇의 위치를 식별하는 단계는,The step of identifying the location of the robot is, 상기 클루 맵의 복수의 영역 중 영역에 포함된 상기 클루에 대한 정보가 상기 이미지 패치에 포함된 상기 오브젝트에 대한 정보 및 상기 사운드에 대한 정보와 매칭되는 경우, 상기 클루 맵에서 상기 이미지 패치에 매칭되는 영역을 상기 로봇이 위치한 영역인 것으로 식별하는, 위치 식별 방법.When the information about the clue included in one of the plurality of areas of the clue map matches the information about the object and the information about the sound included in the image patch, the clue is matched to the image patch in the clue map. A location identification method, wherein an area is identified as being an area where the robot is located. 제11항에 있어서,According to clause 11, 상기 로봇의 위치를 식별하는 단계는,The step of identifying the location of the robot is, 상기 클루 맵에 상기 생성된 이미지 패치와 매칭되는 영역이 존재하지 않는 경우, 상기 클루 맵에서 상기 클루가 존재하지 않는 영역을 상기 로봇이 위치한 영역인 것으로 식별하는, 위치 식별 방법.When there is no area matching the generated image patch in the clue map, a location identification method identifies an area in the clue map in which the clue does not exist as the area where the robot is located. 제8항에 있어서,According to clause 8, 상기 기설정된 이벤트는,The preset events are, 상기 로봇이 상기 맵에서 위치를 식별하지 못하는 이벤트 또는 상기 오프되었던 로봇의 전원이 온되는 이벤트를 포함하는, 위치 식별 방법.A location identification method including an event in which the robot cannot identify a location on the map or an event in which the robot that has been turned off is turned on.
PCT/KR2023/016167 2022-11-23 2023-10-18 Robot traveling in space using map, and method for identifying location thereof Ceased WO2024111893A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220158184A KR20240076871A (en) 2022-11-23 2022-11-23 Robot for driving a space using a map and method for identifying a location of the robot thereof
KR10-2022-0158184 2022-11-23

Publications (1)

Publication Number Publication Date
WO2024111893A1 true WO2024111893A1 (en) 2024-05-30

Family

ID=91195879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/016167 Ceased WO2024111893A1 (en) 2022-11-23 2023-10-18 Robot traveling in space using map, and method for identifying location thereof

Country Status (2)

Country Link
KR (1) KR20240076871A (en)
WO (1) WO2024111893A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006035381A (en) * 2004-07-28 2006-02-09 Honda Motor Co Ltd Mobile robot controller
KR20130103204A (en) * 2012-03-09 2013-09-23 엘지전자 주식회사 Robot cleaner and controlling method of the same
JP6157598B2 (en) * 2013-04-12 2017-07-05 株式会社日立製作所 Mobile robot and sound source position estimation system
JP2018165759A (en) * 2017-03-28 2018-10-25 カシオ計算機株式会社 Voice detector, voice detection method and program
KR20210004677A (en) * 2019-07-05 2021-01-13 엘지전자 주식회사 Moving Robot and controlling method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006035381A (en) * 2004-07-28 2006-02-09 Honda Motor Co Ltd Mobile robot controller
KR20130103204A (en) * 2012-03-09 2013-09-23 엘지전자 주식회사 Robot cleaner and controlling method of the same
JP6157598B2 (en) * 2013-04-12 2017-07-05 株式会社日立製作所 Mobile robot and sound source position estimation system
JP2018165759A (en) * 2017-03-28 2018-10-25 カシオ計算機株式会社 Voice detector, voice detection method and program
KR20210004677A (en) * 2019-07-05 2021-01-13 엘지전자 주식회사 Moving Robot and controlling method

Also Published As

Publication number Publication date
KR20240076871A (en) 2024-05-31

Similar Documents

Publication Publication Date Title
WO2020141924A1 (en) Apparatus and method of generating map data of cleaning space
WO2019135514A1 (en) Mobile home robot and controlling method of the mobile home robot
WO2019059505A1 (en) Method and apparatus for recognizing object
WO2020055112A1 (en) Electronic device and method for identifying location by electronic device
WO2014069722A1 (en) Three-dimensional display device and user interfacing method therefor
WO2019156480A1 (en) Method of detecting region of interest on basis of gaze direction and electronic device therefor
WO2019164092A1 (en) Electronic device for providing second content for first content displayed on display according to movement of external object, and operating method therefor
WO2023287103A1 (en) Electronic device for controlling cleaning robot, and operating method therefor
WO2021230503A1 (en) Electronic apparatus and controlling method thereof
WO2022035054A1 (en) Robot and method for controlling same
WO2021066564A1 (en) Shape-changeable electronic device comprising plurality of cameras, and image capturing method
WO2023136549A1 (en) Method and device for providing augmented content through augmented reality view on basis of preset unit space
WO2020153818A1 (en) Method of controlling external electronic device and electronic device for supporting same
WO2020111727A1 (en) Electronic device and electronic device control method
WO2022186598A1 (en) Robot cleaner and control method thereof
WO2024090942A1 (en) Method and electronic device for training neural network model by augmenting images representing objects captured by multiple cameras
WO2024111893A1 (en) Robot traveling in space using map, and method for identifying location thereof
WO2022075686A1 (en) Electronic device and operating method therefor
WO2021107200A1 (en) Mobile terminal and mobile terminal control method
WO2020251151A1 (en) Method and apparatus for estimating user's pose by using three-dimensional virtual space model
WO2021162381A1 (en) Guide map provision method and electronic device for supporting same
WO2020171547A1 (en) Method of managing multi tasks and electronic device therefor
WO2020091182A1 (en) Electronic device for providing image data using augmented reality and control method for same
WO2023027341A1 (en) Robot and method for controlling robot
WO2024080592A1 (en) Map-sharing robot and map-sharing method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23894822

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 23894822

Country of ref document: EP

Kind code of ref document: A1