Robot vacuum cleaner and control method for robot vacuum cleaner
By dividing the travel area into sub-regions and setting nodes in the center of open spaces using lidar, the method enhances map generation and navigation efficiency for robot vacuum cleaners, reducing wasteful motion and improving SLAM performance.
Patent Information
- Application Number
- JP2024503620
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-07-22
- Filing Date
- 2022-07-12
- Publication Date
- 2025-08-06
- Estimated Expiration
- 2042-07-12
AI Technical Summary
Conventional robot vacuum cleaners face inefficiencies in map generation and navigation due to unnecessary travel and collision avoidance when exploring unknown areas, particularly when the initial direction does not match the building structure, leading to wasteful motion and difficulty in accurate path planning.
The method involves dividing the travel area into sub-regions, using a distance measurement sensor like lidar to identify open spaces, and setting nodes in the center of these spaces to generate a grid and topology map, minimizing unnecessary travel by prioritizing the widest open paths.
This approach reduces unnecessary travel and collision avoidance by ensuring the robot travels in the center of passageways, improving SLAM performance and providing more accurate map information.
Smart Images

Figure 0007719943000001 
Figure 0007719943000002 
Figure 0007719943000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a mobile robot, particularly a robotic vacuum cleaner and a method for controlling the robotic vacuum cleaner, and more particularly to a sensing and corresponding control technique for a robotic vacuum cleaner for generating a travel map. [Background technology]
[0002] A typical example of a bot is a robot vacuum cleaner.
[0003] Various technologies are known for detecting the environment around the robot vacuum cleaner and the user through various sensors provided in the robot vacuum cleaner. Also, a technology is known in which the robot vacuum cleaner learns and maps the cleaning area by itself and determines its current location on the map. Robot vacuum cleaners that travel and clean the cleaning area in a preset manner are also known.
[0004] In order to perform set tasks such as cleaning, it is necessary to accurately generate a map of the driving area and accurately determine the current location of the robot vacuum cleaner on the map in order to move to a specific location within the driving area.
[0005] The prior art (Korean Patent Publication No. 10-2010-0031878) discloses a technology that generates a path based on the uncertainty of the position of feature points extracted from an image acquired when a robot vacuum cleaner explores an unknown environment, and then travels along the generated path. The path based on the uncertainty of feature points is generated to improve the accuracy of the feature point map of the robot vacuum cleaner and the accuracy of its self-location recognition.
[0006] Another prior art (Korean Patent Publication No. 2021-0009011) discloses that a robot performs search driving to create a map for driving during cleaning.
[0007] In other conventional technologies, when traveling through unknown areas during search travel for map creation, data within a real-time sensing range is acquired, nodes are set accordingly, and a grid map is calculated based on the node information. Map information is generated by searching for boundaries based on image data for the grid map and providing an updated final grid map.
[0008] However, in these other conventional technologies, the robot acquires only data within the sensing range in real time while moving and generates a base map based on this data, so there is a risk that an obstacle that cannot be navigated between the current robot position and the boundary found in the image may occur.
[0009] In another conventional technique, a topology node is added to the path at a position where additional exploration is required while the robot is traveling, thereby indicating that further exploration is required.
[0010] However, in conventional technology, when a node is generated on a travel route where additional search is required, the direction in which additional travel is required is displayed in sections at that node. However, if the initial direction of the robot does not match the angle of the additional travel direction with the structure inside the building, the direction setting is off, making travel difficult. [Prior art documents] [Patent documents]
[0011] [Patent Document 1] Korean Patent Publication No. 10-2010-0031878A [Patent Document 2] Korean Patent Publication No. 10-2021-0009011A Summary of the Invention [Problem to be solved by the invention]
[0012] In order to solve the above problems, an object of the present invention is to provide a map generation method that can minimize unnecessary travel when searching for a space where travel is required.
[0013] 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 sensing information, so that the direction is immediately set from the current position to an area where additional search travel is required.
[0014] However, since the robot is currently not positioned in the center of the passageway but often travels along walls, additional search travel may be performed to prevent collision with the passageway. In other words, in such cases, avoidance travel is performed to prevent collision with obstacles due to route changes, resulting in wasteful motion. Another object of the present invention is to provide a control method that can reduce avoidance travel by setting the robot to travel in the center of the passageway during such additional search travel.
[0015] Another object of the present invention is to provide a control method for first entering a search space with the widest width by assigning a PARENT-CHILDREN relationship between one node and other nodes connected thereto, and comparing the open widths of each child node when selecting a child node to move from one parent node.
[0016] This priority running can improve slam performance and provide a control method that can provide as much information as possible to other nodes that enter later. [Means for solving the problem]
[0017] To achieve the above object, according to one aspect of the present invention, a robot vacuum cleaner includes: a traveling unit that moves a main body within a traveling area; a distance measurement sensor that acquires distance detection information regarding a distance to an object outside the main body; and a control unit that generates a grid map for the traveling area from the distance detection information, divides the traveling area into a plurality of sub-areas, performs ray casting on a plurality of traveling nodes on a path of the grid map for the sub-areas to search for an open space, sets an open node for the open space, and calculates a topology graph between the traveling node and the open node.
[0018] In this way, by dividing the driving area into multiple sub-areas and acquiring information about each sub-area, a grid map and topology graph for the sub-area are generated, and nodes can be set in the center of the path without selecting nodes in real time.
[0019] The distance measurement sensor may include a lidar sensor that irradiates light onto an object outside the main body and calculates the distance sensing information based on the reflected light.
[0020] The sub-regions may be divided into areas corresponding to the area in which the robot cleaner travels for a predetermined time or a predetermined distance.
[0021] The control unit may perform the ray casting for each of a plurality of travel nodes within the grid map for each of the sub-regions to search for an open space, and set the open node for each of the open spaces.
[0022] The control unit can set the open node in a central region of the width of the open space.
[0023] When the open space is formed between two obstacles that are separated without a step, the control unit may set the open node in a central region of the separation distance between the two obstacles.
[0024] When the open space is formed between two obstacles that are spaced apart by a step, the control unit can set the open node at the intersection of a center line between the two obstacles and a perpendicular line of the traveling node.
[0025] When the topology graph for the sub-region is generated, the control unit may move to one of the open nodes of the last travel node, change the moved open node to a closed node, and then move to the remaining open node in the topology graph to demarcate another sub-region.
[0026] The control unit may move to an open node with the largest width among a plurality of open nodes of the last travel node.
[0027] The control unit may perform ray casting at the travel node to allow the robot cleaner to travel, and may determine a space where the robot cleaner has not traveled before as the open space.
[0028] The control unit can perform ray casting in 360 degrees around the traveling node.
[0029] The control unit may set a first open node for one open space searched for a first traveling node, set a second open node for another open space searched for a second traveling node different from the first traveling node, and, when it is determined that the first open node and the second open node overlap, delete one of the overlapping first and second open nodes.
[0030] The control unit may determine whether the first open node and the second open node overlap when the widths of the one open space and the other open space overlap by a predetermined range or more.
[0031] The control unit generates circles of the same diameter centered on the first open node and the second open node, and when the circles overlap by more than a predetermined range, it can determine that the first open node and the second open node correspond to the same open node.
[0032] Of the first and second open nodes, one open node adjacent to a central region of the open region in which the first and second open nodes are located may be left, and the remaining open nodes may be deleted.
[0033] The control unit may calculate a final topology graph for the driving area by connecting the topology graphs for the plurality of sub-areas.
[0034] The control unit may perform image processing on the grid map to calculate a final map.
[0035] Meanwhile, an embodiment provides a method for controlling a robot vacuum cleaner, including the steps of: acquiring distance sensing information regarding a distance to an object outside the robot body while moving in an unknown driving area; generating a grid map for the driving area from the distance sensing information; dividing the driving area into a plurality of sub-areas and searching for 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-areas; 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 connecting the topology graphs for the plurality of sub-areas to generate a final topology graph for the driving area.
[0036] In the step of generating the topology graph, if the open space is formed between two obstacles that are separated by no step, the open node can be set in a central area of the separation distance between the two obstacles, and if the open space is formed between two obstacles that are separated by a step, the open node can be set at an intersection of a center line between the two obstacles and a perpendicular line of the traveling node.
[0037] The step of generating the topology graph may include the steps of: setting a first open node for one open space searched for a first traveling node; and setting a second open node for another open space searched for a second traveling node different from the first traveling node; determining whether the first open node and the second open node overlap when widths of the first open space and the other open space overlap by more than a predetermined range; generating circles of the same diameter centered on the first open node and the second open node; and determining that the first open node and the second open node correspond to the same open node when the circles overlap by more than a predetermined range; and leaving one open node from the first open node and the second open node that is closest to a central region of the open region where the first and second open nodes are located, and deleting the remaining open nodes. [Effects of the Invention]
[0038] The present invention has one or more of the following advantages.
[0039] First, it is possible to improve efficiency by minimizing unnecessary travel during search travel for spaces where additional travel is required.
[0040] The present invention can reduce avoidance maneuvers by setting the vehicle to travel in the center of the aisle during additional search maneuvers.
[0041] When selecting a child node to move from one parent node, the open widths of each child node are compared with each other, and the search space with the widest width is entered first, thereby improving SLAM performance and providing as much information as possible to other nodes that will enter later.
[0042] Meanwhile, the effects of the present invention are not limited to those mentioned above, and other effects not mentioned above will be clearly understood by those skilled in the art from the description of the claims. [Brief explanation of the drawings]
[0043] [Figure 1] 1 is a perspective view illustrating a robot cleaner and a filling station for filling the robot cleaner according to an embodiment of the present invention; [Figure 2] FIG. 2 is an elevation view of the robot vacuum cleaner of FIG. 1 as viewed from above. [Figure 3] FIG. 2 is an elevation view of the robot vacuum cleaner of FIG. 1 as seen from the front. [Figure 4] FIG. 2 is an elevation view of the robot vacuum cleaner of FIG. 1 as seen from below. [Figure 5] FIG. 10 illustrates an example of a robotic vacuum cleaner according to another embodiment of the present invention. [Figure 6] FIG. 6 is a block diagram showing the control relationships between the main components of the robot cleaner of FIG. 1 or FIG. 5. [Figure 7] 10A and 10B are diagrams illustrating the operation of a lidar sensor provided in a robot cleaner according to an embodiment of the present invention. [Figure 8] 4 is a flowchart illustrating a map generation process of a robot cleaner according to an embodiment of the present invention. [Figure 9a] FIG. 9 is a diagram showing the map generation process of the robot cleaner according to the flowchart of FIG. 8. [Figure 9b] FIG. 9 is a diagram showing the map generation process of the robot cleaner according to the flowchart of FIG. 8. [Figure 9c] FIG. 9 is a diagram showing the map generation process of the robot cleaner according to the flowchart of FIG. 8. [Figure 9d] FIG. 9 is a diagram showing the map generation process of the robot cleaner according to the flowchart of FIG. 8. [Figure 9e] FIG. 9 is a diagram showing the map generation process of the robot cleaner according to the flowchart of FIG. 8. [Figure 10] FIG. 9 is a diagram showing a part of a topology graph of the robot cleaner according to the flowchart of FIG. 8. [Figure 11] FIG. 9 shows a flowchart for searching for open nodes in FIG. 8. [Figure 12a] FIG. 12 is a diagram showing the case of an open space without a step in FIG. [Figure 12b] FIG. 12 is a diagram showing the case of an open space without a step in FIG. [Figure 13a] 12 is a diagram showing an embodiment in the case of the step open space of FIG. 11. FIG. [Figure 13b] 12 is a diagram showing an embodiment in the case of the step open space of FIG. 11. FIG. [Figure 14a] 12 is a diagram showing another embodiment in the case of the step open space of FIG. 11. FIG. [Figure 14b] 12 is a diagram showing another embodiment in the case of the step open space of FIG. 11. FIG. [Figure 15] 9 is another flowchart for searching for an open node in FIG. 8. FIG. [Figure 16] 16 is a diagram showing a search of the robot cleaner, illustrating the operation of FIG. 15. FIG. [Figure 17] FIG. 16 is a diagram for explaining the process for removing overlaps in FIG. 15. [Figure 18] FIG. 1A shows open space searching according to a comparative example, and FIG. 1B shows open space searching according to the present invention. [Figure 19] 1A shows multiple open space searches according to a comparative example, and FIG. 1B shows overlap removal during open space searches according to the present invention. [Figure 20] FIG. 1A shows an unsearched area according to a comparative example, and FIG. 1B shows an open space searched according to the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0044] In comparisons of magnitude expressed linguistically / mathematically throughout this description, "smaller or the same (or less)" and "smaller (less than)" are easily interchangeable by those of ordinary skill in the art, and "larger or the same (or more than)" and "larger (exceeding)" are easily interchangeable by those of ordinary skill in the art, and even if they are substituted in embodying the present invention, it goes without saying that there will be no problem in exhibiting its effects.
[0045] The mobile robot 100 of the present invention refers to a robot that can move by itself using wheels or the like, and can be used as a home helper robot, a robot vacuum cleaner, or the like.
[0046] 1 to 4 are diagrams illustrating the appearance of a robot cleaner and a filling station for filling the robot cleaner according to an embodiment of the present invention.
[0047] FIG. 1 is a perspective view showing a robot vacuum cleaner according to one embodiment of the present invention and a filling stand for filling the robot vacuum cleaner, FIG. 2 is an elevation view of the robot vacuum cleaner of FIG. 1 viewed from above, FIG. 3 is an elevation view of the robot vacuum cleaner of FIG. 1 viewed from the front, and FIG. 4 is an elevation view of the robot vacuum cleaner of FIG. 1 viewed from below.
[0048] The robot vacuum cleaner 100 includes a main body 110. Hereinafter, in defining each part of the main body 110, a part facing the ceiling within the travel area is defined as an upper surface part (see FIG. 2), a part facing the bottom within the travel area is defined as a bottom surface part (see FIG. 4), and a part of the main body 110 between the upper surface part and the bottom surface part that faces the direction of travel is defined as a front surface part (see FIG. 3). Also, a part of the main body 110 facing in the opposite direction to the front surface part may be defined as a rear surface part. The main body 110 may include a case 111 that forms a space in which various components constituting the robot vacuum cleaner 100 are housed.
[0049] The robot vacuum cleaner 100 may include, for example, at least one drive wheel 136 that moves the main body 110. The drive wheel 136 may be driven to rotate by, for example, at least one motor (not shown) coupled to the drive wheel 136.
[0050] The drive wheels 136 may be provided, for example, on the left and right sides of the main body 110, and will be referred to as a left wheel 136(L) and a right wheel 136(R), respectively, hereinafter.
[0051] The left wheel 136(L) and the right wheel 136(R) are driven by a single drive motor, but if necessary, a left wheel drive motor for driving the left wheel 136(L) and a right wheel drive motor for driving the right wheel 136(R) may be provided. The running direction of the main body 110 can be changed to the left or right by varying the rotation speeds of the left wheel 136(L) and the right wheel 136(R).
[0052] The robot vacuum cleaner 100 may include, for example, a suction unit 330 for sucking up foreign matter, brushes 154, 155 for sweeping, a dust case for storing collected foreign matter, a mop portion for wiping, and the like.
[0053] For example, an intake port 150h through which air is sucked may be formed on the bottom of the main body 110, and a suction device that provides suction force so that air is sucked through the intake port 150h and a dust case that collects dust sucked together with the air through the intake port 150h may be provided inside the main body 110.
[0054] The robot vacuum cleaner 100 may include, for example, a case 111 that forms a space in which various components constituting the robot vacuum cleaner 100 are accommodated. The case 111 may be formed with an opening (not shown) for inserting and removing a dust case, and a dust case cover 112 that opens and closes the opening may be provided rotatably with respect to the case 111.
[0055] The robot vacuum cleaner 100 may include, for example, a roll-type main brush 154 having a brush exposed through the suction port 150h, and an auxiliary brush 155 having a brush made up of a plurality of radially extending blades located at the front side of the bottom of the main body 110. Dust is separated from the bottom of the travel area by the rotation of these brushes 154, 155, and the separated dust is sucked in through the suction port 150h and flows into the dust case via the suction unit 330.
[0056] Air and dust are separated from each other through the filter or cyclone of the dust case, and the separated dust is collected in the dust case. After being discharged from the dust case, the air passes through an exhaust passage (not shown) inside the main body 110 and is finally discharged to the outside through an exhaust port (not shown).
[0057] The battery 138 can supply power necessary for the overall operation of the robot cleaner 100, including the drive motor. Meanwhile, when the battery 138 is discharged, the robot cleaner 100 can travel back to the refilling station 200 for refilling, and during this return travel, the robot cleaner 100 can detect the location of the refilling station 200 by itself.
[0058] The filling station 200 may include, for example, a signal sending unit (not shown) that sends a predetermined return signal. The return signal may be, for example, an ultrasonic signal or an infrared signal, but is not necessarily limited thereto.
[0059] The robot cleaner 100 may include, for example, a signal detector (not shown) that receives a return signal.
[0060] For example, the signal detection unit may include an infrared sensor that detects an infrared signal and may receive an infrared signal transmitted from a signal transmission unit of the refilling unit 200. In this case, the robot cleaner 100 moves to the position of the refilling unit 200 in response to the infrared signal transmitted from the refilling unit 200 and docks with the refilling unit 200. By docking in this manner, the refilling terminal 133 of the robot cleaner 100 comes into contact with the refilling terminal 210 of the refilling unit 200, and the battery 138 is charged.
[0061] The robot vacuum cleaner 100 may be provided with a configuration for sensing information inside / outside the robot vacuum cleaner 100.
[0062] The robot cleaner 100 may include, for example, a camera 120 that acquires image information about the area in which the robot cleaner 100 travels.
[0063] For example, the robot vacuum cleaner 100 may include a front camera 120a that is configured to capture an image in front of the main body 110.
[0064] For example, the robot cleaner 100 may include an upper camera 120b provided on the upper surface of the main body 110 to capture an image of the ceiling within the travel area.
[0065] For example, the robot vacuum cleaner 100 may further include a lower camera 179 provided on the bottom of the main body 110 to capture an image of the bottom.
[0066] Meanwhile, the number, placement positions, and shooting range of the cameras 120 provided in the robot vacuum cleaner 100 are not necessarily limited to the above, and the cameras 120 may be placed in various positions to obtain image information about the travel area.
[0067] For example, the robot vacuum cleaner 100 may include a camera (not shown) that is arranged at an angle to one surface of the main body 110 and configured to capture both forward and upward images.
[0068] For example, the robot cleaner 100 may have multiple front cameras 120a and / or multiple upper cameras 120b, or multiple cameras configured to capture both forward and upward images.
[0069] According to various embodiments of the present invention, cameras 120 are installed at certain locations (e.g., front, rear, and bottom) of the robot vacuum cleaner 100, and can continuously capture images while the robot vacuum cleaner 100 is moving or cleaning. For better image capture efficiency, several cameras 120 may be installed at each location, and the images captured by the cameras 120 can be used to identify the type of material, such as dust, hair, floors, etc., present in the corresponding space, and to confirm whether or not cleaning has been completed or when cleaning was performed.
[0070] The robot vacuum cleaner 100 may include a light detection and ranging (LiDAR) sensor 175 that uses a laser to acquire information about the terrain outside the main body 110 .
[0071] The lidar sensor 175 outputs a laser and receives the laser reflected from an object to acquire information such as the distance, position, direction, and material of the object that reflected the laser, and can also acquire topographical information of the travel area. The robot vacuum cleaner 100 can acquire 360-degree geometry information based on the information acquired through the lidar sensor 175.
[0072] The robot vacuum cleaner 100 may also include sensors 171, 172, and 179 that sense various data related to the operation and status of the robot vacuum cleaner 100.
[0073] The robot cleaner 100 may include an obstacle detection sensor 171 that detects obstacles ahead, a cliff detection sensor 172 that detects whether or not there is a cliff at the bottom of the travel area, and the like.
[0074] The robot vacuum cleaner 100 may include an operation unit 137 that can input various commands such as turning the power of the robot vacuum cleaner 100 on / off, and can receive various control commands required for the overall operation of the robot vacuum cleaner 100 through the operation unit 137.
[0075] The robot vacuum cleaner 100 includes an output unit (not shown) that can display reservation information, battery status, operation mode, operation status, error status, and the like.
[0076] Meanwhile, FIG. 5 is a diagram illustrating an example of a robot cleaner according to another embodiment of the present invention.
[0077] The robot vacuum cleaner 100 shown in Fig. 5 has the same or similar configuration as the robot vacuum cleaner 100 disclosed in Figs. 1 to 4 and functions as a robot vacuum cleaner applicable to large spaces, a detailed description of which will be omitted.
[0078] FIG. 6 is a block diagram showing the control relationships between the main components of the robot cleaner according to the embodiment of the present invention.
[0079] As shown in FIG. 6, the robot vacuum cleaner 100 may include a storage unit 305, an image acquisition unit 320, an input unit 325, a suction unit 330, a control unit 350, a traveling unit 360, a sensor unit 370, an output unit 380, and / or a communication unit 390.
[0080] The storage unit 305 can store various information required for controlling the robot cleaner 100 .
[0081] The storage unit 305 may include a volatile or non-volatile recording medium, which stores data that can be read by a microprocessor, and is not limited to a particular type or implementation.
[0082] The storage unit 305 may store a map of the travel area. The map stored in the storage unit 305 may be input from an external terminal or server that can exchange information with the robot cleaner 100 via wired or wireless communication, or may be generated by the robot cleaner 100 through its own learning.
[0083] The storage unit 305 may store data for a sub-area. Here, a sub-area may refer to a divided area having a predetermined distance or a predetermined area within a travel area. The data for a sub-area may include lidar sensory data obtained while traveling through the sub-area, node information for the lidar sensory data, and information on the movement direction at each node.
[0084] The storage unit 305 can store various map information.
[0085] The map may display the location of rooms within the travel area, and the current location of the robot vacuum cleaner 100 may be displayed on the map, and the current location of the robot vacuum cleaner 100 on the map may be updated during travel.
[0086] The storage unit 305 can store cleaning history information. Such cleaning history information can be generated each time cleaning is performed.
[0087] The maps for the driving area stored in the storage unit 305 may be, for example, a navigation map used for driving during cleaning, a SLAM (simultaneous localization and mapping) map used for location recognition, a learning map that stores information when an obstacle is encountered and is used during learning cleaning, a global topological map used for global location recognition, a cell data-based grid map, an obstacle recognition map that records information about recognized obstacles, etc.
[0088] Meanwhile, maps can be classified and stored and managed in storage unit 305 according to their intended use, but maps do not have to be clearly classified according to their intended use. For example, a single map may store multiple pieces of information so that it can be used for at least two or more purposes.
[0089] The image acquisition unit 320 can acquire an image of the surroundings of the robot vacuum cleaner 100. The image acquisition unit 320 can include at least one camera (for example, the camera 120 in FIG. 1).
[0090] The image acquisition unit 320 may include, for example, a digital camera. The digital camera may include an image sensor (e.g., a CMOS image sensor) including at least one optical lens and a plurality of photodiodes (e.g., pixels) that form an image using light passing through the optical lens, and a digital signal processor (DSP) that generates an image based on signals output from the photodiodes. The digital signal processor may generate, for example, still images as well as moving images made up of frames of still images.
[0091] The image capture unit 320 can capture an image of an obstacle or a cleaning area in front of the robot cleaner 100 in the traveling direction.
[0092] According to an embodiment of the present invention, the image capture unit 320 can continuously capture images around the main body 110 to capture a plurality of images, and the captured images can be stored in the storage unit 305.
[0093] The robot vacuum cleaner 100 can improve the accuracy of obstacle recognition by using multiple images, or by selecting one or more images from the multiple images and using effective data.
[0094] The input unit 325 may include an input device (e.g., a key, a touch panel, etc.) that can receive user input. The input unit 325 may include an operation unit 137 that can input various commands such as powering on / off the robot vacuum cleaner 100.
[0095] The input unit 325 can receive user input via an input device and can transmit commands corresponding to the received user input to the control unit 350 .
[0096] The suction unit 330 sucks in dusty air. The suction unit 330 may include, for example, a suction device (not shown) that sucks in foreign matter, brushes 154 and 155 that sweep, a dust case (not shown) that stores foreign matter collected by the suction device or brushes (e.g., brushes 154 and 155 in FIG. 3), and a suction port (e.g., suction port 150h in FIG. 4) through which air is sucked.
[0097] The traveling unit 360 can move the robot vacuum cleaner 100. The traveling unit 360 may include, for example, at least one driving wheel 136 for moving the robot vacuum cleaner 100 and at least one motor (not shown) for rotating the driving wheel.
[0098] The sensor unit 370 may include a distance measurement sensor that measures the distance to an object outside the main body 110. The distance measurement sensor may include the LIDAR sensor 175 described above.
[0099] The robot vacuum cleaner 100 according to an embodiment of the present invention can generate a map by determining the distance, position, direction, etc. of an object sensed by the lidar sensor 175.
[0100] The robot cleaner 100 according to an embodiment of the present invention can acquire topographical information of a travel 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 can also generate a map using the topographical information acquired through the LIDAR sensor 175.
[0101] For example, the robot cleaner 100 according to the present invention may perform a LIDAR SLAM to determine a direction of movement by analyzing surrounding terrain information acquired at the current location through the LIDAR sensor 175.
[0102] More preferably, the robot vacuum cleaner 100 according to the present invention can effectively recognize obstacles through vision-based position recognition using a camera, LIDAR-based position recognition technology using a laser, and ultrasonic sensors, and can extract an optimal movement direction with a small amount of change to generate a map.
[0103] The sensor unit 370 may include an obstacle detection sensor 171 for detecting an obstacle ahead, a cliff detection sensor 172 for detecting whether or not there is a cliff at the bottom of the travel area, and the like.
[0104] A plurality of obstacle detection sensors 171 may be arranged at regular intervals on the outer periphery of the robot cleaner 100. The obstacle detection sensors 171 may include an infrared sensor, an ultrasonic sensor, an RF (radio frequency) sensor, a geomagnetic sensor, a PSD (position sensitive device) sensor, etc.
[0105] The obstacle detection sensor 171 is a sensor that detects the distance to a wall or an obstacle in a room, and although the present invention is not limited to this type, an ultrasonic sensor will be taken as an example in the following description.
[0106] The obstacle detection sensor 171 can detect objects, particularly obstacles, present in the traveling (moving) direction of the robot vacuum cleaner 100 and transmit obstacle information to the control unit 350. That is, the obstacle detection sensor 171 can detect the moving path of the robot vacuum cleaner 100, protruding objects present in front of or on the sides of the robot vacuum cleaner 100, household fixtures, furniture, walls, wall corners, etc., and transmit the information to the control unit 350.
[0107] The sensor unit 370 may further include a driving detection sensor (not shown) that detects the driving operation of the robot cleaner 100 and outputs operation information. The driving detection sensor may include, for example, a gyro sensor, a wheel sensor, an acceleration sensor, etc.
[0108] The gyro sensor can detect the rotation direction and angle when the robot vacuum cleaner 100 moves according to the operation mode. The gyro sensor can detect the angular velocity of the robot vacuum cleaner 100 and output a voltage value proportional to the angular velocity.
[0109] The wheel sensors are connected to the drive wheels 136, for example, the left wheel 136(L) and the right wheel 136(R) in FIG.
[0110] The acceleration sensor can detect a change in the speed of the robot cleaner 100. The acceleration sensor may be attached to a position adjacent to the driving wheel 136 or may be built into the control unit 350.
[0111] The output unit 380 may include an audio output unit 381 that outputs an audio signal. The audio output unit may output, as sound, a warning sound, a notification message regarding an operation mode, an operation state, an error state, or the like, information corresponding to a user command input, a processing result corresponding to a user command input, or the like, under the control of the control unit 350.
[0112] The sound output unit 381 can convert an electric signal from the control unit 150 into an audio signal and output it. For this purpose, a speaker or the like can be provided.
[0113] 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 status, an error status, and the like, in a visual form.
[0114] According to an embodiment, the display 382 may be configured as a touch screen by forming a mutual layer structure with a touch pad. In this case, the display 382 configured as a touch screen may be used as an input device that allows a user to input information by touch in addition to an output device.
[0115] The communication unit 390 may include at least one communication module (not shown) and may transmit and receive data to and from external devices. Among the external devices that communicate with the robot cleaner 100, an external terminal may include, for example, an application for controlling the robot cleaner 100, and by executing the application, the external terminal may display a map of the area to be cleaned by the robot cleaner 100 and designate a specific area on the map to be cleaned.
[0116] The communication unit 390 can transmit and receive signals using a wireless communication method such as Wi-Fi, Bluetooth (registered trademark), beacon, Zigbee (registered trademark), or RFID (radio frequency identification).
[0117] The power supply unit can supply driving power and operating power to each component of the robot cleaner 100.
[0118] The robot cleaner 100 may further include a battery sensor (not shown) that senses the remaining battery level, charging state, etc. of the battery 138 and transmits the sensing result to the control unit 350.
[0119] The control unit 350 may be connected to each component included in the robot cleaner 100. For example, the control unit 350 may transmit and receive signals to and from each component included in the robot cleaner 100, and control the overall operation of each component.
[0120] The control unit 350 can determine the internal / external state of the robot cleaner 100 based on the information acquired through the sensor unit 370 .
[0121] The control unit 350 can calculate the direction and angle of rotation using the voltage value output from the gyro sensor.
[0122] The control unit 350 can calculate the rotation speed of the drive wheels 136 based on the rotation speed output from the wheel sensors. The control unit 350 can also calculate the rotation angle based on the difference in rotation speed between the left wheel 136(L) and the right wheel 136(R).
[0123] The control unit 350 can determine a change in the state of the robot vacuum cleaner 100, such as the start, stop, change of direction, or collision with an object, based on the value output from the acceleration sensor. Meanwhile, the control unit 350 can detect the amount of impact corresponding to a change in speed based on the value output from the acceleration sensor, and the acceleration sensor can also function as an electronic bumper sensor.
[0124] The control unit 350 can detect the position of an 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.
[0125] In some embodiments, the obstacle detection sensor 131 provided on the outer surface of the robot cleaner 100 may include a transmitter and a receiver.
[0126] For example, an ultrasonic sensor may include at least one transmitter and at least two receivers arranged to intersect with each other, so that the transmitter can emit ultrasonic signals at various angles and the at least two receivers can receive ultrasonic signals reflected by an obstacle at various angles.
[0127] In some embodiments, the signal received from the ultrasonic sensor may undergo signal processing such as amplification and filtering, after which the distance and direction to an obstacle may be calculated.
[0128] Meanwhile, the control unit 350 may include a driving control module 351, a map generation module 352, a location recognition module 353, and / or an obstacle recognition module 354. In the drawings, for convenience of explanation, 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.
[0129] The location recognition module 353 and the obstacle recognition module 354 may be integrated into 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 trained recognizer can classify data that is subsequently input and recognize attributes such as areas and objects.
[0130] In some embodiments, the map generation module 352, the location recognition module 353, and the obstacle recognition module 354 may be configured as a single integrated module.
[0131] The travel control module 351 can control the travel of the robot cleaner 100 and can control the driving of the travel unit 360 according to travel settings.
[0132] The driving control module 351 can determine the driving route of the robot vacuum cleaner 100 based on the operation of the driving unit 360. The driving control module 351 can determine the current or past moving speed and distance traveled of the robot vacuum cleaner 100 based on the rotation speed of the drive wheels 136, and can update the position of the robot vacuum cleaner 100 on a map based on the driving information of the robot vacuum cleaner 100 thus determined.
[0133] The map generation module 352 can generate a map for the driving area.
[0134] The map generation module 352 can generate and / or update the map in real time based on the information acquired while the robot vacuum cleaner 100 is traveling.
[0135] The map generation module 352 can set multiple movement directions. For example, when a function for generating a map of a driving area (hereinafter referred to as the map generation function) is executed, the map generation module 352 can set the direction in which the front of the robot vacuum cleaner 100 faces at the time the function is executed as a first movement direction. The map generation module 352 can also set the direction in which the left side of the robot vacuum cleaner 100 faces at the time the function is executed as a second movement direction, the direction in which the right side of the robot vacuum cleaner 100 faces as a third movement direction, and the direction in which the rear of the robot vacuum cleaner 100 faces, which is the opposite direction to the first direction, as a fourth movement direction.
[0136] Meanwhile, in this drawing, the multiple movement directions are described as being set to four directions, but the present invention is not limited thereto, and various numbers of directions such as eight, sixteen, etc. may be set according to various embodiments.
[0137] The map generation module 352 may generate a map based on information obtained via the lidar sensor 175.
[0138] The map generation module 352 may acquire topographical information of the travel area by analyzing reception patterns, such as reception time difference and signal strength, of the laser beam output via the LIDAR sensor 175 and reflected from an external object. The topographical information of the travel area may include, for example, the positions, distances, and directions of objects present around the robot vacuum cleaner 100.
[0139] The map generation module 352 can store information about multiple nodes while generating a grid map based on topographical information of the driving area acquired through the lidar sensor 175, and such information can be defined as first map data.
[0140] The map generation module 352 divides the driving area into multiple sub-areas and, while driving through each sub-area, generates a grid map using the lidar sensor 175 in which cell data differs between areas where obstacles exist and areas where they do not.
[0141] The location recognition module 353 can determine the location of the robotic vacuum cleaner 100. The location recognition module 353 can determine the location of the robotic vacuum cleaner 100 while the robotic vacuum cleaner 100 is traveling.
[0142] The location recognition module 353 can determine the location of the robot cleaner 100 based on the acquired image acquired through the image acquisition unit 320 .
[0143] For example, the location recognition module 353 may map the features of each position in the travel area detected from the acquired image while the robot vacuum cleaner 100 is traveling to each position based on the map data generated by the map generation module 352, and may store the data of the features of each position in the travel area mapped to each position on the map in the storage unit 305 as location recognition data.
[0144] Meanwhile, the position recognition module 353 can compare the features of the driving area detected from the acquired image with the features of each position of the driving area included in the position recognition data stored in the storage unit 305 to calculate the similarity (probability) for each position, and based on the calculated similarity (probability) for each position, can determine the position with the greatest similarity as the position of the robot vacuum cleaner 100.
[0145] According to one embodiment of the present invention, the robot vacuum cleaner 100 extracts features from the image acquired through the image acquisition unit 320 and substitutes the extracted features into a mapped grid map to determine the position of the robot vacuum cleaner 100.
[0146] Meanwhile, the robot vacuum cleaner 100 can also determine its current location by learning a map through the travel control module 351, the map generation module 352 and / or the obstacle recognition module 354 without the location recognition module 353.
[0147] The obstacle recognition module 354 may detect obstacles around the robot vacuum cleaner 100. For example, the obstacle recognition module 354 may detect obstacles around the robot vacuum cleaner 100 based on the captured image acquired through the image acquisition unit 320 and / or the sensing data acquired through the sensor unit 370.
[0148] For example, the obstacle recognition module 354 can detect obstacles around the robot cleaner 100 based on the topographical information of the travel area acquired via the lidar sensor 175.
[0149] The obstacle recognition module 354 can determine whether an obstacle that obstructs the movement of the robotic cleaner 100 is present while the robotic cleaner 100 is moving.
[0150] When it is determined that an obstacle is present, the obstacle recognition module 354 can determine a driving pattern such as going straight or turning depending on the attributes of the obstacle, and can transmit the determined driving pattern to the driving control module 351.
[0151] The robot vacuum cleaner 100 according to an embodiment of the present invention can recognize and avoid people and objects based on machine learning. Here, machine learning can mean that a computer learns through data and solves problems by itself, without a person directly instructing the computer on logic.
[0152] Deep learning is an artificial intelligence technology that allows computers to learn like humans without being taught by humans, based on artificial neural networks (ANNs) that are used to construct artificial intelligence. ANNs can be implemented in the form of software or hardware such as chips.
[0153] The obstacle perception module 354 may include an artificial neural network (ANN) in software or hardware form that has learned the attributes of obstacles.
[0154] For example, the obstacle perception module 354 may include a deep neural network (DNN), such as a convolutional neural network (CNN), a recurrent neural network (RNN), or a deep belief network (DBN), trained using deep learning.
[0155] The obstacle recognition module 354 can determine attributes of obstacles included in input image data based on, for example, weights between nodes included in a deep neural network (DNN).
[0156] Furthermore, the travel control module 351 can control the driving of the travel unit 360 based on the attributes of the recognized obstacle.
[0157] The storage unit 305 may store input data for obstacle attribute discrimination and data for training the deep neural network (DNN). The storage unit 305 may store an original image acquired by the image acquisition unit 320 and an extracted image in which a predetermined area is extracted. The storage unit 305 may store weights and biases forming a deep neural network (DNN) structure. For example, the weights and biases forming the deep neural network structure may be stored in an embedded memory of the obstacle recognition module 354.
[0158] For example, the obstacle recognition module 354 may perform a learning process using the extracted image as training data each time the image acquisition unit 320 extracts a portion of an image acquired, or may perform the learning process after a predetermined number of extracted images or more have been acquired.
[0159] That is, the obstacle recognition module 354 can add a recognition result each time an obstacle is recognized and update the weight-equalized deep neural network (DNN) structure, or after a predetermined number of training data have been acquired, perform a learning process using the acquired training data and update the weight-equalized deep neural network (DNN) structure.
[0160] Alternatively, the robot vacuum cleaner 100 may transmit the original image or the extracted image acquired by the image acquisition unit 320 to a predetermined server via the communication unit 390 and receive data related to machine learning from the predetermined server. In this case, the robot vacuum cleaner 100 may update the obstacle recognition module 354 based on the data related to machine learning received from the predetermined server.
[0161] FIG. 7 is a diagram referenced in describing a lidar sensor provided on a robotic vacuum cleaner according to an embodiment of the present invention.
[0162] As shown in FIG. 7, the lidar sensor 175 can emit a laser in all directions (360 degrees), and by receiving the laser reflected from an object, can obtain information such as the distance, position, direction, and material of the object that reflected the laser, and can also obtain topographical information about the traveling area.
[0163] The robot vacuum cleaner 100 can acquire terrain information within a certain distance depending on the performance and settings of the LIDAR sensor 175. The robot vacuum cleaner 100 can acquire terrain information within a circular area 610 having a radius of a certain distance 610 based on the LIDAR sensor 175.
[0164] The robot cleaner 100 acquires the topographical information within the circular area 610, and at this time, may acquire the topographical information for a predetermined sub-area.
[0165] At this time, the terrain information of the lidar sensor 175 may store terrain information within a circular area 610 sensed at each point where the robot vacuum cleaner 100 travels a predetermined distance or a predetermined time, and at this time, the stored information may be stored by matching it with traveling nodes n1, n2..., which are the current position of the robot vacuum cleaner 100 at the center of the corresponding circular area 610.
[0166] Therefore, when the robot cleaner 100 travels through each divided sub-area, topographical information of each circular area 610 is acquired and stored for a plurality of consecutive travel nodes n1, n2, . . . within each sub-area.
[0167] The robot vacuum cleaner 100 can extract open spaces from the topographical information of the sub-region acquired through the lidar sensor 175. Here, the open space may refer to information about the space between objects that reflect a laser, through which the robot vacuum cleaner 100 can travel.
[0168] After completing travel in the assigned sub-area, the robot vacuum cleaner 100 may perform ray casting to continuously read the sensing data of the lidar sensor 175 for each travel node n1, n2, ... within the sub-area, and then perform an open space detection algorithm to check whether there is an open space.
[0169] The robot cleaner 100 can extract an open space from the sub-region and set an additional open node, i.e., a point where the robot cleaner 100 can travel, for the corresponding open space.
[0170] The robot cleaner 100 can generate a topology map for the traveling nodes n1, n2, . . . and open nodes of the robot cleaner 100 for one sub-region.
[0171] The information about the open space may include information about the traveling nodes n1, n2... of the robot vacuum cleaner 100 searching the corresponding open space, the traveling direction, and the width of the open space, and the open node may include information about the open space that searched for the corresponding open node and the traveling nodes n1, n2... of the robot vacuum cleaner 100.
[0172] The robot cleaner 100 can move to an open node in the topology map to set an additional sub-region, and can complete a topology map of each of the multiple sub-regions for the entire travel area by traveling until there are no more open nodes.
[0173] At this time, the robot cleaner 100 can detect the center point of the open space and set it as an open node to move along the center of the moving path, and can move along the open node.
[0174] Hereinafter, a process of generating a topology map for each sub-region of the robot cleaner 100 of the present invention will be described with reference to FIGS.
[0175] FIG. 8 is a flowchart of a map generation process of a robot vacuum cleaner according to an embodiment of the present invention, FIGS. 9a to 9e are diagrams showing the map generation process of a robot vacuum cleaner according to the flowchart of FIG. 8, and FIG. 10 is a diagram showing a portion of the final map of a robot vacuum cleaner according to the flowchart of FIG. 8.
[0176] As shown in FIGS. 8 and 9, the robot vacuum cleaner 100 can generate a grid map while moving.
[0177] Specifically, as shown in FIG. 8, the robot cleaner 100 can divide the travel area into a plurality of sub-areas.
[0178] In this case, the divided sub-areas can be divided based on the travel distance or the travel area, and can be any area for forming a topology map of the traveled area after traveling a predetermined distance or a predetermined time.
[0179] In other words, when the robot cleaner 100 travels a predetermined distance or a predetermined time through an unknown cleaning area that is not a uniformly divided area, the area traveled for that distance or that time can be defined as one sub-area.
[0180] In this case, the sub-area may be defined as a range from the current position of the robot cleaner 100 to the point where an obstacle is detected ahead, and may be variously set according to user settings.
[0181] The robot vacuum cleaner 100 travels ahead to map an unknown travel area for cleaning work (S100), collects LIDAR information of divided sub-areas via the LIDAR sensor 175, generates a grid map, detects open spaces from each grid map, and then generates a topology graph for each sub-area.
[0182] Specifically, the robot vacuum cleaner 100 performs the following steps while traveling within a sub-area: collecting LIDAR information for the sub-area via the LIDAR sensor 175 (S101); generating a grid map for the sub-area using the collected LIDAR information (S102); detecting open spaces for multiple points by ray-casting using the LIDAR information along a path on the grid map (S103); generating a topology graph while generating open nodes for the detected open spaces (S104); determining whether an open node is generated while moving from the current position to the next open node (S105); and searching for other sub-areas depending on whether other open nodes exist in the topology graph (S106).
[0183] First, the control unit 350 of the robot cleaner 100 performs a pre-travel for generating a cleaning map for a predetermined travel area according to an external or preset instruction (S100).
[0184] When traveling in this manner, a point where traveling is completed within a predetermined distance or time can be defined as a sub-area, and traveling continues in the same direction D1 until traveling to the corresponding sub-area is completed.
[0185] 9A, the robot cleaner 100 can acquire LIDAR information for a 360-degree circular area 610 from the LIDAR sensor 175 (S101). The collected LIDAR information can be collected from each of a plurality of traveling nodes n1, n2, etc. located on the path when the robot cleaner 100 travels along a passage within the sub-area.
[0186] The traveling nodes n1, n2, etc. may be set at equal intervals on the route, 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 connecting the traveling nodes n1, n2, etc. may function as a driving path (DP), but is not limited thereto.
[0187] The numbers of traveling nodes n1, n2, . . . set in one sub-region may be different from each other.
[0188] At each traveling node n1, n2, . . . , the robot cleaner 100 collects rider information.
[0189] Therefore, at each of the traveling nodes n1, n2, . . . , area information for a circular area 610 centered on the corresponding traveling node n1, n2, .
[0190] Each of the rider information items can be matched to each traveling node n1, n2, . . . and recorded in the storage unit 305.
[0191] Such LIDAR information may be information regarding the distance to obstacles within the circular area 610, and may include information such as the distance, position, direction, and material of the object that emitted the laser and reflected the laser.
[0192] The robot cleaner 100 collects rider information for each traveling node n1, n2, . . . until completing traveling in the sub-area A, and then generates a grid map for the corresponding sub-area A as shown in FIG. 9b.
[0193] The grid map is an OGM (Occupancy Grid Map), which is a map that utilizes a grid generated based on acquired area information.
[0194] The grid map is a map for the robot vacuum cleaner 100 to recognize the surrounding environment, and may refer to a map in which the sub-area A is represented by a grid or cells (hereinafter referred to as cells) of the same size, and the presence or absence of an object is indicated in each cell. The presence or absence of an object may be indicated by a color. For example, white cells may represent an area without an object, and gray cells may represent an area with an object. Therefore, a line connecting gray cells may represent a boundary line (wall, obstacle, etc.) of a given space. The color of the cell may be changed through an image processing process.
[0195] In this case, the control unit 350 can generate a grid map while traveling through the unknown sub-area A. Alternatively, the control unit 350 can generate a grid map for the sub-area A after traveling through the sub-area A is completed.
[0196] In the present invention, the grid map generating step (S102) can be set to generate a grid map simultaneously while traveling through the sub-area A.
[0197] The control unit 350 may generate a grid map at a predetermined point, i.e., traveling nodes n1, n2, ..., while traveling on a route, based on the LIDAR information of the LIDAR sensor 175 received for the corresponding traveling nodes n1, n2, .... That is, the control unit 350 may generate a node and generate a grid map within the sensing range of the LIDAR sensor 175 while moving to the generated node.
[0198] The sensing range of the lidar sensor 175 when generating the grid map can be outside of sub-area A.
[0199] The control unit 350 generates a grid map based on each rider information received from each traveling node n1, n2, ..., and the grid map can be updated sequentially as the traveling progresses. Therefore, when the traveling in the corresponding sub-area A is finally completed, the grid map can be updated and the final grid map can be stored in the storage unit.
[0200] The final grid map stored in this manner includes the grid map of the corresponding sub-region as shown in FIG. 9b, but grid maps for other regions may also be displayed.
[0201] When the final grid map for the predetermined sub-region A is obtained in this manner, the control unit 350 detects open spaces in the sub-region A by ray-casting the lidar information for the corresponding sub-region A (S103).
[0202] Specifically, as shown in FIG. 9c, an open space detection algorithm is performed on the rider information acquired from each traveling node n1, n2, . . . to check whether there is an open space.
[0203] In this case, the open space is determined by ray casting (RS) the rider information for the circular area 610 acquired for each traveling node n1, n2, etc. over the entire section to determine whether there is an open space, i.e., an open space without obstacles, at the corresponding traveling node n1, n2, etc.
[0204] In this case, the presence or absence of an open space may be defined as a case where the distance between the reflected and acquired LIDAR data is greater than the width of the robot vacuum cleaner 100, but is not limited thereto. If there is a space having a value relative to a reference width and a width wider than the reference width, it can be set as an open space.
[0205] In this way, by ray-casting, i.e., projecting light rays, lidar information for each traveling node n1, n2, etc., onto a 360-degree circular area 610, it is possible to check not only lidar information for a specific direction, but also the presence or absence of open space in all directions.
[0206] This is because, when data is calculated by dividing it into specific directions, for example, four or eight directions, search for open spaces that may occur in unfiltered areas may be missed. This is particularly true when the direction of the cleaning travel area and the direction of the main passage do not match the travel direction of the robot cleaner 100, and there is a risk that a large number of open spaces may be missed.
[0207] Therefore, as in the present invention, after dividing the area into predetermined sub-areas A, by performing 360-degree ray casting of the lidar information received at each of multiple traveling nodes n1, n2, etc. along the route while traveling within the sub-area A, it is possible to search the open space without missing any directions.
[0208] In this way, once ray casting is completed for all the traveling nodes n1, n2... of the corresponding sub-area A and multiple open spaces are searched for, information on each open space, i.e., the position and width of the open space, and information on the traveling nodes n1, n2... corresponding to the open space, can be stored.
[0209] At this time, the control unit 350 determines whether each open space overlaps with open spaces for other travel nodes n1, n2, . . . , and sets an open node for the final open space that has been subjected to overlap processing.
[0210] Such an open node can be set at a point located in the center of the final open space.
[0211] At this time, the control unit 350 can determine the open space by applying various algorithms and set the open node accordingly, which will be described in detail later.
[0212] Next, the control unit 350 generates a topology graph for the corresponding sub-area A (S104).
[0213] The topology graph can be generated by connecting the open nodes set for the open space with the corresponding traveling nodes n1, n2, . . .
[0214] The topology graph generated in this way can be expressed as a graph, as shown in Figure 9e, by connecting open nodes n21, n22, n23, and n24 set for the sub-area A with the traveling node n2 that discovered those open nodes. In this case, there can actually be multiple open spaces obtained by casting a 360-degree ray onto one traveling node n2, and multiple corresponding open nodes n21, n22, n23, and n24.
[0215] Also, one open node n21 can be connected to multiple running nodes n1 and n2.
[0216] The topology graph thus formed can be shown as an example in FIG. 9e, where undesignated blocks are defined as obstacles.
[0217] When the topology graph for the corresponding sub-area A is formed in this way, the running nodes n1, n2, . . . and the open nodes n21, n22, n23, n24 can be matched while forming a parent-child relationship.
[0218] Finally, the current position, i.e., the widest open node among the plurality of open nodes connected to the last running node of the corresponding sub-area A, is moved to, and the corresponding open node is changed to a running node, i.e., a closed node, thereby completing the topology graph for the corresponding sub-area A (S105).
[0219] If there are multiple open nodes on the topology graph for the sub-area A thus completed, the robot moves to the open node and sets up another sub-area again, and travels through the unknown sub-area (S106).
[0220] In this way, when generating a topology graph while setting sub-areas A at each open node, the topology graph can be generated while determining whether the sub-areas A overlap.
[0221] At this time, once the generation of sub-areas A for each open node or the removal of overlaps is completed and the topology graphs for all sub-areas are generated, they can be combined to generate a cleaning map for the entire travel area.
[0222] In this way, the cleaning travel area is divided into a plurality of sub-areas A, a grid map is generated for each sub-area A, an open space is searched for by ray casting on the corresponding grid map, an open node is set for the open node, and a topology graph is formed for the open node and the travel node.
[0223] At this time, the accuracy of the cleaning map can be improved by generating topology graphs for each small area and then aggregating them to generate a cleaning map for the entire cleaning area.
[0224] In addition, by performing 360-degree ray casting on the lidar data acquired from multiple traveling nodes n1, n2, ... in a small sub-area, a cleaning map for the entire area can be generated without missing open spaces.
[0225] In this case, the topology graph according to the present invention can have values as shown in FIG.
[0226] That is, the topology graph for each sub-region can have a graph that connects each traveling node n1, n2, n3, ... and at least one corresponding open node n31, ... with a straight line, as shown in Figure 10, and information on the width of the open space can be recorded for each open node.
[0227] At this time, the topology graph can be stored in the storage unit 305 by matching the width of the open space.
[0228] Meanwhile, the control unit 350 of the robot cleaner 100 according to the present invention can perform various algorithms to search an open space.
[0229] Hereinafter, the setting 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.
[0230] Figure 11 is a flowchart for searching for an open node in Figure 8, Figures 12a and 12b are figures showing the non-step open space in Figure 11, Figures 13a and 13b are figures showing one embodiment in the case of the step open space in Figure 11, and Figures 14a and 14b are figures showing another embodiment in the case of the step open space in Figure 11.
[0231] 11, the search for an open space according to an embodiment of the present invention begins by executing an open space detection algorithm on the acquired grid map of the corresponding sub-area A (S201). By executing the open space detection algorithm, ray casting is performed using the received LIDAR information from each traveling node n1, n2, ... along a given route (S202).
[0232] At this time, when ray casting is performed at each traveling node n1, n2, etc., for example, if ray casting is performed at the first traveling node n1 and no open space is found (S202), ray casting is performed again using the acquired rider information at the second traveling node n2, which has moved a predetermined distance (S203).
[0233] By repeating this process, ray casting is performed for all the traveling nodes n1, n2, . . . over 360 degrees, and an open space for each traveling node n1, n2, .
[0234] At this time, if an open space is found, it is determined whether the open space is a non-step open space or a step open space (S204).
[0235] Specifically, FIGS. 12a and 12b are diagrams showing the determination made by the control unit 350 when the space is an open space without a step.
[0236] The non-step open space means that the first obstacle 301 and the second obstacle 302 are located at the same distance from the current position n1 of the robot cleaner 100 in the open space between the obstacles 301 and 302. Therefore, there is no step between the first obstacle 301 and the second obstacle 302.
[0237] That is, the distance from the first traveling node n1, which is the current location of the robot cleaner 100, to one obstacle 301 and the distance from the other obstacle 302, which form an open space, are the same.
[0238] If such a non-step open space is found, the width w1 of the corresponding non-step open space is calculated as shown in FIG. 12a (S205).
[0239] In this case, if the width w1 of the non-step open space is larger than the width of the robot vacuum cleaner 100, or if the width w1 of the non-step open space is larger than the reference width set for the robot vacuum cleaner 100, the non-step open space is defined as a potentially open space in which movement is possible.
[0240] When the non-step open space is defined as a potential open space in this manner, the central region of the width of the open space is set as an open node n11 for the open space (S206).
[0241] In the open node n11 set in this way, an additional search can be performed later on in the open space n11 as shown in FIG. 12b (S207).
[0242] The control unit 350 stores information on the searched open space and the set open node n11, and at this time, matches the width w1 of the open space with the traveling node n1 that found it and stores the information.
[0243] On the other hand, if the open space is not a non-step open space, that is, if there is a distance difference between one obstacle 301 and another obstacle 303 that make up the open space and the robot cleaner 100, the open space is defined as a step open space.
[0244] As shown in FIG. 13a, when the open space is a stepped open space, one obstacle 301 can be configured to protrude from another obstacle 303 toward the current traveling node n2.
[0245] In this case, the step open space can be set in two ways as shown in FIGS.
[0246] That is, Figures 13a and 13b show an open space that occurs behind the traveling direction when the width of the traveling path suddenly widens, and Figures 14a and 14b show an open space that occurs ahead of the traveling direction when the width of the traveling path suddenly narrows.
[0247] If such a step-open space is found, the control unit 350 compares the width w2 of the step with the width of the robot cleaner 100 or the reference width (S208).
[0248] If the width w2 of the step is greater than the width or the reference width of the robot cleaner 100, the corresponding open space can be defined as a potential open space.
[0249] Next, the control unit 350 can set an open node n22 in the central region of the open space (S209).
[0250] In this case, the open node n21 can be set to the extended node n21 located at the intersection of the current traveling node n2 and the vertical line VL on the center line CL of the width of the open space, unlike the open node for the non-step open space described above.
[0251] In this way, if the open node for the step open space is not formed directly in the central region of the corresponding open space, but is set by extending it to the vertical line VL with the running node n2, the rider information for ray casting at the corresponding open node n21 later can be secured more accurately.
[0252] That is, by setting the open node n21 in an area that is not too far from the driving path, the travel time for acquiring lidar information for ray casting to the additional open node n21 can be reduced.
[0253] Thereafter, the robot cleaner 100 may perform ray casting for the lidar information from the set open node n21 to the left as shown in FIG. 13b, that is, in the direction from the open node n21 toward the open space (S210).
[0254] That is, ray casting can be performed only on the bisecting surface facing the open space, thereby reducing the calculations for ray casting.
[0255] Meanwhile, in the case of FIG. 14b, the robot vacuum cleaner 100 can register the set open node n22 in the topology graph and then perform ray casting for the lidar information in the right direction, i.e., in the direction from the open node n22 toward the open space.
[0256] That is, ray casting can be performed only on the bisecting plane toward the open space, thereby reducing the calculation of ray casting.
[0257] Meanwhile, when searching for an opening node, the control unit 350 according to an embodiment of the present invention can remove overlaps between opening nodes at a plurality of traveling nodes n1, n2, . . .
[0258] FIG. 15 is a diagram showing another flowchart for searching for an open node in FIG. 8, FIG. 16 is a diagram showing the search of the robot cleaner 100 representing the operation of FIG. 15, and FIG. 17 is a diagram for explaining the process for removing duplicates in FIG. 15.
[0259] 15 to 17 show another example of a method for setting open spaces and open nodes from a grid map.
[0260] 15, in another embodiment of the present invention, an open space search algorithm is executed on the acquired grid map of the corresponding sub-area A (S301). Then, ray casting is performed by searching for the received LIDAR information at each traveling node n1, n2, etc. along the given route (S302).
[0261] When ray casting is performed at each traveling node n1, n2, etc., for example, if ray casting is performed at the first traveling node n1 and no open space is found, ray casting is performed again using the acquired rider information at the second traveling node n2, which is located a predetermined distance away.
[0262] By repeating this process, ray casting is performed for all the traveling nodes n1, n2, . . . over 360 degrees, and an open space for each traveling node n1, n2, .
[0263] That is, as shown in Figures 16a to 16d, when ray casting is performed for each traveling node n0, n1, n2, n3... while continuously moving from traveling node n1, n2..., in the case of an open space B formed behind an obstacle in the traveling direction as shown in Figure 16a, some traveling nodes no may not be found by ray casting.
[0264] In this case, when the traveling nodes n0, n1, and n2 move as the robot cleaner 100 travels continuously, i.e., the open space not found at the 0th traveling node n0 in Fig. 16a may be found at the first, second traveling nodes n1, n2, etc. Furthermore, such an open space may pass by the third traveling node n3 without being found.
[0265] In this way, in the case of an open space that cannot be detected by the algorithm for detecting non-step or step open spaces alone, the open spaces found from multiple traveling nodes n1, n2, ... can be detected overlappingly as shown in Figures 16a to 17.
[0266] Specifically, in the case of a terrain where there is a non-step open space in a passageway and an additional open space is formed behind an obstacle, as shown in Figure 17, an additional search is required for open space B that is parallel to the continuous passageway behind the non-step open space.
[0267] In this case, an open node can be set for the open space B that is parallel to the passage.
[0268] Specifically, as shown in Figure 17, when the third open space C is searched from the first traveling node n1 and an open space D parallel to the passage DP is searched behind the third open space C, it is determined that there is also a fourth open space (D) behind the third open space C.
[0269] Therefore, the control unit 350 sets the center point of the fourth open space D behind the third open space C as the first open node n11 relative to the first traveling node n1 (S303).
[0270] Next, the control unit 350 performs ray casting on a second traveling node n2, which is different from the first traveling node n1, for example, a second traveling node n2 that moves in the traveling direction from the first traveling node n1, and determines whether the same third open space C is searched for, and then determines whether the fourth open space D is also searched for.
[0271] When the fourth open space D is found, a second open node n21 is set in the central region of the fourth open space D based on the second traveling nodes n1, n2, . . . (S304).
[0272] In this case, the first open node n11 and the second open node n22 may have different absolute positions.
[0273] This is because the direction of the fourth open space D when viewed from the first traveling node n1 and the second traveling node n2 is different, so the center point of the fourth open space D may be set at a certain angle.
[0274] 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 a similar range, sets respective predetermined ranges centered on the first open node n11 and the second open node n21.
[0275] In this case, the predetermined range of the first open node n11 can be defined as a circle centered on the first open node n11 and having the width W3 of the third open space C as its diameter, and the predetermined range of the second open node n21 can be defined as a circle centered on the second open node n21 and having the width W3 of the third open space C as its diameter.
[0276] At this time, the area of a region E where the predetermined range of the first open node n11 and the predetermined range of the second open node n21 overlap is calculated (S305).
[0277] If the area of the overlapping region E is equal to or greater than a critical value, the control unit 350 determines that the first open node n11 and the second open node n21 are the same.
[0278] In this case, the threshold value may be set to 1 / 2 or 2 / 3 of a predetermined range for each open node, but is not limited thereto and may be set in various ways.
[0279] If the control unit 350 determines that the first open node n11 and the second open node n21 are the same, it keeps one open node n11, n21 that is closest to the center of the width W4 of the fourth open space D and deletes the other open nodes n11, n21 (S306).
[0280] Therefore, in FIG. 17, the first open node n11 remains, and the second open node n21 is deleted.
[0281] In this way, for a space of the grid map that does not correspond to a non-step open space or a step open space, overlapping open nodes can be removed by comparing the ray casting results at different traveling nodes n1, n2, . . . with each other.
[0282] Therefore, it is possible to set open nodes for all open spaces without missing open spaces, and since each open node is not set for the same open space but only one open node is set for one open space, subsequent travel and ray casting operations can be simplified.
[0283] Furthermore, by leaving the open node close to the center region of the width of the corresponding open space among the overlapping open nodes, the robot cleaner 100 can be controlled to move to the center of the passage later.
[0284] In this way, by removing non-step open spaces, step open spaces, and overlapping open nodes for multiple travel nodes from the grid map, it is possible to search a variety of terrains without any omissions.
[0285] The control unit 350 can form a topology graph for each of the open spaces and open nodes, and can complete a topology graph for the entire driving area by connecting the topology graphs for a plurality of sub-areas.
[0286] Such a topology graph can serve as a base map for forming a cleaning map.
[0287] The control unit 350 can check the relationships between the nodes by referring to the grid map and the topology graph, and can set the optimal route.
[0288] In addition, the control unit 350 can combine the image data with the corresponding grid map to create an image.
[0289] Such imaging can involve boundary processing algorithms, image processing via brightness contrast, etc., to display the shading of each grid map as lines.
[0290] The robot vacuum cleaner 100 can set an optimal path based on the grid map and topology graph imaged at the current position of the robot vacuum cleaner 100.
[0291] The method for generating a topology graph formed in this way has the following advantages.
[0292] Figure 18a shows open space searching according to a comparative example, Figure 18b shows open space searching according to the present invention, Figure 19a shows multiple open space searching according to a comparative example, Figure 19b shows overlap removal during open space searching according to the present invention, Figure 20a shows an unsearched area according to a comparative example, and Figure 20b shows an open space searched according to the present invention.
[0293] The comparative examples of Figures 18a, 19a and 20a show a control method for discovering open spaces and generating open nodes based on real-time sensing results, and Figures 18b, 19b and 20b show the method of acquiring a grid map while traveling through a specified sub-area according to the present invention, and performing ray casting on the corresponding sub-area to set open spaces and open nodes.
[0294] 18a and 18b, in the comparative example, an open space is discovered in real time and an open node is immediately set accordingly, which makes it impossible to calibrate and set an open node in the center of the corresponding open space. In contrast, in the present invention, a grid map is first acquired, and then an open node is found from the grid map through ray casting at each traveling node, making it possible to set an open node in the center of the corresponding open space. Therefore, collisions with obstacles can be significantly reduced when traveling toward such an open node. In addition, because avoidance traveling to avoid collisions is reduced, there is no need to execute exhaustive traveling and avoidance algorithms.
[0295] On the other hand, the search for open spaces through ray casting on a grid map according to the embodiment of the present invention in Figure 19b differs from the discovery by real-time sensing in the comparative example in Figure 19a in that open nodes are removed by determining whether multiple open nodes overlap.
[0296] Therefore, when multiple open nodes overlap and represent the same open space, removing them can dramatically reduce the number of runs required to search for the open space and reduce the computational load for the ray casting algorithm.
[0297] In addition, when based on real-time sensing results as shown in Figure 20a, open spaces that are not found and are overlooked occur, whereas in the present invention, additional open spaces formed behind open spaces are searched without any gaps as shown in Figure 20b. Therefore, by setting open nodes for this purpose, no gaps occur.
[0298] The robot vacuum cleaner 100 according to the present invention is not limited to the configurations and methods of the embodiments described above, and the embodiments may be configured by selectively combining all or part of each embodiment to allow for various modifications.
[0299] Similarly, although the figures depict operations in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown, or in a sequential order, to achieve desirable results, or that all of the operations shown be performed. In certain cases, multitasking and parallel processing may be advantageous.
[0300] Meanwhile, the control method for the robot vacuum cleaner 100 according to the embodiment of the present invention may be embodied as processor-readable code on a processor-readable recording medium. The processor-readable recording medium may include any type of recording device in which processor-readable data is stored. It may also be embodied in the form of a carrier wave, such as transmission via the Internet. The processor-readable recording medium may also be distributed among computer systems connected via a network, so that the processor-readable code may be stored and executed in a distributed manner.
[0301] Furthermore, although preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and various modifications may be made by a person having ordinary skill in the art to which the invention pertains without departing from the gist of the present invention as claimed in the claims, and such modifications should not be understood individually from the technical ideas and perspectives of the present invention. [Explanation of symbols]
[0302] 100:Robot vacuum cleaner 110:Main body 305: Storage area 320: Video Acquisition Department 325: Input section 330: Suction unit 350: Control unit 360: Running section 370: Sensor unit
Claims
1. a travel unit for moving the main body within a travel area; a distance measurement sensor for acquiring distance sensing information relating to a distance to an object outside the body; a control unit that generates a grid map for the driving area from the distance sensing information, and when dividing the driving area into a plurality of sub-areas, searches for an open space by performing ray casting on a plurality of driving nodes on a route of the grid map for each sub-area, sets an open node for the open space, and calculates a topology graph between the driving node and the open node; the control unit searches for an open space by performing the ray casting for each of the plurality of traveling nodes within the grid map for each of the sub-regions, and sets the open node for each of the open spaces; the control unit sets the open node in a central region of the width of the open space, When the open space is formed between two obstacles separated by a step, the control unit sets the open node at an intersection of a center line between the two obstacles and a perpendicular line of the traveling node.
2. The robot vacuum cleaner of claim 1 , wherein the distance measurement sensor includes a lidar sensor that irradiates light onto an object outside the main body and calculates the distance sensing information based on the reflected light.
3. The robot vacuum cleaner of claim 2 , wherein the sub-regions are divided into surface areas when the robot vacuum cleaner travels in the travel area for a predetermined time or a predetermined distance.
4. 2. The robot vacuum cleaner of claim 1, wherein when the open space is formed between two obstacles that are separated without a step, the control unit sets the open node in the central region of the separation distance between the two obstacles.
5. 2. The robot vacuum cleaner of claim 1, wherein when the topology graph for the sub-region is generated, the control unit moves to one of the open nodes of the last travel node, changes the moved open node to a closed node, and then moves to the remaining open nodes in the topology graph to partition another sub-region.
6. The robot vacuum cleaner of claim 5 , wherein the control unit moves to the open node having the largest width among a plurality of open nodes of the last traveling node.
7. The robot vacuum cleaner of claim 5 , wherein the control unit determines that the robot vacuum cleaner can travel from the travel node by the ray casting and that a space in which the robot vacuum cleaner has not traveled before is the open space.
8. The robot cleaner of claim 7 , wherein the control unit performs 360-degree ray casting around the traveling node.
9. The control unit A first open node is set for one open space searched for the first traveling node; setting a second open node for another open space searched for with respect to a second running node different from the first running node; The robot vacuum cleaner of claim 1 , wherein when it is determined that the first open node and the second open node overlap, one of the overlapping first open node and second open node is deleted.
10. 10. The robot vacuum cleaner of claim 9, wherein the control unit determines whether the first open node and the second open node overlap when the widths of the one open space and the other open space overlap by a predetermined range or more.
11. The control unit generating circles of the same diameter centered on the first open node and the second open node; The robot vacuum cleaner of claim 10, wherein when the circles overlap each other by a predetermined range or more, it is determined that the first open node and the second open node are associated with the same open node.
12. 11. The robot vacuum cleaner of claim 10, wherein one of the first open node and the second open node that is adjacent to the central region of the open region where the first open node and the second open node are located remains, and the other open node is removed.
13. The robot cleaner of claim 10 , wherein the control unit calculates a final topology graph for the travel area by connecting the topology graphs for the plurality of sub-areas.
14. The robot vacuum cleaner of claim 1 , wherein the control unit processes the grid map as an image to calculate a final map.
15. acquiring distance sensing information regarding a distance between the main body and an object outside the main body while moving through an unknown driving area; generating a grid map for the driving area from the distance sensing information; Dividing the driving area into a plurality of sub-areas, and searching for an open space for each of the sub-areas by ray casting to a plurality of driving nodes on the route of the grid map; setting an open node for the open space and generating a topology graph between the travel node and the open node for the sub-region; generating a final topology graph for the driving area by concatenating the topology graphs for a plurality of the sub-areas; When the open space is formed between two obstacles separated by a step, the open node is set at the intersection of a center line between the two obstacles and a vertical line of the travel node.
16. 16. The method of claim 15, wherein in the step of generating the topology graph, when the open space is formed between two obstacles that are separated by no step, the open node is set in a central region of the separation distance between the two obstacles.
17. The step of generating a topology graph comprises: A step in which a first opening node sets one open space searched for a first traveling node, and a second opening node sets another open space searched for a second traveling node different from the first traveling node; determining whether the first open node and the second open node overlap when the widths of the one open space and the other open space overlap by a predetermined range or more; generating circles of the same diameter centered on the first open node and the second open node, and determining that the first open node and the second open node are associated with the same open node when the circles overlap by a predetermined range or more; and removing one of the first and second open nodes that is adjacent to the central region of the open region in which the first and second open nodes are located, and the other open nodes.
Citation Information
Patent Citations
Mobile body controller
JP2020004342A
Apparatus and method for building map used in mobile robot
KR1020100031878A
Moving robot and control method thereof
KR1020210009011A
Artificial intelligence robot for determining cleaning route using sensor data and method for the same
US20190370691A1
Moving robot and control method thereof
WO2021006553A1