WO2023008720A1 - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
WO2023008720A1
WO2023008720A1 PCT/KR2022/007730 KR2022007730W WO2023008720A1 WO 2023008720 A1 WO2023008720 A1 WO 2023008720A1 KR 2022007730 W KR2022007730 W KR 2022007730W WO 2023008720 A1 WO2023008720 A1 WO 2023008720A1
Authority
WO
WIPO (PCT)
Prior art keywords
map data
robot
area
information
processor
Prior art date
Application number
PCT/KR2022/007730
Other languages
English (en)
French (fr)
Inventor
한승범
김진원
오근찬
백아론
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to EP22849699.8A priority Critical patent/EP4316741A1/en
Publication of WO2023008720A1 publication Critical patent/WO2023008720A1/ko
Priority to US18/384,216 priority patent/US20240053764A1/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/383Indoor data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3859Differential updating map data
    • 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/242Means based on the reflection of waves generated by the vehicle
    • 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]
    • G05D1/2464Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using an occupancy grid
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2105/00Specific applications of the controlled vehicles
    • G05D2105/10Specific applications of the controlled vehicles for cleaning, vacuuming or polishing
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2107/00Specific environments of the controlled vehicles
    • G05D2107/40Indoor domestic environment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles

Definitions

  • the present invention relates to a robot that manages map data and a control method thereof.
  • the robot cleaning the indoor space may continuously update map data corresponding to the space while driving in the indoor space.
  • the robot may simultaneously perform a location recognition operation of the robot and an operation of acquiring map data of the space during the driving process.
  • the conventional robot has a problem of acquiring inaccurate map data when the position of the robot is not accurately recognized or there is an error in sensor data necessary for map data acquisition.
  • the present disclosure is in accordance with the above-described necessity, and is to provide a robot and a control method for determining whether to update stored map data based on a comparison result between stored map data and newly acquired map data.
  • a robot includes a memory storing first map data corresponding to a first region of a specific space, a distance sensor, and a memory that stores the first map data while the robot travels in the specific space.
  • the second map data is obtained based on the distance data obtained by the distance sensor
  • the first map data and the second map data are compared, and as a result of the comparison, there is no error in the second map data and the second map data and a processor for updating the first map data based on the second map data when it is identified that the data includes information about a second area other than the first area.
  • the processor updates the first map data based on the second map data when it is identified that the second area is an area in which a plurality of sub areas are clustered and the size of the second area is greater than or equal to a threshold size.
  • the memory stores driving history information of the robot
  • the processor when it is identified that the robot has a history of driving in the second area based on the driving history information of the robot, the second map
  • the first map data may be updated based on data.
  • a first location corresponding to the current location of the robot is identified based on the first map data
  • a second location corresponding to the current location of the robot is identified based on the second map data
  • the second map data is identified. It can be identified that there is an error in the data.
  • the processor compares first line information included in the first map data and second line information included in the second map data, and determines whether an error exists in the second map data based on a comparison result. can identify.
  • the processor obtains first histogram information based on angle information of lines included in the first map data, and obtains second histogram information based on angle information of lines included in the second map data. and if the similarity between the first histogram information and the second histogram information is less than a threshold value, it is identified that there is no error in the second map data, and the similarity between the first histogram information and the second histogram information is If it is equal to or greater than the threshold value, it may be identified that an error exists in the second map data.
  • the processor may, if it is identified that the boundary between the first area and the second area is greater than or equal to a threshold length based on the first map data and the second map data, the first map data based on the second map data. Map data can be updated.
  • the processor may further include a display, wherein the processor controls the display to display a UI for inquiring whether or not to update the first map data based on the second map data, and performs an update of the first map data.
  • the first map data may be updated based on the second map data.
  • the apparatus may further include a communication interface, and the processor may control the communication interface to transmit the updated first map data to an external server.
  • first map data corresponding to a first region of a specific space when second map data is obtained while the robot travels in the specific space, the first map data is obtained.
  • step of comparing first map data and the second map data and as a result of the comparison, if there is no error in the second map data and it is identified that the second map data includes information about a second area other than the first area, , updating the first map data based on the second map data.
  • the second area is an area in which a plurality of sub-areas are clustered and the size of the second area is greater than or equal to a threshold size.
  • the updating may include updating the first map data based on the second map data when it is identified that the robot has a history of driving in the second area based on driving history information of the robot.
  • the comparing step may include identifying a first location corresponding to the current location of the robot based on the first map data, and a second location corresponding to the current location of the robot based on the second map data. identifying a location, if the distance between the first location and the second location is less than a threshold distance, identifying that there is no error in the second map data, and determining that the distance between the first location and the second location is and identifying that an error exists in the second map data if the distance is equal to or greater than the threshold distance.
  • the comparing step the first line information included in the first map data and the second line information included in the second map data are compared, and an error is present in the second map data based on a comparison result. can identify whether or not
  • the comparing may include obtaining first histogram information based on angle information of lines included in the first map data, and obtaining a second histogram based on angle information of lines included in the second map data. Obtaining information, identifying that there is no error in the second map data if the similarity between the first histogram information and the second histogram information is less than a threshold value, and identifying the first histogram information and the second histogram information. and identifying that an error exists in the second map data when the similarity between information is equal to or greater than the threshold value.
  • the updating may include performing the update based on the second map data when it is identified that the boundary between the first area and the second area is equal to or greater than a threshold length based on the first map data and the second map data.
  • the first map data may be updated.
  • the method may further include updating the first map data.
  • the method may further include transmitting the updated first map data to an external server.
  • a non-transitory computer-readable recording medium storing a computer command for causing the robot to perform an operation when executed by a processor of a robot according to an embodiment of the present invention is stored while the robot travels in the specific space. Comparing the first map data and the second map data when the second map data is acquired, and as a result of the comparison, there is no error in the second map data and the second map data contains a second area other than the first area. When it is identified that information about is included, updating the first map data based on the second map data may be included.
  • the robot can acquire highly reliable map data, the quality of service provided based on the map data can be improved, and thus user convenience can be improved.
  • 1 is a diagram for explaining a robot traveling in an indoor space.
  • FIG. 2 is a diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
  • FIG. 3 is a diagram for explaining an operation of determining whether a space is expanded by a robot according to an embodiment of the present disclosure.
  • FIG. 4 is a diagram for explaining an operation of determining whether to expand a space based on driving history information of a robot according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram for explaining map update determination after location re-recognition according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for explaining whether to update a map based on line information according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram for explaining a UI display operation of a robot according to an embodiment of the present disclosure.
  • FIG. 8 is a diagram for specifically explaining the functional configuration of a robot according to an embodiment of the present disclosure.
  • FIG. 9 is a flowchart illustrating a process of updating a map based on a user's update request according to an embodiment of the present disclosure.
  • FIG. 10 is a flowchart for explaining a control method according to an embodiment of the present disclosure.
  • expressions such as “has,” “can have,” “includes,” or “can include” indicate the presence of a corresponding feature (eg, numerical value, function, operation, or component such as a part). , which does not preclude the existence of additional features.
  • a component e.g., a first component
  • another component e.g., a second component
  • connection to it should be understood that an element may be directly connected to another element, or may be connected through another element (eg, a third element).
  • a “module” or “unit” performs at least one function or operation, and may be implemented in hardware or software or a combination of hardware and software.
  • a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.
  • a 'user' may mean a person who is provided with a route guidance service by a robot.
  • 1 is a diagram for explaining a robot traveling in an indoor space.
  • the robot 100 may provide a service to the user while driving a specific space (10).
  • the robot 100 may provide a service of cleaning the space 10, but is not limited thereto.
  • the robot 100 may pre-store map data corresponding to the space 10 in order to travel in the space 10, and the map data may include a wall area constituting the space 10 (occupied) and a free area (free area). space) or information about at least one of an unknown area.
  • the unidentified area may mean an area other than the wall area and the free area, but is not limited thereto.
  • the map data may include information about a plurality of sub-regions, and the sub-regions may be regions divided in grid units, but are not limited thereto.
  • the map data may include information about a plurality of grids corresponding to one of a wall region, a free region, and an unidentified region.
  • the space 10 may include an independent area 11 bordering a plurality of wall areas.
  • the door of the corresponding region 11 may be included in at least one wall area corresponding to the corresponding region 11 .
  • map data stored in the robot 100 may not include information about the corresponding area 11 .
  • the robot 100 may obtain map data corresponding to the corresponding area 11 .
  • the robot 100 may update previously stored map data based on the acquired map data.
  • various embodiments of determining whether to update stored map data based on a comparison result between stored map data and newly acquired map data will be described in more detail.
  • FIG. 2 is a diagram for explaining the configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 may include a memory 110 , a distance sensor 120 and a processor 130 .
  • the memory 110 may store data required for various embodiments of the present disclosure.
  • the memory 110 may be implemented in the form of a memory embedded in the robot 100 or in the form of a removable memory in the robot 100 depending on the data storage purpose.
  • data for driving the robot 100 is stored in a memory embedded in the robot 100
  • data for extended functions of the robot 100 is stored in a memory attachable to and detachable from the robot 100. It can be.
  • volatile memory eg, DRAM (dynamic RAM), SRAM (static RAM), SDRAM (synchronous dynamic RAM), etc.
  • non-volatile memory non-volatile memory
  • OTPROM one time programmable ROM
  • PROM programmable ROM
  • EPROM erasable and programmable ROM
  • EEPROM electrically erasable and programmable ROM
  • mask ROM flash ROM, flash memory (e.g. NAND flash or NOR flash, etc.) , hard drive, or solid state drive (SSD).
  • a memory card eg, CF (compact flash), SD (secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card), etc.
  • external memory that can be connected to the USB port (e.g., a USB memory) may be implemented in the form of the like.
  • the memory 110 may store first map data corresponding to a partial region (first region) of a space in which the robot 100 travels.
  • the distance sensor 120 may obtain distance data. Specifically, the distance sensor 120 may measure the distance between the position of the robot 100 and the position of the object, and obtain distance data based on the measurement result.
  • the distance sensor 120 according to an example may be implemented as a light detection and ranging (LIDAR) sensor or a time of flight (TOF) sensor, but is not limited thereto.
  • LIDAR light detection and ranging
  • TOF time of flight
  • the processor 130 controls the overall operation of the robot 100.
  • the processor 130 may be connected to each component of the robot 100 to control the overall operation of the robot 100.
  • the processor 130 may be connected to the memory 110 and the distance sensor 120 to control the operation of the robot 100 .
  • the processor 130 includes a digital signal processor (DSP), a microprocessor, a central processing unit (CPU), a micro controller unit (MCU), and a micro processing unit (MPU). unit), NPU (Neural Processing Unit), controller, application processor (application processor (AP)), etc., but described as processor 130 in this specification.
  • DSP digital signal processor
  • CPU central processing unit
  • MCU micro controller unit
  • MPU micro processing unit
  • NPU Neuro Processing Unit
  • controller application processor
  • AP application processor
  • the processor 130 may be implemented as a system on chip (SoC), large scale integration (LSI), or may be implemented as a field programmable gate array (FPGA). Also, the processor 130 may include volatile memory such as SRAM.
  • SoC system on chip
  • LSI large scale integration
  • FPGA field programmable gate array
  • SRAM static random access memory
  • the processor 130 may obtain new map data (second map data) based on distance data acquired by the distance sensor 120 while the robot 100 travels in a specific space.
  • the second map data may include all or part of the information on the first area corresponding to the first map data, but may not include information on the first area according to the driving route of the robot 100. there is.
  • the second map data may be data obtained by adding information about the second area to the first map data.
  • the first area and the second area may be areas including a sub area corresponding to the free area included in the space.
  • the second area is an area in which the robot 100 can drive and is to be occupied by the user at all times. It can include areas that can be accessed (e.g., a room, a living room, etc.).
  • the processor 130 may compare the first map data and the second map data stored in the memory 110 . As a result of comparison between the first map data and the second map data, the processor 130 determines that there is no error in the second map data, and the second map data relates to the second area other than the first area corresponding to the first map data. If the information is identified as being included, the first map data may be updated based on the second map data.
  • 'update' may refer to an operation of adding information about a second area other than the first area corresponding to the first map data among information included in the second map data to the first map data.
  • the update may mean an operation of replacing the first map data with the second map data.
  • the processor 130 may update the first map data based on the second map data when it is identified that the second region is a region in which a plurality of sub-regions are clustered and the size of the second region is greater than or equal to a threshold size.
  • the clustered area may refer to a region formed by gathering sub-regions corresponding to the second region included in the second map data in a certain shape.
  • the clustered area may be a rectangular area, but is not limited thereto.
  • the memory 110 may store a neural network model in order for the robot 100 to determine whether the second area is a clustered area.
  • the processor 130 may output information about at least one clustered region by inputting the second map data to the neural network model.
  • the processor 130 determines that the second area has a certain shape even if the second map data includes information about the second area that is not included in the first map data, and that the second area has a certain area or more. In this case, it may be determined that there is a substantial expansion of the space, and the first map data may be updated based on the second map data.
  • the memory 110 may store information about the driving history of the robot 100 .
  • the processor 130 may update the first map data based on the second map data when it is identified that the robot 100 has a history of driving in the second area based on the driving history information of the robot 100. there is.
  • the processor 130 identifies a first location corresponding to the current location of the robot 100 based on the first map data, and a second location corresponding to the current location of the robot 100 based on the second map data.
  • the location is identified and the distance between the first location and the second location is less than the critical distance, it may be identified that there is no error in the second map data.
  • the processor 130 may identify that an error exists in the second map data.
  • the processor 130 compares the first line information included in the first map data and the second line information included in the second map data, and identifies whether an error exists in the second map data based on the comparison result. can do.
  • the line information may be, but is not limited to, information obtained based on information about the wall area included in the map data, and details thereof will be described in detail with reference to FIG. 6 to be described later.
  • the processor 130 may obtain first histogram information based on angle information of lines included in the first map data, and obtain second histogram information based on angle information of lines included in the second map data.
  • the processor 130 identifies that there is no error in the second map data, and the similarity between the first histogram information and the second histogram information is greater than or equal to the threshold value. , it can be identified that an error exists in the second map data. Details regarding this will also be described in detail with reference to FIG. 6 to be described later.
  • the processor 130 may update the first map data based on the second map data when it is identified that the boundary between the first and second areas is greater than or equal to a threshold length based on the first map data and the second map data. there is.
  • the robot 100 may further include a display, and the processor 130 may control the display to display a UI inquiring whether to update the first map data based on the second map data. Also, when a user command requesting an update of the first map data is received, the processor 130 may update the first map data based on the second map data.
  • the robot 100 may further include a communication interface, and the processor 130 may control the communication interface to transmit updated first map data to an external server.
  • FIG. 3 is a diagram for explaining an operation of determining whether a space is expanded by a robot according to an embodiment of the present disclosure.
  • the robot 100 may store first map data corresponding to the first area 310 of a specific space.
  • the robot 100 may acquire second map data including information on second regions 321 , 322 , and 323 additionally identified while driving in a specific space.
  • the robot 100 may identify whether information about the second area is included in the second map data.
  • the robot 100 determines at least one of whether the second area is an area in which a plurality of sub-areas are clustered, whether the size of the second area is greater than or equal to a critical size, and whether the boundary line between the first and second areas is greater than or equal to a critical length. Based on this, it is possible to determine whether to update map data.
  • the expanded space 320 may include three independent second regions 321 , 322 , and 323 .
  • the robot 100 updates the first map data based on the second map data when it is identified that at least one second area is an area in which a plurality of sub areas are clustered and the size of the second area is greater than or equal to a threshold size. can do.
  • the robot 100 may identify a region in which sub-regions (grids) having preset standards are clustered.
  • the clustered area may include a regular area such as a rectangular shape
  • the robot 100 identifies the irregular area 321 as a non-clustered area, and classifies the other standard areas 322 and 323 as clustered areas. area can be identified.
  • the robot 100 may identify an area larger than a critical size among the clustered areas. For example, the robot identifies an area 323 including 10 or more sub-regions (grids) as an area with a critical size or more, and identifies an area 322 including less than 10 sub-regions (grids) as an area with a smaller size than the critical size. can be identified.
  • the robot 100 determines that the atypical area or the area below the threshold size is noise rather than the area identified as the space is substantially expanded, and only the area 323 that is the regular area and is equal to or greater than the threshold size is the existing first area. It may be identified as an additionally identified area compared to (310), and the first map data may be updated based on information on the corresponding area (323).
  • the robot 100 determines that an area where the boundary line with the first area 310 is less than a critical length, such as the irregular area 321, is noise, not an area identified as the space expands, and the corresponding area ( 321) may not be reflected in the first map data update process.
  • a critical length such as the irregular area 321
  • FIG. 4 is a diagram for explaining an operation of determining whether to expand a space based on driving history information of a robot according to an embodiment of the present disclosure.
  • the robot 100 may store driving history information of the robot 100 .
  • the driving history information may include information about a path 410 that the robot 100 traveled in space in the process of providing a service in the past.
  • the robot 100 may update the first map data based on driving history information of the robot 100 .
  • the robot 100 is an area in which a plurality of sub-areas are clustered among the additionally identified areas 421, 422, 423, and 424 while the robot 100 is driving.
  • regions 423 and 424 of a critical size or larger may be identified.
  • the robot 100 is identified based on the past driving path 410 of the robot 100 included in the driving history information, in the region 424 where the robot 100 has traveled history among the regions 423 and 424 identified. may be identified, and the first map data may be updated based on information about the corresponding area 424 .
  • the area 423 in which the robot 100 has no driving history is an area additionally identified according to the expansion of the space, the robot 100 does not directly relate to the service provision of the robot 100 (e.g., a bathroom). , veranda), and information about the corresponding area 423 may not be reflected in the first map data update process.
  • FIG. 5 is a diagram for explaining map update determination after location re-recognition according to an embodiment of the present disclosure.
  • the robot 100 may start from the previous position 501 and travel in the first area 500 . Also, the processor 130 may identify the current location of the robot 100 within the first area 500 . Specifically, the processor 130 may identify the current location of the robot 100 through two methods.
  • the processor 130 may identify a first location 502 corresponding to the current location of the robot 100 based on the speed data and first map data of the robot 100 per unit time. For example, while the robot 100 travels from the previous position 501 for 3 seconds, the processor 130 determines the speed data of the robot 100 corresponding to the unit time (1 second) and the first map data. One location 502 can be identified.
  • the processor 130 may identify a second location 503 corresponding to the current location of the robot 100 based on the second map data. According to FIG. 5 , the processor 130 transmits information about the second area 510 based on distance data obtained by the distance sensor 120 after the robot 100 travels from the previous position 501 for 3 seconds. Second map data including may be obtained. Also, the processor 130 may identify a second location 503 corresponding to the current location of the robot on the second map data.
  • the second map data obtained based on the corresponding position may include information about an area in which an area included in the first map data has moved in parallel in a specific direction. Therefore, the processor 130 identifies the distance d between the first location 502 and the second location 503, and if the identified distance d is less than the threshold distance, there is no error in the second map data. and the first map data may be updated based on the information about the second area 510 included in the second map data.
  • the robot 100 creates a second area 510 newly identified on the second map data. Even if there is an error, it may be determined that there is an error in the second map data and the first map data may not be updated.
  • FIG. 6 is a diagram for explaining whether to update a map based on line information according to an embodiment of the present disclosure.
  • the processor 130 may compare first map data 610 stored in the memory 110 with second map data 620 obtained based on distance data obtained by the distance sensor 120. there is. Specifically, the processor 130 compares the first line information included in the first map data 610 and the second line information included in the second map data 620, and based on the comparison result, the second map data 620 may identify whether an error exists.
  • the processor 130 obtains first histogram information 611 based on angle information of lines included in the first map data 610, and angles of lines included in the second map data 620. Second histogram information 621 may be obtained based on the information. In addition, if the similarity between the first histogram information 611 and the second histogram information 621 is less than a threshold value, the processor 130 identifies that there is no error in the second map data 620, and identifies the second map data 620 as having no error. Based on step 620, the first map data 610 may be updated.
  • the second histogram information 621 may include information 631 and 632 about the second area 630 newly identified in the second map data 620 .
  • the second area 630 identified as a distorted area has an angle of 90 degrees or 180 degrees, unlike the lines included in the first area. Based on , lines corresponding to angle information 631 and 632 other than angle information within the threshold range may be included.
  • the second histogram information 621 may include angle information 631 and 632 within a critical range based on 90 degrees or 180 degrees, unlike the first histogram information 611 .
  • the processor 130 according to an example identifies that an error exists in the second map data 620 when the number of lines corresponding to the corresponding information 631 and 632 (or the ratio of the corresponding lines) is greater than or equal to a threshold value, The first map data 610 may not be updated.
  • the robot 100 maps the first map based on the second map data 620 only when the second area 630 newly identified in the second map data 620 is accurately identified without distortion.
  • Data 610 can be updated.
  • FIG. 7 is a diagram for explaining a UI display operation of a robot according to an embodiment of the present disclosure.
  • the robot 100 may further include a display 140 .
  • the processor 130 displays the display 140 to display the UI 710 related to the second map data including the second area and the UI 720 inquiring whether to update the first map data based on the second map data. ) can be controlled.
  • the robot 100 may not clearly identify whether at least one of whether an error exists in the second map data or whether a substantial space is expanded based on the second region included in the second map data is not clearly identified.
  • UIs 710 and 720 requesting a user command on whether or not to update may be provided.
  • the robot 100 may further include a user interface (not shown) capable of receiving a user's input, and the user interface according to an example may include a touch sensor coupled to the display 140, but is limited thereto. it is not going to be
  • the user may select one of 'yes 701' or 'no 702' through the user interface, and the processor 130 may identify whether there is an update request from the user based on the item selected by the user. there is.
  • the processor 130 may identify that a user command regarding an update request has been received and update the first map data based on the second map data.
  • the processor 130 identifies that the user has selected 'No' (702) or that the user has not made any selection within the threshold time, the processor 130 identifies that the user command for the update request has not been received and The first map data may not be updated.
  • FIG. 8 is a diagram for specifically explaining the functional configuration of a robot according to an embodiment of the present disclosure.
  • the robot 100 may include a memory 110, a distance sensor 120, a processor 130, a display 140, a communication interface 150, a user interface 160, and a driving unit 170.
  • a memory 110 may include a volatile and non-volatile memory 110, a non-volatile memory 110, a flash memory 110, a flash memory 110, a volatile and non-volatile memory 110, a volatile and non-volatile memory 110, a distance sensor 120, a processor 130, a display 140, a communication interface 150, a user interface 160, and a driving unit 170.
  • FIG. 8 the robot 100 may include a memory 110, a distance sensor 120, a processor 130, a display 140, a communication interface 150, a user interface 160, and a driving unit 170.
  • the display 140 may be implemented with various types of displays such as a liquid crystal display (LCD), organic light emitting diodes (OLED) display, quantum dot light-emitting diodes (QLED) display, and plasma display panel (PDP).
  • the display 140 may also include a driving circuit, a backlight unit, and the like, which may be implemented in the form of a TFT, a low temperature poly silicon (LTPS) TFT, or an organic TFT (OTFT). Meanwhile, the display 140 may be implemented as a flexible display, a 3D display, or the like.
  • the communication interface 150 may input and output various types of data.
  • the communication interface 150 is AP-based Wi-Fi (Wi-Fi, Wireless LAN network), Bluetooth (Bluetooth), Zigbee (Zigbee), wired / wireless LAN (Local Area Network), WAN (Wide Area Network), Ethernet, IEEE 1394, HDMI (High-Definition Multimedia Interface), USB (Universal Serial Bus), MHL (Mobile High-Definition Link), AES/EBU (Audio Engineering Society/ European Broadcasting Union), Optical External device (eg, source device), external storage medium (eg, USB memory), external server (eg, web hard) and various types of data through communication methods such as , Coaxial, etc. can transmit and receive.
  • Wi-Fi Wi-Fi, Wireless LAN network
  • Bluetooth Bluetooth
  • Zigbee Zigbee
  • wired / wireless LAN Local Area Network
  • WAN Wide Area Network
  • Ethernet IEEE 1394
  • HDMI High-Definition Multimedia Interface
  • USB Universal Serial Bus
  • the processor 130 may control the communication interface 150 to transmit updated first map data to an external server.
  • the user interface 160 is a component involved in the robot 100 performing an interaction with a user.
  • the user interface 160 may include at least one of a touch sensor, a motion sensor, a button, a jog dial, a switch, a microphone, or a speaker, but is not limited thereto.
  • the driving unit 170 is a device capable of driving the robot 100.
  • the driving unit 170 may adjust the driving direction and driving speed under the control of the processor 130, and the driving unit 170 according to an example may be a power generating device that generates power for the robot 100 to travel (eg: Gasoline engine, diesel engine, LPG (liquefied gas petroleum) engine, electric motor, etc., depending on fuel (or energy source) used steering (hydraulics steering, electronic control power steering (EPS), etc.), driving devices (eg, wheels, propellers, etc.) for driving the robot 100 according to power may be included.
  • the driving unit 170 may be modified according to the driving type (eg, wheel type, walking type, flying type, etc.) of the robot 100 .
  • FIG. 9 is a flowchart illustrating a process of updating a map based on a user's update request according to an embodiment of the present disclosure.
  • the robot 100 may re-recognize the location of the robot 100 based on the first map data stored in the memory 110 and start driving. According to an example, in the process of driving, the robot 100 obtains second map data based on the distance data obtained through the distance sensor 120 through a SLAM (Simultaneous Localization and Mapping) method, and obtains the second map data It can be determined whether there is an error in (S910).
  • SLAM Simultaneous Localization and Mapping
  • the robot 100 may determine that the first map data is not updated and delete the obtained second map data.
  • the robot 100 travels based on the information about the second area included in the second map data. It can be identified whether or not it has been substantially expanded.
  • the robot 100 stores second map data when it is identified that the second region is a region in which a plurality of sub-regions are clustered and the size of the second region is greater than or equal to the critical size (S920: Y), and the second map data is stored.
  • the first map data may be updated based on the data.
  • the robot 100 updates the first map data. It is possible to identify whether or not a user's confirmation is required regarding whether or not to do so (S930).
  • the robot 100 may determine that the first map data is not updated and delete the acquired second map data. .
  • the robot 100 may display a UI asking the user whether to update the first map data (S940). Also, the robot 100 may identify whether a user command requesting an update of the first map data has been received (S950).
  • the robot 100 may store the second map data and update the first map data based on the second map data.
  • the robot 100 may determine that the first map data is not updated and may delete the obtained second map data.
  • the above-described operation of the robot 100 may occur repeatedly at regular intervals or whenever a specific event occurs.
  • FIG. 10 is a flowchart for explaining a control method according to an embodiment of the present disclosure.
  • first map data and second map data are compared (S1010).
  • the first map data may be updated based on the second map data.
  • the first map data may be updated based on the second map data.
  • the comparing step (S1010) includes identifying a first location corresponding to the current location of the robot based on the first map data, and identifying a second location corresponding to the current location of the robot based on the second map data. identifying that there is no error in the second map data if the distance between the first location and the second location is less than the threshold distance, and if the distance between the first location and the second location is greater than or equal to the threshold distance, the second map data It may include identifying that an error exists in .
  • the first line information included in the first map data and the second line information included in the second map data are compared, and whether an error exists in the second map data based on the comparison result. can identify.
  • the comparing step (S1010) includes obtaining a first histogram follow-up based on angle information of lines included in the first map data, and second histogram information based on angle information of lines included in the second map data. Obtaining, if the similarity between the first histogram information and the second histogram information is less than the threshold value, identifying that there is no error in the second map data, and the similarity between the first histogram information and the second histogram information equal to the threshold value If it is abnormal, it may include identifying that an error exists in the second map data.
  • the first map data is updated based on the second map data. can do.
  • control method may include displaying a UI for inquiring whether to update the first map data based on the second map data, and if a user command requesting an update of the first map data is received, based on the second map data
  • the method may further include updating the first map data.
  • control method may further include transmitting the updated first map data to an external server.
  • various embodiments of the present disclosure described above may be performed through an embedded server included in a robot or at least one external server.
  • embodiments described above may be implemented in a recording medium readable by a computer or a similar device using software, hardware, or a combination thereof.
  • the embodiments described herein may be implemented by the processor 130 itself.
  • embodiments such as procedures and functions described in this specification may be implemented as separate software modules. Each of the software modules may perform one or more functions and operations described herein.
  • computer instructions for performing the processing operation of the robot 100 according to various embodiments of the present disclosure described above may be stored in a non-transitory computer-readable medium.
  • the computer instructions stored in such a non-transitory computer readable medium are executed by a processor of a specific device, the processing operation in the robot 100 according to various embodiments described above is performed by the specific device.
  • a non-transitory computer readable medium is a medium that stores data semi-permanently and is readable by a device, not a medium that stores data for a short moment, such as a register, cache, or memory.
  • Specific examples of the non-transitory computer readable media may include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

Landscapes

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

Abstract

로봇이 개시된다. 로봇은 특정 공간의 제1 영역에 대응되는 제1 맵 데이터가 저장된 메모리, 거리 센서 및 프로세서를 포함한다. 프로세서는 로봇이 특정 공간을 주행하는 동안 제2 맵 데이터가 획득되면 제1 맵 데이터 및 제2 맵 데이터를 비교하고, 비교 결과 제2 맵 데이터에 에러가 존재하지 않고 제2 맵 데이터에 제1 영역 이외의 제2 영역에 관한 정보가 포함된 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.

Description

로봇 및 그 제어 방법
본 발명은 맵 데이터를 관리하는 로봇 및 그 제어 방법에 관한 것이다.
최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 실내 공간을 청소하는 로봇은 실내 공간을 주행하며 공간에 대응되는 맵 데이터를 지속적으로 업데이트할 수 있다.
이 경우 로봇은 주행 과정에서 로봇의 위치 인식 동작 및 공간의 맵 데이터 획득 동작을 동시에 수행할 수 있다. 그러나, 종래의 로봇은 로봇의 위치가 정확하게 인식되지 않거나 맵 데이터 획득에 필요한 센서 데이터에 에러가 있는 경우에 정확하지 않은 맵 데이터를 획득하는 문제점이 있었다.
이에 따라 실내 공간을 주행하는 로봇이 새로운 영역에 대응되는 맵 데이터를 획득하는 경우 해당 맵 데이터가 정확한 맵 데이터인지 여부를 식별하여 맵 업데이트 여부를 결정하는 로봇에 대한 지속적인 요구가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 저장된 맵 데이터 및 새로 획득된 맵 데이터 간의 비교 결과에 기초하여 저장된 맵 데이터의 업데이트 여부를 결정하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 특정 공간의 제1 영역에 대응되는 제1 맵 데이터가 저장된 메모리, 거리 센서 및 상기 로봇이 상기 특정 공간을 주행하는 동안 상기 거리 센서가 획득한 거리 데이터에 기초하여 제2 맵 데이터가 획득되면, 상기 제1 맵 데이터 및 상기 제2 맵 데이터를 비교하고, 비교 결과 상기 제2 맵 데이터에 에러가 존재하지 않고 상기 제2 맵 데이터에 상기 제1 영역 이외의 제2 영역에 관한 정보가 포함된 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 프로세서를 포함할 수 있다.
여기서, 상기 프로세서는, 상기 제2 영역이 복수의 서브 영역이 군집화된 영역이고 상기 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
여기서, 상기 메모리는, 상기 로봇의 주행 이력 정보를 저장하며, 상기 프로세서는, 상기 로봇의 주행 이력 정보에 기초하여 상기 로봇이 상기 제2 영역을 주행한 이력이 있는 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
한편, 상기 제1 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제1 위치를 식별하고, 상기 제2 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제2 위치를 식별하고, 상기 제1 위치 및 상기 제2 위치 간 거리가 임계 거리 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고, 상기 제1 위치 및 상기 제2 위치 간 거리가 상기 임계 거리 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별할 수 있다.
또한, 상기 프로세서는, 상기 제1 맵 데이터에 포함된 제1 라인 정보 및 상기 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 상기 제2 맵 데이터에 에러가 존재하는지 여부를 식별할 수 있다.
여기서, 상기 프로세서는, 상기 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보를 획득하고, 상기 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득하고, 상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 임계값 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고, 상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 상기 임계값 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별할 수 있다.
한편, 상기 프로세서는, 상기 제1 맵 데이터 및 상기 제2 맵 데이터에 기초하여 상기 제1 영역 및 상기 제2 영역의 경계선이 임계 길이 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
또한, 디스플레이를 더 포함하며, 상기 프로세서는, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시하도록 상기 디스플레이를 제어하고, 상기 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
또한, 통신 인터페이스를 더 포함하며, 상기 프로세서는, 상기 업데이트된 제1 맵 데이터를 외부 서버로 전송하도록 상기 통신 인터페이스를 제어할 수 있다.
한편, 본 발명의 일 실시 예에 따른 특정 공간의 제1 영역에 대응되는 제1 맵 데이터가 저장된 로봇의 제어 방법은, 상기 로봇이 상기 특정 공간을 주행하는 동안 제2 맵 데이터가 획득되면 상기 제1 맵 데이터 및 상기 제2 맵 데이터를 비교하는 단계 및 비교 결과 상기 제2 맵 데이터에 에러가 존재하지 않고 상기 제2 맵 데이터에 상기 제1 영역 외의 제2 영역에 관한 정보가 포함된 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 단계를 포함할 수 있다.
여기서, 상기 업데이트하는 단계는, 상기 제2 영역이 복수의 서브 영역이 군집화된 영역이고 상기 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
여기서, 상기 업데이트하는 단계는, 상기 로봇의 주행 이력 정보에 기초하여 상기 로봇이 상기 제2 영역을 주행한 이력이 있는 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
한편, 상기 비교하는 단계는, 상기 제1 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제1 위치를 식별하는 단계, 상기 제2 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제2 위치를 식별하는 단계, 상기 제1 위치 및 상기 제2 위치 간 거리가 임계 거리 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계 및 상기 제1 위치 및 상기 제2 위치 간 거리가 상기 임계 거리 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계를 포함할 수 있다.
또한, 상기 비교하는 단계는, 상기 제1 맵 데이터에 포함된 제1 라인 정보 및 상기 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 상기 제2 맵 데이터에 에러가 존재하는지 여부를 식별할 수 있다.
여기서, 상기 비교하는 단계는, 상기 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보를 획득하는 단계, 상기 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득하는 단계, 상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 임계값 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계 및 상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 상기 임계값 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계를 포함할 수 있다.
한편, 상기 업데이트하는 단계는, 상기 제1 맵 데이터 및 상기 제2 맵 데이터에 기초하여 상기 제1 영역 및 상기 제2 영역의 경계선이 임계 길이 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할 수 있다.
또한, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시하는 단계 및 상기 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 단계를 더 포함할 수 있다.
또한, 상기 업데이트된 제1 맵 데이터를 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독가능 기록매체는, 상기 로봇이 상기 특정 공간을 주행하는 동안 제2 맵 데이터가 획득되면 상기 제1 맵 데이터 및 상기 제2 맵 데이터를 비교하는 단계 및 비교 결과 상기 제2 맵 데이터에 에러가 존재하지 않고 상기 제2 맵 데이터에 상기 제1 영역 외의 제2 영역에 관한 정보가 포함된 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 단계를 포함할 수 있다.
본 개시의 다양한 실시 예에 따르면, 로봇이 신뢰도 높은 맵 데이터를 획득할 수 있으므로, 맵 데이터에 기초하여 제공되는 서비스의 품질이 제고될 수 있으므로 사용자의 편의가 향상될 수 있다.
도 1은 실내 공간을 주행하는 로봇에 대해 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 로봇의 공간 확장 여부 판단 동작을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 로봇의 주행 이력 정보에 기초한 공간 확장 여부 판단 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 위치 재인식 이후의 맵 업데이트 여부 결정에 관해 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 라인 정보에 기초한 맵 업데이트 여부 결정에 관해 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 UI 표시 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른 사용자의 업데이트 요청에 기초한 맵 업데이트 과정을 설명하기 위한 흐름도이다.
도 10은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 '사용자' 는 로봇에게 경로 안내 서비스를 제공받는 사람을 의미할 수 있다.
도 1은 실내 공간을 주행하는 로봇에 대해 설명하기 위한 도면이다.
도 1에 따르면, 봄 개시의 일 실시 예에 따른 로봇(100)은 특정 공간(10)을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 공간(10)을 청소하는 서비스를 제공할 수 있으나 이네 한정되는 것은 아니다. 로봇(100)은 공간(10)을 주행하기 위해 공간(10)에 대응되는 맵 데이터를 기 저장하고 있을 수 있으며, 맵 데이터는 공간(10)을 구성하는 벽면 영역(occupied), 자유 영역(free space) 또는 미식별 영역(unknown) 중 적어도 하나에 관한 정보를 포함할 수 있다. 여기서, 미식별 영역은 벽면 영역과 자유 영역을 제외한 나머지 영역을 의미할 수 있으나 이에 한정되는 것은 아니다.
여기서, 맵 데이터는 복수의 서브 영역에 관한 정보를 포함할 수 있으며, 서브 영역은 격자 단위로 나뉘어진 영역일 수 있으나 이에 한정되는 것은 아니다. 서브 영역이 격자 단위로 나뉘어진 영역일 경우, 맵 데이터는 벽면 영역, 자유 영역 또는 미식별 영역 중 하나의 영역에 대응되는 복수의 격자에 관한 정보를 포함할 수 있다.
또한, 공간(10)은 복수의 벽면 영역을 경계로 하는 독립된 영역(11)을 포함할 수 있다. 이 경우 해당 영역(11)에 대응되는 적어도 하나의 벽면 영역에는 해당 영역(11)의 출입문이 포함되어 있을 수 있다. 해당 영역(11)의 출입문이 모두 폐쇄 상태에 있는 경우, 로봇(100)에 저장된 맵 데이터는 해당 영역(11)에 관한 정보가 포함되어 있지 않을 수 있다.
그러나, 해당 영역(11)의 출입문이 개방 상태로 변경되는 경우 로봇(100)은 해당 영역(11)에 대응되는 맵 데이터를 획득할 수 있다. 이 경우 로봇(100)은 획득된 맵 데이터에 기초하여 기존에 저장된 맵 데이터를 업데이트할 수 있다. 이하에서는, 저장된 맵 데이터 및 새로 획득된 맵 데이터 간의 비교 결과에 기초하여 저장된 맵 데이터의 업데이트 여부를 결정하는 다양한 실시 예에 대해 좀더 구체적으로 설명하도록 한다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2에 따르면 로봇(100)은 메모리(110), 거리 센서(120) 및 프로세서(130)를 포함할 수 있다.
메모리(110)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(110)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
또한 일 예에 따른 메모리(110)는 로봇(100)이 주행하는 공간의 일부 영역(제1 영역)에 대응되는 제1 맵 데이터를 저장할 수 있다.
거리 센서(120)는 거리 데이터를 획득할 수 있다. 구체적으로, 거리 센서(120)는 로봇(100)의 위치와 오브젝트의 위치 사이의 거리를 측정하고, 측정 결과에 기초하여 거리 데이터를 획득할 수 있다. 일 예에 따른 거리 센서(120)는 라이다(LIDAR, Light Detection And Ranging) 또는 TOF(Time of flight) 센서로 구현될 수 있으나, 이에 한정되는 것은 아니다.
프로세서(130)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(130)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(130)는 메모리(110) 및 거리 센서(120)와 연결되어 로봇(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(130)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), NPU(Neural Processing Unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)) 등 다양한 이름으로 명명될 수 있으나, 본 명세서에서는 프로세서(130)로 기재한다.
프로세서(130)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(130)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.
프로세서(130)는 로봇(100)이 특정 공간을 주행하는 동안 거리 센서(120)가 획득한 거리 데이터에 기초하여 새로운 맵 데이터(제2 맵 데이터)를 획득할 수 있다. 여기서, 제2 맵 데이터는 제1 맵 데이터에 대응되는 제1 영역에 관한 정보의 전부 또는 일부를 포함할 수도 있으나, 로봇(100)의 주행 경로에 따라 제1 영역에 관한 정보를 포함하지 않을 수도 있다. 일 예에 따라서는, 제2 맵 데이터는 제1 맵 데이터에 제2 영역에 관한 정보를 추가한 형태의 데이터일 수도 있다.
여기서, 제1 영역 및 제2 영역은 공간에 포함된 자유 영역에 대응되는 서브 영역을 포함하는 영역일 수 있으며, 특히 제2 영역은 로봇(100)이 주행 가능한 영역 중에 사용자의 상시적으로 점유할 수 있는 영역(예: 방, 거실 등)을 포함할 수 있다.
또한, 프로세서(130)는 제2 맵 데이터가 획득되면 메모리(110)에 저장된 제1 맵 데이터 및 제2 맵 데이터를 비교할 수 있다. 프로세서(130)는 제1 맵 데이터 및 제2 맵 데이터 간의 비교 결과 제2 맵 데이터에 에러가 존재하지 않고, 제2 맵 데이터에 제1 맵 데이터에 대응되는 제1 영역 이외의 제2 영역에 관한 정보가 포함된 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
여기서, '업데이트'란 제2 맵 데이터에 포함된 정보 중 제1 맵 데이터에 대응되는 제1 영역 외의 제2 영역에 관한 정보를 제1 맵 데이터에 추가하는 동작을 의미할 수 있다. 그러나, 제2 맵 데이터가 제1 맵 데이터를 포함하는 경우에는 업데이트가 제2 맵 데이터로 제1 맵 데이터를 대체하는 동작을 의미할 수도 있다.
또한, 프로세서(130)는 제2 영역이 복수의 서브 영역이 군집화된 영역이고, 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다. 여기서, 군집화된 영역이란 제2 맵 데이터에 포함된 제2 영역에 대응되는 서브 영역이 일정한 형태로 모여서 형성된 영역을 의미할 수 있다. 예를 들어 군집화된 영역은 직사각형 형태를 갖는 영역일 수 있으나, 이에 한정되는 것은 아니다.
일 예에 따르면, 로봇(100)이 제2 영역이 군집화된 영역인지 여부를 판단하기 위해 메모리(110)는 신경망 모델을 저장할 수 있다. 이 경우 프로세서(130)는 신경망 모델에 제2 맵 데이터를 입력하여 적어도 하나의 군집화된 영역에 관한 정보를 출력할 수 있다.
즉, 프로세서(130)는 제2 맵 데이터에 제1 맵 데이터에 포함되지 않은 제2 영역에 관한 정보가 포함되어 있더라도 제2 영역이 일정한 형태이며, 또한 제2 영역이 일정 면적 이상을 갖는 영역인 경우에만 실질적인 공간의 확장이 있다고 판단하고 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 메모리(110)는 로봇(100)의 주행 이력에 관한 정보를 저장할 수 있다. 이 경우 프로세서(130)는 로봇(100)의 주행 이력 정보에 기초하여 로봇(100)이 제2 영역을 주행한 이력이 있는 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 프로세서(130)는 제1 맵 데이터에 기초하여 로봇(100)의 현재 위치에 대응되는 제1 위치를 식별하고, 제2 맵 데이터에 기초하여 로봇(100)의 현재 위치에 대응되는 제2 위치를 식별하여 제1 위치 및 제2 위치 간 거리가 임계 거리 미만인 경우 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별할 수 있다. 반면, 제1 위치 및 제2 위치 간 거리가 임계 거리 이상인 경우 프로세서(130)는 제2 맵 데이터에 에러가 존재하는 것으로 식별할 수 있다.
또한, 프로세서(130)는 제1 맵 데이터에 포함된 제1 라인 정보 및 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 제2 맵 데이터에 에러가 존재하는지 여부를 식별할 수 있다. 여기서, 라인 정보는 맵 데이터에 포함된 벽면 영역에 관한 정보에 기초하여 획득된 정보일 수 있으나 이에 한정되는 것은 아니며, 이에 관한 상세한 내용은 후술할 도 6에 관련하여 구체적으로 설명하도록 한다.
또한, 프로세서(130)는 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보를 획득하고, 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득할 수 있다.
프로세서(130)는 제1 히스토그램 정보 및 제2 히스토그램 정보 간 유사도가 임계값 미만이면 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고, 제1 히스토그램 정보 및 제2 히스토그램 정보 간 유사도가 임계값 이상이면 제2 맵 데이터에 에러가 존재하는 것으로 식별할 수 있다. 이에 관한 상세한 내용 역시 후술할 도 6에 관련하여 구체적으로 설명하도록 한다.
또한, 프로세서(130)는 제1 맵 데이터 및 제2 맵 데이터에 기초하여 제1 영역 및 제2 영역의 경계선이 임계 길이 이상인 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 로봇(100)은 디스플레이를 더 포함할 수 있으며, 프로세서(130)는 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시하도록 디스플레이를 제어할 수 있다. 또한, 프로세서(130)는 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 로봇(100)은 통신 인터페이스를 더 포함할 수 있으며, 프로세서(130)는 업데이트 된 제1 맵 데이터를 외부 서버로 전송하도록 통신 인터페이스를 제어할 수 있다.
도 3은 본 개시의 일 실시 예에 따른 로봇의 공간 확장 여부 판단 동작을 설명하기 위한 도면이다.
도 3에 따르면 로봇(100)은 특정 공간의 제1 영역(310)에 대응되는 제1 맵 데이터를 저장할 수 있다. 또한, 로봇(100)은 특정 공간을 주행하는 동안 추가적으로 식별되는 제2 영역(321, 322, 323)에 대한 정보를 포함하는 제2 맵 데이터를 획득할 수 있다. 로봇(100)은 제2 맵 데이터에 에러가 존재하지 않는 경우 제2 맵 데이터에 제2 영역에 관한 정보가 포함되었는지 여부를 식별할 수 있다.
로봇(100)은 제2 영역이 복수의 서브 영역이 군집화된 영역인지 여부, 제2 영역의 크기가 임계 크기 이상인지 여부 또는 제1 영역 및 제2 영역의 경계선이 임계 길이 이상인지 여부 중 적어도 하나에 기초하여 맵 데이터 업데이트 여부를 결정할 수 있다.
도 3에 따르면, 확장된 공간(320)에는 독립된 세 개의 제2 영역(321, 322, 323)이 포함되어 있을 수 있다. 일 예에 따른 로봇(100)은 적어도 하나의 제2 영역이 복수의 서브 영역이 군집화된 영역이고 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
우선, 로봇(100)은 기 설정된 규격을 갖는 서브 영역(grid)이 군집화된 영역을 식별할 수 있다. 예를 들어 군집화된 영역은 직사각형 형태와 같은 정형 영역을 포함할 수 있으며, 로봇(100)은 비정형 영역(321)을 군집화되지 않은 영역으로 식별하고, 그 외의 정형 영역(322, 323)을 군집화된 영역으로 식별할 수 있다.
또한, 로봇(100)은 군집화된 영역 중 임계 크기 이상인 영역을 식별할 수 있다. 예를 들어 로봇은 서브 영역(grid)이 10개 이상 포함된 영역(323)을 임계 크기 이상인 영역으로 식별하고, 서브 영역(grid)가 10개 미만 포함된 영역(322)은 임계 크기 미만인 영역으로 식별할 수 있다.
따라서, 로봇(100)은 비정형 영역 또는 임계 크기 미만인 영역은 실질적으로 공간이 확장됨에 따라 식별된 영역이 아닌 노이즈(Noise)라고 판단하고, 정형 영역이면서 임계 크기 이상인 영역(323)만을 기존 제1 영역(310)에 비해 추가적으로 식별된 영역인 것으로 식별하고, 해당 영역(323)에 관한 정보에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
한편, 로봇(100)은 비정형 영역(321)과 같이 제1 영역(310)과의 경계선이 임계 길이 미만인 영역은 공간이 확장됨에 따라 식별된 영역이 아닌 노이즈(Noise)라고 판단하고, 해당 영역(321)에 관한 정보는 제1 맵 데이터 업데이트 과정에서 반영하지 않을 수 있다.
도 4는 본 개시의 일 실시 예에 따른 로봇의 주행 이력 정보에 기초한 공간 확장 여부 판단 동작을 설명하기 위한 도면이다.
로봇(100)은 로봇(100)의 주행 이력 정보를 저장할 수 있다. 여기서, 주행 이력 정보는 과거 로봇(100)이 서비스를 제공하는 과정에서 공간을 주행한 경로(410)에 관한 정보를 포함할 수 있다.
로봇(100)은 로봇(100)의 주행 이력 정보에 기초하여 제1 맵 데이터를 업데이트할 수 있다. 구체적으로, 로봇(100)은 제1 맵 데이터에 포함된 제1 영역 이외에 로봇(100)이 주행하면서 추가적으로 식별된 영역(421, 422, 423, 424) 중에서 복수의 서브 영역이 군집화된 영역임과 동시에 임계 크기 이상의 영역(423, 424)을 식별할 수 있다. 또한, 로봇(100)은 주행 이력 정보에 포함된 로봇(100)의 과거 주행 경로(410)에 기초하여 식별된 영역(423, 424) 중 로봇(100)이 주행한 이력이 있는 영역(424)을 식별하고, 해당 영역(424)에 관한 정보에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
즉, 로봇(100)은 로봇(100)이 주행한 이력이 없는 영역(423)은 공간의 확장에 따라 추가적으로 식별된 영역임에도 로봇(100)의 서비스 제공과 직접적으로 관련이 없는 영역(예: 화장실, 베란다)으로 식별하고, 해당 영역(423)에 관한 정보는 제1 맵 데이터 업데이트 과정에서 반영하지 않을 수 있다.
도 5는 본 개시의 일 실시 예에 따른 위치 재인식 이후의 맵 업데이트 여부 결정에 관해 설명하기 위한 도면이다.
도 5에 따르면, 로봇(100)은 이전 위치(501)로부터 출발하여 제1 영역(500)을 주행할 수 있다. 또한, 프로세서(130)은 제1 영역(500) 내에서 로봇(100)의 현재 위치를 식별할 수 있다. 구체적으로, 프로세서(130)은 두 가지 방법을 통해 로봇(100)의 현재 위치를 식별할 수 있다.
첫 번째로, 프로세서(130)은 단위 시간 별 로봇(100)의 속도 데이터 및 제1 맵 데이터에 기초하여 로봇(100)의 현재 위치에 대응되는 제1 위치(502)를 식별할 수 있다. 예를 들어, 프로세서(130)는 로봇(100)이 이전 위치(501)로부터 3초간 주행하는 동안 단위 시간(1초)에 대응되는 로봇(100)의 속도 데이터 및 제1 맵 데이터에 기초하여 제1 위치(502)를 식별할 수 있다.
두 번째로, 프로세서(130)는 제2 맵 데이터에 기초하여 로봇(100)의 현재 위치에 대응되는 제2 위치(503)를 식별할 수 있다. 도 5에 따르면, 프로세서(130)는 로봇(100)이 이전 위치(501)로부터 3초간 주행한 이후에 거리 센서(120)에 의해 획득된 거리 데이터에 기초하여 제2 영역(510)에 대한 정보를 포함하는 제2 맵 데이터를 획득할 수 있다. 또한, 프로세서(130)는 제2 맵 데이터 상에서 로봇의 현재 위치에 대응되는 제2 위치(503)를 식별할 수 있다.
로봇(100)의 위치가 부정확하게 식별된 경우, 해당 위치에 기초하여 획득된 제2 맵 데이터는 제1 맵 데이터에 포함된 영역이 특정 방향으로 평행 이동한 형태의 영역에 관한 정보를 포함할 수 있으므로, 프로세서(130)는 제1 위치(502) 및 제2 위치(503) 간 거리(d)를 식별하고, 식별된 거리(d)가 임계 거리 미만이면 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고, 제2 맵 데이터에 포함된 제2 영역(510)에 대한 정보에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
즉, 로봇(100)은 속도 데이터에 기초한 추정 위치(502)와 거리 센싱에 기초한 추정 위치(503)가 일정 수준 이상 차이 나는 경우에는 제2 맵 데이터 상에 새롭게 식별된 제2 영역(510)이 존재하더라도 제2 맵 데이터에 에러가 있다고 판단하고 제1 맵 데이터를 업데이트하지 않을 수 있다.
도 6은 본 개시의 일 실시 예에 따른 라인 정보에 기초한 맵 업데이트 여부 결정에 관해 설명하기 위한 도면이다.
도 6에 따르면, 프로세서(130)는 메모리(110)에 저장된 제1 맵 데이터(610) 및 거리 센서(120)에 의해 획득된 거리 데이터에 기초하여 획득된 제2 맵 데이터(620)를 비교할 수 있다. 구체적으로, 프로세서(130)는 제1 맵 데이터(610)에 포함된 제1 라인 정보 및 제2 맵 데이터(620)에 포함된 제2 라인 정보를 비교하고, 비교 결과에 기초하여 제2 맵 데이터(620)에 에러가 존재하는지 여부를 식별할 수 있다.
예를 들어, 프로세서(130)는 제1 맵 데이터(610)에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보(611)를 획득하고, 제2 맵 데이터(620)에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보(621)를 획득할 수 있다. 또한, 프로세서(130)는 제1 히스토그램 정보(611) 및 제2 히스토그램 정보(621) 간 유사도가 임계값 미만이면 제2 맵 데이터(620)에 에러가 존재하지 않는 것으로 식별하고, 제2 맵 데이터(620)에 기초하여 제1 맵 데이터(610)를 업데이트할 수 있다.
도 6에 따르면, 제2 히스토그램 정보(621)에는 제2 맵 데이터(620)에서 새롭게 식별된 제2 영역(630)에 관한 정보(631, 632)가 포함되어 있을 수 있다. 로봇(100)이 제2 영역(630)에 대응되는 맵 데이터를 부정확하게 획득한 경우, 틀어진 영역으로 식별된 제2 영역(630)은 제1 영역에 포함된 라인들과 달리 90도 또는 180도를 기준으로 임계 범위 내의 각도 정보 이외의 각도 정보(631, 632)에 대응되는 라인들을 포함할 수 있다.
이 경우 제2 히스토그램 정보(621)에는 제1 히스토그램 정보(611)와 달리 90도 또는 180도를 기준으로 임계 범위 내의 각도 정보(631, 632)가 포함되어 있을 수 있다. 일 예에 따른 프로세서(130)는 해당 정보(631, 632)에 대응되는 라인의 수(또는 해당 라인의 비율)가 임계값 이상인 경우 제2 맵 데이터(620)에 에러가 존재하는 것으로 식별하고, 제1 맵 데이터(610)를 업데이트하지 않을 수 있다.
즉, 위와 같은 동작을 통하여 로봇(100)은 제2 맵 데이터(620)에서 새롭게 식별된 제2 영역(630)이 틀어짐 없이 정확하게 식별된 경우에만 제2 맵 데이터(620)에 기초하여 제1 맵 데이터(610)를 업데이트할 수 있다.
도 7은 본 개시의 일 실시 예에 따른 로봇의 UI 표시 동작을 설명하기 위한 도면이다.
도 7에 따르면, 로봇(100)은 디스플레이(140)를 더 포함할 수 있다. 프로세서(130)는 제2 영역을 포함하는 제2 맵 데이터에 관련된 UI(710) 및 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI(720)를 표시하도록 디스플레이(140)를 제어할 수 있다.
예를 들어, 로봇(100)은 제2 맵 데이터에 에러가 존재하는지 여부 또는 제2 맵 데이터에 포함 된 제2 영역에 기초하여 실질적인 공간의 확장이 이루어졌는지 여부 중 적어도 하나가 명확하게 식별되지 않은 경우 사용자에게 업데이트 여부에 관한 사용자 명령을 요청하는 UI(710, 720)를 제공할 수 있다.
또한, 로봇(100)은 사용자의 입력을 받을 수 있는 사용자 인터페이스(미도시)를 더 포함할 수 있으며, 일 예에 따른 사용자 인터페이스는 디스플레이(140)에 결합된 터치 센서를 포함할 수 있으나 이에 한정되는 것은 아니다.
사용자는 사용자 인터페이스를 통하여 '예(701)' 또는 '아니오(702)' 중 하나를 선택할 수 있으며, 프로세서(130)는 사용자에 의해 선택된 항목에 기초하여 사용자의 업데이트 요청이 있는지 여부를 식별할 수 있다. 프로세서(130)는 사용자가 '예(701)'를 선택한 것으로 식별한 경우, 업데이트 요청에 관한 사용자 명령이 수신된 것으로 식별하고 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
반면, 프로세서(130)는 사용자가 '아니오(702)'를 선택한 것으로 식별한 경우 또는 임계 시간 내에 사용자가 어떠한 선택도 하지 않은 것으로 식별한 경우, 업데이트 요청에 관한 사용자 명령이 수신되지 않은 것으로 식별하고 제1 맵 데이터를 업데이트하지 않을 수 있다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 8에 따르면 로봇(100)은 메모리(110), 거리 센서(120), 프로세서(130), 디스플레이(140), 통신 인터페이스(150), 사용자 인터페이스(160) 및 구동부(170)를 포함할 수 있다. 도 8에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(140)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, QLED(Quantum dot light-emitting diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(140) 내에는 TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(140)는 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
통신 인터페이스(150)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(150)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따른 프로세서(130)는 업데이트된 제1 맵 데이터를 외부 서버로 전송하도록 통신 인터페이스(150)를 제어할 수 있다.
사용자 인터페이스(160)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 관여하는 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
구동부(170)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(170)는 프로세서(130)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(170)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(170)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
도 9는 본 개시의 일 실시 예에 따른 사용자의 업데이트 요청에 기초한 맵 업데이트 과정을 설명하기 위한 흐름도이다.
도 9에 따르면, 로봇(100)은 메모리(110)에 저장된 제1 맵 데이터에 기초하여 로봇(100)의 위치를 재인식하고 주행을 시작할 수 있다. 일 예에 따르면, 주행과정에서 로봇(100)은 SLAM(Simultaneous Localization and Mapping) 방식을 통해 거리 센서(120)를 통해 획득된 거리 데이터에 기초하여 제2 맵 데이터를 획득하고 획득된 제2 맵 데이터에 에러가 존재하는지 여부를 판단할 수 있다(S910).
여기서, 제2 맵 데이터에 에러가 존재하는 것으로 식별되는 경우(S910: Y) 로봇(100)은 제1 맵 데이터를 업데이트하지 않는 것으로 판단하고, 획득된 제2 맵 데이터를 삭제할 수 있다.
반면, 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별되는 경우(S910: N) 로봇(100)은 제2 맵 데이터에 포함된 제2 영역에 관한 정보에 기초하여 로봇(100)이 주행하는 공간이 실질적으로 확장되었는지 여부를 식별할 수 있다. 일 예에 따른 로봇(100)은 제2 영역이 복수의 서브 영역이 군집화된 영역이고 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면(S920: Y) 제2 맵 데이터를 저장하고, 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
그러나 제2 영역이 군집화된 영역이 아니거나, 또는 제2 영역이 군집화된 영역이더라도 제2 영역의 크기가 임계 크기 미만인 것으로 식별되는 경우(S920: N) 로봇(100)은 제1 맵 데이터를 업데이트할지 여부와 관련한 사용자의 확인이 필요한 지 여부를 식별할 수 있다(S930).
만일 로봇(100)이 사용자의 확인이 필요하지 않은 것으로 식별하는 경우(S930: N), 로봇(100)은 제1 맵 데이터를 업데이트하지 않는 것으로 판단하고, 획득된 제2 맵 데이터를 삭제할 수 있다.
그러나, 사용자의 확인이 필요한 것으로 식별되는 경우(S930: Y), 로봇(100)은 사용자에게 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시할 수 있다(S940). 또한, 로봇(100)은 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되었는지 여부를 식별할 수 있다(S950).
제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면(S950: Y) 로봇(100)은 제2 맵 데이터를 저장하고, 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다. 반면, 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되지 않으면(S950: N) 로봇(100)은 제1 맵 데이터를 업데이트하지 않는 것으로 판단하고, 획득된 제2 맵 데이터를 삭제할 수 있다.
상술한 로봇(100)의 동작은 일정 주기마다 또는 특정 이벤트가 발생할 때마다 반복적으로 일어날 수 있음은 물론이다.
도 10은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 일 실시 예에 따른 제어 방법은 로봇이 특정 공간을 주행하는 동안 제2 맵 데이터가 획득되면 제1 맵 데이터 및 제2 맵 데이터를 비교한다(S1010).
이어서, 비교 결과 제2 맵 데이터에 에러가 존재하지 않고 제2 맵 데이터에 제1 맵 데이터에 대응되는 제1 영역 외의 제2 영역에 관한 정보가 포함된 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트한다(S1020).
여기서, 업데이트하는 단계(S1020)에서는 제2 영역이 복수의 서브 영역이 군집화된 영역이고 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
여기서, 업데이트하는 단계(1020)에서는 로봇의 주행 이력 정보에 기초하여 로봇이 제2 영역을 주행한 이력이 있는 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 비교하는 단계(S1010)는 제1 맵 데이터에 기초하여 로봇의 현재 위치에 대응되는 제1 위치를 식별하는 단계, 제2 맵 데이터에 기초하여 로봇의 현재 위치에 대응되는 제2 위치를 식별하는 단계, 제1 위치 및 제2 위치 간 거리가 임계 거리 미만이면 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계 및 제1 위치 및 제2 위치 간 거리가 임계 거리 이상이면 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계를 포함할 수 있다.
또한, 비교하는 단계(S1010)에서는 제1 맵 데이터에 포함된 제1 라인 정보 및 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 제2 맵 데이터에 에러가 존재하는지 여부를 식별할 수 있다.
여기서, 비교하는 단계(S1010)는 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 종보를 획득하는 단계, 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득하는 단계, 제1 히스토그램 정보 및 제2 히스토그램 정보 간 유사도가 임계값 미만이면 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계 및 제1 히스토그램 정보 및 제2 히스토그램 정보 간 유사도가 임계값 이상이면 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계를 포함할 수 있다.
한편, 업데이트하는 단계(S1020)에서는 제1 맵 데이터 및 제2 맵 데이터에 기초하여 제1 영역 및 제2 영역의 경계선이 임계 길이 이상인 것으로 식별되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할 수 있다.
또한, 제어 방법은 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시하는 단계 및 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면 제2 맵 데이터에 기초하여 제1 맵 데이터를 업데이트하는 단계를 더 포함할 수 있다.
또한, 제어 방법은 업데이트된 제1 맵 데이터를 외부 서버로 전송하는 단계를 더 포함할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버 또는 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서(130) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 로봇(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 로봇(100)에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.

Claims (15)

  1. 로봇에 있어서,
    특정 공간의 제1 영역에 대응되는 제1 맵 데이터가 저장된 메모리;
    거리 센서; 및
    상기 로봇이 상기 특정 공간을 주행하는 동안 상기 거리 센서가 획득한 거리 데이터에 기초하여 제2 맵 데이터가 획득되면, 상기 제1 맵 데이터 및 상기 제2 맵 데이터를 비교하고,
    비교 결과 상기 제2 맵 데이터에 에러가 존재하지 않고 상기 제2 맵 데이터에 상기 제1 영역 이외의 제2 영역에 관한 정보가 포함된 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 프로세서;를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 제2 영역이 복수의 서브 영역이 군집화된 영역이고 상기 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 로봇.
  3. 제2항에 있어서,
    상기 메모리는,
    상기 로봇의 주행 이력 정보를 저장하며,
    상기 프로세서는,
    상기 로봇의 주행 이력 정보에 기초하여 상기 로봇이 상기 제2 영역을 주행한 이력이 있는 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 로봇.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제1 위치를 식별하고,
    상기 제2 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제2 위치를 식별하고,
    상기 제1 위치 및 상기 제2 위치 간 거리가 임계 거리 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고,
    상기 제1 위치 및 상기 제2 위치 간 거리가 상기 임계 거리 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는, 로봇.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 맵 데이터에 포함된 제1 라인 정보 및 상기 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 상기 제2 맵 데이터에 에러가 존재하는지 여부를 식별하는, 로봇.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보를 획득하고,
    상기 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득하고,
    상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 임계값 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하고,
    상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 상기 임계값 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는, 로봇.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 맵 데이터 및 상기 제2 맵 데이터에 기초하여 상기 제1 영역 및 상기 제2 영역의 경계선이 임계 길이 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 로봇.
  8. 제1항에 있어서,
    디스플레이;를 더 포함하며,
    상기 프로세서는,
    상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트할지 여부를 문의하는 UI를 표시하도록 상기 디스플레이를 제어하고,
    상기 제1 맵 데이터의 업데이트를 요청하는 사용자 명령이 수신되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 로봇
  9. 제1항에 있어서,
    통신 인터페이스;를 더 포함하며,
    상기 프로세서는,
    상기 업데이트된 제1 맵 데이터를 외부 서버로 전송하도록 상기 통신 인터페이스를 제어하는, 로봇.
  10. 특정 공간의 제1 영역에 대응되는 제1 맵 데이터가 저장된 로봇의 제어 방법에 있어서,
    상기 로봇이 상기 특정 공간을 주행하는 동안 제2 맵 데이터가 획득되면 상기 제1 맵 데이터 및 상기 제2 맵 데이터를 비교하는 단계; 및
    비교 결과 상기 제2 맵 데이터에 에러가 존재하지 않고 상기 제2 맵 데이터에 상기 제1 영역 외의 제2 영역에 관한 정보가 포함된 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 업데이트하는 단계는,
    상기 제2 영역이 복수의 서브 영역이 군집화된 영역이고 상기 제2 영역의 크기가 임계 크기 이상인 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 제어 방법.
  12. 제11항에 있어서,
    상기 업데이트하는 단계는,
    상기 로봇의 주행 이력 정보에 기초하여 상기 로봇이 상기 제2 영역을 주행한 이력이 있는 것으로 식별되면, 상기 제2 맵 데이터에 기초하여 상기 제1 맵 데이터를 업데이트하는, 제어 방법.
  13. 제10항에 있어서,
    상기 비교하는 단계는,
    상기 제1 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제1 위치를 식별하는 단계;
    상기 제2 맵 데이터에 기초하여 상기 로봇의 현재 위치에 대응되는 제2 위치를 식별하는 단계;
    상기 제1 위치 및 상기 제2 위치 간 거리가 임계 거리 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계; 및
    상기 제1 위치 및 상기 제2 위치 간 거리가 상기 임계 거리 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계;를 포함하는, 제어 방법.
  14. 제10항에 있어서,
    상기 비교하는 단계는,
    상기 제1 맵 데이터에 포함된 제1 라인 정보 및 상기 제2 맵 데이터에 포함된 제2 라인 정보를 비교하고 비교 결과에 기초하여 상기 제2 맵 데이터에 에러가 존재하는지 여부를 식별하는, 제어 방법.
  15. 제14항에 있어서,
    상기 비교하는 단계는,
    상기 제1 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제1 히스토그램 정보를 획득하는 단계;
    상기 제2 맵 데이터에 포함된 라인들의 각도 정보에 기초하여 제2 히스토그램 정보를 획득하는 단계;
    상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 임계값 미만이면 상기 제2 맵 데이터에 에러가 존재하지 않는 것으로 식별하는 단계; 및
    상기 제1 히스토그램 정보 및 상기 제2 히스토그램 정보 간 유사도가 상기 임계값 이상이면 상기 제2 맵 데이터에 에러가 존재하는 것으로 식별하는 단계;를 포함하는, 제어 방법.
PCT/KR2022/007730 2021-07-27 2022-05-31 로봇 및 그 제어 방법 WO2023008720A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22849699.8A EP4316741A1 (en) 2021-07-27 2022-05-31 Robot and control method therefor
US18/384,216 US20240053764A1 (en) 2021-07-27 2023-10-26 Robot and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0098806 2021-07-27
KR1020210098806A KR20230017060A (ko) 2021-07-27 2021-07-27 로봇 및 그 제어 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/384,216 Continuation US20240053764A1 (en) 2021-07-27 2023-10-26 Robot and controlling method thereof

Publications (1)

Publication Number Publication Date
WO2023008720A1 true WO2023008720A1 (ko) 2023-02-02

Family

ID=85087401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/007730 WO2023008720A1 (ko) 2021-07-27 2022-05-31 로봇 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20240053764A1 (ko)
EP (1) EP4316741A1 (ko)
KR (1) KR20230017060A (ko)
WO (1) WO2023008720A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101083394B1 (ko) * 2009-10-30 2011-11-14 주식회사 유진로봇 이동 로봇의 위치 인식을 위한 지도 생성 및 갱신 방법
KR20120043096A (ko) * 2009-08-31 2012-05-03 니토 로보틱스 인코퍼레이티드 이동 로봇 환경의 실시간 위치 측정 및 매핑을 위한 방법 및 장치
KR101468545B1 (ko) * 2013-07-10 2014-12-03 연세대학교 산학협력단 이동 로봇의 전역위치인식 및 지도 업데이트 장치 및 방법
US10133279B2 (en) * 2014-06-17 2018-11-20 Yujin Robot Co., Ltd. Apparatus of updating key frame of mobile robot and method thereof
KR20210009011A (ko) * 2019-07-16 2021-01-26 엘지전자 주식회사 이동 로봇 및 그 제어방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120043096A (ko) * 2009-08-31 2012-05-03 니토 로보틱스 인코퍼레이티드 이동 로봇 환경의 실시간 위치 측정 및 매핑을 위한 방법 및 장치
KR101083394B1 (ko) * 2009-10-30 2011-11-14 주식회사 유진로봇 이동 로봇의 위치 인식을 위한 지도 생성 및 갱신 방법
KR101468545B1 (ko) * 2013-07-10 2014-12-03 연세대학교 산학협력단 이동 로봇의 전역위치인식 및 지도 업데이트 장치 및 방법
US10133279B2 (en) * 2014-06-17 2018-11-20 Yujin Robot Co., Ltd. Apparatus of updating key frame of mobile robot and method thereof
KR20210009011A (ko) * 2019-07-16 2021-01-26 엘지전자 주식회사 이동 로봇 및 그 제어방법

Also Published As

Publication number Publication date
KR20230017060A (ko) 2023-02-03
EP4316741A1 (en) 2024-02-07
US20240053764A1 (en) 2024-02-15

Similar Documents

Publication Publication Date Title
EP3668768A1 (en) Device and method for assisting with driving of vehicle
WO2012020929A2 (ko) 관심지점 표시장치 및 방법
WO2012133983A1 (ko) 차량에 장착되는 영상표시기기에서의 이미지 처리
WO2013039306A1 (en) Method and apparatus for providing information based on a location
WO2011021899A2 (en) Method and apparatus for generating, managing, and sharing moving path
WO2018164377A1 (ko) 지도 데이터를 생성하는 전자 장치 및 그 동작 방법
WO2018230845A1 (ko) 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇
WO2014185582A1 (en) Display device and method of controlling therefor
WO2011090296A2 (ko) 내비게이션 시스템, 이에 연결된 서버, 및 차량용 내비게이션의 제어방법
WO2023008720A1 (ko) 로봇 및 그 제어 방법
WO2019245320A1 (ko) 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법
WO2019190171A1 (ko) 전자 장치 및 그 제어 방법
WO2021045246A1 (ko) 자동차에 확장된 기능을 제공하는 장치 및 그 방법
WO2022154242A1 (ko) 로봇 및 그 제어 방법
WO2022225135A1 (ko) 로봇, 로봇 및 사용자 단말을 포함하는 시스템 및 그 제어 방법
WO2017217612A1 (ko) 원터치를 이용한 동영상 컨텐츠의 자막 생성 및 공유 방법
WO2018088804A1 (en) Electronic apparatus and control method thereof
WO2018105965A1 (en) Vehicle operating method and vehicle operating apparatus
WO2021201425A1 (ko) 차량의 주행 안내 방법 및 전자 장치
WO2013089480A1 (ko) 내비게이션에서의 안내 상황에 따른 지도 표현 장치 및 방법
EP3523752A1 (en) Electronic apparatus and control method thereof
WO2023003158A1 (ko) 로봇 및 그 제어 방법
WO2020071853A1 (ko) 주행 보조 장치 및 이미지 처리 방법
WO2023038218A1 (ko) 로봇 및 그 제어 방법
WO2020116748A1 (ko) 전자 장치 및 이의 정보 제공 방법

Legal Events

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

Ref document number: 22849699

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022849699

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022849699

Country of ref document: EP

Effective date: 20231102

NENP Non-entry into the national phase

Ref country code: DE