WO2023003249A1 - Robotic cleaner and method for controlling robotic cleaner - Google Patents

Robotic cleaner and method for controlling robotic cleaner Download PDF

Info

Publication number
WO2023003249A1
WO2023003249A1 PCT/KR2022/010141 KR2022010141W WO2023003249A1 WO 2023003249 A1 WO2023003249 A1 WO 2023003249A1 KR 2022010141 W KR2022010141 W KR 2022010141W WO 2023003249 A1 WO2023003249 A1 WO 2023003249A1
Authority
WO
WIPO (PCT)
Prior art keywords
open
node
robot cleaner
driving
open space
Prior art date
Application number
PCT/KR2022/010141
Other languages
French (fr)
Korean (ko)
Inventor
윤상열
심미영
전종범
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to EP22846119.0A priority Critical patent/EP4374763A1/en
Publication of WO2023003249A1 publication Critical patent/WO2023003249A1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/242Means based on the reflection of waves generated by the vehicle
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • 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
    • 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/2469Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using a topologic or simplified map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection
    • 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/60Open buildings, e.g. offices, hospitals, shopping areas or universities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2111/00Details of signals used for control of position, course, altitude or attitude of land, water, air or space vehicles
    • G05D2111/10Optical signals
    • G05D2111/17Coherent light, e.g. laser signals

Definitions

  • the present invention relates to a mobile robot, specifically a robot cleaner and a method for controlling the robot cleaner, and more particularly, to a robot cleaner detection and control technology for generating a driving map.
  • a typical example of a bot is a robot vacuum cleaner.
  • Various technologies are known for sensing an environment around the robot cleaner and a user through various sensors provided in the robot cleaner.
  • technologies are known in which a robot cleaner learns and maps a cleaning area by itself and determines a current location on a map.
  • a robot cleaner that cleans while driving in a cleaning area in a preset manner is known.
  • a map of the driving area In order to perform set tasks such as cleaning, a map of the driving area must be accurately created, and the current location of the robot cleaner on the map must be accurately identified in order to move to a location within the driving area.
  • a topology node is added to a route at a location where additional search is required while the robot is driving, so that the need for further search and driving is indicated.
  • Patent Document 1 Korean Patent Publication No. 10-2010-0031878 A
  • Patent Document 2 Korean Patent Publication No. 10-2021-0009011 A
  • an object of the present invention is to provide a map generation method capable of minimizing unnecessary driving when searching for a space requiring driving.
  • Korean Patent Publication No. 10-2021-0009011 generates a grid map and a topology map in real time based on real-time detection information, so the direction is set from the current location toward an area that requires additional search driving. Do it.
  • Another object of the present invention is to provide a control method capable of reducing avoidance driving by setting the driving to the center of the aisle during such additional search driving.
  • Another object of the present invention is to give a PARENT-CHILDREN relationship between one node and other nodes connected to it, and when selecting a child node to move from one parent node, by comparing the open widths of each child node with each other, the maximum It is to provide a control method for first entering a search space having a wide width.
  • SLAM performance can be improved through such priority driving, and a control method capable of first providing as much information as possible to other nodes that enter later is provided.
  • a robot cleaner for achieving the above object includes a traveling unit for moving a main body within a traveling area; a distance measuring sensor that obtains distance sensing information about a distance to an object outside the main body; and when generating a grid map for the driving area from the distance detection information and dividing the driving area into a plurality of sub areas, ray casting is performed on a plurality of driving nodes on the path of the grid map for each sub area. and a control unit for performing a search for an open space, setting an open node for the open space, and calculating a topology graph between the driving node and the open node.
  • the distance measurement sensor may include a lidar sensor that irradiates light to an object outside the main body and calculates the distance detection information based on reflected light.
  • the sub area may be allocated as an area when the robot cleaner travels in the driving area for a predetermined time or a predetermined distance.
  • the controller may perform ray casting for each of a plurality of driving nodes in the grid map for each sub-region to search for an open space, and set the open node for each of the open spaces.
  • the controller may set the open node in a central region of the width of the open space.
  • the controller may set the open node in a central region of the separation distance between the two obstacles.
  • the controller may set the open node at an intersection of a center line between the two obstacles and a vertical line of the traveling node.
  • the control unit moves to one of the open nodes of the last driving node, changes the moved open node to a closed node, and then moves to an open node remaining in the topology graph. It can be moved to partition another sub area.
  • the control unit may move to an open node having the largest width among a plurality of open nodes of the last driving node.
  • the control unit may determine that the robot cleaner is capable of driving by ray casting at the travel node and a space in which the robot cleaner is not previously driven is an open space.
  • the control unit may perform 360-degree ray casting around the traveling node.
  • the control unit sets a first open node for one open space searched for for the first travel node, and sets a second open node for another open space searched for for a second travel node different from the first travel node. and if it is determined that the first open node and the second open node overlap, one of the overlapping first and second open nodes may be deleted.
  • the controller may determine whether the first open node overlaps with the second open node when widths of the one open space and the other open space overlap by a predetermined range or more.
  • the control unit generates circles having the same diameter around the first open node and the second open node, and when each circle overlaps a predetermined range or more, the first open node and the second open node are the same open node. It can be judged to be about.
  • one open node adjacent to a central area of an open area where the first and second open nodes are located may be left, and another open node may be deleted.
  • the control unit may calculate a final topology graph for the driving area by connecting the topology graphs of the plurality of sub-regions to each other.
  • the control unit may process the grid map to calculate a final map.
  • the embodiment includes obtaining distance sensing information about a distance to an object outside the main body while moving in an unknown driving area; generating a grid map for the driving area from the distance detection information; dividing the driving area into a plurality of sub-regions, and searching an open space by performing ray casting on a plurality of driving nodes on a path of the grid map for each of the sub-regions; setting an open node for the open space and generating a topology graph between the driving node and the open node for the sub-area; and generating a final topology graph for the driving area by connecting the topology graphs of the plurality of sub-regions to each other.
  • the generating of the topology graph may include, when the open space is formed between two obstacles that are spaced apart without a step, setting the open node in a central region of the separation distance between the two obstacles, and determining that the open space has a step When it is formed between two obstacles spaced apart from each other, the open node may be set at an intersection of a center line between the two obstacles and a vertical line of the traveling node.
  • the generating of the topology graph may include setting a first open space with respect to one open space searched for for the first traveling node and another open space searched for for a second traveling node different from the first traveling node. establishing a second open node; determining whether the first open node and the second open node overlap when widths of the one open space and the other open space overlap by a predetermined range or more; Circles having the same diameter are generated around the first open node and the second open node, and if each circle overlaps a predetermined range or more, it is determined that the first open node and the second open node correspond to the same open node. doing; and leaving one open node adjacent to a central area of an open area where the first and second open nodes are located among the first open node and the second open node, and deleting the other open node. .
  • efficiency can be improved by minimizing unnecessary driving when searching for a space requiring additional driving.
  • the present invention can reduce avoidance driving by setting the driving to the center of the aisle during additional search driving.
  • FIG. 1 is a perspective view illustrating a robot cleaner and a charging stand for charging the robot cleaner according to an embodiment of the present invention.
  • FIG. 2 is an elevational view of the robot cleaner of FIG. 1 viewed from above.
  • FIG. 3 is an elevational view of the robot cleaner of FIG. 1 viewed from the front;
  • FIG. 4 is an elevational view of the robot cleaner of FIG. 1 viewed from a lower side.
  • FIG. 5 is a diagram showing an example of a robot cleaner according to another embodiment of the present invention.
  • FIG. 6 is a block diagram illustrating a control relationship between main elements of the robot cleaner of FIG. 1 or 5 .
  • FIG. 7 is a diagram illustrating an operation of a LiDAR sensor provided in a robot cleaner according to an embodiment of the present invention.
  • FIG. 8 is a flowchart of a process of generating a map of a robot cleaner according to an embodiment of the present invention.
  • 9A to 9E are diagrams illustrating a process of generating a map of the robot cleaner according to the flowchart of FIG. 8 .
  • FIG. 10 is a diagram showing a portion of a topology graph of a robot cleaner according to the flowchart of FIG. 8 .
  • FIG. 11 is a diagram showing a flowchart for searching open nodes of FIG. 8 .
  • 12A and 12B are diagrams showing the non-stepped open space of FIG. 11 .
  • FIG. 13A and 13B are diagrams illustrating an embodiment of the stepped open space of FIG. 11 .
  • 14A and 14B are diagrams illustrating another embodiment of the stepped open space of FIG. 11 .
  • FIG. 15 is a diagram illustrating another flowchart for searching open nodes of FIG. 8 .
  • FIG. 16 is a diagram illustrating a search of a robot cleaner showing the operation of FIG. 15 .
  • FIG. 17 is a diagram for explaining a process for deduplication of FIG. 15 .
  • FIG. 18A shows an open space search according to a comparative example
  • FIG. 18B shows an open space search according to the present invention.
  • FIG. 19A shows a plurality of open space searches according to a comparative example
  • FIG. 19B shows redundancy removal during an open space search according to the present invention.
  • FIG. 20A shows an unsearched area according to a comparative example
  • FIG. 20B shows an open space searched for according to the present invention.
  • 'less than or equal to (less than)' and 'less than (less than)' are degrees that can be easily substituted for each other from the point of view of a person skilled in the art
  • 'greater than or equal to' (more)' and 'greater than (exceeding)' are degrees that can be easily substituted for each other from the standpoint of a person skilled in the art, and it is of course that there is no problem in exerting the effect even if they are substituted in implementing the present invention.
  • the mobile robot 100 of the present invention refers to a robot capable of moving by itself using wheels and the like, and may be a home helper robot and a robot vacuum cleaner.
  • FIG. 1 to 4 are views illustrating the appearance of a robot cleaner and a charging station for charging the robot cleaner according to an embodiment of the present invention.
  • FIG. 1 is a perspective view showing a robot cleaner and a charging stand for charging the robot cleaner according to an embodiment of the present invention
  • FIG. 2 is an elevational view of the robot cleaner of FIG. 1 viewed from above
  • FIG. 3 is the robot cleaner of FIG. 1 It is an elevation view viewed from the front
  • FIG. 4 is an elevation view of the robot cleaner of FIG. 1 viewed from the lower side.
  • the robot cleaner 100 includes a body 110.
  • the part facing the ceiling in the driving area is defined as the upper part (see FIG. 2)
  • the part facing the floor in the driving area is defined as the bottom part (see FIG. 4).
  • the part facing the driving direction is defined as the front part (see FIG. 3).
  • a portion facing the opposite direction to the front portion of the main body 110 may be defined as a rear portion.
  • the main body 110 may include a case 111 forming a space in which various parts constituting the robot cleaner 100 are accommodated.
  • the robot cleaner 100 may include, for example, at least one driving wheel 136 for moving the main body 110 .
  • the driving wheel 136 may be driven and rotated by, for example, at least one motor (not shown) connected to the driving wheel 136 .
  • the driving wheels 136 may be respectively provided on the left and right sides of the main body 110, for example, and are hereinafter referred to as a left wheel 136(L) and a right wheel 136(R), respectively.
  • the left wheel 136(L) and the right wheel 136(R) may be driven by a single drive motor, but the left wheel drive motor and the right wheel 136(R) driving the left wheel 136(L) as needed ) may be provided respectively with a right wheel drive motor for driving.
  • the running direction of the main body 110 can be switched to the left or right by making a difference between the rotation speeds of the left wheel 136 (L) and the right wheel 136 (R).
  • the robot cleaner 100 may include, for example, a suction unit 330 for sucking foreign substances, brushes 154 and 155 for sweeping, a dust bin for storing collected foreign substances, and a mop unit for wiping. there is.
  • a suction port 150h through which air is sucked may be formed on the bottom of the main body 110, and a suction power is provided so that air can be sucked through the suction hole 150h inside the main body 110.
  • a device and a dust bin may be provided to collect dust sucked together with air through the inlet 150h.
  • the robot cleaner 100 may include, for example, a case 111 forming a space in which various parts constituting the robot cleaner 100 are accommodated.
  • An opening (not shown) for insertion and removal of the dust bin may be formed in the case 111 , and a dust box cover 112 that opens and closes the opening may be rotatably provided with respect to the case 111 .
  • the robot cleaner 100 includes, for example, a roll-type main brush 154 having brushes exposed through a suction port 150h, a plurality of blades located on the front side of the bottom surface of the main body 110 and extending radially.
  • An auxiliary brush 155 having a brush made of may be provided. The rotation of the brushes 154 and 155 separates dust from the floor in the driving area, and the dust separated from the floor is sucked in through the suction port 150h and introduced into the dust bin through the suction unit 330. .
  • Air and dust may be separated from each other while passing through a filter or a cyclone in the dust bin, the separated dust is collected in the dust bin, and the air is discharged from the dust bin and finally passes through an exhaust passage (not shown) inside the main body 110. It may be discharged to the outside through an exhaust port (not shown).
  • the battery 138 may supply not only the driving motor, but also power necessary for the overall operation of the robot cleaner 100.
  • the robot cleaner 100 may return to the charging station 200 for charging, and during this return driving, the robot cleaner 100 automatically moves to the charging station 200. location can be detected.
  • the charging station 200 may include, for example, a signal transmission unit (not shown) that transmits a predetermined return signal.
  • the return signal may be, for example, an ultrasonic signal or an infrared signal, but is not necessarily limited thereto.
  • the robot cleaner 100 may include, for example, a signal detector (not shown) that receives a return signal.
  • the signal detection unit may include an infrared sensor for detecting an infrared signal, and may receive an infrared signal transmitted from the signal transmission unit of the charging station 200 .
  • the robot cleaner 100 may move to the position of the charging station 200 according to the infrared signal transmitted from the charging station 200 and dock with the charging station 200 . Due to this docking, the charging terminal 133 of the robot cleaner 100 and the charging terminal 210 of the charging stand 200 may come into contact, and the battery 138 may be charged.
  • the robot cleaner 100 may have a configuration for sensing internal/external information of the robot cleaner 100 .
  • the robot cleaner 100 may include, for example, a camera 120 that obtains image information about a driving area.
  • the robot cleaner 100 may include a front camera 120a provided to acquire an image of the front of the main body 110 .
  • the robot cleaner 100 may include an upper camera 120b provided on an upper surface of the main body 110 to obtain an image of a ceiling in a driving area.
  • the robot cleaner 100 may further include a lower camera 179 provided on the bottom of the main body 110 to obtain an image of the floor.
  • the number of cameras 120 provided in the robot cleaner 100, the location where they are placed, and the shooting range are not necessarily limited thereto, and may be placed in various locations to obtain image information about the driving area. there is.
  • the robot cleaner 100 may include a camera (not shown) configured to photograph both the front and the upper directions by being disposed obliquely with respect to one surface of the main body 110 .
  • the robot cleaner 100 may include a plurality of front cameras 120a and/or an upper camera 120b, or may include a plurality of cameras configured to photograph both the front and the top.
  • a camera 120 is installed on some parts (eg, front, rear, bottom) of the robot cleaner 100, and images can be continuously obtained while driving or cleaning.
  • Several cameras 120 may be installed for each part for shooting efficiency, and the image captured by the camera 120 recognizes the type of material such as dust, hair, floor, etc. present in the space, whether it is cleaned, Alternatively, it may be used to confirm the cleaning time.
  • the robot cleaner 100 may include a light detection and ranging (LiDAR) sensor 175 that obtains terrain information of the outside of the main body 110 using a laser.
  • LiDAR light detection and ranging
  • the lidar sensor 175 outputs a laser and receives the laser reflected from the object, thereby obtaining information such as the distance to the object reflecting the laser, location direction, material, and the like, and obtaining terrain information of the driving area. can do.
  • the robot cleaner 100 may acquire 360-degree geometry information based on information acquired through the lidar sensor 175 .
  • the robot cleaner 100 may also include sensors 171 , 172 , and 179 for sensing various data related to the operation and state of the robot cleaner 100 .
  • the robot cleaner 100 may include an obstacle detection sensor 171 for detecting an obstacle in front, a cliff detection sensor 172 for detecting the presence or absence of a cliff on the floor within a driving area, and the like.
  • the robot cleaner 100 may include a control unit 137 capable of inputting various commands such as power on/off of the robot cleaner 100, and the robot cleaner 100 through the control unit 137. ) can receive various control commands necessary for the overall operation.
  • the robot cleaner 100 may include an output unit (not shown), and may display reservation information, battery status, operation mode, operation status, error status, and the like.
  • FIG. 5 is a diagram illustrating an example of a robot cleaner according to another embodiment of the present invention.
  • the robot cleaner 100 shown in FIG. 5 has the same or similar configurations as the robot cleaner 100 disclosed in FIGS. 1 to 4 , and functions as a robot cleaner applicable to a large-area space. A detailed description thereof will be omitted.
  • FIG. 6 is a block diagram illustrating a control relationship between major components of a robot cleaner according to an embodiment of the present invention.
  • the robot cleaner 100 includes a storage unit 305, an image acquisition unit 320, an input unit 325, a suction unit 330, a control unit 350, a driving unit 360, a sensor unit ( 370), an output unit 380, and/or a communication unit 390.
  • the storage unit 305 may store various types of information necessary for controlling the robot cleaner 100 .
  • the storage unit 305 may include a volatile or non-volatile recording medium.
  • a recording medium stores data that can be read by a microprocessor, and is not limited to its type or implementation method.
  • the storage unit 305 may store a map for a driving area.
  • the map stored in the storage unit 305 may be input from an external terminal or server capable of exchanging information with the robot cleaner 100 through wired or wireless communication, and the robot cleaner 100 learns by itself may have been created.
  • the storage unit 305 may store data for the sub area.
  • the sub area may mean a divided area having a predetermined distance or a predetermined area on the driving area.
  • the data for the sub-area may include lidar sensing data obtained while driving in the corresponding sub-area, information on each node for the corresponding lidar sensing data, and information on a moving direction at each node.
  • the storage unit 305 may store various map information.
  • the location of rooms within the driving area may be indicated on the map. Also, the current location of the robot cleaner 100 may be displayed on a map, and the current location of the robot cleaner 100 on the map may be updated during driving.
  • the storage unit 305 may store cleaning history information. Such cleaning history information may be generated whenever cleaning is performed.
  • the map for the driving area stored in the storage unit 305 includes, for example, a navigation map used for driving during cleaning, a simultaneous localization and mapping (SLAM) map used for location recognition, When an obstacle is encountered, the corresponding information is stored and the learning map used for learning and cleaning, the global topological map used for global location recognition, the grid map based on cell data, and the information about the recognized obstacle are stored. It may be an obstacle recognition map that is recorded.
  • SLAM simultaneous localization and mapping
  • maps may be stored and managed by dividing them into the storage unit 305 for each purpose, but the maps may not be clearly classified for each purpose.
  • a plurality of pieces of information may be stored in one map so as to be used for at least two or more purposes.
  • the image acquisition unit 320 may acquire an image of the robot cleaner 100's surroundings.
  • the image acquisition unit 320 may include at least one camera (eg, the camera 120 of FIG. 1 ).
  • the image acquisition unit 320 may include, for example, a digital camera.
  • a digital camera includes an image sensor (eg, CMOS image sensor) including at least one optical lens and a plurality of photodiodes (eg, pixels) forming an image by light passing through the optical lens.
  • CMOS image sensor e.g., CMOS image sensor
  • DSP digital signal processor
  • the digital signal processor can, for example, generate not only still images, but also moving images composed of frames composed of still images.
  • the image acquisition unit 320 may capture an obstacle present in front of the robot cleaner 100 or a situation of the cleaning area.
  • the image acquisition unit 320 may obtain a plurality of images by continuously photographing the surroundings of the main body 110, and the obtained plurality of images may be stored in the storage unit 305. there is.
  • the robot cleaner 100 may increase the accuracy of obstacle recognition by using a plurality of images or by selecting one or more images from among the plurality of images and using effective data.
  • the input unit 325 may include an input device (eg, a key, a touch panel, etc.) capable of receiving a user input.
  • the input unit 325 may include a control unit 137 capable of inputting various commands such as power on/off of the robot cleaner 100.
  • the input unit 325 may receive a user input through the input device and transmit a command corresponding to the received user input to the control unit 350 .
  • the suction unit 330 may suck air containing dust.
  • the suction unit 330 is, for example, a suction device (not shown) for sucking foreign substances, brushes 154 and 155 for sweeping, suction devices or brushes (eg, brushes 154 and 155 in FIG. 3) It may include a dust bin (not shown) for storing the collected foreign substances, a suction port through which air is sucked (eg, the suction port 150h of FIG. 4 ), and the like.
  • the traveling unit 360 may move the robot cleaner 100.
  • the driving unit 360 may include, for example, at least one driving wheel 136 for moving the robot cleaner 100 and at least one motor (not shown) for rotating the driving wheel.
  • the sensor unit 370 may include a distance measuring sensor that measures a distance to an object outside the main body 110 .
  • the distance measuring sensor may include the lidar sensor 175 described above.
  • the robot cleaner 100 may generate a map by recognizing distances, positions, and directions of objects sensed by the lidar sensor 175.
  • the robot cleaner 100 may obtain terrain information of a driving area by analyzing a laser reception pattern, such as a time difference or signal strength of a laser reflected from the outside and received.
  • the robot cleaner 100 may generate a map using terrain information acquired through the lidar sensor 175 .
  • the robot cleaner 100 may perform a lidar slam for determining a moving direction by analyzing surrounding terrain information acquired from a current location through the lidar sensor 175 .
  • the robot cleaner 100 effectively recognizes an obstacle through vision-based location recognition using a camera, LIDAR-based location recognition technology using a laser, and an ultrasonic sensor, and performs optimal movement with a small change. Map generation can be performed by extracting directions.
  • the sensor unit 370 may include an obstacle detection sensor 171 for detecting an obstacle in front, a cliff detection sensor 172 for detecting the presence or absence of a cliff on the floor within a driving area, and the like.
  • a plurality of obstacle detection sensors 171 may be disposed on the outer circumferential surface of the robot cleaner 100 at regular intervals.
  • the obstacle detection sensor 171 may include an infrared sensor, an ultrasonic sensor, a radio frequency (RF) sensor, a geomagnetic sensor, a position sensitive device (PSD) sensor, and the like.
  • the obstacle detection sensor 171 may be a sensor that detects a distance to an indoor wall or an obstacle, and the present invention is not limited to that type, but an ultrasonic sensor will be described below as an example.
  • the obstacle detection sensor 171 may detect an object, particularly an obstacle, existing in the driving (moving) direction of the robot cleaner 100 and transmit obstacle information to the control unit 350 . That is, the obstacle detection sensor 171 detects the moving path of the robot cleaner 100, protrusions present on the front or side of the robot cleaner 100, household items, furniture, walls, wall corners, etc. It can be transmitted to the control unit 350.
  • the sensor unit 370 may further include a driving detection sensor (not shown) for detecting a driving motion of the robot cleaner 100 and outputting motion information.
  • the driving detection sensor may include, for example, a gyro sensor, a wheel sensor, and an acceleration sensor.
  • the gyro sensor may detect a rotation direction and a rotation angle when the robot cleaner 100 moves according to the driving mode.
  • the gyro sensor may detect the angular velocity of the robot cleaner 100 and output a voltage value proportional to the angular velocity.
  • the wheel sensor may be connected to the driving wheel 136, for example, the left wheel 136(L) and the right wheel 136(R) of FIG. 4 to detect the number of revolutions of the driving wheel 136.
  • the acceleration sensor may detect a change in speed of the robot cleaner 100 .
  • the acceleration sensor may be attached to a location adjacent to the driving wheel 136 or may be built into the control unit 350 .
  • the output unit 380 may include an audio output unit 381 that outputs an audio signal.
  • the sound output unit outputs a notification message such as a warning sound, an operation mode, an operation state, an error state, information corresponding to a user's command input, a processing result corresponding to a user's command input, and the like as sound.
  • the audio output unit 381 may convert an electrical signal from the control unit 150 into an audio signal and output the converted audio signal. To this end, a speaker or the like may be provided.
  • the output unit 380 may include a display 382 that displays information corresponding to a user's command input, a processing result corresponding to the user's command input, an operation mode, an operation state, an error state, and the like as images.
  • the display 382 may be configured as a touch screen by forming a mutual layer structure with the touch pad.
  • the display 382 composed of a touch screen may be used as an input device capable of inputting information by a user's touch in addition to an output device.
  • the communication unit 390 may include at least one communication module (not shown) and may transmit/receive data with an external device.
  • the external terminal includes, for example, an application for controlling the robot cleaner 100, and a map of a driving area to be cleaned by the robot cleaner 100 through execution of the application. can be displayed, and an area can be designated to clean a specific area on the map.
  • the communication unit 390 may transmit and receive signals using a wireless communication method such as Wi-Fi, Bluetooth, beacon, zigbee, or radio frequency identification (RFID).
  • a wireless communication method such as Wi-Fi, Bluetooth, beacon, zigbee, or radio frequency identification (RFID).
  • RFID radio frequency identification
  • the power supply unit may supply driving power and operating power to each component of the robot cleaner 100 .
  • the robot cleaner 100 may further include a battery detecting unit (not shown) capable of detecting the remaining battery capacity and charging state of the battery 138 and transmitting the detection result to the controller 350 .
  • a battery detecting unit (not shown) capable of detecting the remaining battery capacity and charging state of the battery 138 and transmitting the detection result to the controller 350 .
  • the control unit 350 may be connected to each component provided in the robot cleaner 100.
  • the control unit 350 for example, can transmit/receive signals to and from each component provided in the robot cleaner 100 and control overall operations of each component.
  • the control unit 350 may determine the state of the inside/outside of the robot cleaner 100 based on information obtained through the sensor unit 370 .
  • the controller 350 may calculate the rotation direction and rotation angle using the voltage value output from the gyro sensor.
  • the controller 350 may calculate the rotational speed of the driving wheel 136 based on the rotational speed output from the wheel sensor. In addition, the controller 350 may calculate the rotation angle based on the difference in rotation speeds between the left wheel 136 (L) and the right wheel 136 (R).
  • the controller 350 may determine a state change of the robot cleaner 100, such as starting, stopping, changing direction, or colliding with an object, based on a value output from an acceleration sensor. Meanwhile, the controller 350 may detect an amount of impact according to a change in speed based on a value output from the acceleration sensor, so the acceleration sensor may perform the function of an electronic bumper sensor.
  • the controller 350 may detect the position of the obstacle based on at least two signals received through the ultrasonic sensor, and control the movement of the robot cleaner 100 according to the detected position of the obstacle.
  • the obstacle detection sensor 131 provided on the outer surface of the robot cleaner 100 may include a transmitter and a receiver.
  • the ultrasonic sensor may include at least one transmitting unit and at least two or more receiving units to be crossed with each other. Accordingly, the transmitter may emit ultrasonic signals at various angles, and at least two or more receivers may receive ultrasonic signals reflected from obstacles at various angles.
  • the signal received by the ultrasonic sensor may undergo a signal processing process such as amplification and filtering, and then the distance and direction to the obstacle may be calculated.
  • a signal processing process such as amplification and filtering
  • the controller 350 may include a driving control module 351, a map generating module 352, a location recognition module 353, and/or an obstacle recognition module 354.
  • the driving control module 351, the map generation module 352, the location recognition module 353 and / or the obstacle recognition module 354 are described separately, but the present invention is not limited thereto. not.
  • the location recognition module 353 and the obstacle recognition module 354 may be integrated as one recognizer to form one recognition module 355.
  • the recognizer is trained using a learning technique such as machine learning, and the learned recognizer can recognize properties of regions, objects, and the like by classifying input data thereafter.
  • the map generation module 352, the location recognition module 353, and the obstacle recognition module 354 may be configured as one integrated module.
  • the driving control module 351 may control driving of the robot cleaner 100 and may control driving of the driving unit 360 according to driving settings.
  • the travel control module 351 may determine the travel path of the robot cleaner 100 based on the operation of the travel unit 360 .
  • the driving control module 351 can determine the current or past moving speed, the distance traveled, etc. of the robot cleaner 100 based on the rotational speed of the driving wheel 136, and the driving of the robot cleaner 100 determined in this way. Based on the information, the location of the robot cleaner 100 on the map may be updated.
  • the map generation module 352 may generate a map for the driving area.
  • the map generating module 352 may generate and/or update a map in real time based on acquired information while the robot cleaner 100 is driving.
  • the map generation module 352 may set a plurality of movement directions. For example, when a function for generating a map for a driving area (hereinafter, a map generating function) is executed, the map generation module 352 determines the direction in which the front of the robot cleaner 100 faces at the time the function is executed. It can be set as the first movement direction. In addition, the map generation module 352, at the time when the function is executed, sets the direction in which the left side of the robot cleaner 100 faces as the second movement direction, and the direction in which the right side of the robot cleaner 100 faces as the third movement direction, and the first A direction opposite to the direction toward which the rear surface of the robot cleaner 100 faces may be set as the fourth movement direction.
  • a function for generating a map for a driving area hereinafter, a map generating function
  • the map generating module 352 may create a map based on information acquired through the lidar sensor 175 .
  • the map generation module 352 may obtain topographical information of the driving area by analyzing a reception pattern such as a reception time difference and signal strength of a laser output through the lidar sensor 175 and received after being reflected from an external object.
  • the terrain information of the driving area may include, for example, the location, distance, direction, etc. of objects existing around the robot cleaner 100 .
  • the map generation module 352 may store information on a plurality of nodes while generating a grid map based on the terrain information of the driving area acquired through the lidar sensor 175, and such information may be used as first map data.
  • information on a plurality of nodes while generating a grid map based on the terrain information of the driving area acquired through the lidar sensor 175, and such information may be used as first map data.
  • the map generation module 352 divides the driving area into a plurality of sub-areas, and while driving for each sub-area, the cell data for the area with and without obstacles is different through the lidar sensor 175. You can create a grid map.
  • the location recognition module 353 may determine the location of the robot cleaner 100 .
  • the location recognition module 353 may determine the location of the robot cleaner 100 while the robot cleaner 100 is driving.
  • the location recognition module 353 may determine the location of the robot cleaner 100 based on the acquired image obtained through the image acquisition unit 320 .
  • the location recognition module 353 determines the characteristics of each location of the driving area detected from the acquired image based on the map data generated by the map generation module 352. It may be mapped to each location, and data on characteristics of each location of the driving area mapped to each location of the map may be stored in the storage unit 305 as location recognition data.
  • the location recognition module 353 compares the characteristics of the driving area detected from the acquired image with the characteristics of each location of the driving area included in the location recognition data stored in the storage unit 305, A similarity (probability) for each location may be calculated, and based on the calculated similarity (probability) for each location, a location having the greatest similarity may be determined as the location of the robot cleaner 100 .
  • the robot cleaner 100 extracts a feature from an image acquired through the image acquisition unit 320 and substitutes the extracted feature into a mapped grid map so that the robot cleaner ( 100) can be determined.
  • the robot cleaner 100 can determine the current location by learning the map through the driving control module 351, the map generating module 352 and/or the obstacle recognition module 354 without the location recognition module 353. may be
  • the obstacle recognition module 354 may detect obstacles around the robot cleaner 100 .
  • the obstacle recognition module 354 may be configured to obtain an image acquired through the image acquisition unit 320 and/or sensing data acquired through the sensor unit 370 to obtain obstacles around the robot cleaner 100. can detect
  • the obstacle recognition module 354 may detect obstacles around the robot cleaner 100 based on terrain information of a driving area acquired through the lidar sensor 175 .
  • the obstacle recognition module 354 may determine whether or not an obstacle obstructing the driving of the robot cleaner 100 exists while the robot cleaner 100 is driving.
  • the obstacle recognition module 354 may determine a driving pattern such as going straight or turning according to the property of the obstacle, and may transmit the determined driving pattern to the driving control module 351 .
  • the robot cleaner 100 may perform machine learning-based human and object recognition and avoidance.
  • machine learning may mean that a computer learns through data without a person directly instructing the computer with logic, and through this, the computer solves a problem on its own.
  • Deep learning is based on artificial neural networks (ANNs) for constructing artificial intelligence, and is a method of teaching computers how to think about humans. It can mean intelligence technology.
  • An artificial neural network (ANN) may be implemented in a software form or a hardware form such as a chip.
  • the obstacle recognition module 354 may include an artificial neural network (ANN) in the form of software or hardware in which attributes of obstacles are learned.
  • ANN artificial neural network
  • the obstacle recognition module 354 may include a deep neural network (DNN) such as a convolutional neural network (CNN), a recurrent neural network (RNN), and a deep belief network (DBN) learned through deep learning.
  • DNN deep neural network
  • CNN convolutional neural network
  • RNN recurrent neural network
  • DBN deep belief network learned through deep learning.
  • the obstacle recognition module 354 may determine the attribute of an obstacle included in input image data based on, for example, weights between nodes included in a deep neural network (DNN).
  • DNN deep neural network
  • the driving control module 351 may control the driving of the driving unit 360 based on the attributes of the recognized obstacle.
  • the storage unit 305 may store input data for obstacle attribute determination and data for learning the deep neural network (DNN).
  • the storage unit 305 may store the original image obtained by the image acquisition unit 320 and the extracted images from which a predetermined region is extracted.
  • the storage unit 305 may store weights and biases constituting a deep neural network (DNN) structure. For example, weights and biases constituting the deep neural network structure may be stored in an embedded memory of the obstacle recognition module 354 .
  • the obstacle recognition module 354 for example, whenever extracting a partial region of an image acquired by the image acquisition unit 320, uses the extracted image as training data to perform a learning process, or to perform a predetermined learning process. After acquiring more than the number of extracted images, a learning process may be performed.
  • the obstacle recognition module 354 updates a deep neural network (DNN) structure such as a weight by adding a recognition result whenever an obstacle is recognized, or training obtained after a predetermined number of training data is obtained.
  • DNN deep neural network
  • a deep neural network (DNN) structure such as weights can be updated by performing a learning process with data.
  • the robot cleaner 100 may transmit the original image or the extracted image obtained by the image acquisition unit 320 to a predetermined server through the communication unit 390 and receive data related to machine learning from the predetermined server. At this time, the robot cleaner 100 may update the obstacle recognition module 354 based on data related to machine learning received from a predetermined server.
  • FIG. 7 is a diagram referenced for description of a LiDAR sensor provided in a robot cleaner according to an embodiment of the present invention.
  • the lidar sensor 175 can output laser in all directions of 360 degrees, and by receiving the laser reflected from the object, the distance to the object that reflected the laser, the location direction, the material, etc. Information may be obtained, and topographical information of a driving area may be obtained.
  • the robot cleaner 100 may obtain terrain information within a certain distance according to the performance and settings of the lidar sensor 175 .
  • the robot cleaner 100 may obtain terrain information within a circular area 610 having a radius of a predetermined distance 610 based on the lidar sensor 175 .
  • the robot cleaner 100 obtains topographical information within the original area 610, and at this time, may obtain topographical information on a predetermined sub-region.
  • the terrain information of the lidar sensor 175 may store terrain information within the circular area 610 detected at each point where the robot cleaner 100 travels a predetermined distance or a predetermined time, and at this time, the stored information may be stored by matching with driving nodes (n1, n2%) that are the current location of the robot cleaner 100, which is the center of the corresponding circular area 610.
  • the robot cleaner 100 may extract an open space from terrain information about a sub-region acquired through the lidar sensor 175 .
  • the open space may refer to information about a space between objects reflecting a laser in which the robot cleaner 100 can run.
  • the robot cleaner 100 continuously reads the sensing data of the lidar sensor 175 for each driving node (n1, n2%) in the sub-area after the driving of the assigned sub-area is completed. casting) to perform an open space detection algorithm that checks whether there is an open space.
  • the robot cleaner 100 may extract an open space for the sub-area and may set an additional open node, that is, a point where the robot cleaner 100 may travel, with respect to the corresponding open space.
  • the robot cleaner 100 may generate a topology map for the driving nodes n1, n2... and open nodes of the robot cleaner 100 in one sub-region.
  • the information on the open space may include information about the driving nodes (n1, n2%) and driving direction of the robot cleaner 100 searching for the corresponding open space, and information on the width of the open space, and the open node finds the corresponding open node. It may include information about an open space and driving nodes n1, n2... of the robot cleaner 100.
  • the robot cleaner 100 may move to an open node of the topology map to set additional sub-regions, and complete the topology maps of a plurality of sub-regions for the entire driving region while driving until there are no more open nodes.
  • the robot cleaner 100 may detect the center point of the open space, set it as an open node, and drive along the open node in order to move along the center of the moving passage.
  • FIG. 8 is a flow chart of a map creation process of a robot cleaner according to an embodiment of the present invention
  • FIGS. 9A to 9E are diagrams showing a map creation process of the robot cleaner according to the flowchart of FIG. 8
  • FIG. 10 is It is a diagram showing a part of the final map of the robot cleaner according to the flowchart of FIG. 8 .
  • the robot cleaner 100 may generate a grid map while moving.
  • the robot cleaner 100 may divide the driving area into a plurality of sub areas.
  • the divided sub-region may be divided based on the driving distance or driving area, and may be an arbitrary region for forming a topology map of the moved region after moving for a predetermined distance or for a predetermined time.
  • the robot cleaner 100 travels for a predetermined distance or for a predetermined time in an unknown driving area for cleaning, which is not an area that is equally divided, the area traveled for that distance or for that time can be defined as one sub-region. there is.
  • the sub-region may be defined from the current position of the robot cleaner 100 until an obstacle is found in front, and may be set in various ways according to user settings.
  • the robot cleaner 100 While the robot cleaner 100 pre-drives to map an unknown driving area for cleaning (S100), the robot cleaner 100 collects lidar information of divided sub-regions through the lidar sensor 175 to generate a grid map, After detecting the open space in the grid map, a topology graph is created for each sub-region.
  • the robot cleaner 100 collects lidar information of the corresponding area through the lidar sensor 175 while traveling in the sub-area (S101), and the grid map of the sub-area through the collected lidar information.
  • generating (S102) detecting an open space for a plurality of points by performing ray casting with the LIDAR information on a path on the grid map (S103), generating an open node for the detected open space generating a topology graph (S104), moving from the current position to the next open node, and examining whether an open node occurs (S105), depending on whether there are other open nodes in the topology graph, different sub-regions It proceeds to a step of performing a search (S106).
  • control unit 350 of the robot cleaner 100 performs pre-driving for generating a cleaning map for a predetermined driving area from the outside or according to a set instruction (S100).
  • a point where driving is completed for a predetermined distance or for a predetermined time may be defined as a sub-region, and driving continues in the same direction D1 until driving to the corresponding sub-region is completed.
  • the robot cleaner 100 may obtain lidar information about the circular area 610 of 360 degrees from the lidar sensor 175 as shown in FIG. 9a (S101).
  • the collected LiDAR information may be collected from each of a plurality of driving nodes n1, n2, etc. located on the route.
  • the driving nodes (n1, n2%) may be set at equal intervals on the path, but are not limited thereto, and may be defined as points where the robot cleaner 100 is located at predetermined time intervals.
  • a virtual line to which the driving nodes (n1, n2%) are connected may function as a driving path (DP), but is not limited thereto.
  • the driving nodes (n1, n2%) set in one sub-region may have different numbers.
  • the robot cleaner 100 collects LIDAR information.
  • Each of the LIDAR information may be recorded in the storage unit 305 by matching with each traveling node (n1, n2).
  • Such LIDAR information may be information about a distance to an obstacle in the circular area 610, and may include information about a distance, location direction, material, and the like of an object that outputs a laser and reflects the laser.
  • the grid map as an Occupancy Grid Map (OGM), is a map using a grid generated by obtained local information.
  • OGM Occupancy Grid Map
  • the grid map is a map for recognizing the surrounding environment of the robot cleaner 100, and may refer to a map in which the sub area A is expressed as a grid or cells (hereinafter referred to as cells) of the same size and the presence or absence of objects is displayed in each cell. there is.
  • the presence or absence of an object may be displayed through color.
  • white cells may indicate an area without an object
  • gray cells may indicate an area with an object.
  • a line connecting gray cells may represent a boundary line (wall, obstacle, etc.) of a certain space.
  • the color of a cell can be changed through image processing.
  • the controller 350 may create a grid map while driving in the unknown sub-region A. Unlike this, the controller 350 may generate a grid map of the sub-area A after driving in the sub-area A is completed.
  • the grid map generating step (S102) can be set to generate a grid map while driving in the sub area (A).
  • the control unit 350 calculates a grid map based on lidar information of the lidar sensor 175 received for the corresponding driving node (n1, n2%) at a predetermined point, that is, the driving node (n1, n2). can create That is, the control unit 350 may generate a grid map within a sensing range of the lidar sensor 175 while a node is created and moved to the created node.
  • the sensing range of the lidar sensor 175 may deviate from the sub-region A.
  • the controller 350 Since the controller 350 generates a grid map based on LIDAR information received from each driving node (n1, n2%), the grid map can be sequentially updated as driving progresses. Accordingly, when the driving of the corresponding sub-region A is finally completed, the grid map may be finally updated and the final grid map may be stored in the storage unit.
  • the final grid map stored in this way includes the grid map of the corresponding sub area as shown in FIG. 9B, but grid maps for other areas may also be shown.
  • the controller 350 ray-casts lidar information for the corresponding sub-region (A) to determine the open space of the sub-region (A). Detect (S103).
  • the open space is formed by ray-casting (RS) the LIDAR information on the original area 610 obtained for each driving node (n1, n2%) in the entire section, thereby forming an open space in the corresponding driving node (n1, n2). , that is, determine whether there is an open space free of obstacles.
  • RS ray-casting
  • the presence or absence of an open space may be defined as a case where the distance between the lidar data obtained by reflection is greater than the width of the robot cleaner 100, but is not limited thereto, and has a value for the reference width, If there is a space having a wider width than the corresponding standard width, it can be set as an open space.
  • 360-degree ray casting is performed on lidar information received at each of a plurality of driving nodes (n1, n2%) on the route while driving in the sub-area (A). By doing so, it is possible to search the open space so that there is no missing direction.
  • the controller 350 determines whether each open space overlaps with the open space for other driving nodes (n1, n2%), and sets an open node for the corresponding open space for the overlapped final open space. do.
  • Such an open node may be set as a point located in the center of the final open space.
  • the controller 350 may determine the open space by applying various algorithms and set an open node accordingly, which will be described in detail later.
  • controller 350 generates a topology graph for the sub-region A (S104).
  • the topology graph can be created by connecting an open node set for an open space with the corresponding open nodes and corresponding driving nodes (n1, n2).
  • the open nodes n21, n22, n23, and n24 set for the sub-region A are displayed as a graph following the driving node n2 where the open node is found.
  • an open space obtained by performing 360-degree beam projection on one travel node n2 and a plurality of open nodes n21, n22, n23, and n24 may exist in fact.
  • one open node n21 may be connected to a plurality of driving nodes n1 and n2.
  • the topology graph formed in this way may be illustrated as shown in FIG. 9E, for example, and unnamed blocks are defined as obstacles.
  • the driving nodes n1, n2... and the open nodes n21, n22, n23, n24 may be matched in a parent-children relationship. there is.
  • the open node is changed to a driving node, that is, to a closed node. While changing, it is possible to complete the topology graph for the corresponding sub-region (A) (S105).
  • the topology graph when creating a topology graph while setting the sub-area A at each open node, the topology graph can be created while determining whether the sub-area A overlaps.
  • a cleaning map for the entire driving region may be created by collecting them.
  • the cleaning map for the entire cleaning area may be generated by generating topology graphs for each small area and collecting them to increase the accuracy of the cleaning map.
  • a cleaning map for the entire area can be created without missing open space.
  • the topology graph according to the present invention may have values as shown in FIG. 10 .
  • the topology graph for each subregion may have a graph connecting each driving node (n1, n2, n3...) and at least one open node (n31,,,,) corresponding thereto with a straight line. Information about the width of the open space can be recorded for each open node.
  • the topology graph may be stored in the storage unit 305 by matching the width of the open space.
  • controller 350 of the robot cleaner 100 may perform various algorithms to search for an open space.
  • FIG. 11 is a flow chart for searching for an open node in FIG. 8
  • FIGS. 12A and 12B are diagrams illustrating a non-step open space of FIG. 11, and
  • FIGS. 13A and 13B are a step open space of FIG. 11 14A and 14B are views showing another embodiment when the stepped open space of FIG. 11 is used.
  • the search for an open space starts by executing an open space detection algorithm with respect to the obtained grid map of the corresponding sub-region A (S201).
  • ray casting is performed with LIDAR information received from each driving node (n1, n2%) along a given path (S202).
  • FIGS. 12A and 12B are diagrams showing the determination of the control unit 350 in the case of a non-stepped open space.
  • one obstacle 301 and another obstacle 302 are at the same distance from each other at the current position n1 of the robot cleaner 100 with respect to the open space between the obstacles 301 and 302. means located. Accordingly, a step does not occur between one obstacle 301 and another obstacle 302 .
  • the distance between one obstacle 301 and the other obstacle 302 constituting an open space in the first driving node n1, which is the current position of the robot cleaner 100, is equal to each other.
  • the width w1 of the non-stepped open space is calculated as shown in FIG. 12A (S205).
  • the non-stepped open space is defined as a movable potential open space.
  • the central area of the width of the open space is set as an open node n11 for the open space (S206).
  • a search for the open space n11 may be additionally performed as shown in FIG. 12B (S207).
  • the controller 350 stores information about the searched open space and the set open node n11, and matches and stores the width w1 of the open space and the travel node n1 where it is found.
  • the open space is not a non-stepped open space, that is, when there is a difference in distance between one obstacle 301 and another obstacle 303 constituting the open space and the robot cleaner 100
  • the corresponding open space It is defined as a stepped open space.
  • one obstacle 301 may protrude from the current driving node n2 relative to the other obstacle 303 .
  • the stepped opening space can be set in two cases as shown in FIGS. 13 and 14 .
  • FIGS. 13A and 13B show an open space that occurs backward with respect to the traveling direction caused by the sudden widening of the width of the traveling passage, and forwardly with respect to the traveling direction caused by the sudden narrowing of the width of the traveling passage.
  • the resulting open space is shown in Figures 14a and 14b.
  • the controller 350 compares the width w2 of the step with the width of the robot cleaner 100 or the reference width (S208).
  • the corresponding open space may be defined as a potential open space.
  • the controller 350 may set the open node n22 in the central area of the open space (S209).
  • the open node n21 is an extension node located at the intersection of the current driving node n2 and the vertical line VL on the center line CL of the width of the open space, unlike the previous open node for the non-stepped open space ( n21).
  • the robot cleaner 100 may perform ray casting on LIDAR information in the left direction, that is, in the direction from the open node n21 toward the open space, as shown in FIG. 13B at the set open node n21 (S210). ).
  • the ray casting operation can be reduced by performing the ray casting only in the dichotomy facing the open space.
  • the robot cleaner 100 after registering the set open node n22 in the topology graph, the robot cleaner 100 performs ray casting on lidar information in the right direction, that is, in the direction from the open node n22 to the open space. can be done
  • the ray casting operation can be reduced by performing the ray casting only in the dichotomy facing the open space.
  • control unit 350 when searching for an open node, may perform duplicate removal on open nodes in a plurality of driving nodes n1, n2....
  • FIG. 15 is a diagram showing another flow chart for searching for an open node of FIG. 8
  • FIG. 16 is a diagram showing the search of the robot cleaner 100 showing the operation of FIG. 15, and
  • FIG. It is a drawing for explaining the process for.
  • 15 to 17 show another example of a method of setting open spaces and open nodes from a grid map.
  • an open space detection algorithm is executed on the obtained grid map of the corresponding sub-region A (S301).
  • ray casting is performed by searching for LIDAR information received from each traveling node (n1, n2 %) along the given path (S302).
  • each travel node (n1, n2%) For example, if an open space is not found by performing ray casting at the first travel node (n1), the second travel node (n2) moved by a predetermined distance ) performs ray casting on the LIDAR information obtained again.
  • the traveling nodes (n0, n1, and n2) are moved by the continuous running of the robot cleaner 100, that is, the open spaces that are not found in the 0th traveling node (n0) of FIG. 16A are the first and second open spaces. It can be found at 2 travel nodes (n1, n2). In addition, such an open space may pass without being found again when reaching the third driving node n3.
  • an open node may be set for an open space B parallel to the passage.
  • the open space (D) parallel to the passage (DP) to the rear of the third open space (C) is searched. , it is determined that the fourth open space D exists behind the third open space C.
  • control unit 350 sets the central point of the fourth open space D behind the third open space C to the first open node for the first traveling node n1. (n11) is set (S303).
  • control unit 350 performs ray casting on the second travel node n2, which is different from the first travel node n1, and proceeds in the travel direction from the first travel node n1, for example, while performing ray casting on the same third travel node. It is determined whether the open space (C) is searched, and then it is determined whether the fourth open space (D) is also searched.
  • the second open node (n21) is set in the central area of the fourth open space (D) based on the second traveling nodes (n1, n2...) (S304).
  • the first open node n11 and the second open node n22 may have different absolute positions.
  • control unit 350 compares the width W3 of the third open space C and the width W4 of the fourth open space D with each other, and if they are within the similar range, the first open node n11 and Each predetermined range is set around the second open node n21.
  • the predetermined range of the first open node n11 may be defined as a circle whose diameter is the width W3 of the third open space C centered on the first open node n11
  • the second open node The predetermined range of (n21) may be defined as a circle whose diameter is the width W3 of the third open space C centered on the second open node n21.
  • the area of the area E overlapping the predetermined range of the first open node n11 and the predetermined range of the second open node n21 is calculated (S305).
  • the controller 350 determines that the first open node n11 and the second open node n21 are the same when the area of the overlapping region E is greater than or equal to the threshold value.
  • the threshold value may satisfy 1/2 or 2/3 of a predetermined range for each open node, and may be set in various ways without being limited thereto.
  • the controller 350 determines that the first open node n11 and the second open node n21 are the same, the center of the width W4 of the fourth open space D with respect to the two open nodes n11 and n21.
  • One open node (n11, n21) adjacent to is maintained, and the other open node (n11, n21) is deleted (S306).
  • the first open node n11 remains and the second open node n21 is deleted.
  • overlapping open nodes can be removed by comparing ray casting results at different driving nodes (n1, n2%) with respect to spaces of the grid map that do not correspond to the non-stepped open space or the stepped open space.
  • the controller 350 may form topology graphs for each of the open spaces and open nodes, and may complete the topology graph for the entire driving area by connecting topology graphs for a plurality of sub-regions.
  • Such a topology graph may function as a basic map forming a cleaning map.
  • the controller 350 can check the relationship between nodes by referring to the grid map and the topology graph, and can set an optimal path.
  • control unit 350 can fuse image data to a corresponding grid map and convert it into an image.
  • the robot cleaner 100 may set an optimal path based on the grid map and the topology graph imaged at the current location of the robot cleaner 100 .
  • the method for generating the topology graph formed in this way has the following effects.
  • FIG. 18A shows an open space search according to a comparative example
  • FIG. 18B shows an open space search according to the present invention
  • FIG. 19A shows a plurality of open space searches according to a comparative example
  • FIG. 19B shows an open space search according to a comparative example
  • 20A shows an unsearched area according to a comparative example
  • FIG. 20B shows an open space searched for according to the present invention.
  • FIGS. 18A, 19A, and 20A illustrate a control method for discovering an open space and generating an open node based on a real-time sensing result
  • FIGS. 18B, 19B, and 20B show predetermined A grid map is acquired while driving in a sub-area, and ray casting is performed on the sub-area to set an open space and an open node.
  • the search for an open space through ray casting in the grid map according to the embodiment of the present invention of FIG. 19B is removed by determining whether a plurality of open nodes overlap, unlike the discovery according to the real-time sensing of the comparative example of FIG. 19A. An open node occurs.
  • an open space that is passed without being discovered occurs, whereas in the case of the present invention, an additional open space formed behind the open space is searched without omission, as shown in FIG. 20b. Therefore, an open space that is omitted does not occur by setting an open node for this purpose.
  • the robot cleaner 100 according to the present invention is not limited to the configuration and method of the embodiments described above, but all or part of each of the embodiments is optional so that various modifications can be made. It may be configured in combination with.
  • control method of the robot cleaner 100 can be implemented as a processor-readable code on a processor-readable recording medium.
  • the processor-readable recording medium includes all types of recording devices in which data readable by the processor is stored. Also, it includes those implemented in the form of a carrier wave such as transmission through the Internet.
  • the processor-readable recording medium is distributed in computer systems connected through a network, so that the processor-readable code can be stored and executed in a distributed manner.
  • Image acquisition department 320

Landscapes

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

Abstract

In order to achieve the purpose, a robotic cleaner according to an aspect of the present invention comprises: a traveling unit for moving a body in a traveling area; a distance measuring sensor for acquiring distance sensing information about a distance to an object outside the body; and a control unit which generates a grid map about the traveling area from the distance sensing information, performs, when dividing the traveling area into a plurality of sub-areas, ray casting on a plurality of traveling nodes on a path of the grid map with respect to each sub-area to search for an open space, and sets an open node for the open space to calculate a topology graph between the traveling nodes and the open node. Therefore, efficiency can be improved by minimizing unnecessary traveling when traveling for searching for a space in which additional traveling is required. Furthermore, avoidance traveling can be reduced by setting the cleaner to travel along the center of a passage during additional search traveling.

Description

로봇 청소기 및 로봇 청소기의 제어방법Robot cleaner and control method of robot cleaner
본 발명은, 이동 로봇, 구체적으로 로봇 청소기 및 로봇 청소기의 제어방법에 관한 것으로, 보다 자세하게는 주행 맵 생성을 위한 로봇 청소기의 감지 및 그에 따른 제어 기술에 관한 것이다.The present invention relates to a mobile robot, specifically a robot cleaner and a method for controlling the robot cleaner, and more particularly, to a robot cleaner detection and control technology for generating a driving map.
봇의 대표적인 예는 로봇 청소기이다.A typical example of a bot is a robot vacuum cleaner.
로봇 청소기에 구비된 여러 센서를 통하여 로봇 청소기 주변의 환경 및 사용자를 감지하는 여러 기술들이 알려져 있다. 또한, 로봇 청소기가 스스로 청소 구역을 학습하여 맵핑하고, 맵 상에서 현재 위치를 파악하는 기술들이 알려져 있다. 청소 구역을 기설정된 방식으로 주행하며 청소하는 로봇 청소기가 알려져 있다.Various technologies are known for sensing an environment around the robot cleaner and a user through various sensors provided in the robot cleaner. In addition, technologies are known in which a robot cleaner learns and maps a cleaning area by itself and determines a current location on a map. A robot cleaner that cleans while driving in a cleaning area in a preset manner is known.
청소 등 설정된 작업을 수행하기 위해서는 주행 구역의 맵(map)을 정확하게 생성하고, 주행 구역 내의 어느 위치로 이동하기 위해서 맵 상에서 로봇 청소기의 현재 위치를 정확하게 파악할 수 있어야 한다. In order to perform set tasks such as cleaning, a map of the driving area must be accurately created, and the current location of the robot cleaner on the map must be accurately identified in order to move to a location within the driving area.
종래기술(한국 공개특허공보 제10-2010-0031878호)의 경우, 로봇 청소기가 미지의 환경을 탐색할 때 획득되는 영상으로부터 추출되는 특징점들의 위치의 불확실도에 기반하는 경로를 생성하고, 생성된 경로에 따라 주행하는 기술을 개시한다. 특징점들의 불확실도에 기반하는 경로는 로봇 청소기의 특징점 지도의 정확성을 높이거나 자기 위치 인식의 정확도를 높이기 위해 생성된다.In the case of the prior art (Korean Patent Laid-Open Publication No. 10-2010-0031878), a path based on the uncertainty of the location of feature points extracted from an image obtained when a robot cleaner searches an unknown environment is generated, and the path is generated. According to the driving technology is disclosed. A path based on the uncertainty of the feature points is generated to increase the accuracy of the robot cleaner's feature point map or self-position recognition accuracy.
또한, 다른 종래기술 (한국 공개특허공보 2021-0009011호)은 청소 시에 주행을 위한 맵 작성을 위해 탐색 주행을 실시하는 것이 개시되어 있다.In addition, another prior art (Korean Patent Laid-Open Publication No. 2021-0009011) discloses performing search driving to create a map for driving during cleaning.
이와 같은 다른 종래기술에는, 맵 작성을 위한 탬색 주행 시에 미지의 영역의 주행을 위해 실시간 센싱 범위 내에 있는 데이터를 획득하여 그에 따라 노드를 설정하고, 노드 정보에 의해 그리드 맵을 산출하게 된다. 이와 같은 그리드 맵에 대하여 영상데이터에 의한 경계를 탐색하여 업데이트되는 최종 그리드 맵을 제공함으로써 맵 정보를 생성한다.In this other prior art, data within a real-time sensing range is obtained for driving in an unknown area during search driving for map creation, nodes are set accordingly, and a grid map is calculated based on the node information. Map information is generated by providing a final grid map that is updated by searching for a boundary based on image data for such a grid map.
그러나, 이와 같은 다른 종래기술로는 로봇이 주행하면서 실시간으로 센싱 범위 내에 있는 데이터만을 획득하고, 그를 기초로 기초 맵을 생성하므로, 이미지에서 찾은 경계에 대해 현재 로봇 위치에서 그 경계 사이에 주행이 가능하지 않은 장애물들이 발생할 수 있는 위험이 있다.However, in this other prior art, since the robot acquires only data within the sensing range in real time while driving and creates a basic map based on it, it is possible to travel between the current robot position and the boundary with respect to the boundary found in the image. There is a risk that unprepared obstacles may arise.
또한, 다른 종래기술에서는 로봇이 주행을 하면서 추가 탐색이 필요한 위치에서 경로 상에 토폴로지 노드를 추가하여 추후 탐색 주행이 필요함을 표시하게 된다.In addition, in another prior art, a topology node is added to a route at a location where additional search is required while the robot is driving, so that the need for further search and driving is indicated.
그러나, 종래기술에서는 추가 탐색이 필요한 곳에 주행 경로 상에 노드를 생성 시 그 노드에 추가 주행이 필요한 방향을 구간을 나눠 표시하게 되는데, 초기 로봇의 방향이 건물 내부의 구조물과 추가 주행 방향의 각도가 맞지 않으면 방향 설정이 어긋나 주행이 어려운 문제가 발생한다.However, in the prior art, when a node is created on a driving route where additional search is required, the direction in which additional driving is required is divided into sections and displayed at the node. If it does not fit, the direction setting will be misaligned, resulting in difficult driving problems.
[선행기술문헌][Prior art literature]
[특허문헌][Patent Literature]
(특허문헌 1) 한국 공개특허 제10-2010-0031878호 A(Patent Document 1) Korean Patent Publication No. 10-2010-0031878 A
(특허문헌 2) 한국 공개특허 제10-2021-0009011호 A(Patent Document 2) Korean Patent Publication No. 10-2021-0009011 A
상기 문제점을 해결하기 위해 본 발명의 목적은, 주행이 필요한 공간에 대한 탐색 주행 시 불필요한 주행을 최소화할 수 있는 맵 생성 방법을 제공하는 것이다.In order to solve the above problems, an object of the present invention is to provide a map generation method capable of minimizing unnecessary driving when searching for a space requiring driving.
앞서 설명한 바와 같이, 한국 공개특허 제10-2021-0009011호에서는 실시간 감지정보를 기초로 실시간으로 그리드 맵을 생성하고, 토폴로지 맵을 생성하게 되므로 현재 위치에서 바로 추가적인 탐색 주행이 필요한 영역을 향해 방향 설정을 수행한다.As described above, Korean Patent Publication No. 10-2021-0009011 generates a grid map and a topology map in real time based on real-time detection information, so the direction is set from the current location toward an area that requires additional search driving. Do it.
그러나, 현재 로봇 위치가 통로의 정 중앙에 위치하지 않고 벽을 따라 주행하는 등의 주행이 빈번하여 추가적인 탐색 주행이 통로에 맞닿도록 이루어질 수 있다. 즉, 이와 같은 경우 경로 변경으로 인한 장애물과의 충돌을 방지하기 위한 회피 주행이 진행되어 소모적인 모션이 발생하게 된다. 본 발명의 다른 과제는 이와 같은 추가적인 탐색 주행 시에 통로의 중앙으로 주행하도록 설정함으로써 회피 주행을 감소할 수 있는 제어 방법을 제공하는 것이다.However, since the current location of the robot is not located at the exact center of the aisle and the robot travels along a wall frequently, an additional search run may be made to come into contact with the aisle. That is, in this case, avoidance driving is performed to prevent a collision with an obstacle due to a path change, resulting in a wasteful motion. Another object of the present invention is to provide a control method capable of reducing avoidance driving by setting the driving to the center of the aisle during such additional search driving.
본 발명의 또 다른 과제는 하나의 노드와 연결되는 다른 노드들 사이에 PARENT-CHILDREN 관계를 부여하여, 하나의 페어런트 노드에서 이동할 차일드 노드를 선택 시, 각 차일드 노드의 개방 폭을 서로 비교함으로써 최대로 넓은 폭을 가지는 탐색 공간으로 먼저 진입하는 제어 방법을 제공하는 것이다. Another object of the present invention is to give a PARENT-CHILDREN relationship between one node and other nodes connected to it, and when selecting a child node to move from one parent node, by comparing the open widths of each child node with each other, the maximum It is to provide a control method for first entering a search space having a wide width.
이와 같은 우선 주행을 통해 슬램 성능을 향상시킬 수 있으며, 추후 진입하는 다른 노드들에 되도록 많은 정보를 먼저 제공할 수 있는 제어 방법을 제공한다.SLAM performance can be improved through such priority driving, and a control method capable of first providing as much information as possible to other nodes that enter later is provided.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 로봇 청소기는, 주행 구역 내에서 본체를 이동시키는 주행부; 상기 본체 외부의 물체와의 거리에 관한 거리 감지 정보를 획득하는 거리 측정 센서; 및 상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하고, 상기 주행 구역을 복수의 서브 영역으로 분할할 때, 각 서브 영역에 대하여 상기 그리드 맵의 경로 상에서 복수의 주행 노드에 대하여 레이 캐스팅을 수행하여 개방 공간을 탐색하고, 상기 개방 공간에 대한 개방 노드를 설정하여 상기 주행 노드와 상기 개방 노드 사이에 토폴로지 그래프를 산출하는 제어부를 포함한다.A robot cleaner according to an aspect of the present invention for achieving the above object includes a traveling unit for moving a main body within a traveling area; a distance measuring sensor that obtains distance sensing information about a distance to an object outside the main body; and when generating a grid map for the driving area from the distance detection information and dividing the driving area into a plurality of sub areas, ray casting is performed on a plurality of driving nodes on the path of the grid map for each sub area. and a control unit for performing a search for an open space, setting an open node for the open space, and calculating a topology graph between the driving node and the open node.
이와 같이 주행 구역을 복수의 서브 영역으로 구획하면서 각 서브 영역에 대한 정보를 수득하면 그에 대한 그리드 맵 및 토폴로지 그래프를 생성하게되어 실시간으로 노드 선택을 수행하지 않아 통로의 중앙으로 노드를 설정할 수 있다. In this way, when information on each sub-region is obtained while dividing the driving area into a plurality of sub-regions, a grid map and a topology graph are generated for the corresponding sub-regions, so that a node can be set at the center of the aisle without performing node selection in real time.
상기 거리 측정 센서는 상기 본체 외부의 물체에 광을 조사하고, 반사되는 광에 의해 상기 거리 감지 정보를 산출하는 라이다 센서를 포함할 수 있다.The distance measurement sensor may include a lidar sensor that irradiates light to an object outside the main body and calculates the distance detection information based on reflected light.
상기 서브 영역은 상기 로봇 청소기가 상기 주행 구역을 소정 시간 또는 소정 거리만큼 주행할 때의 면적으로 할당할 수 있다.The sub area may be allocated as an area when the robot cleaner travels in the driving area for a predetermined time or a predetermined distance.
상기 제어부는, 각각의 상기 서브 영역에 대한 상기 그리드 맵 내에서 복수의 주행 노드마다 레이 캐스팅을 실행하여 개방 공간을 탐색하고, 각각의 상기 개방 공간에 대한 상기 개방 노드를 설정할 수 있다.The controller may perform ray casting for each of a plurality of driving nodes in the grid map for each sub-region to search for an open space, and set the open node for each of the open spaces.
상기 제어부는 상기 개방 공간의 폭의 중앙 영역에 상기 개방 노드를 설정할수 있다.The controller may set the open node in a central region of the width of the open space.
상기 제어부는 상기 개방 공간이 단차가 없이 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 이격 거리 중앙 영역에 상기 개방 노드를 설정할 수 있다.When the open space is formed between two obstacles that are spaced apart without a step, the controller may set the open node in a central region of the separation distance between the two obstacles.
상기 제어부는 상기 개방 공간이 단차를 가지고 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 중앙선과 상기 주행 노드의 수직선의 교차점에 상기 개방 노드를 설정할 수 있다.When the open space is formed between two obstacles separated by a step, the controller may set the open node at an intersection of a center line between the two obstacles and a vertical line of the traveling node.
상기 제어부는, 상기 서브 영역에 대한 상기 토폴로지 그래프가 생성되면, 마지막 주행 노드의 상기 개방 노드 중 하나로 이동하고, 이동한 상기 개방 노드를 닫힌 노드로 변경한 후, 상기 토폴로지 그래프에 잔여하는 개방 노드로 이동하여 다른 서브 영역을 구획할 수 있다.When the topology graph for the sub-region is generated, the control unit moves to one of the open nodes of the last driving node, changes the moved open node to a closed node, and then moves to an open node remaining in the topology graph. It can be moved to partition another sub area.
상기 제어부는 상기 마지막 주행 노드의 복수의 개방 노드 중 폭이 가장 큰 개방 노드로 이동할 수 있다.The control unit may move to an open node having the largest width among a plurality of open nodes of the last driving node.
상기 제어부는, 상기 주행 노드에서 레이 캐스팅하여 상기 로봇 청소기의 주행이 가능하고, 상기 로봇 청소기가 기 주행하지 않은 공간을 개방 공간으로 판단할 수 있다.The control unit may determine that the robot cleaner is capable of driving by ray casting at the travel node and a space in which the robot cleaner is not previously driven is an open space.
상기 제어부는 상기 주행 노드를 중심으로 360도로 레이 캐스팅을 수행할 수 있다.The control unit may perform 360-degree ray casting around the traveling node.
상기 제어부는, 제1 주행 노드에 대하여 탐색된 일 개방 공간에 대하여 제1 개방 노드가 설정되고, 상기 제1 주행 노드와 다른 제2 주행 노드에 대하여 탐색된 다른 개방 공간에 대하여 제2 개방 노드가 설정되고, 상기 제1 개방 노드와 상기 제2 개방 노드가 중첩되는 것으로 판단되면, 중첩되는 제1 및 제2 개방 노드 중 하나를 삭제할 수 있다.The control unit sets a first open node for one open space searched for for the first travel node, and sets a second open node for another open space searched for for a second travel node different from the first travel node. and if it is determined that the first open node and the second open node overlap, one of the overlapping first and second open nodes may be deleted.
상기 제어부는, 상기 일 개방 공간과 상기 다른 개방 공간의 폭이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드의 중첩 여부를 판단할 수 있다.The controller may determine whether the first open node overlaps with the second open node when widths of the one open space and the other open space overlap by a predetermined range or more.
상기 제어부는, 상기 제1 개방 노드와 상기 제2 개방 노드를 중심으로 동일한 직경의 원을 생성하고, 각각의 원이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드가 동일한 개방 노드에 대한 것으로 판단할 수 있다.The control unit generates circles having the same diameter around the first open node and the second open node, and when each circle overlaps a predetermined range or more, the first open node and the second open node are the same open node. It can be judged to be about.
상기 제1 개방 노드와 상기 제2 개방 노드 중 상기 제1 및 제2 개방 노드가 위치하는 개방 영역의 중심 영역에 근접한 하나의 개방 노드를 남기고, 다른 개방 노드를 삭제할 수 있다.Among the first open node and the second open node, one open node adjacent to a central area of an open area where the first and second open nodes are located may be left, and another open node may be deleted.
상기 제어부는, 복수의 상기 서브 영역에 대한 상기 토폴로지 그래프를 서로 연결하여 상기 주행 구역에 대한 최종 토폴로지 그래프를 산출할 수 있다.The control unit may calculate a final topology graph for the driving area by connecting the topology graphs of the plurality of sub-regions to each other.
상기 제어부는 상기 그리드 맵을 이미지 처리하여 최종 맵을 산출할 수 있다.The control unit may process the grid map to calculate a final map.
한편, 실시예는 미지의 주행 구역을 이동하면서 본체 외부의 물체와의 거리에 대한 거리 감지 정보를 수득하는 단계; 상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하는 단계; 상기 주행 구역을 복수의 서브 영역으로 분할하고, 각각의 상기 서브 영역에 대하여 상기 그리드 맵의 경로 상에서 복수의 주행 노드에 대하여 레이 캐스팅을 수행하여 개방 공간을 탐색하는 단계; 상기 개방 공간에 대한 개방 노드를 설정하여 상기 서브 영역에 대한 상기 주행 노드와 상기 개방 노드 사이의 토폴로지 그래프를 생성하는 단계; 및 복수의 상기 서브 영역에 대한 상기 토폴로지 그래프를 서로 연결하여 상기 주행 구역에 대한 최종 토폴로지 그래프를 생성하는 단계를 포함하는 로봇 청소기의 제어 방법을 제공한다.On the other hand, the embodiment includes obtaining distance sensing information about a distance to an object outside the main body while moving in an unknown driving area; generating a grid map for the driving area from the distance detection information; dividing the driving area into a plurality of sub-regions, and searching an open space by performing ray casting on a plurality of driving nodes on a path of the grid map for each of the sub-regions; setting an open node for the open space and generating a topology graph between the driving node and the open node for the sub-area; and generating a final topology graph for the driving area by connecting the topology graphs of the plurality of sub-regions to each other.
상기 토폴로지 그래프를 생성하는 단계는, 상기 개방 공간이 단차가 없이 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 이격 거리 중앙 영역에 상기 개방 노드를 설정하고, 상기 개방 공간이 단차를 가지고 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 중앙선과 상기 주행 노드의 수직선의 교차점에 상기 개방 노드를 설정할 수 있다.The generating of the topology graph may include, when the open space is formed between two obstacles that are spaced apart without a step, setting the open node in a central region of the separation distance between the two obstacles, and determining that the open space has a step When it is formed between two obstacles spaced apart from each other, the open node may be set at an intersection of a center line between the two obstacles and a vertical line of the traveling node.
상기 토폴로지 그래프를 생성하는 단계는, 제1 주행 노드에 대하여 탐색된 일 개방 공간에 대하여 제1 개방 노드가 설정하고, 상기 제1 주행 노드와 다른 제2 주행 노드에 대하여 탐색된 다른 개방 공간에 대하여 제2 개방 노드가 설정하는 단계; 상기 일 개방 공간과 상기 다른 개방 공간의 폭이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드의 중첩 여부를 판단하는 단계; 상기 제1 개방 노드와 상기 제2 개방 노드를 중심으로 동일한 직경의 원을 생성하고, 각각의 원이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드가 동일한 개방 노드에 대한 것으로 판단하는 단계; 및 상기 제1 개방 노드와 상기 제2 개방 노드 중 상기 제1 및 제2 개방 노드가 위치하는 개방 영역의 중심 영역에 근접한 하나의 개방 노드를 남기고, 다른 개방 노드를 삭제하는 단계를 포함할 수 있다.The generating of the topology graph may include setting a first open space with respect to one open space searched for for the first traveling node and another open space searched for for a second traveling node different from the first traveling node. establishing a second open node; determining whether the first open node and the second open node overlap when widths of the one open space and the other open space overlap by a predetermined range or more; Circles having the same diameter are generated around the first open node and the second open node, and if each circle overlaps a predetermined range or more, it is determined that the first open node and the second open node correspond to the same open node. doing; and leaving one open node adjacent to a central area of an open area where the first and second open nodes are located among the first open node and the second open node, and deleting the other open node. .
본 발명에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.According to the present invention, there is one or more of the following effects.
첫째, 추가적인 주행이 필요한 공간에 대한 탐색 주행 시 불필요한 주행을 최소화하여 효율을 향상시킬 수 있다. First, efficiency can be improved by minimizing unnecessary driving when searching for a space requiring additional driving.
본 발명은 추가적인 탐색 주행 시에 통로의 중앙으로 주행하도록 설정함으로써 회피 주행을 감소시킬 수 있다.The present invention can reduce avoidance driving by setting the driving to the center of the aisle during additional search driving.
그리고, 하나의 페어런트 노드에서 이동할 차일드 노드를 선택 시, 각 차일드 노드의 개방 폭을 서로 비교함으로써 최대로 넓은 폭을 가지는 탐색공간으로 먼저 진입하여, 슬램 성능을 향상시킬 수 있으며, 추후 진입하는 다른 노드들에 되도록 많은 정보를 먼저 제공할 수 있다.In addition, when selecting a child node to move from one parent node, by comparing the opening widths of each child node with each other, it is possible to first enter the search space having the widest width, thereby improving SLAM performance, and other nodes that enter later You can provide as much information as possible to them first.
한편, 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.On the other hand, the effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.
도 1은 본 발명의 일 실시예에 따른 로봇 청소기 및 로봇 청소기를 충전시키는 충전대를 도시한 사시도이다. 1 is a perspective view illustrating a robot cleaner and a charging stand for charging the robot cleaner according to an embodiment of the present invention.
도 2는 도 1의 로봇 청소기를 상측에서 바라본 입면도이다.2 is an elevational view of the robot cleaner of FIG. 1 viewed from above.
도 3은 도 1의 로봇 청소기를 정면에서 바라본 입면도이다.3 is an elevational view of the robot cleaner of FIG. 1 viewed from the front;
도 4는 도 1의 로봇 청소기를 하측에서 바라본 입면도이다.4 is an elevational view of the robot cleaner of FIG. 1 viewed from a lower side.
도 5는, 본 발명의 다른 일 실시예에 따른, 로봇 청소기의 예시를 도시한 도면이다.5 is a diagram showing an example of a robot cleaner according to another embodiment of the present invention.
도 6은 도 1 또는 도 5의 로봇 청소기의 주요 구성들 간의 제어관계를 도시한 블록도이다.FIG. 6 is a block diagram illustrating a control relationship between main elements of the robot cleaner of FIG. 1 or 5 .
도 7은 본 발명의 일 실시예에 따른 로봇 청소기에 구비된 라이다 센서의 동작을 설명하는 도면이다.7 is a diagram illustrating an operation of a LiDAR sensor provided in a robot cleaner according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 로봇 청소기의 맵 생성 과정에 대한 플로우 차트이다.8 is a flowchart of a process of generating a map of a robot cleaner according to an embodiment of the present invention.
도 9a 내지 도 9e는 도 8의 순서도에 따른 로봇 청소기의 맵 생성 과정을 나태내는 도면이다. 9A to 9E are diagrams illustrating a process of generating a map of the robot cleaner according to the flowchart of FIG. 8 .
도 10은 도 8의 순서도에 따른 로봇 청소기의 토폴로지 그래프의 일부를 도시한 도면이다.FIG. 10 is a diagram showing a portion of a topology graph of a robot cleaner according to the flowchart of FIG. 8 .
도 11은 도 8의 개방 노드를 탐색하기 위한 순서도를 도시한 도면이다.FIG. 11 is a diagram showing a flowchart for searching open nodes of FIG. 8 .
도 12a 및 12b는 도 11의 비단차 개방 공간일 때를 나타내는 도면이다.12A and 12B are diagrams showing the non-stepped open space of FIG. 11 .
도 13a 및 도 13b는 도 11의 단차 개방 공간일 때의 일 실시예를 나타내는 도면이다.13A and 13B are diagrams illustrating an embodiment of the stepped open space of FIG. 11 .
도 14a 및 도 14b는 도 11의 단차 개방 공간일 때의 다른 실시예를 나타내는 도면이다.14A and 14B are diagrams illustrating another embodiment of the stepped open space of FIG. 11 .
도 15는 도 8의 개방 노드를 탐색하기 위한 다른 순서도를 도시한 도면이다.FIG. 15 is a diagram illustrating another flowchart for searching open nodes of FIG. 8 .
도 16은 도 15의 동작을 나타내는 로봇 청소기의 탐색을 도시한 도면이다.FIG. 16 is a diagram illustrating a search of a robot cleaner showing the operation of FIG. 15 .
도 17은 도 15의 중복 제거를 위한 과정을 설명하기 위한 도면이다.FIG. 17 is a diagram for explaining a process for deduplication of FIG. 15 .
도 18a는 비교예에 의한 개방 공간 탐색을 도시한 것이고, 도 18b는 본 발명에 의한 개방 공간 탐색을 도시한 것이다.18A shows an open space search according to a comparative example, and FIG. 18B shows an open space search according to the present invention.
도 19a는 비교예에 의한 복수의 개방 공간 탐색을 도시한 것이고, 도 19b는 본 발명에 의한 개방 공간 탐색 시의 중복 제거를 도시한 것이다.FIG. 19A shows a plurality of open space searches according to a comparative example, and FIG. 19B shows redundancy removal during an open space search according to the present invention.
도 20a는 비교예에 의한 미 탐색 영역을 나타낸 것이고, 도 20b는 본 발명에 의해 탐색되는 개방 공간을 도시한 것이다.20A shows an unsearched area according to a comparative example, and FIG. 20B shows an open space searched for according to the present invention.
본 설명 전체에 걸쳐 언어적/수학적으로 표현된 대소비교에 있어서, '작거나 같음(이하)'과 '작음(미만)'은 통상의 기술자 입장에서 서로 용이하게 치환가능한 정도이며, '크거나 같음(이상)'과 '큼(초과)'은 통상의 기술자 입장에서 서로 용이하게 치환가능한 정도이며, 본 발명을 구현함에 있어서 치환하여도 그 효과 발휘에 문제가 되지 않음은 물론이다.In the relative comparison expressed linguistically/mathematically throughout this description, 'less than or equal to (less than)' and 'less than (less than)' are degrees that can be easily substituted for each other from the point of view of a person skilled in the art, and 'greater than or equal to' (more)' and 'greater than (exceeding)' are degrees that can be easily substituted for each other from the standpoint of a person skilled in the art, and it is of course that there is no problem in exerting the effect even if they are substituted in implementing the present invention.
본 발명의 이동 로봇(100)은 바퀴 등을 이용하여 스스로 이동이 가능한 로봇을 의미하고, 가정 도우미 로봇 및 로봇 청소기 등이 될 수 있다.The mobile robot 100 of the present invention refers to a robot capable of moving by itself using wheels and the like, and may be a home helper robot and a robot vacuum cleaner.
도 1 내지 4는 본 발명의 일 실시예에 따른 로봇 청소기 및 로봇 청소기를 충전시키는 충전대의 외관을 도시한 도면이다.1 to 4 are views illustrating the appearance of a robot cleaner and a charging station for charging the robot cleaner according to an embodiment of the present invention.
도 1은 본 발명의 일 실시예에 따른 로봇 청소기 및 로봇 청소기를 충전시키는 충전대를 도시한 사시도이고, 도 2는 도 1의 로봇 청소기를 상측에서 바라본 입면도이고, 도 3은 도 1의 로봇 청소기를 정면에서 바라본 입면도이고, 도 4는 도 1의 로봇 청소기를 하측에서 바라본 입면도이다.1 is a perspective view showing a robot cleaner and a charging stand for charging the robot cleaner according to an embodiment of the present invention, FIG. 2 is an elevational view of the robot cleaner of FIG. 1 viewed from above, and FIG. 3 is the robot cleaner of FIG. 1 It is an elevation view viewed from the front, and FIG. 4 is an elevation view of the robot cleaner of FIG. 1 viewed from the lower side.
로봇 청소기(100)는 본체(110)를 포함한다. 이하, 본체(110)의 각부분을 정의함에 있어서, 주행구역 내의 천장을 향하는 부분을 상면부(도 2 참조)로 정의하고, 주행구역 내의 바닥을 향하는 부분을 저면부(도 4 참조)로 정의하고, 상기 상면부와 저면부 사이에서 본체(110)의 둘레를 이루는 부분 중 주행방향을 향하는 부분을 정면부(도 3 참조)라고 정의한다. 또한, 본체(110)의 정면부와 반대 방향을 향하는 부분을 후면부로 정의할 수 있다. 본체(110)는 로봇 청소기(100)를 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다.The robot cleaner 100 includes a body 110. Hereinafter, in defining each part of the main body 110, the part facing the ceiling in the driving area is defined as the upper part (see FIG. 2), and the part facing the floor in the driving area is defined as the bottom part (see FIG. 4). And, of the part forming the circumference of the body 110 between the upper and lower surfaces, the part facing the driving direction is defined as the front part (see FIG. 3). In addition, a portion facing the opposite direction to the front portion of the main body 110 may be defined as a rear portion. The main body 110 may include a case 111 forming a space in which various parts constituting the robot cleaner 100 are accommodated.
로봇 청소기(100)는 예를 들면, 본체(110)를 이동시키는 적어도 하나의 구동 바퀴(136)를 포함할 수 있다. 구동 바퀴(136)는 예를 들면, 구동 바퀴(136)에 연결된 적어도 하나의 모터(미도시)에 의해 구동되어 회전할 수 있다. The robot cleaner 100 may include, for example, at least one driving wheel 136 for moving the main body 110 . The driving wheel 136 may be driven and rotated by, for example, at least one motor (not shown) connected to the driving wheel 136 .
구동 바퀴(136)는 예를 들면, 본체(110)의 좌, 우측에 각각 구비될 수 있으며, 이하, 각각 좌륜(136(L))과 우륜(136(R))이라고 한다.The driving wheels 136 may be respectively provided on the left and right sides of the main body 110, for example, and are hereinafter referred to as a left wheel 136(L) and a right wheel 136(R), respectively.
좌륜(136(L))과 우륜(136(R))은 하나의 구동 모터에 의해 구동될 수도 있으나, 필요에 따라 좌륜(136(L))을 구동시키는 좌륜 구동 모터와 우륜(136(R))을 구동시키는 우륜 구동 모터가 각각 구비될 수도 있다. 좌륜(136(L))과 우륜(136(R))의 회전 속도에 차이를 두어 좌측 또는 우측으로 본체(110)의 주행방향을 전환할 수 있다.The left wheel 136(L) and the right wheel 136(R) may be driven by a single drive motor, but the left wheel drive motor and the right wheel 136(R) driving the left wheel 136(L) as needed ) may be provided respectively with a right wheel drive motor for driving. The running direction of the main body 110 can be switched to the left or right by making a difference between the rotation speeds of the left wheel 136 (L) and the right wheel 136 (R).
로봇 청소기(100)는 예를 들면, 이물질을 흡입하는 흡입 유닛(330), 비질을 수행하는 브러시(154, 155), 수거된 이물질을 저장하는 먼지통, 걸레질을 수행하는 걸레부 등을 포함할 수 있다.The robot cleaner 100 may include, for example, a suction unit 330 for sucking foreign substances, brushes 154 and 155 for sweeping, a dust bin for storing collected foreign substances, and a mop unit for wiping. there is.
예를 들면, 본체(110)의 저면부에는 공기의 흡입이 이루어지는 흡입구(150h)가 형성될 수 있으며, 본체(110) 내부에는 흡입구(150h)를 통해 공기가 흡입될 수 있도록 흡입력을 제공하는 흡입장치와, 흡입구(150h)를 통해 공기와 함께 흡입된 먼지를 집진하는 먼지통이 구비될 수 있다.For example, a suction port 150h through which air is sucked may be formed on the bottom of the main body 110, and a suction power is provided so that air can be sucked through the suction hole 150h inside the main body 110. A device and a dust bin may be provided to collect dust sucked together with air through the inlet 150h.
로봇 청소기(100)는 예를 들면, 로봇 청소기(100)을 구성하는 각종 부품들이 수용되는 공간을 형성하는 케이스(111)를 포함할 수 있다. 케이스(111)에는 먼지통의 삽입과 탈거를 위한 개구부(미도시)가 형성될 수 있고, 개구부를 여닫는 먼지통 커버(112)가 케이스(111)에 대해 회전 가능하게 구비될 수 있다.The robot cleaner 100 may include, for example, a case 111 forming a space in which various parts constituting the robot cleaner 100 are accommodated. An opening (not shown) for insertion and removal of the dust bin may be formed in the case 111 , and a dust box cover 112 that opens and closes the opening may be rotatably provided with respect to the case 111 .
로봇 청소기(100)는 예를 들면, 흡입구(150h)를 통해 노출되는 솔들을 갖는 롤형의 메인 브러시(154)와, 본체(110)의 저면부 전방 측에 위치하며, 방사상으로 연장된 다수개의 날개로 이루어진 솔을 갖는 보조 브러시(155)를 구비할 수 있다. 이들 브러시(154, 155)들의 회전에 의해 주행 구역 내 바닥으로부터 먼지들이 분리되며, 이렇게 바닥으로부터 분리된 먼지들은 흡입구(150h)를 통해 흡입되고, 흡입 유닛(330)을 통해 먼지통으로 유입될 수 있다.The robot cleaner 100 includes, for example, a roll-type main brush 154 having brushes exposed through a suction port 150h, a plurality of blades located on the front side of the bottom surface of the main body 110 and extending radially. An auxiliary brush 155 having a brush made of may be provided. The rotation of the brushes 154 and 155 separates dust from the floor in the driving area, and the dust separated from the floor is sucked in through the suction port 150h and introduced into the dust bin through the suction unit 330. .
먼지통의 필터 내지는 사이클론을 거치면서 공기와 먼지가 상호 분리될 수 있고, 분리된 먼지는 먼지통에 집진되며, 공기는 먼지통에서 배출된 후 본체(110) 내부의 배기유로(미도시)를 거쳐 최종적으로 배기구(미도시)를 통하여 외부로 배출될 수 있다.Air and dust may be separated from each other while passing through a filter or a cyclone in the dust bin, the separated dust is collected in the dust bin, and the air is discharged from the dust bin and finally passes through an exhaust passage (not shown) inside the main body 110. It may be discharged to the outside through an exhaust port (not shown).
배터리(138)는 예를 들면, 구동 모터 뿐만 아니라, 로봇 청소기(100)의 작동 전반에 필요한 전원을 공급할 수 있다. 한편, 배터리(138)가 방전될 시, 로봇 청소기(100)은 충전을 위해 충전대(200)로 복귀하는 주행을 실시할 수 있으며, 이러한 복귀 주행 중, 로봇 청소기(100)은 스스로 충전대(200)의 위치를 탐지할 수 있다.For example, the battery 138 may supply not only the driving motor, but also power necessary for the overall operation of the robot cleaner 100. On the other hand, when the battery 138 is discharged, the robot cleaner 100 may return to the charging station 200 for charging, and during this return driving, the robot cleaner 100 automatically moves to the charging station 200. location can be detected.
충전대(200)는, 예를 들면, 소정의 복귀 신호를 송출하는 신호 송출부(미도시)를 포함할 수 있다. 복귀 신호는, 예를 들면, 초음파 신호 또는 적외선 신호일 수 있으나, 반드시 이에 한정되는 것은 아니다.The charging station 200 may include, for example, a signal transmission unit (not shown) that transmits a predetermined return signal. The return signal may be, for example, an ultrasonic signal or an infrared signal, but is not necessarily limited thereto.
로봇 청소기(100)는 예를 들면, 복귀 신호를 수신하는 신호 감지부(미도시)를 포함할 수 있다. The robot cleaner 100 may include, for example, a signal detector (not shown) that receives a return signal.
예를 들면, 신호 감지부는 적외선 신호를 감지하는 적외선 센서를 포함할 수 있고, 충전대(200)의 신호 송출부로부터 송출된 적외선 신호를 수신할 수 있다. 이때, 로봇 청소기(100)은 충전대(200)로부터 송출된 적외선 신호에 따라 충전대(200)의 위치로 이동하여 충전대(200)와 도킹(docking)할 수 있다. 이러한 도킹에 의해 로봇 청소기(100)의 충전 단자(133)와 충전대(200)의 충전 단자(210)가 접촉될 수 있고, 배터리(138)가 충전될 수 있다.For example, the signal detection unit may include an infrared sensor for detecting an infrared signal, and may receive an infrared signal transmitted from the signal transmission unit of the charging station 200 . At this time, the robot cleaner 100 may move to the position of the charging station 200 according to the infrared signal transmitted from the charging station 200 and dock with the charging station 200 . Due to this docking, the charging terminal 133 of the robot cleaner 100 and the charging terminal 210 of the charging stand 200 may come into contact, and the battery 138 may be charged.
로봇 청소기(100)는 로봇 청소기(100)의 내/외부의 정보를 감지하는 구성을 구비할 수 있다. The robot cleaner 100 may have a configuration for sensing internal/external information of the robot cleaner 100 .
로봇 청소기(100)는 예를 들면, 주행 구역에 대한 영상 정보를 획득하는 카메라(120)를 구비할 수 있다. The robot cleaner 100 may include, for example, a camera 120 that obtains image information about a driving area.
예를 들면, 로봇 청소기(100)은, 본체(110) 전방의 영상을 획득하도록 구비되는 전면 카메라(120a)를 구비할 수 있다.For example, the robot cleaner 100 may include a front camera 120a provided to acquire an image of the front of the main body 110 .
예를 들면, 로봇 청소기(100)은, 본체(110)의 상면부에 구비되어, 주행 구역 내의 천장에 대한 영상을 획득하는 상부 카메라(120b)를 구비할 수 있다.For example, the robot cleaner 100 may include an upper camera 120b provided on an upper surface of the main body 110 to obtain an image of a ceiling in a driving area.
예를 들면, 로봇 청소기(100)은, 본체(110)의 저면부에 구비되어, 바닥의 영상을 획득하는 하부 카메라(179)를 더 구비할 수 있다.For example, the robot cleaner 100 may further include a lower camera 179 provided on the bottom of the main body 110 to obtain an image of the floor.
한편, 로봇 청소기(100)에 구비된 카메라(120)의 개수, 배치되는 위치와, 촬영범위 등이 반드시 이에 한정되어야 하는 것은 아니며, 주행 구역에 대한 영상 정보를 획득하기 위해 다양한 위치에 배치될 수 있다. On the other hand, the number of cameras 120 provided in the robot cleaner 100, the location where they are placed, and the shooting range are not necessarily limited thereto, and may be placed in various locations to obtain image information about the driving area. there is.
예를 들면, 로봇 청소기(100)는 본체(110)의 일면에 대하여 경사지게 배치되어 전방과 상방을 함께 촬영하도록 구성된 카메라(미도시)를 포함할 수도 있다. For example, the robot cleaner 100 may include a camera (not shown) configured to photograph both the front and the upper directions by being disposed obliquely with respect to one surface of the main body 110 .
예를 들면, 로봇 청소기(100)는 전면 카메라(120a) 및/또는 상부 카메라(120b)를 복수개 구비할 수도 있고, 전방과 상방을 함께 촬영하도록 구성된 카메라를 복수개 구비할 수도 있다.For example, the robot cleaner 100 may include a plurality of front cameras 120a and/or an upper camera 120b, or may include a plurality of cameras configured to photograph both the front and the top.
본 발명의 다양한 실시예에 따르면, 로봇 청소기(100)의 일부 부위(ex, 전방, 후방, 저면)에 카메라(120)가 설치되어 있으며, 주행 시나 청소 시에 영상을 지속적으로 획득할 수 있다. 이러한 카메라(120)는 촬영 효율을 위해 각 부위별로 여러 개가 설치될 수도 있고, 카메라(120)에 의해 촬상된 영상은 해당 공간에 존재하는 먼지, 머리카락, 바닥 등과 같은 물질의 종류 인식, 청소 여부, 또는 청소 시점을 확인하는데 사용될 수 있다.According to various embodiments of the present invention, a camera 120 is installed on some parts (eg, front, rear, bottom) of the robot cleaner 100, and images can be continuously obtained while driving or cleaning. Several cameras 120 may be installed for each part for shooting efficiency, and the image captured by the camera 120 recognizes the type of material such as dust, hair, floor, etc. present in the space, whether it is cleaned, Alternatively, it may be used to confirm the cleaning time.
로봇 청소기(100)은 레이저를 이용하여 본체(110) 외부의 지형 정보를 획득하는 라이다(light detection and ranging; LiDAR) 센서(175)를 포함할 수 있다.The robot cleaner 100 may include a light detection and ranging (LiDAR) sensor 175 that obtains terrain information of the outside of the main body 110 using a laser.
라이다 센서(175)는 레이저를 출력하고, 객체로부터 반사된 레이저를 수신함으로써, 레이저를 반사시킨 객체와의 거리, 위치 방향, 재질 등의 정보를 획득할 수 있고, 주행 구역의 지형 정보를 획득할 수 있다. 로봇 청소기(100)는 라이다 센서(175)를 통해 획득한 정보에 기초하여, 360도의 지형(geometry) 정보를 획득할 수 있다.The lidar sensor 175 outputs a laser and receives the laser reflected from the object, thereby obtaining information such as the distance to the object reflecting the laser, location direction, material, and the like, and obtaining terrain information of the driving area. can do. The robot cleaner 100 may acquire 360-degree geometry information based on information acquired through the lidar sensor 175 .
로봇 청소기(100)은 또한, 로봇 청소기(100)의 동작, 상태와 관련된 각종 데이터를 센싱하는 센서들(171, 172, 179)을 포함할 수 있다.The robot cleaner 100 may also include sensors 171 , 172 , and 179 for sensing various data related to the operation and state of the robot cleaner 100 .
로봇 청소기(100)는 전방의 장애물을 감지하는 장애물 감지센서(171), 주행 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(172) 등을 포함할 수 있다. The robot cleaner 100 may include an obstacle detection sensor 171 for detecting an obstacle in front, a cliff detection sensor 172 for detecting the presence or absence of a cliff on the floor within a driving area, and the like.
로봇 청소기(100)는 로봇 청소기(100)의 전원 온/오프(on/off) 등의 각종 명령을 입력할 수 있는 조작부(137)를 포함할 수 있고, 조작부(137)를 통해 로봇 청소기(100)의 작동 전반에 필요한 각종 제어 명령을 입력받을 수 있다. The robot cleaner 100 may include a control unit 137 capable of inputting various commands such as power on/off of the robot cleaner 100, and the robot cleaner 100 through the control unit 137. ) can receive various control commands necessary for the overall operation.
로봇 청소기(100)는 출력부(미도시)를 포함할 수 있고, 예약 정보, 배터리 상태, 동작모드, 동작상태, 에러상태 등을 표시할 수 있다. The robot cleaner 100 may include an output unit (not shown), and may display reservation information, battery status, operation mode, operation status, error status, and the like.
한편, 도 5는 본 발명의 다른 일 실시예에 따른, 로봇 청소기의 예시를 도시한 도면이다.Meanwhile, FIG. 5 is a diagram illustrating an example of a robot cleaner according to another embodiment of the present invention.
도 5에 도시된 로봇 청소기(100)는 도 1 내지 도 4에 개시된 로봇 청소기(100)와 동일 또는 유사한 구성들을 구비하며, 대면적의 공간에 적용가능한 로봇 청소기로서 기능한다. 이에 대한 상세한 설명은 생략한다. The robot cleaner 100 shown in FIG. 5 has the same or similar configurations as the robot cleaner 100 disclosed in FIGS. 1 to 4 , and functions as a robot cleaner applicable to a large-area space. A detailed description thereof will be omitted.
도 6은 본 발명의 실시예에 따른 로봇 청소기의 주요 구성들 간의 제어관계를 도시한 블록도이다.6 is a block diagram illustrating a control relationship between major components of a robot cleaner according to an embodiment of the present invention.
도 6을 참조하면, 로봇 청소기(100)는 저장부(305), 영상 획득부(320), 입력부(325), 흡입 유닛(330), 제어부(350), 주행부(360), 센서부(370), 출력부(380), 및/또는 통신부(390)를 포함할 수 있다.Referring to FIG. 6 , the robot cleaner 100 includes a storage unit 305, an image acquisition unit 320, an input unit 325, a suction unit 330, a control unit 350, a driving unit 360, a sensor unit ( 370), an output unit 380, and/or a communication unit 390.
저장부(305)는 로봇 청소기(100)의 제어에 필요한 각종 정보들을 저장할 수 있다. The storage unit 305 may store various types of information necessary for controlling the robot cleaner 100 .
저장부(305)는 휘발성 또는 비휘발성 기록 매체를 포함할 수 있다. 기록 매체는, 마이크로 프로세서(microprocessor)에 의해 읽힐 수 있는 데이터를 저장한 것으로, 그 종류나 구현 방식에 한정되지 않는다.The storage unit 305 may include a volatile or non-volatile recording medium. A recording medium stores data that can be read by a microprocessor, and is not limited to its type or implementation method.
저장부(305)는 주행 구역에 대한 맵(map)을 저장할 수 있다. 저장부(305)에 저장되는 맵은 로봇 청소기(100)과 유선 또는 무선 통신을 통해 정보를 교환할 수 있는 외부 단말기, 서버 등으로부터 입력된 것일 수도 있고, 로봇 청소기(100)이 스스로 학습을 하여 생성한 것일 수도 있다. The storage unit 305 may store a map for a driving area. The map stored in the storage unit 305 may be input from an external terminal or server capable of exchanging information with the robot cleaner 100 through wired or wireless communication, and the robot cleaner 100 learns by itself may have been created.
저장부(305)는 서브 영역에 대한 데이터를 저장할 수 있다. 여기서, 서브 영역은 주행 구역 상의 소정 거리 또는 소정 면적을 가지는 분할된 구역을 의미할 수 있다. 서브 영역에 대한 데이터는, 해당 서브 영역을 주행하면서 구하는 라이다 감지 데이터 및 해당 라이다 감지 데이터에 대한 각 노드 정보, 각 노드에서의 이동 방향에 대한 정보 등을 포함할 수 있다. The storage unit 305 may store data for the sub area. Here, the sub area may mean a divided area having a predetermined distance or a predetermined area on the driving area. The data for the sub-area may include lidar sensing data obtained while driving in the corresponding sub-area, information on each node for the corresponding lidar sensing data, and information on a moving direction at each node.
저장부(305)는 다양한 맵 정보를 저장할 수 있다.The storage unit 305 may store various map information.
맵에는 주행 구역 내의 방들의 위치가 표시될 수 있다. 또한, 로봇 청소기(100)의 현재 위치가 맵 상에 표시될 수 있으며, 맵 상에서의 로봇 청소기(100)의 현재의 위치는 주행 과정에서 갱신될 수 있다. The location of rooms within the driving area may be indicated on the map. Also, the current location of the robot cleaner 100 may be displayed on a map, and the current location of the robot cleaner 100 on the map may be updated during driving.
저장부(305)는 청소 이력 정보를 저장할 수 있다. 이러한 청소 이력 정보는 청소를 수행할 때마다 생성될 수 있다.The storage unit 305 may store cleaning history information. Such cleaning history information may be generated whenever cleaning is performed.
저장부(305)에 저장되는 주행 구역에 대한 맵(map)은 예를 들면, 청소 중 주행에 사용되는 내비게이션 맵(navigation map), 위치 인식에 사용되는 슬램(simultaneous localization and mapping; SLAM) 맵, 장애물 등에 부딪히면 해당 정보를 저장하여 학습 청소 시 사용하는 학습 맵, 전역적 위치 인식에 사용되는 전역적 위상 맵(topological map), 셀 데이터 기반의 그리드 맵(grid map), 인식된 장애물에 관한 정보가 기록되는 장애물 인식 맵 등일 수 있다. The map for the driving area stored in the storage unit 305 includes, for example, a navigation map used for driving during cleaning, a simultaneous localization and mapping (SLAM) map used for location recognition, When an obstacle is encountered, the corresponding information is stored and the learning map used for learning and cleaning, the global topological map used for global location recognition, the grid map based on cell data, and the information about the recognized obstacle are stored. It may be an obstacle recognition map that is recorded.
한편, 용도별로 저장부(305)에 맵들을 구분하여 저장, 관리할 수 있지만, 맵이 용도별로 명확히 구분되지 않을 수도 있다. 예를 들어, 적어도 2 이상의 용도로 사용할 수 있도록 하나의 맵에 복수의 정보가 저장될 수도 있다.Meanwhile, maps may be stored and managed by dividing them into the storage unit 305 for each purpose, but the maps may not be clearly classified for each purpose. For example, a plurality of pieces of information may be stored in one map so as to be used for at least two or more purposes.
영상 획득부(320)는 로봇 청소기(100)의 주변의 영상을 획득할 수 있다. 영상 획득부(320)는 적어도 하나의 카메라(예: 도 1의 카메라(120))를 구비할 수 있다. The image acquisition unit 320 may acquire an image of the robot cleaner 100's surroundings. The image acquisition unit 320 may include at least one camera (eg, the camera 120 of FIG. 1 ).
영상 획득부(320)는, 예를 들면, 디지털 카메라를 포함할 수 있다. 디지털 카메라는, 적어도 하나의 광학렌즈와, 광학렌즈를 통과한 광에 의해 상이 맺히는 다수개의 광다이오드(photodiode, 예를 들어, pixel)를 포함하여 구성된 이미지센서(예를 들어, CMOS image sensor)와, 광다이오드들로부터 출력된 신호를 바탕으로 영상을 구성하는 디지털 신호 처리기(digital signal processor; DSP)를 포함할 수 있다. 디지털 신호 처리기는, 예를 들면, 정지영상은 물론이고, 정지영상으로 구성된 프레임들로 이루어진 동영상을 생성하는 것도 가능하다.The image acquisition unit 320 may include, for example, a digital camera. A digital camera includes an image sensor (eg, CMOS image sensor) including at least one optical lens and a plurality of photodiodes (eg, pixels) forming an image by light passing through the optical lens. , a digital signal processor (DSP) that composes an image based on signals output from the photodiodes. The digital signal processor can, for example, generate not only still images, but also moving images composed of frames composed of still images.
영상 획득부(320)는 로봇 청소기(100)의 주행 방향 전면에 존재하는 장애물 또는 청소 영역의 상황을 촬영할 수 있다.The image acquisition unit 320 may capture an obstacle present in front of the robot cleaner 100 or a situation of the cleaning area.
본 발명의 일 실시예에 따르면, 영상획득부(320)는 본체(110) 주변을 연속적으로 촬영하여 복수의 영상을 획득할 수 있고, 획득된 복수의 영상은 저장부(305)에 저장될 수 있다.According to an embodiment of the present invention, the image acquisition unit 320 may obtain a plurality of images by continuously photographing the surroundings of the main body 110, and the obtained plurality of images may be stored in the storage unit 305. there is.
로봇 청소기(100)은 복수의 영상을 이용하여 장애물 인식의 정확성을 높이거나, 복수의 영상 중 하나 이상의 영상을 선택하여 효과적인 데이터를 사용함으로써 장애물 인식의 정확성을 높일 수 있다.The robot cleaner 100 may increase the accuracy of obstacle recognition by using a plurality of images or by selecting one or more images from among the plurality of images and using effective data.
입력부(325)는 사용자 입력을 수신할 수 있는 입력 장치(예: 키, 터치 패널 등)을 구비할 수 있다. 입력부(325)는 로봇 청소기(100)의 전원 온/오프(on/off) 등의 각종 명령을 입력할 수 있는 조작부(137)를 포함할 수 있다.The input unit 325 may include an input device (eg, a key, a touch panel, etc.) capable of receiving a user input. The input unit 325 may include a control unit 137 capable of inputting various commands such as power on/off of the robot cleaner 100.
입력부(325)는 입력장치를 통해 사용자 입력을 수신할 수 있고, 수신된 사용자 입력에 대응하는 명령을 제어부(350)에 전송할 수 있다.The input unit 325 may receive a user input through the input device and transmit a command corresponding to the received user input to the control unit 350 .
흡입 유닛(330)은 먼지가 포함된 공기를 흡입할 수 있다. 흡입 유닛(330)은, 예를 들면, 이물질을 흡입하는 흡입 장치(미도시), 비질을 수행하는 브러시(154, 155), 흡입장치나 브러시(예: 도 3의 브러시(154, 155))에 의해 수거된 이물질을 저장하는 먼지통(미도시), 공기의 흡입이 이루어지는 흡입구(예: 도 4의 흡입구(150h)) 등을 포함할 수 있다.The suction unit 330 may suck air containing dust. The suction unit 330 is, for example, a suction device (not shown) for sucking foreign substances, brushes 154 and 155 for sweeping, suction devices or brushes (eg, brushes 154 and 155 in FIG. 3) It may include a dust bin (not shown) for storing the collected foreign substances, a suction port through which air is sucked (eg, the suction port 150h of FIG. 4 ), and the like.
주행부(360)는 로봇 청소기(100)을 이동시킬 수 있다. 주행부(360)는, 예를 들면, 로봇 청소기(100)을 이동시키는 적어도 하나의 구동 바퀴(136)와, 구동 바퀴를 회전시키는 적어도 하나의 모터(미도시)를 포함할 수 있다.The traveling unit 360 may move the robot cleaner 100. The driving unit 360 may include, for example, at least one driving wheel 136 for moving the robot cleaner 100 and at least one motor (not shown) for rotating the driving wheel.
센서부(370)는 본체(110) 외부의 물체와의 거리를 측정하는 거리 측정 센서를 포함할 수 있다. 거리 측정 센서는 앞서 설명한 라이다 센서(175)를 포함할 수 있다. The sensor unit 370 may include a distance measuring sensor that measures a distance to an object outside the main body 110 . The distance measuring sensor may include the lidar sensor 175 described above.
본 발명의 일 실시예에 따른 로봇 청소기(100)는 라이다 센서(175)가 센싱한 객체들의 거리와 위치, 방향 등을 파악하여 맵을 생성할 수 있다.The robot cleaner 100 according to an embodiment of the present invention may generate a map by recognizing distances, positions, and directions of objects sensed by the lidar sensor 175.
본 발명의 일 실시예에 따른 로봇 청소기(100)는 외부에서 반사되어 수신되는 레이저의 시간차 또는 신호 강도 등 레이저 수신 패턴을 분석하여 주행 구역의 지형 정보를 획득할 수 있다. 또한, 로봇 청소기(100)은 라이다 센서(175)를 통하여 획득한 지형 정보를 이용하여 맵을 생성할 수 있다.The robot cleaner 100 according to an embodiment of the present invention may obtain terrain information of a driving area by analyzing a laser reception pattern, such as a time difference or signal strength of a laser reflected from the outside and received. In addition, the robot cleaner 100 may generate a map using terrain information acquired through the lidar sensor 175 .
예를 들어, 본 발명에 따른 로봇 청소기(100)는 라이다 센서(175)를 통하여 현재 위치에서 획득된 주변 지형 정보를 분석하여 이동 방향을 결정하는 라이다 슬램을 수행할 수 있다.For example, the robot cleaner 100 according to the present invention may perform a lidar slam for determining a moving direction by analyzing surrounding terrain information acquired from a current location through the lidar sensor 175 .
더욱 바람직하게는, 본 발명에 따른 로봇 청소기(100)는 카메라를 이용하는 비전 기반의 위치 인식과 레이저를 이용하는 라이다 기반의 위치 인식 기술 및 초음파 센서를 통해 장애물을 효과적으로 인식하고 변화량이 작은 최적의 이동 방향을 추출하여 맵 생성을 수행할 수 있다.More preferably, the robot cleaner 100 according to the present invention effectively recognizes an obstacle through vision-based location recognition using a camera, LIDAR-based location recognition technology using a laser, and an ultrasonic sensor, and performs optimal movement with a small change. Map generation can be performed by extracting directions.
센서부(370)는 전방의 장애물을 감지하는 장애물 감지센서(171), 주행 구역 내 바닥에 낭떠러지의 존재 여부를 감지하는 낭떠러지 감지센서(172) 등을 포함할 수 있다.The sensor unit 370 may include an obstacle detection sensor 171 for detecting an obstacle in front, a cliff detection sensor 172 for detecting the presence or absence of a cliff on the floor within a driving area, and the like.
장애물 감지센서(171)는 로봇 청소기(100)의 외주면에 일정 간격으로 복수개 배치될 수 있다. 장애물 감지센서(171)는 적외선 센서, 초음파 센서, RF(radio frequency) 센서, 지자기 센서, PSD(position sensitive device) 센서 등을 포함할 수 있다.A plurality of obstacle detection sensors 171 may be disposed on the outer circumferential surface of the robot cleaner 100 at regular intervals. The obstacle detection sensor 171 may include an infrared sensor, an ultrasonic sensor, a radio frequency (RF) sensor, a geomagnetic sensor, a position sensitive device (PSD) sensor, and the like.
장애물 감지센서(171)는 실내의 벽이나 장애물과의 거리를 감지하는 센서일 수 있고, 본 발명은 그 종류에 한정되지 않으나, 이하에서는 초음파 센서를 예시하여 설명한다. The obstacle detection sensor 171 may be a sensor that detects a distance to an indoor wall or an obstacle, and the present invention is not limited to that type, but an ultrasonic sensor will be described below as an example.
장애물 감지센서(171)는 로봇 청소기(100)의 주행(이동) 방향에 존재하는 물체, 특히 장애물을 감지하여 장애물 정보를 제어부(350)에 전달할 수 있다. 즉, 장애물 감지센서(171)는, 로봇 청소기(100)의 이동 경로, 로봇 청소기(100)의 전방이나 측면에 존재하는 돌출물, 집안의 집기, 가구, 벽면, 벽 모서리 등을 감지하여 그 정보를 제어부(350)에 전달할 수 있다.The obstacle detection sensor 171 may detect an object, particularly an obstacle, existing in the driving (moving) direction of the robot cleaner 100 and transmit obstacle information to the control unit 350 . That is, the obstacle detection sensor 171 detects the moving path of the robot cleaner 100, protrusions present on the front or side of the robot cleaner 100, household items, furniture, walls, wall corners, etc. It can be transmitted to the control unit 350.
센서부(370)는 로봇 청소기(100)의 주행 동작을 감지하고 동작 정보를 출력하는 주행 감지 센서(미도시)를 더 포함할 수 있다. 주행 감지 센서는 예를 들면, 자이로 센서(gyro sensor), 휠 센서(wheel sensor), 가속도 센서(acceleration sensor) 등을 포함할 수 있다.The sensor unit 370 may further include a driving detection sensor (not shown) for detecting a driving motion of the robot cleaner 100 and outputting motion information. The driving detection sensor may include, for example, a gyro sensor, a wheel sensor, and an acceleration sensor.
자이로 센서는 로봇 청소기(100)가 운전 모드에 따라 움직일 때 회전 방향을 감지하고 회전각을 검출할 수 있다. 자이로 센서는 로봇 청소기(100)의 각속도를 검출하여 각속도에 비례하는 전압 값을 출력할 수 있다. The gyro sensor may detect a rotation direction and a rotation angle when the robot cleaner 100 moves according to the driving mode. The gyro sensor may detect the angular velocity of the robot cleaner 100 and output a voltage value proportional to the angular velocity.
휠 센서는 구동 바퀴(136), 일 예로 도 4의 좌륜(136(L))과 우륜(136(R))에 연결되어 구동 바퀴(136)의 회전수를 감지할 수 있다. The wheel sensor may be connected to the driving wheel 136, for example, the left wheel 136(L) and the right wheel 136(R) of FIG. 4 to detect the number of revolutions of the driving wheel 136.
가속도 센서는 로봇 청소기(100)의 속도 변화를 검출할 수 있다. 가속도 센서는 구동 바퀴(136)의 인접한 위치에 부착될 수도 있고, 제어부(350)에 내장될 수도 있다.The acceleration sensor may detect a change in speed of the robot cleaner 100 . The acceleration sensor may be attached to a location adjacent to the driving wheel 136 or may be built into the control unit 350 .
출력부(380)는 오디오 신호를 출력하는 음향 출력부(381)를 포함할 수 있다. 음향 출력부는 제어부(350)의 제어에 따라 경고음, 동작모드, 동작상태, 에러상태 등의 알림 메시지, 사용자의 명령 입력에 대응하는 정보, 사용자의 명령 입력에 대응하는 처리 결과 등을 음향으로 출력할 수 있다. The output unit 380 may include an audio output unit 381 that outputs an audio signal. Under the control of the control unit 350, the sound output unit outputs a notification message such as a warning sound, an operation mode, an operation state, an error state, information corresponding to a user's command input, a processing result corresponding to a user's command input, and the like as sound. can
음향 출력부(381)는 제어부(150)로부터의 전기 신호를 오디오 신호로 변환하여 출력할 수 있다. 이를 위해, 스피커 등을 구비할 수 있다.The audio output unit 381 may convert an electrical signal from the control unit 150 into an audio signal and output the converted audio signal. To this end, a speaker or the like may be provided.
출력부(380)는 사용자의 명령 입력에 대응하는 정보, 사용자의 명령 입력에 대응하는 처리 결과, 동작모드, 동작상태, 에러상태 등을 영상으로 표시하는 디스플레이(382)를 포함할 수 있다. The output unit 380 may include a display 382 that displays information corresponding to a user's command input, a processing result corresponding to the user's command input, an operation mode, an operation state, an error state, and the like as images.
실시예에 따라서, 디스플레이(382)는 터치패드와 상호 레이어 구조를 이루어 터치스크린으로 구성될 수 있다. 이 경우에, 터치스크린으로 구성되는 디스플레이(382)는 출력 장치 이외에 사용자의 터치에 의한 정보의 입력이 가능한 입력 장치로도 사용될 수 있다. Depending on the embodiment, the display 382 may be configured as a touch screen by forming a mutual layer structure with the touch pad. In this case, the display 382 composed of a touch screen may be used as an input device capable of inputting information by a user's touch in addition to an output device.
통신부(390)는 적어도 하나의 통신 모듈(미도시)을 구비할 수 있고, 외부 기기와 데이터를 송수신할 수 있다. 로봇 청소기(100)과 통신하는 외부 기기 중 외부 단말기는, 예를 들면, 로봇 청소기(100)을 제어하기 위한 애플리케이션을 구비하고, 애플리케이션의 실행을 통해 로봇 청소기(100)이 청소할 주행 구역에 대한 맵을 표시하고, 맵 상에 특정 영역을 청소하도록 영역을 지정할 수 있다. The communication unit 390 may include at least one communication module (not shown) and may transmit/receive data with an external device. Among external devices communicating with the robot cleaner 100, the external terminal includes, for example, an application for controlling the robot cleaner 100, and a map of a driving area to be cleaned by the robot cleaner 100 through execution of the application. can be displayed, and an area can be designated to clean a specific area on the map.
통신부(390)는 와이파이(Wi-fi), 블루투스(bluetooth), 비콘(beacon), 지그비(zigbee), RFID(radio frequency identification) 등의 무선 통신 방식으로 신호를 송수신할 수 있다.The communication unit 390 may transmit and receive signals using a wireless communication method such as Wi-Fi, Bluetooth, beacon, zigbee, or radio frequency identification (RFID).
전원 공급부는 로봇 청소기(100)의 각 구성 요소들에 구동 전원과, 동작 전원을 공급할 수 있다.The power supply unit may supply driving power and operating power to each component of the robot cleaner 100 .
로봇 청소기(100)는 배터리(138)의 배터리 잔량, 충전 상태 등을 감지할 수 있고, 감지 결과를 제어부(350)에 전송하는 배터리 감지부(미도시)를 더 포함할 수 있다. The robot cleaner 100 may further include a battery detecting unit (not shown) capable of detecting the remaining battery capacity and charging state of the battery 138 and transmitting the detection result to the controller 350 .
제어부(350)는 로봇 청소기(100)에 구비된 각 구성과 연결될 수 있다. 제어부(350)는, 예를 들면, 로봇 청소기(100)에 구비된 각 구성과 상호 간에 신호를 송수신할 수 있고, 각 구성의 전반적인 동작을 제어할 수 있다.The control unit 350 may be connected to each component provided in the robot cleaner 100. The control unit 350, for example, can transmit/receive signals to and from each component provided in the robot cleaner 100 and control overall operations of each component.
제어부(350)는 센서부(370)를 통해 획득한 정보에 기초하여, 로봇 청소기(100)의 내/외부에 대한 상태를 판단할 수 있다. The control unit 350 may determine the state of the inside/outside of the robot cleaner 100 based on information obtained through the sensor unit 370 .
제어부(350)는 자이로 센서로부터 출력되는 전압 값을 이용하여 회전 방향 및 회전각을 산출할 수 있다.The controller 350 may calculate the rotation direction and rotation angle using the voltage value output from the gyro sensor.
제어부(350)는 휠 센서로부터 출력되는 회전수에 기초하여, 구동 바퀴(136)의 회전 속도를 연산할 수 있다. 또한, 제어부(350)는 좌륜(136(L))과 우륜(136(R))의 회전수 차이에 기초하여 회전각을 연산할 수도 있다.The controller 350 may calculate the rotational speed of the driving wheel 136 based on the rotational speed output from the wheel sensor. In addition, the controller 350 may calculate the rotation angle based on the difference in rotation speeds between the left wheel 136 (L) and the right wheel 136 (R).
제어부(350)는 가속도 센서로부터 출력되는 값에 기초하여, 로봇 청소기(100)의 출발, 정지, 방향 전환, 물체와의 충돌 등과 같은 로봇 청소기(100)의 상태 변화를 판단할 수 있다. 한편, 제어부(350)는 가속도 센서로부터 출력되는 값에 기초하여, 속도 변화에 따른 충격량을 검출할 수 있어, 가속도 센서는 전자식 범퍼 센서의 기능을 수행할 수도 있다. The controller 350 may determine a state change of the robot cleaner 100, such as starting, stopping, changing direction, or colliding with an object, based on a value output from an acceleration sensor. Meanwhile, the controller 350 may detect an amount of impact according to a change in speed based on a value output from the acceleration sensor, so the acceleration sensor may perform the function of an electronic bumper sensor.
제어부(350)는 초음파 센서를 통해 수신된 적어도 2 이상의 신호에 기초하여, 장애물의 위치를 감지하고, 감지된 장애물의 위치에 따라 로봇 청소기(100)의 움직임을 제어할 수 있다.The controller 350 may detect the position of the obstacle based on at least two signals received through the ultrasonic sensor, and control the movement of the robot cleaner 100 according to the detected position of the obstacle.
실시예에 따라서는, 로봇 청소기(100)의 외측면에 구비되는 장애물 감지 센서(131)는 발신부와 수신부를 포함하여 구성될 수 있다. Depending on the embodiment, the obstacle detection sensor 131 provided on the outer surface of the robot cleaner 100 may include a transmitter and a receiver.
예를 들면, 초음파 센서는 적어도 하나 이상의 발신부 및 적어도 둘 이상의 수신부가 서로 엇갈리도록 구비될 수 있다. 이에 따라, 발신부는 다양한 각도로 초음파 신호를 방사할 수 있고, 장애물에 반사된 초음파 신호를 적어도 둘 이상의 수신부가 다양한 각도에서 수신할 수 있다.For example, the ultrasonic sensor may include at least one transmitting unit and at least two or more receiving units to be crossed with each other. Accordingly, the transmitter may emit ultrasonic signals at various angles, and at least two or more receivers may receive ultrasonic signals reflected from obstacles at various angles.
실시예에 따라서는, 초음파 센서에서 수신된 신호는, 증폭, 필터링 등의 신호 처리 과정을 거칠 수 있고, 이후 장애물까지의 거리 및 방향이 산출될 수 있다.Depending on the embodiment, the signal received by the ultrasonic sensor may undergo a signal processing process such as amplification and filtering, and then the distance and direction to the obstacle may be calculated.
한편, 제어부(350)는 주행제어모듈(351), 지도생성모듈(352), 위치인식모듈(353) 및/또는 장애물인식모듈(354)을 포함할 수 있다. 본 도면에서는, 설명의 편의상, 주행제어모듈(351), 지도생성모듈(352), 위치인식모듈(353) 및/또는 장애물인식모듈(354)으로 구분하여 설명하나, 본 발명이 이에 한정되는 것은 아니다.Meanwhile, the controller 350 may include a driving control module 351, a map generating module 352, a location recognition module 353, and/or an obstacle recognition module 354. In this drawing, for convenience of description, the driving control module 351, the map generation module 352, the location recognition module 353 and / or the obstacle recognition module 354 are described separately, but the present invention is not limited thereto. not.
위치인식모듈(353)과 장애물인식모듈(354)은 하나의 인식기로써 통합되어 하나의 인식모듈(355)로 구성될 수 있다. 이 경우에, 머신 러닝 등의 학습 기법을 이용하여 인식기를 학습시키고, 학습된 인식기는 이후에 입력되는 데이터를 분류하여 영역, 사물 등의 속성을 인식할 수 있다.The location recognition module 353 and the obstacle recognition module 354 may be integrated as one recognizer to form one recognition module 355. In this case, the recognizer is trained using a learning technique such as machine learning, and the learned recognizer can recognize properties of regions, objects, and the like by classifying input data thereafter.
실시예에 따라서, 지도생성모듈(352), 위치인식모듈(353), 및, 장애물인식모듈(354)이 하나의 통합모듈로 구성될 수도 있다.Depending on the embodiment, the map generation module 352, the location recognition module 353, and the obstacle recognition module 354 may be configured as one integrated module.
주행제어모듈(351)은 로봇 청소기(100)의 주행을 제어할 수 있고, 주행 설정에 따라 주행부(360)의 구동을 제어할 수 있다.The driving control module 351 may control driving of the robot cleaner 100 and may control driving of the driving unit 360 according to driving settings.
주행제어모듈(351)은 주행부(360)의 동작을 바탕으로 로봇 청소기(100)의 주행 경로를 파악할 수 있다. 주행제어모듈(351)은 구동 바퀴(136)의 회전속도를 바탕으로 로봇 청소기(100)의 현재 또는 과거의 이동속도, 주행한 거리 등을 파악할 수 있으며, 이렇게 파악된 로봇 청소기(100)의 주행 정보를 바탕으로, 맵 상에서 로봇 청소기(100)의 위치가 갱신될 수 있다. The travel control module 351 may determine the travel path of the robot cleaner 100 based on the operation of the travel unit 360 . The driving control module 351 can determine the current or past moving speed, the distance traveled, etc. of the robot cleaner 100 based on the rotational speed of the driving wheel 136, and the driving of the robot cleaner 100 determined in this way. Based on the information, the location of the robot cleaner 100 on the map may be updated.
지도생성모듈(352)은 주행 구역에 대한 맵을 생성할 수 있다. The map generation module 352 may generate a map for the driving area.
지도생성모듈(352)은 로봇 청소기(100)이 주행하는 동안, 획득한 정보에 기초하여 맵을 실시간으로 생성 및/또는 갱신할 수 있다.The map generating module 352 may generate and/or update a map in real time based on acquired information while the robot cleaner 100 is driving.
지도생성모듈(352)은 복수의 이동 방향을 설정할 수 있다. 예를 들면, 지도생성모듈(352)은, 주행 구역에 대한 맵을 생성하는 기능(이하, 맵 생성 기능)이 실행되는 경우, 기능이 실행되는 시점에 로봇 청소기(100)의 전면이 향하는 방향을 제1 이동 방향으로 설정할 수 있다. 또한, 지도생성모듈(352)은 기능이 실행되는 시점에 로봇 청소기(100)의 좌측면이 향하는 방향을 제2 이동 방향, 로봇 청소기(100)의 우측면이 향하는 방향을 제3 이동 방향, 제1 방향의 반대 방향인 로봇 청소기(100)의 후면이 향하는 방향을 제4 이동 방향으로 설정할 수 있다.The map generation module 352 may set a plurality of movement directions. For example, when a function for generating a map for a driving area (hereinafter, a map generating function) is executed, the map generation module 352 determines the direction in which the front of the robot cleaner 100 faces at the time the function is executed. It can be set as the first movement direction. In addition, the map generation module 352, at the time when the function is executed, sets the direction in which the left side of the robot cleaner 100 faces as the second movement direction, and the direction in which the right side of the robot cleaner 100 faces as the third movement direction, and the first A direction opposite to the direction toward which the rear surface of the robot cleaner 100 faces may be set as the fourth movement direction.
한편, 본 도면에서는 복수의 이동 방향을 4개의 방향으로 설정되는 것으로 설명하나, 본 발명이 이에 한정되는 것은 아니며, 다양한 실시예에 따라, 8개, 16개 등 다양한 개수의 방향으로 설정될 수도 있다.On the other hand, although the plurality of movement directions are described as being set in four directions in this drawing, the present invention is not limited thereto, and according to various embodiments, various numbers of directions such as 8 and 16 may be set. .
지도생성모듈(352)은 라이다 센서(175)를 통해 획득한 정보에 기초하여 맵을 작성할 수 있다.The map generating module 352 may create a map based on information acquired through the lidar sensor 175 .
지도생성모듈(352)은 라이다 센서(175)를 통해 출력되고, 외부 객체에서 반사되어 수신되는 레이저의 수신 시간차, 신호 강도와 같은 수신 패턴을 분석하여, 주행 구역의 지형 정보를 획득할 수 있다. 주행 구역의 지형 정보는, 예를 들면, 로봇 청소기(100)의 주변에 존재하는 객체들의 위치, 거리, 방향 등을 포함할 수 있다.The map generation module 352 may obtain topographical information of the driving area by analyzing a reception pattern such as a reception time difference and signal strength of a laser output through the lidar sensor 175 and received after being reflected from an external object. . The terrain information of the driving area may include, for example, the location, distance, direction, etc. of objects existing around the robot cleaner 100 .
지도생성모듈(352)은 라이다 센서(175)를 통해 획득한 주행 구역의 지형 정보에 기초하여 그리드 맵을 생성하면서, 복수의 노드에 대한 정보를 저장할 수 있으며, 이와 같은 정보가 제1 맵 데이터로 정의될 수 있다. The map generation module 352 may store information on a plurality of nodes while generating a grid map based on the terrain information of the driving area acquired through the lidar sensor 175, and such information may be used as first map data. can be defined as
지도생성모듈(352)은 주행 구역에 대하여 복수의 서브 영역으로 분할하고, 각서브 영역에 대하여 주행하면서 라이다 센서(175)를 통해 장애물이 존재하는 영역과 존재하지 않는 영역에 대한 셀 데이터가 다른 그리드 맵을 생성할 수 있다.The map generation module 352 divides the driving area into a plurality of sub-areas, and while driving for each sub-area, the cell data for the area with and without obstacles is different through the lidar sensor 175. You can create a grid map.
위치인식모듈(353)은 로봇 청소기(100)의 위치를 판단할 수 있다. 위치인식모듈(353)은 로봇 청소기(100)이 주행하는 동안, 로봇 청소기(100)의 위치를 판단할 수 있다.The location recognition module 353 may determine the location of the robot cleaner 100 . The location recognition module 353 may determine the location of the robot cleaner 100 while the robot cleaner 100 is driving.
위치인식모듈(353)은 영상획득부(320)를 통해 획득한 획득 영상에 기초하여, 로봇 청소기(100)의 위치를 판단할 수 있다. The location recognition module 353 may determine the location of the robot cleaner 100 based on the acquired image obtained through the image acquisition unit 320 .
예를 들면, 위치인식모듈(353)은 로봇 청소기(100)가 주행하는 동안, 획득 영상으로부터 검출한 주행 구역의 각 위치에 대한 특징들을, 지도생성모듈(352)에서 생성된 맵 데이터를 기초로 각 위치에 맵핑(mapping)시킬 수 있고, 맵의 각 위치에 맵핑된 주행 구역의 각 위치에 대한 특징들에 대한 데이터를 위치인식 데이터로 저장부(305)에 저장할 수 있다.For example, while the robot cleaner 100 is driving, the location recognition module 353 determines the characteristics of each location of the driving area detected from the acquired image based on the map data generated by the map generation module 352. It may be mapped to each location, and data on characteristics of each location of the driving area mapped to each location of the map may be stored in the storage unit 305 as location recognition data.
한편, 위치인식모듈(353)은, 획득 영상으로부터 검출한 주행 구역에 대한 특징들과, 저장부(305)에 저장된 위치인식 데이터에 포함된, 주행 구역의 각각의 위치에 대한 특징들을 비교하여, 위치 별 유사도(확률)를 산출할 수 있고, 산출된 위치 별 유사도(확률)에 기초하여, 유사도가 가장 큰 위치를 로봇 청소기(100)의 위치로 판단할 수 있다.On the other hand, the location recognition module 353 compares the characteristics of the driving area detected from the acquired image with the characteristics of each location of the driving area included in the location recognition data stored in the storage unit 305, A similarity (probability) for each location may be calculated, and based on the calculated similarity (probability) for each location, a location having the greatest similarity may be determined as the location of the robot cleaner 100 .
본 발명의 일 실시예에 따르면, 로봇 청소기(100)은, 영상 획득부(320)를 통해 획득한 영상으로부터 특징을 추출하고, 상기 추출한 특징을 맵핑(mapping)된 그리드맵에 대입하여 로봇 청소기(100)의 위치를 판단할 수 있다.According to an embodiment of the present invention, the robot cleaner 100 extracts a feature from an image acquired through the image acquisition unit 320 and substitutes the extracted feature into a mapped grid map so that the robot cleaner ( 100) can be determined.
한편, 로봇 청소기(100)는 위치인식모듈(353) 없이 주행제어모듈(351), 지도생성모듈(352) 및/또는 장애물인식모듈(354)을 통해, 맵을 학습하여, 현재 위치를 판단할 수도 있다.On the other hand, the robot cleaner 100 can determine the current location by learning the map through the driving control module 351, the map generating module 352 and/or the obstacle recognition module 354 without the location recognition module 353. may be
장애물인식모듈(354)은 로봇 청소기(100)의 주변의 장애물을 감지할 수 있다. 예를 들면, 장애물인식모듈(354)은 영상 획득부(320)를 통해 획득한 획득 영상 및/또는 센서부(370)를 통해 획득한 센싱 데이터에 기초하여, 로봇 청소기(100)의 주변의 장애물을 감지할 수 있다.The obstacle recognition module 354 may detect obstacles around the robot cleaner 100 . For example, the obstacle recognition module 354 may be configured to obtain an image acquired through the image acquisition unit 320 and/or sensing data acquired through the sensor unit 370 to obtain obstacles around the robot cleaner 100. can detect
예를 들면, 장애물인식모듈(354)은, 라이다 센서(175)를 통해 획득한 주행 구역의 지형 정보에 기초하여, 로봇 청소기(100)의 주변의 장애물을 감지할 수 있다.For example, the obstacle recognition module 354 may detect obstacles around the robot cleaner 100 based on terrain information of a driving area acquired through the lidar sensor 175 .
장애물인식모듈(354)은 로봇 청소기(100)이 주행하는 동안, 로봇 청소기(100)의 주행을 방해하는 장애물이 존재하는지 여부를 판단할 수 있다.The obstacle recognition module 354 may determine whether or not an obstacle obstructing the driving of the robot cleaner 100 exists while the robot cleaner 100 is driving.
장애물인식모듈(354)은 장애물이 존재하는 것으로 판단되는 경우, 장애물의 속성에 따라 직진, 회전 등의 주행 패턴을 결정할 수 있고, 결정된 주행 패턴을 주행제어모듈(351)로 전달할 수 있다.When it is determined that an obstacle exists, the obstacle recognition module 354 may determine a driving pattern such as going straight or turning according to the property of the obstacle, and may transmit the determined driving pattern to the driving control module 351 .
본 발명의 실시예에 따른 로봇 청소기(100)는 머신 러닝(machine learning) 기반의 사람, 사물 인식 및 회피를 수행할 수 있다. 여기서, 머신 러닝은 컴퓨터에게 사람이 직접 로직(Logic)을 지시하지 않아도 데이터를 통해 컴퓨터가 학습을 하고 이를 통해 컴퓨터가 알아서 문제를 해결하게 하는 것을 의미할 수 있다.The robot cleaner 100 according to an embodiment of the present invention may perform machine learning-based human and object recognition and avoidance. Here, machine learning may mean that a computer learns through data without a person directly instructing the computer with logic, and through this, the computer solves a problem on its own.
딥러닝(Deep Learning)은 인공지능을 구성하기 위한 인공신경망(artificial neural networks; ANN)에 기반으로 해 컴퓨터에게 사람의 사고방식을 가르치는 방법으로 사람이 가르치지 않아도 컴퓨터가 스스로 사람처럼 학습할 수 있는 인공지능 기술을 의미할 수 있다. 인공신경망(ANN)은 소프트웨어 형태로 구현되거나 칩(chip) 등 하드웨어 형태로 구현될 수 있다.Deep learning is based on artificial neural networks (ANNs) for constructing artificial intelligence, and is a method of teaching computers how to think about humans. It can mean intelligence technology. An artificial neural network (ANN) may be implemented in a software form or a hardware form such as a chip.
장애물인식모듈(354)은 장애물의 속성이 학습된 소프트웨어 또는 하드웨어 형태의 인공신경망(ANN)을 포함할 수 있다. The obstacle recognition module 354 may include an artificial neural network (ANN) in the form of software or hardware in which attributes of obstacles are learned.
예를 들면, 장애물인식모듈(354)은 딥러닝으로 학습된 CNN(convolutional neural network), RNN(recurrent neural network), DBN(deep belief network) 등 심층신경망(deep neural network; DNN)을 포함할 수 있다.For example, the obstacle recognition module 354 may include a deep neural network (DNN) such as a convolutional neural network (CNN), a recurrent neural network (RNN), and a deep belief network (DBN) learned through deep learning. there is.
장애물인식모듈(354)은, 예를 들면, 심층신경망(DNN)에 포함된 노드들 사이의 가중치(weight)들에 기초하여 입력되는 영상 데이터에 포함되는 장애물의 속성을 판별할 수 있다.The obstacle recognition module 354 may determine the attribute of an obstacle included in input image data based on, for example, weights between nodes included in a deep neural network (DNN).
또한, 주행제어모듈(351)은 인식된 장애물의 속성에 기초하여 주행부(360)의 구동을 제어할 수 있다.Also, the driving control module 351 may control the driving of the driving unit 360 based on the attributes of the recognized obstacle.
저장부(305)에는 장애물 속성 판별을 위한 입력 데이터, 상기 심층신경망(DNN)을 학습하기 위한 데이터가 저장될 수 있다. 저장부(305)에는 영상획득부(320)가 획득한 원본 영상과 소정 영역이 추출된 추출 영상들이 저장될 수 있다. 저장부(305)에는 심층신경망(DNN) 구조를 이루는 웨이트(weight), 바이어스(bias)들이 저장될 수 있다. 예를 들면, 심층신경망 구조를 이루는 웨이트(weight), 바이어스(bias)들은, 장애물인식모듈(354)의 임베디드 메모리(embedded memory)에 저장될 수 있다.The storage unit 305 may store input data for obstacle attribute determination and data for learning the deep neural network (DNN). The storage unit 305 may store the original image obtained by the image acquisition unit 320 and the extracted images from which a predetermined region is extracted. The storage unit 305 may store weights and biases constituting a deep neural network (DNN) structure. For example, weights and biases constituting the deep neural network structure may be stored in an embedded memory of the obstacle recognition module 354 .
장애물인식모듈(354)은, 예를 들면, 영상획득부(320)가 획득하는 영상의 일부 영역을 추출할 때마다 상기 추출된 영상을 트레이닝(training) 데이터로 사용하여 학습 과정을 수행하거나, 소정 개수 이상의 추출 영상이 획득된 후 학습 과정을 수행할 수 있다.The obstacle recognition module 354, for example, whenever extracting a partial region of an image acquired by the image acquisition unit 320, uses the extracted image as training data to perform a learning process, or to perform a predetermined learning process. After acquiring more than the number of extracted images, a learning process may be performed.
즉, 장애물인식모듈(354)은 장애물을 인식할 때마다 인식 결과를 추가하여 웨이트(weight) 등 심층신경망(DNN) 구조를 업데이트(update)하거나, 소정 횟수의 트레이닝 데이터가 확보된 후에 확보된 트레이닝 데이터로 학습 과정을 수행하여 웨이트(weight) 등 심층신경망(DNN) 구조를 업데이트할 수 있다.That is, the obstacle recognition module 354 updates a deep neural network (DNN) structure such as a weight by adding a recognition result whenever an obstacle is recognized, or training obtained after a predetermined number of training data is obtained. A deep neural network (DNN) structure such as weights can be updated by performing a learning process with data.
또는, 로봇 청소기(100)는 통신부(390)를 통하여 영상획득부(320)가 획득한 원본 영상 또는 추출된 영상을 소정 서버로 전송하고, 소정 서버로부터 머신 러닝과 관련된 데이터를 수신할 수 있다. 이때, 로봇 청소기(100)는 소정 서버로부터 수신된 머신 러닝과 관련된 데이터에 기초하여 장애물인식모듈(354)을 업데이트(update)할 수 있다.Alternatively, the robot cleaner 100 may transmit the original image or the extracted image obtained by the image acquisition unit 320 to a predetermined server through the communication unit 390 and receive data related to machine learning from the predetermined server. At this time, the robot cleaner 100 may update the obstacle recognition module 354 based on data related to machine learning received from a predetermined server.
도 7은 본 발명의 일 실시예에 따른, 로봇 청소기에 구비된 라이다 센서의 설명에 참조되는 도면이다.7 is a diagram referenced for description of a LiDAR sensor provided in a robot cleaner according to an embodiment of the present invention.
도 7을 참조하면, 라이다 센서(175)는 360도 전 방향에 대하여 레이저를 출력할 수 있고, 객체로부터 반사된 레이저를 수신함으로써, 레이저를 반사시킨 객체와의 거리, 위치 방향, 재질 등의 정보를 획득할 수 있고, 주행 구역의 지형 정보를 획득할 수 있다.Referring to FIG. 7, the lidar sensor 175 can output laser in all directions of 360 degrees, and by receiving the laser reflected from the object, the distance to the object that reflected the laser, the location direction, the material, etc. Information may be obtained, and topographical information of a driving area may be obtained.
로봇 청소기(100)는 라이다 센서(175)의 성능 및 설정에 따른, 일정 거리 이내의 지형 정보를 획득할 수 있다. 로봇 청소기(100)는 라이다 센서(175)를 기준으로 일정 거리(610)의 반경을 가지는 원 영역(610) 이내의 지형 정보를 획득할 수 있다. The robot cleaner 100 may obtain terrain information within a certain distance according to the performance and settings of the lidar sensor 175 . The robot cleaner 100 may obtain terrain information within a circular area 610 having a radius of a predetermined distance 610 based on the lidar sensor 175 .
로봇 청소기(100)는 원 영역(610) 내의 지형 정보를 획득하며, 이때, 소정 서브 영역에 대한 지형 정보를 획득할 수 있다.The robot cleaner 100 obtains topographical information within the original area 610, and at this time, may obtain topographical information on a predetermined sub-region.
이때, 라이다 센서(175)의 지형 정보는 로봇 청소기(100)가 소정 거리, 또는 소정 시간을 주행하는 지점마다 감지한 원 영역(610) 내의 지형 정보를 저장할 수 있으며, 이 때, 저장되는 정보는 해당 원 영역(610)의 중심이 되는 로봇 청소기(100)의 현재 위치인 주행 노드(n1, n2…)에 매칭하여 저장될 수 있다.At this time, the terrain information of the lidar sensor 175 may store terrain information within the circular area 610 detected at each point where the robot cleaner 100 travels a predetermined distance or a predetermined time, and at this time, the stored information may be stored by matching with driving nodes (n1, n2...) that are the current location of the robot cleaner 100, which is the center of the corresponding circular area 610.
따라서, 로봇 청소기(100)가 분할된 각 서브 영역을 주행할 때, 각 서브 영역 내에서의 복수의 연속한 주행 노드(n1, n2…)에 대하여 각각의 원 영역(610)의 지형 정보가 획득되어 저장된다.Therefore, when the robot cleaner 100 travels in each divided sub-region, terrain information of each original region 610 is obtained for a plurality of consecutive driving nodes n1, n2... in each sub-region. and stored
로봇 청소기(100)는 라이다 센서(175)를 통해 획득한 서브 영역에 대한 지형 정보로부터, 개방 공간(open space)을 추출할 수 있다. 여기서, 개방 공간(open space)는 로봇 청소기(100)의 주행이 가능한 레이저를 반사시킨 객체들 사이의 공간에 대한 정보를 의미할 수 있다. The robot cleaner 100 may extract an open space from terrain information about a sub-region acquired through the lidar sensor 175 . Here, the open space may refer to information about a space between objects reflecting a laser in which the robot cleaner 100 can run.
로봇 청소기(100)는 할당된 서브 영역의 주행이 종료된 후, 서브 영역 내에서 각 주행 노드(n1, n2…)에 대한 라이다 센서(175)의 감지 데이터를 연속적으로 읽어내는 레이 캐스팅(ray casting)을 수행하여 개방 공간이 있는지 확인하는 개방 공간 검출 알고리즘을 수행할 수 있다.The robot cleaner 100 continuously reads the sensing data of the lidar sensor 175 for each driving node (n1, n2...) in the sub-area after the driving of the assigned sub-area is completed. casting) to perform an open space detection algorithm that checks whether there is an open space.
로봇 청소기(100)는 서브 영역에 대하여 개방 공간을 추출하고 해당 개방 공간에 대하여 추가적인 개방 노드, 즉 로봇 청소기(100)가 주행할 수 있는 지점을 설정할 수 있다. The robot cleaner 100 may extract an open space for the sub-area and may set an additional open node, that is, a point where the robot cleaner 100 may travel, with respect to the corresponding open space.
로봇 청소기(100)는 하나의 서브 영역에 대하여 로봇 청소기(100)의 주행 노드(n1, n2…)와 개방 노드에 대하여 토폴로지 맵을 생성할 수 있다.The robot cleaner 100 may generate a topology map for the driving nodes n1, n2... and open nodes of the robot cleaner 100 in one sub-region.
개방 공간에 대한 정보는 해당 개방 공간을 찾는 로봇 청소기(100)의 주행 노드(n1, n2…) 및 주행 방향, 개방 공간의 폭에 대한 정보를 포함할 수 있으며, 개방 노드는 해당 개방 노드를 찾은 개방 공간 및 로봇 청소기(100)의 주행 노드(n1, n2…)에 대한 정보를 포함할 수 있다. The information on the open space may include information about the driving nodes (n1, n2...) and driving direction of the robot cleaner 100 searching for the corresponding open space, and information on the width of the open space, and the open node finds the corresponding open node. It may include information about an open space and driving nodes n1, n2... of the robot cleaner 100.
로봇청소기(100)는 토폴로지 맵의 개방 노드로 이동하여 추가적인 서브 영역을 설정할 수 있으며, 더 이상의 개방 노드가 존재하지 않을 때까지 주행하면서 전체 주행 구역에 대한 복수의 서브 영역의 토폴로지 맵을 각각 완성할 수 있다.The robot cleaner 100 may move to an open node of the topology map to set additional sub-regions, and complete the topology maps of a plurality of sub-regions for the entire driving region while driving until there are no more open nodes. can
이때, 로봇 청소기(100)는 이동 통로의 중앙을 따라 이동하기 위하여, 개방 공간의 중앙점을 검출하여 개방 노드로 설정가능하며, 개방 노드를 따라 주행할 수 있다.At this time, the robot cleaner 100 may detect the center point of the open space, set it as an open node, and drive along the open node in order to move along the center of the moving passage.
이하에서는 도 8 내지 도 17을 참고하여 본 발명의 로봇 청소기(100)의 각 서브 영역에 대한 토폴로지 맵을 생성하는 과정을 설명한다.Hereinafter, a process of generating a topology map for each sub-region of the robot cleaner 100 according to the present invention will be described with reference to FIGS. 8 to 17 .
도 8은 본 발명의 일 실시예에 따른 로봇 청소기의 맵 생성 과정에 대한 플로우 차트이고, 도 9a 내지 도 9e는 도 8의 순서도에 따른 로봇 청소기의 맵 생성 과정을 나태내는 도면이며, 도 10은 도 8의 순서도에 따른 로봇 청소기의 최종 맵의 일부를 도시한 도면이다. 8 is a flow chart of a map creation process of a robot cleaner according to an embodiment of the present invention, and FIGS. 9A to 9E are diagrams showing a map creation process of the robot cleaner according to the flowchart of FIG. 8 , and FIG. 10 is It is a diagram showing a part of the final map of the robot cleaner according to the flowchart of FIG. 8 .
도 8 내지 도 9를 참조하면, 로봇 청소기(100)는 이동하면서 그리드 맵을 생성할 수 있다.Referring to FIGS. 8 to 9 , the robot cleaner 100 may generate a grid map while moving.
구체적으로, 도 8과 같이 로봇 청소기(100)는 주행 구역을 복수의 서브 영역으로 분할할 수 있다.Specifically, as shown in FIG. 8 , the robot cleaner 100 may divide the driving area into a plurality of sub areas.
이때, 분할되는 서브 영역은 주행 거리 또는 주행 면적을 기준으로 분할할 수 있으며, 소정 거리 또는 소정 시간 동안 이동한 후 이동한 영역의 토폴로지 맵을 형성하기 위한 임의의 영역일 수 있다.In this case, the divided sub-region may be divided based on the driving distance or driving area, and may be an arbitrary region for forming a topology map of the moved region after moving for a predetermined distance or for a predetermined time.
즉, 동일하게 분할되는 영역이 아닌, 로봇 청소기(100)가 청소를 위한 미지의 주행 구역을 소정 거리 또는 소정 시간 동안 주행하면 해당 거리 또는 해당 시간 동안 주행한 영역을 하나의 서브 영역으로 정의할 수 있다.That is, if the robot cleaner 100 travels for a predetermined distance or for a predetermined time in an unknown driving area for cleaning, which is not an area that is equally divided, the area traveled for that distance or for that time can be defined as one sub-region. there is.
이때, 서브 영역은 로봇 청소기(100)의 현재 위치에서 전방에 장애물이 발견되기 전까지로 정의될 수도 있으며, 사용자의 설정에 따라 다양하게 설정 가능하다.At this time, the sub-region may be defined from the current position of the robot cleaner 100 until an obstacle is found in front, and may be set in various ways according to user settings.
로봇 청소기(100)는 청소 작업을 위한 미지의 주행 구역을 맵핑하기 위한 선 주행하면서(S100) 라이다 센서(175)를 통해 분할된 서브 영역의 라이다 정보를 수집하여 그리드 맵을 생성하고, 각 그리드 맵에서 개방 공간을 검출한 후, 각 서브 영역에 대한 토폴로지 그래프를 생성한다.While the robot cleaner 100 pre-drives to map an unknown driving area for cleaning (S100), the robot cleaner 100 collects lidar information of divided sub-regions through the lidar sensor 175 to generate a grid map, After detecting the open space in the grid map, a topology graph is created for each sub-region.
구체적으로, 로봇 청소기(100)는 서브 영역에 대하여 주행하면서 라이다 센서(175)를 통해 해당 영역의 라이다 정보를 수집하는 단계(S101), 수집한 라이다 정보를 통해 상기 서브 영역의 그리드맵을 생성하는 단계(S102), 상기 그리드맵 상의 경로 상에서 상기 라이다 정보로 레이 캐스팅을 수행하여 복수의 지점에 대한 개방 공간을 검출하는 단계(S103), 상기 검출된 개방 공간에 대하여 개방 노드를 생성하면서 토폴로지 그래프를 생성하는 단계(S104), 현재 위치에서 다음 개방 노드로 이동하면서 개방 노드가 발생하는지 검토하는 단계(S105), 상기 토롤로지 그래프 내 다른 개방 노드가 존재하는지에 따라 다른 서브 영역의 탐색을 수행하는 단계(S106)로 진행된다.Specifically, the robot cleaner 100 collects lidar information of the corresponding area through the lidar sensor 175 while traveling in the sub-area (S101), and the grid map of the sub-area through the collected lidar information. generating (S102), detecting an open space for a plurality of points by performing ray casting with the LIDAR information on a path on the grid map (S103), generating an open node for the detected open space generating a topology graph (S104), moving from the current position to the next open node, and examining whether an open node occurs (S105), depending on whether there are other open nodes in the topology graph, different sub-regions It proceeds to a step of performing a search (S106).
먼저, 로봇 청소기(100)의 제어부(350)는 외부로부터 또는 설정되어 있는 지시에 따라 소정의 주행 구역에 대한 청소 맵 생성을 위한 선 주행을 수행한다(S100).First, the control unit 350 of the robot cleaner 100 performs pre-driving for generating a cleaning map for a predetermined driving area from the outside or according to a set instruction (S100).
이와 같이 주행할 때, 소정 거리 또는 소정 시간동안 주행이 완료되는 지점을 서브 영역으로 정의할 수 있으며, 해당 서브 영역까지의 주행이 완료될 때까지 동일한 방향(D1)으로 주행을 연속한다.When driving in this way, a point where driving is completed for a predetermined distance or for a predetermined time may be defined as a sub-region, and driving continues in the same direction D1 until driving to the corresponding sub-region is completed.
이때, 로봇 청소기(100)는 도 9a와 같이, 라이다 센서(175)로부터 360도의 원 영역(610)에 대한 라이다 정보를 수득할 수 있다(S101). 수집하는 라이다 정보는 상기 로봇 청소기(100)가 서브 영역 내에서 통로를 따라 주행할 때, 경로 위에 위치하는 복수의 주행 노드(n1, n2…) 각각에서 수집될 수 있다.At this time, the robot cleaner 100 may obtain lidar information about the circular area 610 of 360 degrees from the lidar sensor 175 as shown in FIG. 9a (S101). When the robot cleaner 100 travels along a passage in a sub-region, the collected LiDAR information may be collected from each of a plurality of driving nodes n1, n2, etc. located on the route.
주행 노드(n1, n2…)는 상기 경로 위에서 등간격으로 설정될 수 있으나 이에 한정되는 것이 아니고, 소정 시간마다 상기 로봇 청소기(100)가 위치하는 지점으로 정의될 수 있다. 이와 같은 주행 노드(n1, n2…)가 연결되는 가상의 선이 주행 경로(DP: driving path)로서 기능할 수 있으나, 이에 한정되는 것은 아니다. The driving nodes (n1, n2...) may be set at equal intervals on the path, but are not limited thereto, and may be defined as points where the robot cleaner 100 is located at predetermined time intervals. A virtual line to which the driving nodes (n1, n2...) are connected may function as a driving path (DP), but is not limited thereto.
하나의 서브 영역에서 설정되는 주행 노드(n1, n2…)는 서로 다른 수효를 가질 수 있다.The driving nodes (n1, n2...) set in one sub-region may have different numbers.
각 주행 노드(n1, n2…)에서 로봇 청소기(100)는 라이다 정보를 수집한다.At each driving node (n1, n2...), the robot cleaner 100 collects LIDAR information.
따라서, 각 주행 노드(n1, n2…)에서 해당 주행 노드(n1, n2…)를 중심으로 원 영역(610)에 대한 지역 정보가 라이다 정보로 수집된다.Therefore, regional information about the original area 610 centered on the corresponding driving node (n1, n2...) is collected as lidar information in each driving node (n1, n2...).
상기 각각의 라이다 정보는 각 주행 노드(n1, n2…)에 매칭하여 저장부(305)에 기록될 수 있다.Each of the LIDAR information may be recorded in the storage unit 305 by matching with each traveling node (n1, n2...).
이와 같은 라이다 정보는 원 영역(610) 내의 장애물 등에 대한 거리에 대한 정보일 수 있으며, 레이저를 출력하여 레이저를 반사시킨 객체의 거리, 위치 방향, 재질 등의 정보를 포함할 수 있다.Such LIDAR information may be information about a distance to an obstacle in the circular area 610, and may include information about a distance, location direction, material, and the like of an object that outputs a laser and reflects the laser.
로봇 청소기(100)는 상기 서브 영역(A)에 대한 주행을 완료할 때까지 각 주행 노드(n1, n2…)에 대한 라이다 정보를 각각 수집하면, 도 9b와 같이, 해당 서브 영역(A)에 대한 그리드 맵을 생성한다.When the robot cleaner 100 collects LiDAR information for each driving node (n1, n2...) until it completes driving in the sub-area (A), as shown in FIG. 9B, the corresponding sub-area (A) Create a grid map for
상기 그리드 맵은, OGM(Occupancy grid map) 으로서, 수득된 지역 정보에 의해 생성되는 그리드를 활용한 맵이다.The grid map, as an Occupancy Grid Map (OGM), is a map using a grid generated by obtained local information.
그리드 맵은 로봇 청소기(100)의 주변 환경 인식을 위한 맵으로, 서브 영역(A)을 동일한 크기의 격자 또는 셀(이하 셀)로 표현하고 각 셀에 물체의 유무를 표시한 맵을 의미할 수 있다. 물체의 존재 유무는 색상을 통해서 표시될 수 있다. 예를 들어, 흰색 셀은 물체가 없는 영역을, 회색 셀은 물체가 있는 영역을 나타낼 수 있다. 따라서, 회색 셀을 연결한 선은 어떠한 공간의 경계선(벽, 장애물 등)을 나타낼 수 있다. 셀의 색상은 이미지 처리 과정을 통해 바뀔 수 있다.The grid map is a map for recognizing the surrounding environment of the robot cleaner 100, and may refer to a map in which the sub area A is expressed as a grid or cells (hereinafter referred to as cells) of the same size and the presence or absence of objects is displayed in each cell. there is. The presence or absence of an object may be displayed through color. For example, white cells may indicate an area without an object, and gray cells may indicate an area with an object. Accordingly, a line connecting gray cells may represent a boundary line (wall, obstacle, etc.) of a certain space. The color of a cell can be changed through image processing.
이때, 제어부(350)는 미지의 서브 영역(A)을 주행하면서 동시에 그리드 맵을 생성할 수 있다. 이와 달리, 제어부(350)는 서브 영역(A)의 주행이 완료된 후에 해당 서브 영역(A)의 그리드 맵을 생성할 수 있다. At this time, the controller 350 may create a grid map while driving in the unknown sub-region A. Unlike this, the controller 350 may generate a grid map of the sub-area A after driving in the sub-area A is completed.
본 발명에서는 그리드 맵 생성 단계(S102)가 서브 영역(A)을 주행하면서 동시에 그리드 맵을 생성하는 것으로 설정할 수 있다.In the present invention, the grid map generating step (S102) can be set to generate a grid map while driving in the sub area (A).
제어부(350)는 경로 위에서 주행하면서 소정 지점, 즉 주행 노드(n1, n2…)에서 해당 주행 노드(n1, n2…)에 대하여 수신된 라이다 센서(175)의 라이다 정보에 의해 그리드 맵을 생성할 수 있다. 즉, 제어부(350)는 노드가 생성되고, 생성된 노드로 이동하면서 라이다 센서(175)의 센싱 범위 내에서 그리드 맵을 생성할 수 있다. While driving on the route, the control unit 350 calculates a grid map based on lidar information of the lidar sensor 175 received for the corresponding driving node (n1, n2...) at a predetermined point, that is, the driving node (n1, n2...). can create That is, the control unit 350 may generate a grid map within a sensing range of the lidar sensor 175 while a node is created and moved to the created node.
그리드 맵을 생성하는 경우의 라이다 센서(175)의 센싱 범위는 서브 영역(A)을 벗어날 수 있다. When generating the grid map, the sensing range of the lidar sensor 175 may deviate from the sub-region A.
제어부(350)는 각 주행 노드(n1, n2…)에서 수신되는 각각의 라이다 정보에 의해 그리드 맵을 생성하므로, 주행이 진행되면서 순차적으로 그리드 맵이 업데이트될 수 있다. 따라서, 최종적으로 해당 서브 영역(A)의 주행이 종료되면 그리드 맵이 마지막으로 업데이트되어 최종 그리드 맵이 저장부에 저장될 수 있다.Since the controller 350 generates a grid map based on LIDAR information received from each driving node (n1, n2...), the grid map can be sequentially updated as driving progresses. Accordingly, when the driving of the corresponding sub-region A is finally completed, the grid map may be finally updated and the final grid map may be stored in the storage unit.
이와 같이 저장되는 최종 그리드 맵은 도 9b와 같이 해당 서브 영역의 그리 맵을 포함하나 그 외의 영역에 대한 그리드 맵도 함께 도시될 수 있다.The final grid map stored in this way includes the grid map of the corresponding sub area as shown in FIG. 9B, but grid maps for other areas may also be shown.
이와 같이 소정 서브 영역(A)에 대한 최종 그리드 맵이 획득되면, 제어부(350)는 해당 서브 영역(A)에 대한 라이다 정보를 레이 캐스팅하여 서브 영역(A)의 개방 공간(open space)을 검출한다(S103).When the final grid map for a predetermined sub-region (A) is acquired in this way, the controller 350 ray-casts lidar information for the corresponding sub-region (A) to determine the open space of the sub-region (A). Detect (S103).
구체적으로, 도 9c와 같이, 각 주행 노드(n1, n2…)에서 수득한 라이다 정보에 대하여 개방 공간 검출 알고리즘을 수행함으로써 개방 공간이 있는지 확인한다.Specifically, as shown in FIG. 9c, it is confirmed whether there is an open space by performing an open space detection algorithm on lidar information obtained from each traveling node (n1, n2...).
이때, 개방 공간은 각 주행 노드(n1, n2…)에 대해 수득된 원 영역(610)에 대한 라이다 정보를 전 구간에서 레이 캐스팅(RS)함으로써 해당 주행 노드(n1, n2…)에서 개방 공간, 즉 장애물이 존재하지 않는 열린 공간이 있는지 판단한다.At this time, the open space is formed by ray-casting (RS) the LIDAR information on the original area 610 obtained for each driving node (n1, n2...) in the entire section, thereby forming an open space in the corresponding driving node (n1, n2...). , that is, determine whether there is an open space free of obstacles.
이때, 개방 공간의 유무는 상기 반사되어 수득된 라이다 데이터 사이의 거리가 상기 로봇 청소기(100)의 폭보다 큰 경우로 정의될 수 있으나, 이에 한정되는 것은 아니며, 기준 폭에 대한 수치를 가지며, 해당 기준 폭보다 넓은 폭을 가지는 공간이 있는 경우, 개방 공간으로 설정할 수 있다.At this time, the presence or absence of an open space may be defined as a case where the distance between the lidar data obtained by reflection is greater than the width of the robot cleaner 100, but is not limited thereto, and has a value for the reference width, If there is a space having a wider width than the corresponding standard width, it can be set as an open space.
이와 같이, 각 주행 노드(n1, n2…)에 대하여 360도의 원 영역(610)에 대한 라이다 정보의 레이 캐스팅, 즉 광선 투사를 수행함으로써 특정 방향에 대한 라이다 정보만을 확인하는 것이 아닌, 전 방향에서의 개방 공간의 유무를 확인 가능하다.In this way, by performing ray casting, that is, ray projection of lidar information on the 360-degree circular area 610 for each driving node (n1, n2...), not only lidar information for a specific direction is confirmed, but It is possible to check the presence or absence of an open space in the direction.
이는, 특정 방향, 일 예로 4방향 또는 8방향 등으로 소분하여 데이터를 연산하는 경우 필터링되지 않는 영역에서 발생할 수 있는 개방 공간에 대한 탐색이 누락될 수 있다. 이는 특히, 청소를 위한 주행 구역의 배치 방향 및 주요 통로의 방향과 로봇 청소기(100)의 주행 방향이 일치하지 않는 경우, 매우 많은 개방 공간에 대한 탐색 누락이 발생할 수 있는 위험이 있다. In this case, when data is calculated by subdividing in a specific direction, for example, 4 directions or 8 directions, a search for an open space that may occur in an unfiltered area may be missed. In particular, when the direction of arrangement of the driving area for cleaning and the direction of the main passage and the driving direction of the robot cleaner 100 do not match, there is a risk that search for a large number of open spaces may be missed.
따라서, 본 발명과 같이 소정 서브 영역(A)으로 분할 후, 서브 영역(A)에 대하여 주행하면서 경로 상에서 복수의 주행 노드(n1, n2…)마다 수신된 라이다 정보를 360도 레이 캐스팅을 수행함으로써 누락되는 방향이 없도록 개방 공간의 탐색이 가능하다.Therefore, after dividing into a predetermined sub-area (A) as in the present invention, 360-degree ray casting is performed on lidar information received at each of a plurality of driving nodes (n1, n2...) on the route while driving in the sub-area (A). By doing so, it is possible to search the open space so that there is no missing direction.
이와 같이, 해당 서브 영역(A)의 모든 주행 노드(n1, n2…)에 대하여 레이 캐스팅이 완료되어 복수의 개방 공간이 탐색되면, 각각의 개방 공간의 정보, 즉 해당 개방 공간의 위치, 폭, 상기 개방 공간과 대응되는 주행 노드(n1, n2…)에 대한 정보를 각각 저장할 수 있다.In this way, when ray casting is completed for all driving nodes (n1, n2...) of the sub-region A and a plurality of open spaces are searched, information on each open space, that is, the position, width, Information on the traveling nodes n1, n2, ..., corresponding to the open space may be stored respectively.
이때, 제어부(350)는 각 개방 공간에 대하여 다른 주행 노드(n1, n2…)에 대한 개방 공간과의 중복 여부를 판단하고, 중복처리된 최종 개방 공간에 대하여 해당 개방 공간에 대한 개방 노드를 설정한다.At this time, the controller 350 determines whether each open space overlaps with the open space for other driving nodes (n1, n2...), and sets an open node for the corresponding open space for the overlapped final open space. do.
이와 같은 개방 노드는 최종 개방 공간의 중앙에 위치하는 지점으로 설정될 수 있다.Such an open node may be set as a point located in the center of the final open space.
이때, 제어부(350)는 다양한 알고리즘을 적용하여 개방 공간을 판단하고, 그에 따라 개방 노드를 설정할 수 있으며, 이에 대하여는 후에 상세히 설명한다. At this time, the controller 350 may determine the open space by applying various algorithms and set an open node accordingly, which will be described in detail later.
다음으로, 제어부(350)는 해당 서브 영역(A)에 대한 토폴로지 그래프를 생성한다(S104).Next, the controller 350 generates a topology graph for the sub-region A (S104).
토폴로지 그래프는 개방 공간에 대해 설정된 개방 노드를 그 개방 노드와 대응되는 주행 노드(n1, n2…)와 서로 연결함으로써 생성할 수 있다.The topology graph can be created by connecting an open node set for an open space with the corresponding open nodes and corresponding driving nodes (n1, n2...).
이와 같이 생성되는 토폴로지 그래프는 도 9e와 같이, 상기 서브 영역(A)에 대하여 설정되는 개방 노드(n21, n22, n23, n24)를 그 개방 노드를 발견한 주행 노드(n2)와 이어 그래프로 나타낼 수 있다. 이때, 하나의 주행 노드(n2)에 대하여 360도 광선 투사를 수행하여 얻어지는 개방 공간 및 그에 대한 개방 노드(n21, n22, n23, n24)는 사실상 복수개로 존재할 수 있다.As shown in FIG. 9E, in the topology graph generated in this way, the open nodes n21, n22, n23, and n24 set for the sub-region A are displayed as a graph following the driving node n2 where the open node is found. can In this case, an open space obtained by performing 360-degree beam projection on one travel node n2 and a plurality of open nodes n21, n22, n23, and n24 may exist in fact.
또한, 하나의 개방 노드(n21)는 복수개의 주행 노드(n1, n2)와 연결될 수 있다.Also, one open node n21 may be connected to a plurality of driving nodes n1 and n2.
이와 같이 형성되는 토폴로지 그래프는 일 예로, 도 9e와 같이 도시될 수 있으며, 지칭되지 않은 블록들은 장애물로 정의된다.The topology graph formed in this way may be illustrated as shown in FIG. 9E, for example, and unnamed blocks are defined as obstacles.
이와 같이 해당 서브 영역(A)에 대한 토폴로지 그래프가 형성되면, 주행 노드(n1, n2…)와 개방 노드(n21, n22, n23, n24)가 모자 관계(parent-children relationship)을 이루며 매칭될 수 있다.In this way, when the topology graph for the sub-region A is formed, the driving nodes n1, n2... and the open nodes n21, n22, n23, n24 may be matched in a parent-children relationship. there is.
마지막으로 현재 위치, 즉, 해당 서브 영역(A)의 마지막 주행 노드에 대하여 연결되어 있는 복수의 개방 노드 중 가장 폭이 큰 개방 노드로 이동한 후 해당 개방 노드를 주행 노드로 변경, 즉 닫힌 노드로 변경하면서 해당 서브 영역(A)에 대한 토폴로지 그래프를 완성할 수 있다(S105).Finally, after moving to the current position, that is, the open node with the largest width among a plurality of open nodes connected to the last driving node of the corresponding sub-region (A), the open node is changed to a driving node, that is, to a closed node. While changing, it is possible to complete the topology graph for the corresponding sub-region (A) (S105).
이와 같이 완성된 해당 서브 영역(A)에 대한 토폴로지 그래프 상에서, 복수의 개방 노드가 존재하는 경우, 해당 개방 노드로 이동하여 다시 다른 서브 영역을 설정하면서 미지의 서브 영역에 대한 주행을 수행한다(S106).If there are a plurality of open nodes on the topology graph for the corresponding sub-region (A) completed in this way, the unknown sub-region is driven while moving to the corresponding open node and setting another sub-region (S106). ).
이와 같이 각 개방 노드에서 서브 영역(A)을 설정하면서 토폴로지 그래프를 생성할 때, 서브 영역(A)의 중복 여부를 판단하면서 토폴로지 그래프를 생성할 수 있다.In this way, when creating a topology graph while setting the sub-area A at each open node, the topology graph can be created while determining whether the sub-area A overlaps.
이때, 각 개방 노드에 대한 서브 영역(A)의 생성 또는 중복 제거가 모두 완료되어 모든 서브 영역에 대한 각각의 토폴로지 그래프가 생성되면 이를 취합하여 전체 주행 구역에 대한 청소 맵을 생성할 수 있다.In this case, when the creation of sub-regions A or the removal of redundancies for each open node are all completed and respective topology graphs for all sub-regions are generated, a cleaning map for the entire driving region may be created by collecting them.
이와 같이, 청소를 위한 주행 구역을 복수의 서브 영역(A)으로 분할하면서 각 서브 영역(A)에 대한 그리드 맵 생성, 해당 그리드 맵에 대한 레이 캐스팅으로 개방 공간 탐색 및 그에 대한 개방 노드 설정, 그리고 상기 개방 노드 및 주행 노드에 대한 토폴로지 그래프를 각각 형성한다.In this way, while dividing the driving area for cleaning into a plurality of sub areas (A), generating a grid map for each sub area (A), searching for an open space by ray casting for the corresponding grid map and setting an open node therefor, and Topology graphs for the open node and running node are respectively formed.
이때, 소 영역에 대한 각각의 토폴로지 그래프를 생성하고 이를 취합하여 전체 청소 구역에 대한 청소 맵을 생성함으로써 청소 맵의 정확성을 높일 수 있다.In this case, the cleaning map for the entire cleaning area may be generated by generating topology graphs for each small area and collecting them to increase the accuracy of the cleaning map.
또한, 작은 서브 영역에서 복수의 주행 노드(n1, n2…)에서 수득한 라이다 데이터를 360도 레이 캐스팅함으로써 누락되는 개방 공간 없이 전체 영역에 대한 청소 맵을 생성할 수 있다.In addition, by 360-degree ray-casting of lidar data obtained from a plurality of driving nodes (n1, n2...) in a small sub-area, a cleaning map for the entire area can be created without missing open space.
이때, 본 발명에 따른 토폴로지 그래프는 도 10과 같은 값을 가질 수 있다.At this time, the topology graph according to the present invention may have values as shown in FIG. 10 .
즉, 각 서브 영역에 대한 토폴로지 그래프는 도 10과 같이 각 주행 노드(n1, n2, n3…)와 그에 대응하는 적어도 하나의 개방 노드(n31,,,,)를 직선으로 연결하는 그래프를 가질 수 있으며, 각 개방 노드에 대하여 개방 공간의 폭에 대한 정보를 함께 기록할 수 있다.That is, as shown in FIG. 10, the topology graph for each subregion may have a graph connecting each driving node (n1, n2, n3...) and at least one open node (n31,,,,) corresponding thereto with a straight line. Information about the width of the open space can be recorded for each open node.
이때, 토폴로지 그래프는 개방 공간의 폭을 함께 매칭하여 저장부(305)에 저장할 수 있다.In this case, the topology graph may be stored in the storage unit 305 by matching the width of the open space.
한편, 본 발명에 따른 로봇 청소기(100)의 제어부(350)는 개방 공간을 탐색하기 위해 다양한 알고리즘을 수행할 수 있다.Meanwhile, the controller 350 of the robot cleaner 100 according to the present invention may perform various algorithms to search for an open space.
이하에서는 도 11 내지 도 17을 참고하여, 본 발명의 일 실시예에 따른 개방 공간 및 개방 노드의 설정에 대하여 보다 상세히 설명한다.Hereinafter, settings of an open space and an open node according to an embodiment of the present invention will be described in more detail with reference to FIGS. 11 to 17 .
도 11은 도 8의 개방 노드를 탐색하기 위한 순서도를 도시한 도면이고, 도 12a 및 12b는 도 11의 비단차 개방 공간일 때를 나타내는 도면이며, 도 13a 및 도 13b는 도 11의 단차 개방 공간일 때의 일 실시예를 나타내는 도면이고, 도 14a 및 도 14b는 도 11의 단차 개방 공간일 때의 다른 실시예를 나타내는 도면이다.FIG. 11 is a flow chart for searching for an open node in FIG. 8, FIGS. 12A and 12B are diagrams illustrating a non-step open space of FIG. 11, and FIGS. 13A and 13B are a step open space of FIG. 11 14A and 14B are views showing another embodiment when the stepped open space of FIG. 11 is used.
도 11을 참고하면, 본 발명의 일 실예에 따른 개방 공간의 탐색은, 획득한 해당 서브 영역(A)의 그리드 맵에 대하여, 개방 공간 검출 알고리즘을 실행하면서 시작한다(S201). 상기 개방 공간 검출 알고리즘의 실행에 따라, 주어진 경로로 각 주행 노드(n1, n2…)에서의 수신된 라이다 정보로 레이 캐스팅을 수행한다(S202).Referring to FIG. 11 , the search for an open space according to an embodiment of the present invention starts by executing an open space detection algorithm with respect to the obtained grid map of the corresponding sub-region A (S201). According to the execution of the open space detection algorithm, ray casting is performed with LIDAR information received from each driving node (n1, n2...) along a given path (S202).
이때, 각 주행 노드(n1, n2…)에서 레이 캐스팅을 수행할 때, 일 예로, 제1 주행 노드(n1)에서 레이 캐스팅을 수행하여 개방 공간이 발견되지 않으면(S202) 소정 거리만큼 이동한 제2 주행 노드(n2)에서 다시 수득된 라이다 정보를 레이 캐스팅을 수행한다(S203).At this time, when ray casting is performed at each travel node (n1, n2...), for example, if an open space is not found by performing ray casting at the first travel node (n1) (S202), the first travel node moves by a predetermined distance. Ray casting is performed on lidar information obtained again from the second driving node n2 (S203).
이를 반복적으로 수행함으로써 모든 주행 노드(n1, n2…)에 대한 레이 캐스팅을 360도에 대하여 수행하며 각각의 주행 노드(n1, n2…)에 대한 개방 공간을 탐색한다.By repeatedly performing this, ray casting is performed for all driving nodes (n1, n2...) for 360 degrees, and an open space for each driving node (n1, n2...) is searched.
이때, 개방 공간이 발견되면, 해당 개방 공간이 비단차 개방 공간인지, 단차 개방 공간인지 판단한다(S204).At this time, if an open space is found, it is determined whether the corresponding open space is a non-stepped open space or a stepped open space (S204).
구체적으로, 도 12a 및 도 12b는 비단차 개방 공간일 때의 제어부(350)의 판단을 나타내는 도면이다.Specifically, FIGS. 12A and 12B are diagrams showing the determination of the control unit 350 in the case of a non-stepped open space.
비단차 개방 공간은, 장애물과 장애물(301, 302) 사이의 개방 공간에 대하여 일 장애물(301)과 타 장애물(302)이 상기 로봇 청소기(100)의 현재 위치(n1)에서 서로 동일한 거리 상에 위치한 것을 의미한다. 따라서, 일 장애물(301)과 타 장애물(302) 사이이에 단차가 발생하지 않는다. In the non-stepped open space, one obstacle 301 and another obstacle 302 are at the same distance from each other at the current position n1 of the robot cleaner 100 with respect to the open space between the obstacles 301 and 302. means located. Accordingly, a step does not occur between one obstacle 301 and another obstacle 302 .
즉, 상기 로봇 청소기(100)의 현재 위치인 제1 주행 노드(n1)에서 개방 공간을 이루는 일 장애물(301)과의 거리와 타 장애물(302)과의 거리가 서로 동일하다.That is, the distance between one obstacle 301 and the other obstacle 302 constituting an open space in the first driving node n1, which is the current position of the robot cleaner 100, is equal to each other.
이와 같은 비단차 개방 공간이 발견된 경우, 도 12a와 같이 해당 비단차 개방 공간의 폭(w1)을 산출한다(S205).When such a non-stepped open space is found, the width w1 of the non-stepped open space is calculated as shown in FIG. 12A (S205).
이때, 상기 비단차 개방 공간의 폭(w1)이 상기 로봇 청소기(100)의 폭보다 큰 경우, 또는 상기 비단차 개방 공간의 폭(w1)이 상기 로봇 청소기(100)에 설정되어 있는 기준 폭보다 큰 경우, 상기 비단차 개방 공간을 이동가능한 잠재적 개방 공간으로 정의한다.At this time, when the width w1 of the non-stepped open space is greater than the width of the robot cleaner 100, or the width w1 of the non-stepped open space is greater than the reference width set in the robot cleaner 100. If large, the non-stepped open space is defined as a movable potential open space.
이와 같이 상기 비단차 개방 공간이 잠재적 개방 공간으로 정의되면, 상기 개방 공간의 폭의 중앙 영역을 상기 개방 공간에 대한 개방 노드(n11)로 설정한다(S206).When the non-stepped open space is defined as a potential open space, the central area of the width of the open space is set as an open node n11 for the open space (S206).
이와 같이 설정되어 있는 개방 노드(n11)에서 후에 도 12b와 같이 개방 공간(n11)에 대한 탐색을 추가로 수행할 수 있다(S207). In the open node n11 set as described above, a search for the open space n11 may be additionally performed as shown in FIG. 12B (S207).
제어부(350)는 이와 같이 탐색된 개방 공간 및 설정된 개방 노드(n11)에 대한 정보를 저장하고, 이때 개방 공간의 폭(w1)과 이를 발견한 주행 노드(n1)를 매칭하여 저장한다.The controller 350 stores information about the searched open space and the set open node n11, and matches and stores the width w1 of the open space and the travel node n1 where it is found.
한편, 상기 개방 공간이 비단차 개방 공간이 아닌 경우, 즉, 상기 개방 공간을 이루는 일 장애물(301)과 타 장애물(303)이 상기 로봇 청소기(100)와 거리 차가 존재하는 경우, 해당 개방 공간을 단차 개방 공간으로 정의한다.Meanwhile, when the open space is not a non-stepped open space, that is, when there is a difference in distance between one obstacle 301 and another obstacle 303 constituting the open space and the robot cleaner 100, the corresponding open space It is defined as a stepped open space.
도 13a와 같이 해당 개방 공간이 단차 개방 공간인 경우, 일 장애물(301)은 타 장애물(303)에 대하여 현재의 주행 노드(n2)에 대하여 돌출 구성될 수 있다.As shown in FIG. 13A , when the corresponding open space is a stepped open space, one obstacle 301 may protrude from the current driving node n2 relative to the other obstacle 303 .
이때, 단차 개방 공간은 도 13 및 도 14와 같이 2가지 경우로 설정 가능하다.At this time, the stepped opening space can be set in two cases as shown in FIGS. 13 and 14 .
즉, 주행 통로의 폭이 갑자기 넓어짐으로써 발생하는 주행 방향에 대하여 후방으로 발생하는 개방 공간이 도 13a 및 도 13b에 도시되어 있으며, 주행 경로의 폭이 갑자기 좁아짐으로써 발생하는, 주행 방향에 대하여 전방으로 발생하는 개방 공간이 도 14a 및 도 14b에 도시되어 있다.13A and 13B show an open space that occurs backward with respect to the traveling direction caused by the sudden widening of the width of the traveling passage, and forwardly with respect to the traveling direction caused by the sudden narrowing of the width of the traveling passage. The resulting open space is shown in Figures 14a and 14b.
이와 같은 단차 개방 공간이 발견되는 경우, 제어부(350)는 단차의 폭(w2)과 로봇 청소기(100)의 폭 또는 기준 폭을 비교한다(S208).When such a stepped open space is found, the controller 350 compares the width w2 of the step with the width of the robot cleaner 100 or the reference width (S208).
상기 단차의 폭(w2)이 로봇 청소기(100)의 폭 또는 기준 폭보다 큰 경우, 해당 개방 공간을 잠재적인 개방 공간으로 정의할 수 있다.When the width w2 of the step is greater than the width of the robot cleaner 100 or the reference width, the corresponding open space may be defined as a potential open space.
다음으로, 제어부(350)는 개방 공간의 중앙 영역에 개방 노드(n22)를 설정할 수 있다(S209).Next, the controller 350 may set the open node n22 in the central area of the open space (S209).
이때, 개방 노드(n21)는 앞서 비단차 개방 공간에 대한 개방 노드와 달리, 상기 개방 공간의 폭의 중앙선(CL) 상에서 현재 주행 노드(n2)와 수직선(VL)의 교차점에 위치하는 확장 노드(n21)에 설정할 수 있다. At this time, the open node n21 is an extension node located at the intersection of the current driving node n2 and the vertical line VL on the center line CL of the width of the open space, unlike the previous open node for the non-stepped open space ( n21).
이와 같이, 단차 개방 공간에 대한 개방 노드를 해당 개방 공간의 중앙 영역에 바로 형성하지 않고 상기 주행 노드(n2)와의 수직선(VL)까지 확장하여 설정하는 경우, 추후 해당 개방 노드(n21)에서의 레이 캐스팅을 위한 라이다 정보가 더 정확하게 확보될 수 있다.In this way, when setting the open node for the stepped open space by extending it to the vertical line VL with the traveling node n2 without directly forming it in the central area of the corresponding open space, the ray at the corresponding open node n21 later LiDAR information for casting can be more accurately secured.
즉, 주행 통로에서 크게 벗어나지 않는 영역에 개방 노드(n21)를 설정함으로써 추가적인 개방 노드(n21)까지의 레이 캐스팅을 위한 라이다 정보 수득을 위한 주행을 줄일 수 있다.That is, by setting the open node n21 in an area that does not deviate greatly from the travel passage, traveling for obtaining lidar information for ray casting to an additional open node n21 can be reduced.
이후, 로봇 청소기(100)는 설정된 개방 노드(n21)에서 도 13b와 같이 왼쪽 방향, 즉 개방 노드(n21)에서 개방 공간으로 향하는 방향에 대하여 라이다 정보에 대한 레이 캐스팅을 수행할 수 있다(S210).Thereafter, the robot cleaner 100 may perform ray casting on LIDAR information in the left direction, that is, in the direction from the open node n21 toward the open space, as shown in FIG. 13B at the set open node n21 (S210). ).
즉, 개방 공간을 향하는 이분면으로만 레이 캐스팅을 수행하여 레이 캐스팅의 연산을 줄일 수 있다.That is, the ray casting operation can be reduced by performing the ray casting only in the dichotomy facing the open space.
한편, 도 14b의 경우, 로봇 청소기(100)는 설정된 개방 노드(n22)를 토폴로지 그래프에 등록한 후 오른쪽 방향, 즉 개방 노드(n22)에서 개방 공간으로 향하는 방향에 대하여 라이다 정보에 대한 레이 캐스팅을 수행할 수 있다.Meanwhile, in the case of FIG. 14B , after registering the set open node n22 in the topology graph, the robot cleaner 100 performs ray casting on lidar information in the right direction, that is, in the direction from the open node n22 to the open space. can be done
즉, 개방 공간을 향하는 이분면으로만 레이 캐스팅을 수행하여 레이 캐스팅의 연산을 줄일 수 있다.That is, the ray casting operation can be reduced by performing the ray casting only in the dichotomy facing the open space.
한편, 본 발명의 실시예에 따른 제어부(350)는 개방 노드를 탐색할 때, 복수의 주행 노드(n1, n2…)에서의 개방 노드에 대하여 중복 제거를 수행할 수 있다.Meanwhile, when searching for an open node, the control unit 350 according to an embodiment of the present invention may perform duplicate removal on open nodes in a plurality of driving nodes n1, n2....
도 15는 도 8의 개방 노드를 탐색하기 위한 다른 순서도를 도시한 도면이고, 도 16은 도 15의 동작을 나타내는 로봇 청소기(100)의 탐색을 도시한 도면이며, 도 17은 도 15의 중복 제거를 위한 과정을 설명하기 위한 도면이다.15 is a diagram showing another flow chart for searching for an open node of FIG. 8, FIG. 16 is a diagram showing the search of the robot cleaner 100 showing the operation of FIG. 15, and FIG. It is a drawing for explaining the process for.
도 15 내지 도 17는 그리드 맵으로부터 개방 공간 및 개방 노드를 설정하는 방법의 다른 예를 도시한 것이다.15 to 17 show another example of a method of setting open spaces and open nodes from a grid map.
먼저, 도 15에 따르면, 본 발명의 다른 실시예에 따른 개방 공간의 탐색은, 획득한 해당 서브 영역(A)의 그리드 맵에 대하여 개방 공간 검출 알고리즘을 실행한다(S301). 그리고 주어진 경로로 각 주행 노드(n1, n2…)에서의 수신된 라이다 정보를 탐색하여 레이 캐스팅을 수행한다(S302).First, according to FIG. 15 , in searching for an open space according to another embodiment of the present invention, an open space detection algorithm is executed on the obtained grid map of the corresponding sub-region A (S301). In addition, ray casting is performed by searching for LIDAR information received from each traveling node (n1, n2 ...) along the given path (S302).
각 주행 노드(n1, n2…)에서 레이 캐스팅을 수행할 때, 일 예로, 제1 주행 노드(n1)에서 레이 캐스팅을 수행하여 개방 공간이 발견되지 않으면 소정 거리만큼 이동한 제2 주행 노드(n2)에서 다시 수득된 라이다 정보를 레이 캐스팅을 수행한다.When performing ray casting at each travel node (n1, n2...), for example, if an open space is not found by performing ray casting at the first travel node (n1), the second travel node (n2) moved by a predetermined distance ) performs ray casting on the LIDAR information obtained again.
이를 반복적으로 수행함으로써 모든 주행 노드(n1, n2…)에 대한 레이 캐스팅을 360도에 대하여 수행하며 각각의 주행 노드(n1, n2…)에 대한 개방 공간을 탐색한다.By repeatedly performing this, ray casting is performed for all driving nodes (n1, n2...) for 360 degrees, and an open space for each driving node (n1, n2...) is searched.
즉, 도 16a 내지 도 16d와 같이 연속적으로 주행 노드(n1, n2…)를 옮겨가며 각 주행 노드(n0, n1, n2, n3…)에 대하여 레이 캐스팅을 수행할 때, 도 16a와 같이, 주행 방향에 대하여 장애물의 뒤쪽으로 형성되는 개방 공간(B)의 경우, 일부 주행 노드(no)에서는 레이 캐스팅에서 발견되지 않을 수 있다.That is, when performing ray casting on each driving node (n0, n1, n2, n3...) while continuously moving the driving nodes (n1, n2...) as shown in Figs. 16A to 16D, as shown in Fig. 16A, the driving In the case of an open space (B) formed behind an obstacle with respect to the direction, some driving nodes (no) may not be found in ray casting.
이와 같은 경우, 로봇 청소기(100)의 연속 주행으로 주행 노드(n0, n1, n2 )가 옮겨질 때, 즉, 도 16a의 제0 주행 노드(n0)에서는 발견되지 않는 개방 공간이 제1, 제2 주행 노드(n1, n2…)에서 발견될 수 있다. 또한 이와 같은 개방 공간은 제3 주행노드(n3)에 이르러서는 다시 발견되지 않고 지나칠 수 있다.In this case, when the traveling nodes (n0, n1, and n2) are moved by the continuous running of the robot cleaner 100, that is, the open spaces that are not found in the 0th traveling node (n0) of FIG. 16A are the first and second open spaces. It can be found at 2 travel nodes (n1, n2...). In addition, such an open space may pass without being found again when reaching the third driving node n3.
이와 같이, 비단차 또는 단차 개방 공간을 검출하기 위한 알고리즘만으로 검출이 불가한 개방 공간의 경우, 도 16a 내지 도 17과 같이 복수의 주행 노드(n1, n2…)에서 발견되는 개방 공간을 중첩하여 검출할 수 있다.In this way, in the case of an open space that cannot be detected only with an algorithm for detecting a non-stepped or stepped open space, as shown in FIGS. 16A to 17 , open spaces found in a plurality of driving nodes (n1, n2...) are overlapped and detected. can do.
구체적으로, 도 17과 같이, 통로에 일부 비단차 개방 공간을 가지며, 일 장애물 뒤로 개방 공간이 추가로 형성되어 있는 지형의 경우, 비단차 개방 공간 뒤의 연속되는 통로와 평행한 개방 공간(B)에 대한 추가적인 탐색이 요구된다.Specifically, as shown in FIG. 17, in the case of a terrain having some non-stepped open space in the passage and an additional open space behind one obstacle, an open space parallel to the continuous passage behind the non-stepped open space (B) further exploration is required.
이때, 통로와 평행한 개방 공간(B)에 대하여 개방 노드를 설정할 수 있다.At this time, an open node may be set for an open space B parallel to the passage.
구체적으로, 도 17과 같이 제1 주행 노드(n1)에서 제3 개방 공간(C)이 탐색되면서, 제3 개방공간(C)의 후방으로 통로(DP)와 평행한 개방 공간(D)이 탐색되면, 제3 개방 공간(C)의 후방에도 제4 개방 공간(D)이 있는 것으로 판단한다.Specifically, as shown in FIG. 17, while the third open space (C) is searched in the first travel node (n1), the open space (D) parallel to the passage (DP) to the rear of the third open space (C) is searched. , it is determined that the fourth open space D exists behind the third open space C.
따라서, 제어부(350)는 제3 개방 공간(C) 뒤의 제4 개방 공간(D)에 대하여 해당 제4 개방 공간(D)의 중앙 지점을 제1 주행 노드(n1)에 대한 제1 개방 노드(n11)로 설정한다(S303).Therefore, the control unit 350 sets the central point of the fourth open space D behind the third open space C to the first open node for the first traveling node n1. (n11) is set (S303).
다음으로, 제어부(350)는 제1 주행 노드(n1)와 다른, 일 예로 제1 주행 노드(n1)에서 주행 방향으로 진행한 제2 주행 노드(n2)에 대하여 레이 캐스팅을 수행하면서 동일한 제3 개방 공간(C)이 탐색되는지 판단하고, 그 뒤에 제4 개방 공간(D) 역시 탐색되는지 판단하다.Next, the control unit 350 performs ray casting on the second travel node n2, which is different from the first travel node n1, and proceeds in the travel direction from the first travel node n1, for example, while performing ray casting on the same third travel node. It is determined whether the open space (C) is searched, and then it is determined whether the fourth open space (D) is also searched.
제4 개방 공간(D)이 탐색되면, 제2 주행 노드(n1, n2…)를 기준으로 제4 개방 공간(D)의 중앙 영역에 제2 개방 노드(n21)를 설정한다(S304).When the fourth open space (D) is searched, the second open node (n21) is set in the central area of the fourth open space (D) based on the second traveling nodes (n1, n2...) (S304).
이때, 제1 개방 노드(n11)와 제2 개방 노드(n22)는 절대 위치가 서로 상이할 수 있다.In this case, the first open node n11 and the second open node n22 may have different absolute positions.
이는, 제1 주행 노드(n1)와 제2 주행 노드(n2)에서 바라볼 때의 제4 개방 공간(D)의 방향이 상이함으로 인해 제4 개방 공간(D)의 중앙 지점이 소정 각도로 기울어져 설정될 수 있음에 기인한다.This is because the central point of the fourth open space D is inclined at a predetermined angle due to the different directions of the fourth open space D when viewed from the first travel node n1 and the second travel node n2. due to the fact that it can be set
이때, 제어부(350)는 제3 개방 공간(C)의 폭(W3) 및 제4 개방 공간(D)의 폭(W4)을 서로 비교하여 유사 범위 내에 포함되면, 제1 개방 노드(n11)와 제2 개방 노드(n21)를 중심으로 각각의 소정 범위를 설정한다.At this time, the control unit 350 compares the width W3 of the third open space C and the width W4 of the fourth open space D with each other, and if they are within the similar range, the first open node n11 and Each predetermined range is set around the second open node n21.
이때, 제1 개방 노드(n11)의 소정 범위는 제1 개방 노드(n11)를 중심으로 제3 개방 공간(C)의 폭(W3)을 직경으로 하는 원으로 정의될 수 있으며, 제2 개방 노드(n21)의 소정 범위는 제2 개방 노드(n21)를 중심으로 제3 개방 공간(C)의 폭(W3)을 직경으로 하는 원으로 정의될 수 있다.In this case, the predetermined range of the first open node n11 may be defined as a circle whose diameter is the width W3 of the third open space C centered on the first open node n11, and the second open node The predetermined range of (n21) may be defined as a circle whose diameter is the width W3 of the third open space C centered on the second open node n21.
이때, 제1 개방 노드(n11)의 소정 범위와 제2 개방 노드(n21)의 소정 범위가 중첩되는 영역(E)의 면적을 산정한다(S305).At this time, the area of the area E overlapping the predetermined range of the first open node n11 and the predetermined range of the second open node n21 is calculated (S305).
제어부(350)는 이와 같은 중첩 영역(E)의 면적이 임계값 이상을 충족하는 경우, 제1 개방 노드(n11)와 제2 개방 노드(n21)가 동일한 것으로 판단한다.The controller 350 determines that the first open node n11 and the second open node n21 are the same when the area of the overlapping region E is greater than or equal to the threshold value.
이때, 임계값은 각 개방 노드에 대한 소정 범위의 1/2 또는 2/3을 충족할 수 있으며, 이에 한정되지 않고 다양하게 설정 가능하다.At this time, the threshold value may satisfy 1/2 or 2/3 of a predetermined range for each open node, and may be set in various ways without being limited thereto.
제어부(350)는 제1 개방 노드(n11)와 제2 개방 노드(n21)가 동일한 것으로 판단되면, 두 개방 노드(n11, n21)에 대하여 제4 개방 공간(D)의 폭(W4)의 중심에 근접한 하나의 개방 노드(n11, n21)를 존치하고, 다른 개방 노드(n11, n21)를 삭제한다(S306).If the controller 350 determines that the first open node n11 and the second open node n21 are the same, the center of the width W4 of the fourth open space D with respect to the two open nodes n11 and n21. One open node (n11, n21) adjacent to is maintained, and the other open node (n11, n21) is deleted (S306).
따라서, 도 17에서는 제1 개방 노드(n11)가 존치되고, 제2 개방 노드(n21)가 삭제된다.Accordingly, in FIG. 17 , the first open node n11 remains and the second open node n21 is deleted.
이와 같이, 비단차 개방 공간 또는 단차 개방 공간에 해당하지 않는 그리드 맵의 공간에 대하여 서로 다른 주행 노드(n1, n2…)에서의 레이 캐스팅 결과를 서로 비교함으로써 중첩되는 개방 노드를 제거할 수 있다.In this way, overlapping open nodes can be removed by comparing ray casting results at different driving nodes (n1, n2...) with respect to spaces of the grid map that do not correspond to the non-stepped open space or the stepped open space.
따라서, 누락되는 개방 공간 없이 모든 개방 공간에 대한 개방 노드의 설정이 가능하며, 동일한 개방 공간에 대하여 각각의 개방 노드가 설정되지 않고, 하나의 개방 공간에 대하여는 하나의 개방 노드만이 설정됨으로써 후속 주행 및 레이 캐스팅의 연산이 간단해질 수 있다.Therefore, it is possible to set open nodes for all open spaces without missing open spaces, and each open node is not set for the same open space, but only one open node is set for one open space, so that subsequent driving is performed. and calculation of ray casting can be simplified.
또한, 중복되는 개방 노드에 대하여 해당하는 개방 공간의 폭의 중심 영역에 근접한 개방 노드를 존치함으로써 추후 로봇 청소기(100)가 통로의 중앙으로 주행할 수 있도록 제어 가능하다.In addition, with respect to the overlapping open nodes, it is possible to control the robot cleaner 100 to travel to the center of the passage later by maintaining an open node close to the central region of the width of the corresponding open space.
이와 같이, 그리드 맵에 대하여 비단차 개방 공간, 단차 개방 공간, 복수의 주행 노드에 대한 중복되는 개방 노드의 제거를 각각 수행함으로써 다양한 지형에 대하여 누락없이 탐색이 가능하다.In this way, it is possible to search for various terrains without omission by removing overlapping open nodes for a non-stepped open space, a stepped open space, and a plurality of driving nodes on the grid map, respectively.
제어부(350)는 이와 같은 개방 공간 및 개방 노드에 대한 토폴로지 그래프를 각각 형성할 수 있으며, 복수의 서브 영역에 대한 토폴로지 그래프를 서로 연결함으로써 주행 구역 전체에 대한 토폴로지 그래프를 완성할 수 있다.The controller 350 may form topology graphs for each of the open spaces and open nodes, and may complete the topology graph for the entire driving area by connecting topology graphs for a plurality of sub-regions.
이와 같은 토폴로지 그래프는 청소 맵을 형성하는 기초 맵으로 기능할 수 있다.Such a topology graph may function as a basic map forming a cleaning map.
제어부(350)는 그리드 맵과 토폴로지 그래프를 참고하여 각 노드 사이의 관계를 확인가능하며, 최적의 경로를 설정할 수 있다.The controller 350 can check the relationship between nodes by referring to the grid map and the topology graph, and can set an optimal path.
또한, 제어부(350)는 해당 그리드 맵에 영상 데이터를 융합하여 이미지화 할 수 있다.In addition, the control unit 350 can fuse image data to a corresponding grid map and convert it into an image.
이와 같은 이미지화에는 경계선 처리 알고리즘, 명도 차이를 통한 이미지 처리 등을 수행하여 각 그리드 맵의 음영을 선으로 표시 가능하다.In such imaging, it is possible to display the shade of each grid map as a line by performing a boundary line processing algorithm, image processing through brightness difference, and the like.
로봇 청소기(100)는 현재 로봇 청소기(100)의 위치에서 이미지화된 그리드 맵과 토폴로지 그래프를 기초로 최적의 경로를 설정가능하다.The robot cleaner 100 may set an optimal path based on the grid map and the topology graph imaged at the current location of the robot cleaner 100 .
이와 같이 형성되는 토폴로지 그래프를 생성하는 방법은 다음과 같은 효과를 가진다.The method for generating the topology graph formed in this way has the following effects.
도 18a는 비교예에 의한 개방 공간 탐색을 도시한 것이고, 도 18b는 본 발명에 의한 개방 공간 탐색을 도시한 것이고, 도 19a는 비교예에 의한 복수의 개방 공간 탐색을 도시한 것이고, 도 19b는 본 발명에 의한 개방 공간 탐색 시의 중복 제거를 도시한 것이며, 도 20a는 비교예에 의한 미탐색 영역을 나타낸 것이고, 도 20b는 본 발명에 의해 탐색되는 개방 공간을 도시한 것이다.18A shows an open space search according to a comparative example, FIG. 18B shows an open space search according to the present invention, FIG. 19A shows a plurality of open space searches according to a comparative example, and FIG. 19B shows an open space search according to a comparative example. 20A shows an unsearched area according to a comparative example, and FIG. 20B shows an open space searched for according to the present invention.
도 18a, 도 19a 및 도 20a의 비교예는 실시간 센싱 결과에 기반하여 개방 공간을 발견하고 개방 노드를 생성하는 제어 방법을 도시한 것이며, 도 18b, 도 19b 및 도 20b는 본 발명에 따른 소정의 서브 영역을 주행하면서 그리드 맵을 획득하고, 해당 서브 영역에 대하여 레이 캐스팅을 수행하여 개방 공간 및 개방 노드를 설정하는 것을 나타낸다.Comparative examples of FIGS. 18A, 19A, and 20A illustrate a control method for discovering an open space and generating an open node based on a real-time sensing result, and FIGS. 18B, 19B, and 20B show predetermined A grid map is acquired while driving in a sub-area, and ray casting is performed on the sub-area to set an open space and an open node.
도 18a 및 도 18b를 참고하면, 비교예의 경우 실시간으로 개방 공간을 발견하고 그에 따라 개방 노드를 바로 설정함으로써, 해당 개방 공간에 대하여 중앙 영역으로 개방 노드를 교정하여 설정하기 위한 처리가 불가능한 반면, 본원 발명의 경우, 그리드 맵을 먼저 획득한 후, 그리드 맵에서 각 주행 노드에서의 레이 캐스팅을 통해 개방 노드를 찾는 바, 해당 개방 공간의 중심 지점에 개방 노드의 설정이 가능하다. 따라서, 이와 같은 개방 노드를 향해 추후 주행 시에 장애물과의 충돌이 획기적으로 감소할 수 있다. 또한, 충돌을 피하기 위한 회피 주행이 감소하므로 소모적인 주행 및 회피 알고리즘의 실행이 불필요하다.Referring to FIGS. 18A and 18B , in the case of the comparative example, by finding an open space in real time and immediately setting an open node accordingly, it is impossible to correct and set an open node to a central area for the corresponding open space, whereas the present application In the case of the invention, since a grid map is first acquired and an open node is found through ray casting at each driving node in the grid map, it is possible to set an open node at the center point of the corresponding open space. Accordingly, collisions with obstacles may be drastically reduced during subsequent driving toward such an open node. In addition, since the avoidance driving for avoiding a collision is reduced, the execution of a wasteful driving and avoidance algorithm is unnecessary.
한편, 도 19b의 본 발명의 실시예에 따른 그리드 맵에서의 레이 캐스팅을 통한 개방 공간의 탐색은 도 19a의 비교예의 실시간 센싱에 따른 발견과 달리, 복수의 개방 노드의 중복 여부를 판단함으로써 제거되는 개방 노드가 발생한다.On the other hand, the search for an open space through ray casting in the grid map according to the embodiment of the present invention of FIG. 19B is removed by determining whether a plurality of open nodes overlap, unlike the discovery according to the real-time sensing of the comparative example of FIG. 19A. An open node occurs.
따라서, 복수의 개방 노드가 중복하여 동일한 개방 공간을 나타낼 때, 이를 제거함으로써 추후 개방 공간의 탐색을 위한 주행이 획기적으로 감소하며, 레이 캐스팅의 알고리즘을 위한 연산 로드가 감소할 수 있다.Accordingly, when a plurality of open nodes overlap and indicate the same open space, by removing them, the running for later open space search can be drastically reduced, and the computational load for the ray casting algorithm can be reduced.
또한, 도 20a와 같이 실시간 센싱 결과에 기반할 때, 발견하지 못하고 지나가는 개방 공간이 발생하는 반면, 본원 발명의 경우, 도 20b와 같이 개방 공간 뒤에 형성되는 추가적인 개방 공간이 누락없이 탐색된다. 따라서 이를 위한 개방 노드가 설정됨으로써 누락되는 개방 공간이 발생하지 않는다. In addition, when based on the real-time sensing result as shown in FIG. 20a, an open space that is passed without being discovered occurs, whereas in the case of the present invention, an additional open space formed behind the open space is searched without omission, as shown in FIG. 20b. Therefore, an open space that is omitted does not occur by setting an open node for this purpose.
본 발명에 따른 로봇 청소기(100)는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.The robot cleaner 100 according to the present invention is not limited to the configuration and method of the embodiments described above, but all or part of each of the embodiments is optional so that various modifications can be made. It may be configured in combination with.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나, 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.Similarly, while actions are depicted in the drawings in a particular order, it should not be construed as requiring that those actions be performed in the specific order shown or in the sequential order, or that all depicted actions must be performed to obtain desired results. . In certain cases, multitasking and parallel processing can be advantageous.
한편, 본 발명의 실시예에 따른 로봇 청소기(100)의 제어 방법은, 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Meanwhile, the control method of the robot cleaner 100 according to an embodiment of the present invention can be implemented as a processor-readable code on a processor-readable recording medium. The processor-readable recording medium includes all types of recording devices in which data readable by the processor is stored. Also, it includes those implemented in the form of a carrier wave such as transmission through the Internet. In addition, the processor-readable recording medium is distributed in computer systems connected through a network, so that the processor-readable code can be stored and executed in a distributed manner.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, various modifications are possible by those skilled in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present invention.
[부호의 설명][Description of code]
로봇 청소기: 100Robot Cleaner: 100
본체: 110Body: 110
저장부: 305Reservoir: 305
영상획득부: 320Image acquisition department: 320
입력부: 325Inputs: 325
흡입유닛: 330Suction unit: 330
제어부: 350Control: 350
주행부: 360Driving part: 360
센서부: 370Sensor unit: 370

Claims (20)

  1. 주행 구역 내에서 본체를 이동시키는 주행부; a traveling unit that moves the main body within a traveling area;
    상기 본체 외부의 물체와의 거리에 관한 거리 감지 정보를 획득하는 거리 측정 센서; 및a distance measuring sensor that obtains distance sensing information about a distance to an object outside the main body; and
    상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하고, 상기 주행 구역을 복수의 서브 영역으로 분할할 때, 상기 서브 영역에 대하여 상기 그리드 맵의 경로 상의 복수의 주행 노드에 대하여 레이 캐스팅을 수행하여 개방 공간을 탐색하고, 상기 개방 공간에 대한 개방 노드를 설정하여 상기 주행 노드와 상기 개방 노드 사이에 토폴로지 그래프를 산출하는 제어부A grid map for the driving area is generated from the distance detection information, and when the driving area is divided into a plurality of sub-areas, ray casting is performed on a plurality of driving nodes on the route of the grid map for the sub-area. A controller for searching an open space, setting an open node for the open space, and calculating a topology graph between the driving node and the open node
    를 포함하는 로봇 청소기.A robot cleaner comprising a.
  2. 제 1 항에 있어서,According to claim 1,
    상기 거리 측정 센서는 상기 본체 외부의 물체에 광을 조사하고, 반사되는 광에 의해 상기 거리 감지 정보를 산출하는 라이다 센서를 포함하는 것을 특징으로 하는, 로봇 청소기.The distance measurement sensor may include a lidar sensor for irradiating light to an object outside the main body and calculating the distance detection information based on the reflected light.
  3. 제 2 항에 있어서,According to claim 2,
    상기 서브 영역은 상기 로봇 청소기가 상기 주행 구역을 소정 시간 또는 소정 거리만큼 주행할 때의 면적으로 분할하는 것을 특징으로 하는 로봇 청소기.The robot cleaner, characterized in that the sub-region is divided into an area when the robot cleaner travels for a predetermined time or a predetermined distance in the driving zone.
  4. 제 3 항에 있어서,According to claim 3,
    상기 제어부는,The control unit,
    각각의 상기 서브 영역에 대한 상기 그리드 맵 내에서 복수의 주행 노드마다 상기 레이 캐스팅을 실행하여 개방 공간을 탐색하고, 각각의 상기 개방 공간에 대한 상기 개방 노드를 설정하는 것을 특징으로 하는 로봇 청소기.The robot cleaner according to claim 1 , wherein the ray casting is executed for each of a plurality of driving nodes in the grid map for each sub-region to search for an open space, and to set the open node for each of the open spaces.
  5. 제 4 항에 있어서,According to claim 4,
    상기 제어부는 상기 개방 공간의 폭의 중앙 영역에 상기 개방 노드를 설정하는 것을 특징으로 하는 로봇 청소기.The robot cleaner, characterized in that the control unit sets the open node in the central region of the width of the open space.
  6. 제 5 항에 있어서,According to claim 5,
    상기 제어부는The control unit
    상기 개방 공간이 단차가 없이 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 이격 거리 중앙 영역에 상기 개방 노드를 설정하는 것을 특징으로 하는 로봇 청소기.When the open space is formed between two obstacles that are spaced apart without a step, the robot cleaner, characterized in that to set the open node in the central region of the separation distance between the two obstacles.
  7. 제 5 항에 있어서,According to claim 5,
    상기 제어부는The control unit
    상기 개방 공간이 단차를 가지고 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 중앙선과 상기 주행 노드의 수직선의 교차점에 상기 개방 노드를 설정하는 것을 특징으로 하는 로봇 청소기.When the open space is formed between two obstacles spaced apart by a step, the robot cleaner, characterized in that to set the open node at the intersection of the center line between the two obstacles and the vertical line of the traveling node.
  8. 제 5 항에 있어서,According to claim 5,
    상기 제어부는,The control unit,
    상기 서브 영역에 대한 상기 토폴로지 그래프가 생성되면, 마지막 주행 노드의 상기 개방 노드 중 하나로 이동하고, 이동한 상기 개방 노드를 닫힌 노드로 변경한 후, 상기 토폴로지 그래프에 잔여하는 개방 노드로 이동하여 다른 서브 영역을 구획하는 것을 특징으로 하는 로봇 청소기.When the topology graph for the sub-region is created, it moves to one of the open nodes of the last driving node, changes the moved open node to a closed node, moves to the open node remaining in the topology graph, and moves to another sub-region. A robot cleaner characterized in that the area is partitioned.
  9. 제 8 항에 있어서,According to claim 8,
    상기 제어부는 상기 마지막 주행 노드의 복수의 개방 노드 중 폭이 가장 큰 개방 노드로 이동하는 것을 특징으로 하는 로봇 청소기.The robot cleaner, characterized in that the controller moves to an open node having the largest width among a plurality of open nodes of the last driving node.
  10. 제 9 항에 있어서,According to claim 9,
    상기 제어부는, 상기 주행 노드에서 레이 캐스팅하여 상기 로봇 청소기의 주행이 가능하고, 상기 로봇 청소기가 기 주행하지 않은 공간을 상기 개방 공간으로 판단하는 것을 특징으로 하는, 로봇 청소기.The controller may determine, as the open space, a space in which the robot cleaner can travel by ray casting at the travel node, and the robot cleaner has not already traveled, as the open space.
  11. 제 10 항에 있어서,According to claim 10,
    상기 제어부는 상기 주행 노드를 중심으로 360도로 레이 캐스팅을 수행하는 것을 특징으로 하는 로봇 청소기.The robot cleaner, characterized in that the control unit performs ray casting at 360 degrees around the traveling node.
  12. 제 5 항에 있어서,According to claim 5,
    상기 제어부는,The control unit,
    제1 주행 노드에 대하여 탐색된 일 개방 공간에 대하여 제1 개방 노드가 설정되고, 상기 제1 주행 노드와 다른 제2 주행 노드에 대하여 탐색된 다른 개방 공간에 대하여 제2 개방 노드가 설정되고, 상기 제1 개방 노드와 상기 제2 개방 노드가 중첩되는 것으로 판단되면, 중첩되는 제1 및 제2 개방 노드 중 하나를 삭제하는 것을 특징으로 하는 로봇 청소기.A first open node is set for an open space searched for for the first travel node, and a second open node is set for another open space searched for for a second travel node different from the first travel node; If it is determined that the first open node and the second open node overlap, the robot cleaner characterized in that for deleting one of the overlapping first and second open nodes.
  13. 제 12 항에 있어서,According to claim 12,
    상기 제어부는, 상기 일 개방 공간과 상기 다른 개방 공간의 폭이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드의 중첩 여부를 판단하는 것을 특징으로 하는, 로봇 청소기.The controller may determine whether the first open node and the second open node overlap when widths of the one open space and the other open space overlap by a predetermined range or more.
  14. 제 13 항에 있어서,According to claim 13,
    상기 제어부는,The control unit,
    상기 제1 개방 노드와 상기 제2 개방 노드를 중심으로 동일한 직경의 원을 생성하고, 각각의 원이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드가 동일한 개방 노드에 대한 것으로 판단하는 것을 특징으로 하는, 로봇 청소기.Circles having the same diameter are generated around the first open node and the second open node, and if each circle overlaps a predetermined range or more, it is determined that the first open node and the second open node are related to the same open node. Characterized in that, a robot cleaner.
  15. 제 14 항에 있어서,15. The method of claim 14,
    상기 제1 개방 노드와 상기 제2 개방 노드 중 상기 제1 및 제2 개방 노드가 위치하는 개방 영역의 중심 영역에 근접한 하나의 개방 노드를 남기고, 다른 개방 노드를 삭제하는 것을 특징으로 하는 로봇 청소기. Among the first open node and the second open node, one open node proximate to a central area of an open area where the first and second open nodes are located is left, and another open node is deleted.
  16. 제 13 항에 있어서,According to claim 13,
    상기 제어부는, 복수의 상기 서브 영역에 대한 상기 토폴로지 그래프를 서로 연결하여 상기 주행 구역에 대한 최종 토폴로지 그래프를 산출하는 것을 특징으로 하는 로봇 청소기.The robot cleaner, characterized in that the control unit calculates a final topology graph for the driving area by connecting the topology graphs for the plurality of sub-regions to each other.
  17. 제1항에 있어서,According to claim 1,
    상기 제어부는 상기 그리드 맵을 이미지 처리하여 최종 맵을 산출하는 것을 특징으로 하는, 로봇 청소기.The robot cleaner, characterized in that the control unit calculates a final map by image processing of the grid map.
  18. 미지의 주행 구역을 이동하면서 본체 외부의 물체와의 거리에 대한 거리 감지 정보를 수득하는 단계;obtaining distance sensing information about a distance to an object outside the main body while moving in an unknown driving area;
    상기 거리 감지 정보로부터 상기 주행 구역에 대한 그리드 맵을 생성하는 단계;generating a grid map for the driving area from the distance detection information;
    상기 주행 구역을 복수의 서브 영역으로 분할하고, 각각의 상기 서브 영역에 대하여 상기 그리드 맵의 경로 상에서 복수의 주행 노드에 대하여 레이 캐스팅을 수행하여 개방 공간을 탐색하는 단계; dividing the driving area into a plurality of sub-regions, and searching an open space by performing ray casting on a plurality of driving nodes on a path of the grid map for each of the sub-regions;
    상기 개방 공간에 대한 개방 노드를 설정하여 상기 서브 영역에 대한 상기 주행 노드와 상기 개방 노드 사이의 토폴로지 그래프를 생성하는 단계; 및 setting an open node for the open space and generating a topology graph between the driving node and the open node for the sub-area; and
    복수의 상기 서브 영역에 대한 상기 토폴로지 그래프를 서로 연결하여 상기 주행 구역에 대한 최종 토폴로지 그래프를 생성하는 단계generating a final topology graph for the driving area by connecting the topology graphs of the plurality of sub-regions with each other;
    를 포함하는 로봇 청소기의 제어 방법.Control method of a robot cleaner comprising a.
  19. 제 18 항에 있어서,According to claim 18,
    상기 토폴로지 그래프를 생성하는 단계는, Generating the topology graph,
    상기 개방 공간이 단차가 없이 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 이격 거리 중앙 영역에 상기 개방 노드를 설정하고,When the open space is formed between two obstacles that are spaced apart without a step, the open node is set in a central region of the separation distance between the two obstacles;
    상기 개방 공간이 단차를 가지고 이격되어 있는 두 장애물 사이에 형성되어 있는 경우, 상기 두 장애물 사이의 중앙선과 상기 주행 노드의 수직선의 교차점에 상기 개방 노드를 설정하는 것을 특징으로 하는 로봇 청소기의 제어 방법.When the open space is formed between two obstacles spaced apart by a step, the control method of a robot cleaner, characterized in that by setting the open node at an intersection of a center line between the two obstacles and a vertical line of the traveling node.
  20. 제 19 항에 있어서,According to claim 19,
    상기 토폴로지 그래프를 생성하는 단계는, Generating the topology graph,
    제1 주행 노드에 대하여 탐색된 일 개방 공간에 대하여 제1 개방 노드가 설정하고, 상기 제1 주행 노드와 다른 제2 주행 노드에 대하여 탐색된 다른 개방 공간에 대하여 제2 개방 노드가 설정하는 단계;setting, by a first open node, one open space found for the first traveling node, and setting, by a second open node, another open space found for a second traveling node different from the first traveling node;
    상기 일 개방 공간과 상기 다른 개방 공간의 폭이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드의 중첩 여부를 판단하는 단계;determining whether the first open node and the second open node overlap when widths of the one open space and the other open space overlap by a predetermined range or more;
    상기 제1 개방 노드와 상기 제2 개방 노드를 중심으로 동일한 직경의 원을 생성하고, 각각의 원이 소정 범위 이상 중첩되면 상기 제1 개방 노드와 상기 제2 개방 노드가 동일한 개방 노드에 대한 것으로 판단하는 단계; 및 Circles having the same diameter are generated around the first open node and the second open node, and if each circle overlaps a predetermined range or more, it is determined that the first open node and the second open node are related to the same open node. doing; and
    상기 제1 개방 노드와 상기 제2 개방 노드 중 상기 제1 및 제2 개방 노드가 위치하는 개방 영역의 중심 영역에 근접한 하나의 개방 노드를 남기고, 다른 개방 노드를 삭제하는 단계leaving one open node adjacent to a central area of an open area where the first and second open nodes are located among the first open node and the second open node, and deleting another open node;
    를 포함하는 것을 특징으로 하는 로봇 청소기의 제어 방법. A control method of a robot cleaner comprising a.
PCT/KR2022/010141 2021-07-22 2022-07-12 Robotic cleaner and method for controlling robotic cleaner WO2023003249A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP22846119.0A EP4374763A1 (en) 2021-07-22 2022-07-12 Robotic cleaner and method for controlling robotic cleaner

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210096541A KR20230015148A (en) 2021-07-22 2021-07-22 A robot cleaner and control method thereof
KR10-2021-0096541 2021-07-22

Publications (1)

Publication Number Publication Date
WO2023003249A1 true WO2023003249A1 (en) 2023-01-26

Family

ID=84979378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/010141 WO2023003249A1 (en) 2021-07-22 2022-07-12 Robotic cleaner and method for controlling robotic cleaner

Country Status (3)

Country Link
EP (1) EP4374763A1 (en)
KR (1) KR20230015148A (en)
WO (1) WO2023003249A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100031878A (en) 2008-09-16 2010-03-25 삼성전자주식회사 Apparatus and method for building map used in mobile robot
KR20170053351A (en) * 2015-11-06 2017-05-16 삼성전자주식회사 Cleaning robot and controlling method thereof
KR20190091508A (en) * 2016-12-29 2019-08-06 아미크로 세미컨덕터 씨오., 엘티디. Path planning method of intelligent robot
KR20190098734A (en) * 2019-07-12 2019-08-22 엘지전자 주식회사 Artificial intelligence robot for determining cleaning route using sensor data and method for the same
JP2019536601A (en) * 2016-11-23 2019-12-19 クリーンフィックス・ライニグングスシステーメ・アーゲーCleanfix Reinigungssysteme Ag Floor treatment machine and method for treating floor surface
JP2020004342A (en) * 2018-07-02 2020-01-09 株式会社Soken Mobile body controller
KR20210009011A (en) 2019-07-16 2021-01-26 엘지전자 주식회사 Moving robot and control method thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100031878A (en) 2008-09-16 2010-03-25 삼성전자주식회사 Apparatus and method for building map used in mobile robot
KR20170053351A (en) * 2015-11-06 2017-05-16 삼성전자주식회사 Cleaning robot and controlling method thereof
JP2019536601A (en) * 2016-11-23 2019-12-19 クリーンフィックス・ライニグングスシステーメ・アーゲーCleanfix Reinigungssysteme Ag Floor treatment machine and method for treating floor surface
KR20190091508A (en) * 2016-12-29 2019-08-06 아미크로 세미컨덕터 씨오., 엘티디. Path planning method of intelligent robot
JP2020004342A (en) * 2018-07-02 2020-01-09 株式会社Soken Mobile body controller
KR20190098734A (en) * 2019-07-12 2019-08-22 엘지전자 주식회사 Artificial intelligence robot for determining cleaning route using sensor data and method for the same
KR20210009011A (en) 2019-07-16 2021-01-26 엘지전자 주식회사 Moving robot and control method thereof

Also Published As

Publication number Publication date
KR20230015148A (en) 2023-01-31
EP4374763A1 (en) 2024-05-29

Similar Documents

Publication Publication Date Title
WO2021010757A1 (en) Mobile robot and control method thereof
AU2020247141B2 (en) Mobile robot and method of controlling the same
WO2018139796A1 (en) Mobile robot and method for controlling same
WO2021006677A2 (en) Mobile robot using artificial intelligence and controlling method thereof
AU2019334724B2 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2021006556A1 (en) Moving robot and control method thereof
AU2019262468B2 (en) A plurality of robot cleaner and a controlling method for the same
AU2019262467B2 (en) A plurality of robot cleaner and a controlling method for the same
WO2021006542A1 (en) Mobile robot using artificial intelligence and controlling method thereof
WO2019083291A1 (en) Artificial intelligence moving robot which learns obstacles, and control method therefor
WO2018155999A2 (en) Moving robot and control method thereof
WO2019212239A1 (en) A plurality of robot cleaner and a controlling method for the same
WO2020050489A1 (en) A robot cleaner and a controlling method for the same
WO2019212240A1 (en) A plurality of robot cleaner and a controlling method for the same
WO2019017521A1 (en) Cleaner and control method thereof
WO2016028021A1 (en) Cleaning robot and control method therefor
WO2020050566A1 (en) Plurality of autonomous mobile robots and controlling method for the same
WO2018101631A2 (en) Robotic vacuum cleaner, cleaning function control apparatus equipped in robotic vacuum cleaner, and multi-channel lidar-based obstacle detection apparatus equipped in robotic vacuum cleaner
WO2018117616A1 (en) Mobile robot
WO2020122540A1 (en) Robot cleaner and method for operating same
WO2021006553A1 (en) Moving robot and control method thereof
WO2019004773A1 (en) Mobile terminal and robot system including same
WO2023003249A1 (en) Robotic cleaner and method for controlling robotic cleaner
WO2021125717A1 (en) Mobile robot and control method therefor
WO2021225234A1 (en) Robot cleaner and method for controlling the same

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2024503620

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2022846119

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2022846119

Country of ref document: EP

Effective date: 20240222