Robot path planning method, system, robot and storage medium
By generating multiple independent travel paths in a narrow environment and building a path connection network, commercial cleaning robots can efficiently generate full coverage planning paths, avoid collisions, and achieve full coverage and efficient cleaning of clean areas.
Patent Information
- Application Number
- CN202380009772.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-09
- Publication Date
- 2025-08-22
- Estimated Expiration
- 2043-03-09
AI Technical Summary
Commercial cleaning robots are difficult to efficiently generate full coverage planning paths in narrow environments, resulting in inefficient cleaning and prone to collisions with obstacles.
Generate multiple independent travel paths in the clean area, and build a path connection network based on preset constraints. Use the starting point to traverse the network to generate a full coverage planning path to avoid collision with obstacles during turns.
Efficiently generate full coverage planning paths, avoid repeated cleaning, improve cleaning efficiency, and ensure full coverage and precise cleaning of clean areas.
Smart Images

Figure CN118946781B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robotics technology, and more particularly to a robot path planning method, system, robot, and storage medium. Background Art
[0002] With the development of automation technology and artificial intelligence, robots are widely used in various occasions to replace manual work. Taking cleaning robots as an example, cleaning robots can move autonomously to clean home environments, as well as public areas such as stations, airports, shopping malls, and supermarkets. When performing tasks, cleaning robots use planned paths to move to complete cleaning tasks.
[0003] For cleaning robots used in home environments, due to their small size, they can turn and rotate on the spot. Therefore, when planning paths, the robot is usually rotated on the spot to achieve reciprocating motion. However, this method is not applicable to cleaning robots used in public areas, such as commercial cleaning robots. Compared with small household cleaning robots, commercial cleaning robots are often larger in size, have a larger rotation radius, and are heavier in weight to improve cleaning efficiency. As a result, the robot needs a certain amount of turning space to turn, and cannot achieve actions such as turning and rotating on the spot. As a result, the robot cannot be turned or rotated on the spot during path planning.
[0004] Currently, commercial robots are mainly used in open environments (where the distance between obstacles in the environment is large, or the number of obstacles in the environment is small or the size is small). Since the open environment is large enough for commercial robots to turn, when planning their paths, they can simply make the commercial cleaning robot perform a "bow" or "U"-shaped cleaning in the open environment to generate a fully covered cleaning path (i.e., the cleaning path can traverse the entire environment and the area that needs to be cleaned). The commercial cleaning robot can then complete full-coverage cleaning based on the planned path. However, when the working environment of the commercial cleaning robot is relatively narrow, for example, when the commercial cleaning robot is used in a supermarket, the distance between the two shelves in the supermarket is relatively narrow, i.e., the distance between the two shelves is insufficient for the commercial cleaning robot to turn, and thus it is difficult for the robot itself to efficiently generate a fully covered cleaning path.
[0005] Therefore, when the robot is used in a narrow environment, how to efficiently generate a fully covered planning path is an urgent problem to be solved. Summary of the Invention
[0006] In view of the shortcomings of the above-mentioned related technologies, the purpose of this application is to provide a robot path planning method, system, robot and storage medium to overcome the technical problem existing in the above-mentioned related technologies that the robot cannot efficiently generate a fully covered planned path when used in a narrow environment.
[0007] To achieve the above-mentioned purpose and other related purposes, the first aspect disclosed in the present application discloses a path planning method for a robot, comprising: generating multiple independent travel paths in a cleaning area; determining the connection relationship between any two travel paths based on a preset constraint condition, and constructing a path connectivity network corresponding to the cleaning area with each travel path as a node based on the connection relationship; traversing the path connectivity network with one of the nodes as a starting point to determine the planned path of the robot in the cleaning area.
[0008] The second aspect disclosed in the present application discloses a robot system, comprising: a storage device for storing a path planning program for at least one robot; a map building device for collecting environmental data surrounding the robot to generate an environmental map; and a processing device connected to the storage device and the map building device, for implementing the robot path planning method as described in any embodiment disclosed in the first aspect of the present application when executing the path planning program of the at least one robot.
[0009] The third aspect disclosed in the present application discloses a computer-readable storage medium storing at least one program, which is executed when called and implements the robot path planning method as described in any embodiment disclosed in the first aspect of the present application.
[0010] The fourth aspect disclosed in the present application discloses a robot, comprising: a robot body; left and right drive wheels located on the rear side of the robot body; at least one passive universal wheel located on the front side of the robot body; a control device for controlling the rotation speed of the left and right drive wheels to realize the movement control of the robot following the planned path in a cleaning area, and the control device is configured to: generate multiple independent travel paths in a cleaning area; determine the connection relationship between any two travel paths based on a preset constraint condition, and construct a path connection network corresponding to the cleaning area with each travel path as a node based on the connection relationship; traverse the path connection network with one of the nodes as the starting point to determine the planned path of the robot in the cleaning area.
[0011] In summary, the present application discloses a robot path planning method, system, robot and storage medium. The present application first constructs a path connection network corresponding to a cleaning area based on constraint conditions in a cleaning area so that the nodes in the generated path connection network include all travel paths in the cleaning area. In this way, after traversing all nodes in the path connection network with one of the nodes as the starting point, the planned path covering the cleaning area where the robot is located can be efficiently generated. In this way, when the robot is used in a narrow environment, the present application can not only reduce the generation time of the planned path and efficiently generate a fully covered planned path, but also enable the robot to avoid collisions with obstacles when turning in a narrow environment when performing cleaning tasks based on the planned path, thereby achieving comprehensive, accurate and complete cleaning of the cleaning area, avoiding repeated cleaning, and improving cleaning efficiency.
[0012] Those skilled in the art can easily discern other aspects and advantages of the present application from the detailed description below. In the detailed description below, only exemplary embodiments of the present application are shown and described. As will be appreciated by those skilled in the art, the content of this application enables those skilled in the art to modify the disclosed specific embodiments without departing from the spirit and scope of the invention to which this application relates. Accordingly, the descriptions in the drawings and specification of this application are merely exemplary and not restrictive. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The specific features of the invention involved in this application are shown in the appended claims. The features and advantages of the invention involved in this application can be better understood by referring to the exemplary embodiments described in detail below and the accompanying drawings. A brief description of the drawings is as follows:
[0014] Figure 1 Shown is a schematic diagram of a planned path of a robot in an open environment in one embodiment of the present application.
[0015] Figure 2 Shown is a schematic diagram of a process for dividing at least one cleaning area based on an environment map in one embodiment of the present application.
[0016] Figures 3A to 3D Schematic diagrams of cleaning areas in different embodiments of the present application are shown respectively.
[0017] Figure 4 Shown is a flowchart of a robot path planning method in one embodiment of the present application.
[0018] Figure 5 Shown is a schematic diagram of a robot moving along a travel path in one embodiment of the present application.
[0019] Figure 6The figure shows a flow chart of generating multiple independent travel paths within a cleaning area in one embodiment of the present application.
[0020] Figures 7A to 7B They are schematic diagrams of the channel area in one embodiment of the present application.
[0021] Figure 8 Shown is a schematic diagram of the channel area before and after re-splicing in one embodiment of the present application.
[0022] Figure 9 Shown is a schematic diagram of a travel path in one embodiment of the present application.
[0023] Figure 10A Shown is a schematic diagram of the travel path of the cleaning area in one embodiment of the present application.
[0024] Figure 10B The display is the corresponding embodiment of the present application Figure 10A Schematic diagram of the path connectivity network of the travel path.
[0025] Figure 11 Shown is a schematic diagram of a planned path for a cleaning area in one embodiment of the present application.
[0026] Figure 12 Shown is a flowchart of a method for traversing a path-connected network in a specific embodiment of the present application.
[0027] Figure 13 Shown is a schematic diagram of a planned path for a cleaning area in another embodiment of the present application.
[0028] Figure 14 Shown is a schematic diagram of a connection path in one embodiment of the present application.
[0029] Figure 15 Shown is a schematic diagram of a connection path in another embodiment of the present application.
[0030] Figure 16 Shown is a principle block diagram of a robot system in one embodiment of the present application.
[0031] Figure 17 Shown is a schematic diagram of a cleaning robot according to one embodiment of the present application.
[0032] Figure 18 Shown is a schematic diagram of independent travel paths in one embodiment of the present application. DETAILED DESCRIPTION
[0033] The following describes the implementation of the present application through specific embodiments. People familiar with this technology can easily understand other advantages and effects of the present application from the contents disclosed in this specification.
[0034] In the following description, reference is made to the accompanying drawings, which describe several embodiments of the present application. It should be understood that other embodiments may also be used, and that changes in module or unit composition, electrical, and operational aspects may be made without departing from the spirit and scope of the present disclosure. The following detailed description should not be considered restrictive, and the scope of the embodiments of the present application is limited only by the claims of the published patents. The terms used herein are only for the purpose of describing specific embodiments and are not intended to limit the present application.
[0035] Although in some instances the terms first, second, etc. are used to describe various elements or parameters in this article, these elements or parameters should not be limited by these terms. These terms are only used to distinguish one element or parameter from another element or parameter. For example, the first channel area can be referred to as the second channel area, and similarly, the second channel area can be referred to as the first channel area, without departing from the scope of the various described embodiments. The first channel area and the second channel area are both describing a channel area, but unless the context clearly indicates otherwise, they are not the same channel area.
[0036] Furthermore, as used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context indicates otherwise. It should be further understood that the terms "comprise", "include" indicate the presence of the described features, steps, operations, elements, components, items, kinds, and / or groups, but do not exclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, components, items, kinds, and / or groups. The terms "or" and "and / or" used herein are interpreted as inclusive, or mean any one or any combination. Thus, "A, B, or C" or "A, B, and / or C" means "any of the following: A; B; C; A and B; A and C; B and C; A, B, and C". Exceptions to this definition occur only when the combination of elements, functions, steps, or operations is inherently mutually exclusive in some way.
[0037] As mentioned in the background, to improve cleaning efficiency in public areas, robots are often designed to be larger, meaning they have larger bodies. Specifically, for commercial cleaning robots, when cleaning large areas in environments like shopping malls and supermarkets, they often require larger cleaning devices, clean water tanks, and wastewater tanks to ensure long-term water supply and wastewater recovery, thereby quickly cleaning large areas. This avoids frequent manual water changes and wastewater discharges, or frequent trips back to the workstation for water changes and wastewater recovery.
[0038] However, due to the large body of the robot, it needs to adapt to at least the turning space of its own volume when turning, that is, there needs to be a large gap between the two paths before and after turning or turning. Therefore, these robots are often limited to performing cleaning tasks in open environments and are difficult to be used in narrow environments. The open environment refers to an environment in which the distance between obstacles is large or the number of obstacles in the environment is small or the size is small, so that there is a large ground area in the environment for the robot to move. The narrow environment refers to an environment in which the distance between obstacles is very close, so that the ground area in the environment in which the robot can move is very narrow. For example, the distance between two shelves in a supermarket is very close, which often does not allow the robot to turn in the area between the two shelves to complete the floor cleaning in the area between the two shelves. In an embodiment, the type of obstacles can be divided into static obstacles or dynamic obstacles (dynamic obstacles are, for example, human bodies, animals, movable equipment such as robots, vehicles, etc.). The type of obstacles can also have different types according to different environments. For example, in indoor scenes, obstacles may be doors, walls, pillars, stairs, tables, chairs, cabinets, flower pots, electrical appliances, shelves and other various placed objects.
[0039] In one embodiment, when the robot is used in an open environment, please refer to Figure 1 , which is a schematic diagram of the planned path of the robot in an open environment in one embodiment of the present application. As shown in the figure, the cleaning area 120 between the obstacles 110 in the open environment is very large. The robot starts from the starting point S and reciprocates along the planned path 130 until it moves to the end point N, completing the coverage cleaning of the cleaning area 120.
[0040] In one embodiment, when the robot is deployed in a confined environment, it first requires manual pre-deployment. This involves manually pushing the robot through various confined environments within the area, based on the overall environmental conditions. The robot records its path as it moves and stores it as a planned path. When the robot autonomously moves, it cleans according to the planned path recorded during deployment. While this approach can address the robot's path planning issues in confined environments, relying on manual assistance to determine the robot's planned path is not only inefficient, wastes manpower, and takes a long time to generate a planned path, but it can also lead to missed cleanings or excessive repetition of cleaning due to manual operation.
[0041] In view of this, the present application discloses a robot path planning method, system, robot and storage medium. The present application first generates multiple independent travel paths in a cleaning area, and determines the connection relationship between any two travel paths based on preset constraints, and then uses the connection relationship to construct a connected network corresponding to the cleaning area with each travel path as a node, so that the nodes in the generated connected network include all travel paths in the cleaning area. In this way, after traversing all nodes in the path connected network with one of the nodes as the starting point, the path planning covering the cleaning area where the robot is located can be efficiently completed. In this way, when the robot is used in a narrow environment, the present application can not only reduce the generation time of the planned path and efficiently generate a fully covered planned path, but also enable the robot to avoid collision with obstacles when turning in a narrow environment when performing cleaning tasks based on the planned path, thereby achieving comprehensive, accurate and complete cleaning of the cleaning area, avoiding repeated cleaning, and improving cleaning efficiency.
[0042] In some embodiments, the present application discloses a path planning method for a robot. In some examples, the path planning method for the robot is executed by a robot, and further, can be executed by a control device configured on the robot. In other examples, the path planning method for the robot can also be executed by a processing device configured on a server, and the server and the robot can remotely communicate data to control the robot to perform corresponding actions when executing the path planning method for the robot disclosed in this application. In other examples, the path planning method for the robot can also be executed by a processing device configured on an electronic device, and the electronic device communicates data with the robot to control the robot to perform corresponding operations when executing the path planning method for the robot disclosed in this application. The following embodiments are explained by taking the robot's path planning method being executed by a robot as an example.
[0043] In the present application, the robot can be used to perform ground cleaning tasks in indoor scenes or outdoor scenes, and the indoor scenes include supermarkets, shopping malls, airports, stations, indoor parking lots, and office spaces, etc. The outdoor scenes include university campuses, communities, outdoor parking lots, scenic spots, lawns, industrial parks, and squares, etc. The cleaning tasks include sweeping, suction, wiping, dry cleaning, wet cleaning, steam, and spraying, etc. The robot includes a commercial cleaning robot, such as a commercial sweeper, a commercial floor scrubber, a commercial dust collector, and a commercial disinfectant, etc. It should be noted that the above-mentioned robot types are limited to examples, and in actual application scenarios, other types of robots may also be used, such as a lawn mowing robot that performs mowing tasks outdoors, an industrial cleaning robot that performs cleaning tasks in an industrial environment, etc. Taking the robot as a lawn mowing robot as an example, accordingly, the robot completes the mowing task by cutting and other operations. In the following embodiments, the robot will be described as a cleaning robot.
[0044] In an embodiment, the cleaning robot utilizes multiple behavioral modes to efficiently clean a defined work area, wherein a behavioral mode is a control system layer that can operate in parallel. The microprocessor unit is operable to execute a priority arbitration scheme to identify and implement one or more primary behavioral modes for any given scenario based on input from the sensor system. Examples include a robot route following mode, a turning mode, an obstacle avoidance mode, an edge following mode for following the edge of an obstacle, a wall following mode for following a wall, or a travel mode for performing a U-shaped or U-shaped movement according to a pre-set planned path.
[0045] In one embodiment, the present application provides a robot path planning method, see Figure 4 , which is a flow chart of a path planning method for a robot in one embodiment of the present application. As shown in the figure, the path planning method includes step S410, step S420 and step S430.
[0046] In step S410 , the robot generates multiple independent travel paths within a cleaning area.
[0047] The target area when the robot performs the cleaning task is used as the cleaning area. Due to the environmental complexity of the environment faced by the robot, in order to facilitate path planning, the cleaning area is, for example, one or more target areas formed after the robot divides the environmental map. In view of this, in some embodiments, the path planning method further includes: a step of dividing at least one cleaning area based on the environmental map. It should be noted that the cleaning area corresponds to the area to be executed when the cleaning robot performs the cleaning operation, and the area to be executed for other robots to perform operations can be equivalent to the cleaning area; for example, the cleaning area corresponds to the target area when the robot performs mowing operations for a mowing robot, etc.
[0048] See also Figure 2 , which is a flow chart of dividing at least one cleaning area based on an environmental map in one embodiment of the present application. As shown in the figure, the step of dividing at least one cleaning area based on the environmental map includes step S210 and step S220.
[0049] In step S210 , the robot obtains the environment map.
[0050] Examples of the environmental map include grid maps, feature point maps, and topological maps. The environmental map can be constructed in advance by the movement of the operator. For example, the operator carries an electronic device with positioning or mapping capabilities (such as a smart phone, smart bracelet, tablet computer, or drone, etc.) and moves in the target area, and constructs the corresponding environmental map by determining the scope of the target area. The environmental map can also be constructed in advance by the autonomous movement of the robot. For example, the robot moves in the target area and uses technologies such as SLAM (Simultaneous Localization And Mapping) or VSLAM (Visual Simultaneous Localization And Mapping) to construct an environmental map of the area. The environmental map can also be constructed in advance by the operator and the robot. For example, the operator can control the robot (for example, the operator drives a commercial cleaning robot) to move in the target area and construct an environmental map of the area, or the robot can autonomously follow the operator to move in the target area and construct an environmental map of the area.
[0051] The environment map can be pre-stored in a local storage device of the robot or in a storage device of a cloud (cloud server) that is in remote communication with the robot. In one example, the environment map is pre-stored in a local storage device of the robot, and the robot can directly obtain the environment map. Storing the environment map locally can prevent the inability to obtain the environment map when a communication failure occurs between the robot and the cloud. In another example, the environment map is stored in a storage device in the cloud, and the robot can communicate data with the cloud. The robot can obtain the environment map from the storage device in the cloud. This can reduce the storage capacity of the local storage device and improve the robot's path planning speed.
[0052] In step S220, the robot divides the environment map into at least one cleaning area according to the environment data in the environment map.
[0053] In one embodiment, the robot can divide the environment map into at least one cleaning area based on at least one type of environmental data. The environmental data can be used to describe the entire environment to be cleaned, including its boundaries, shape, three-dimensional information, obstacle distribution, and other characteristics. The environmental data can include, for example, at least one of image data, obstacle data, relative position relationship data, or identification data. The image data, for example, is image data obtained by the robot detecting a location within the environment to be cleaned, including but not limited to one or more of two-dimensional image data and depth image data. The obstacle data, for example, includes one or more of data characterizing the size, height, type, and position of an obstacle. The relative position relationship data, for example, includes one or more of data such as the position, displacement, and / or angle of an obstacle relative to the robot, or the relative position, relative displacement, and / or relative angle between multiple obstacles. The identification data includes, but is not limited to, one or more of virtual wall identifiers and area type identifiers. Virtual wall identifiers, for example, are areas without physical boundaries that are marked and demarcated based on user operations or to prevent robot contact, prohibiting the robot from entering or exiting.
[0054] The identification data may be manually marked or determined by a robot based on the obstacle data and the relative position relationship data. Figure 3D To explain, such as Figure 3DThe area type identification includes a short straight shelf area and a long straight shelf area. The area type identification may be, for example, identified by a robot. Specifically, the robot may determine the distribution of shelves of different sizes in the environment map according to the size and position of each shelf in the environment map, thereby respectively determining the areas where short straight shelves and long straight shelves are respectively gathered, and further identifying the corresponding areas as short straight shelf areas and long straight shelf areas respectively; the area type identification may also be, for example, manually identified in advance. For example, the staff may identify the areas corresponding to long straight shelves in the environment map as long straight shelf areas, and the areas corresponding to short straight shelves as short straight shelf areas according to the distribution of shelves in the physical space corresponding to the environment map.
[0055] See also Figures 3A to 3D , which are schematic diagrams showing the cleaning areas in different embodiments of the present application. Figure 3A In the illustrated embodiment, the robot can determine the boundary of the environment map according to the environment data, and divide the entire environment map into a cleaning area A1 based on the boundary of the environment map.
[0056] In such Figure 3B In the embodiment shown, the robot can determine that there are two areas in the environment map that belong to different spaces (for example, Figure 3B The two different areas separated by the middle boundary or step m are located on the steps and under the steps, or upstairs and downstairs respectively). The robot can divide the environmental map into cleaning area A1 and cleaning area B1 belonging to different spaces according to the physical space distribution determined by the environmental data, so as to plan a planning path within each area that can improve the cleaning efficiency within the cleaning area A1 and the cleaning area B1, or plan a planning path from the cleaning area A1 to the cleaning area B1.
[0057] In such Figure 3C In the illustrated embodiment, the robot can determine the distribution of obstacles based on the obstacle data in the environmental data, so as to divide the cleaning area based on the distribution of obstacles, for example Figure 3C In the process, the robot can divide the areas in the environmental map where obstacles are regularly and densely distributed (for example, corresponding to the regular shelf placement areas in the supermarket) into the cleaning area B1 according to the environmental data, and divide the areas where obstacles are irregularly but sparsely distributed (for example, corresponding to the irregular shelf placement areas in the supermarket) into the cleaning area A1, so as to plan the planned paths in each area that can improve the cleaning efficiency in the cleaning area A1 and the cleaning area B1 respectively, or plan the planned paths from the cleaning area A1 to the cleaning area B1.
[0058] In such Figure 3DIn the embodiment shown, the robot can divide the environment map into at least one cleaning area according to the identification data in the environment data. Figure 3D In the example, the identification data includes: a long straight shelf area and a short straight shelf area. The robot can divide the environmental map into a cleaning area A1 corresponding to the short straight shelf area and a cleaning area B1 corresponding to the long straight shelf area according to the identification data, so as to plan the planning paths in each area that can improve the cleaning efficiency in the cleaning area A1 and the cleaning area B1 respectively.
[0059] It should be understood that in the aforementioned embodiments, the robot divides the environmental map into cleaning areas only as an example, and is not a limitation to step S410. In some embodiments, the environmental map may be manually divided in advance to form one or more cleaning areas, or the environmental map may not be divided, in which case the environmental map is a cleaning area.
[0060] After determining at least one cleaning area, the robot determines a planned path for moving within the single cleaning area to traverse the entire cleaning area and perform comprehensive cleaning tasks; when two or more cleaning areas are determined, the robot plans a planned path for moving between the cleaning areas to move from one cleaning area to another to perform cleaning tasks.
[0061] Please continue reading Figure 4 The travel path described in step S410 refers to a movement path that allows the robot to generally move forward while performing cleaning tasks within the cleaning area. The generally moving forward state means that the robot generally maintains forward movement along the travel path without turning back. Specifically, the robot can keep its front-to-back axis aligned with the travel path during movement, so that the robot as a whole moves along the travel path. Please refer to Figure 5 , which is a schematic diagram showing the movement of a robot along a travel path in one embodiment of the present application. As shown in the figure, during the movement of the robot 200 between two shelves 110, its axis remains consistent with the travel path 130.
[0062] It should be noted that the travel path is to make the robot move roughly along the travel path. Due to the influence of actual conditions such as the friction between the robot and the ground and its bypassing of obstacles during the movement, its moving route may be slightly different from the travel path in local areas (for example, the travel path is a straight path, and in order to bypass obstacles that temporarily appear in front of the robot, its moving route may be partially curved or broken line).
[0063] The multiple independent travel paths described in step S410 refer to the travel paths not intersecting with each other, for example, the travel paths are parallel to each other, or, although the travel paths are at a certain angle, they do not intersect due to the length of the travel paths.
[0064] See also Figure 18 , which is a schematic diagram of an independent travel path in one embodiment of the present application. As shown in the figure, two independent travel paths are set in the figure, namely a first travel path 171 and a second travel path 172. Based on the travel direction of each travel path, the input end and the output end of the travel path can be determined, such as Figure 18 , the first travel path 171 has a first travel direction (eg Figure 18 D1 in the figure, the first travel direction mentioned later can also be understood in this way), then the first travel path 171 has an outlet F2 and an inlet F1; the second travel path 172 has a second travel direction opposite to the first travel direction (for example Figure 18 D2 in the figure, and the second direction of travel mentioned later can also be understood in this way), the second travel path 172 has an outlet G2 and an inlet G1. Figure 18 The traveling path is only taken as an example as a straight path. In other embodiments, the traveling path may include a curved path.
[0065] In one embodiment, the multiple independent travel paths may be manually generated by an operator, for example, by dividing a cleaning area displayed on an electronic device to generate multiple independent travel paths.
[0066] In one embodiment, the plurality of independent travel paths may also be generated by calculation by the processing device of the robot, see Figure 6 , which is a schematic diagram of a process of generating multiple independent travel paths within a clean area in one embodiment of the present application. As shown in the figure, the process of generating multiple independent travel paths within a clean area includes step S510 and step S520.
[0067] In step S510 , the robot divides the cleaning area to form at least two channel areas.
[0068] The channel area is an operable area in which the robot is allowed to move to perform cleaning tasks. There may be no obstacles in the operable area (for example, there is an operable area, i.e., the channel area, between two adjacent obstacles), or the size of the obstacles in the operable area does not affect the movement of the robot in the operable area. The channel area may be a straight channel area that is straight in the length direction. In other words, the center line of the straight channel area is approximately a straight line (i.e., the curvature of the center line is close to 0). The channel area may also be a curved channel area that has a certain curvature at at least some points in the length direction. In other words, the center line of the curved channel area is curved (i.e., the curvature of the center line is not entirely 0).
[0069] In one embodiment, the passage area is a straight or curved passage area formed by extracting the workable area along the direction of the obstacle extension based on the obstacle distribution in the cleaning area. In one example, the robot obtains the obstacle distribution in the cleaning area based on the obstacle data in the environment map, determines the robot's workable area based on the obstacle distribution, and uses the workable area along the direction of the obstacle extension as the passage area. For example, there is a passage area between two adjacent obstacles, or there are two passage areas on both sides of an obstacle. Figure 7A and 7B , respectively, are schematic diagrams showing the channel area in one embodiment of the present application, such as Figure 7A As shown, the obstacle is, for example, a long straight shelf, and a passage area 610 is provided between every two long straight shelves. The passage area is a straight passage area 610 generated along the boundary of the long straight shelf; Figure 7B As shown, obstacles such as curved shelves are provided between each two curved shelves, and a channel area 620 is provided between each two curved shelves. The channel area is a curved channel area 620 generated along the boundary of the curved shelves. Figure 7B In the embodiment shown, the obstacles can also be set as multiple small shelves that are not distributed on the same vertical line. According to the distribution of obstacles, multiple small shelves that are approximately on a vertical line are divided into a whole, thereby forming a Figure 7B It should be noted that in order to ensure that the robot can walk in the curved channel, the maximum curvature of the curved channel area cannot be greater than the maximum turning curvature of the robot.
[0070] In another embodiment, the passage area is obtained based on a preset partitioning algorithm. For example, the partitioning algorithm is a connected domain-based partitioning algorithm. Using a connected domain search method, the robot uses a point within the cleaning area as a search starting point and identifies areas within the cleaning area that are connected to the search starting point from near to far. Due to the presence of obstacles, the robot may obtain multiple connected areas within the cleaning area. These multiple non-connected areas are used as the passage area. Non-connected means that there is an obstacle between two areas or the overlapping area of the two areas is small.
[0071] In yet another embodiment, the channel area is formed by re-joining the robot after the robot is initially divided in the manner described in the above embodiment. Specifically, the initially divided channel area is re-joined according to the size of the obstacle, the size of the channel area, and the body width of the robot. For example, due to the presence of an obstacle, an area that could have been divided into one channel area is automatically divided into a first channel area and a second channel area. If the size of the obstacle is small, that is, the robot can still pass through one side or both sides of the obstacle (that is, the remaining size on one side or both sides of the obstacle is greater than or equal to the size of the robot, or the size of the obstacle is less than the preset maximum obstacle size), the first channel area and the second channel area can be re-joined into one channel area. Please refer to Figure 8 , which is a schematic diagram of the channel area before and after re-joining in one embodiment of the present application. As shown in the figure, there is an obstacle P between two long straight shelves. Due to the existence of the obstacle P, the area between the two long straight shelves is divided into a first channel area 710 and a second channel area 720. The two channel areas are separated by the obstacle. However, due to the small size of the obstacle P, the remaining distance L on one side of the location of the obstacle P is greater than the body width of the robot. The robot can travel from the first channel area 710 to the second channel area 720 via the side of the obstacle. The first channel area 710 and the second channel area 720 can then be re-joined to form a channel area 730. For another example, if the first channel area and the second channel area obtained by the initial partitioning have an overlapping portion, and based on the size of the overlapping portion and the body width of the robot, it is determined that the robot can pass through the overlapping portion, the first channel area and the second channel area can be re-joined to form one channel area.
[0072] It should be noted that, in order to ensure that the robot does not collide with obstacles while cleaning within the passage area, the actual obstacle boundary can be expanded by a preset safety distance during the process of determining the passage area, and the passage area can be determined based on the expanded obstacle boundary. Alternatively, after the passage area is determined, the preset safety distance can be reduced on both sides of the passage area. The preset safety distance can be determined based on the width of the robot body, for example, half the body width, a quarter of the body width, etc.
[0073] It should be noted that, when the cleaning area is relatively spacious (with fewer obstacles or obstacles of smaller size), the cleaning area can also be directly divided into a channel area.
[0074] In step S520, after obtaining the channel area within the cleaning area, the robot arranges travel paths in each channel area respectively. The number of travel paths set in each channel area is related to the width of the channel area and the effective working width of the robot.
[0075] In one embodiment, the travel path is set to a straight path or a curved path in accordance with the channel area. Specifically, in accordance with the straight channel area, the travel path in the straight channel area is set to a straight path, and in accordance with the curved channel area, the travel path in the curved channel area is set to a curved path. When the travel path is a curved path, the maximum curvature on the curved path is not greater than the maximum turning curvature of the robot, that is, the curvature of each point on the curved path should be less than or equal to the maximum turning curvature of the robot, and the maximum turning curvature of the robot is the inverse of the minimum turning radius of the robot. Please refer to Figure 7A and 7B , Figure 7A The plurality of straight paths 611 are arranged in accordance with the straight channel area 610; Figure 7B It includes multiple curved paths 621 arranged in accordance with the curved channel area 620.
[0076] In one embodiment, the number of travel paths set in the channel area is related to the width of the channel area and the effective working width of the robot. The width of the channel area refers to the distance between obstacles on both sides of the channel area. The effective working width of the robot can refer to the cleaning width of the robot. The cleaning width is the width of the cleaning device used by the robot to perform cleaning operations. For example, the cleaning width can be the length of the robot's roller brush assembly or the diameter of the disc brush. For example, the body width of the robot can also be directly used as the effective working width. Specifically, the number of travel paths is determined according to the ratio of the width of the channel area to the effective working width of the robot. If the ratio is an integer, the travel paths are directly set based on the ratio. If the ratio is a decimal, the travel paths are set based on the number rounded up. It should be noted that the distance between the travel paths can be equal to or less than the effective working width. Specifically, when the ratio is an integer, the distance between the travel paths can be equal to the effective working width. When the ratio is a decimal, due to the rounding up operation, the distance between the travel paths may be less than the effective working width.
[0077] In one example, the ratio of the width of the channel area to the effective working width of the robot is Z1, where Z1 is an integer, and Z1 travel paths are directly set in the channel area. For example, if the ratio is 1, it means that only one travel path needs to be set in the channel area, and the center line of the channel area is used as the travel path of the channel area. For another example, if the ratio is 2, it means that only two travel paths need to be set in the channel area, the distance between the two travel paths is the effective working width, and the distance between the two travel paths and the obstacle boundary of the channel area closest to each other is half of the effective working width. Please refer to Figure 7A The setting method of the travel path.
[0078] In another example, the ratio of the width of the channel area to the effective working width of the robot is Z2, and Z2 is a decimal. The ratio Z2 is rounded up, and the number of travel paths in a channel area is set based on the integer obtained after rounding up. For example, if the ratio is greater than 1 and less than 2, and the integer 2 is obtained after rounding up the ratio, two travel paths are set in the channel area, and the distance between the two travel paths may be less than the effective working width, that is, there is an area that is repeatedly cleaned after the robot cleans along the two travel paths. For another example, if the ratio is greater than 2, and an integer greater than or equal to 3 is obtained after rounding up the ratio, three or more travel paths are set in the channel area, and one travel path is set along each obstacle on both sides of the channel area. The distance between each travel path and its nearest obstacle boundary is half of the effective working width, and the remaining travel paths are set between the two set travel paths. Please refer to Figure 9 , which is a schematic diagram of the travel paths in one embodiment of the present application. As shown, three travel paths are set in each channel area, one travel path is set along each of the long shelves on both sides of the channel area, and one travel path is set between the two travel paths.
[0079] In some embodiments, laying out the travel path in each channel area also includes the step of setting the travel direction of the travel path. The travel direction includes unidirectional and bidirectional. The unidirectional travel direction means that the travel path has one travel direction, and the end pointed by the travel direction is the exit end of the travel path, and the opposite end is the entry end of the travel path. The robot moves from the entry end to the exit end along the travel path. The bidirectional travel direction means that the travel path has two travel directions, and the travel path includes two opposite travel directions, that is, the robot can enter at any end of the travel path and move to the other end, then any end of the travel path can be used as both the exit end and the entry end. Please continue to read Figure 9 , Figure 9 The travel paths along the long shelves on both sides of the aisle area are unidirectional, that is, the end pointed by the arrow from bottom to top in the figure (for example, the upper end of travel path A) is the exit end, and the other end opposite (for example, the lower end of travel path A) is the entry end. The travel path set in the middle is bidirectional, that is, any end pointed by the bidirectional arrow in the figure (for example, any end of travel path B) is both the exit end and the entry end.
[0080] In some embodiments, the direction of travel of the travel path is set according to preset constraints. The preset constraints include: constraints set based on the time when the robot performs the cleaning task, constraints set based on whether it is adjacent to an obstacle, etc. In one example, the preset constraints are that the direction of travel of each travel path is unidirectional during the opening hours of the venue (for example, during the business hours of a supermarket), and the direction of travel of each travel path is bidirectional during the non-opening hours of the venue. In another example, the preset constraints are that the travel paths adjacent to obstacles on both sides of the aisle area are unidirectional, and the directions of the remaining travel paths in the middle are bidirectional. For example, the robot is used in a supermarket, and the travel paths adjacent to the shelves on both sides of an aisle area in the supermarket are unidirectional, and the directions of the remaining travel paths in the middle are bidirectional.
[0081] In some embodiments, the travel path generation method further includes the operation of numbering the travel paths. Specifically, the robot sequentially numbers the travel paths from near to far or from far to near based on the location of the travel paths. In one example, the distance between the travel path and the robot's current position or a preset position can be used as a criterion for judging the distance of the travel path, but is not limited to this. The travel paths are numbered using the distance between the travel path and the robot's current position as the criterion for judging the distance of the travel path. The path with the closest distance is numbered A, and the other travel paths are numbered B, C, D, E, and F from near to far. It should be noted that the number of each travel path can also be represented by other symbols such as numbers.
[0082] In step S420, the robot determines the connection relationship between any two travel paths based on a preset constraint condition, and constructs a path connection network corresponding to the cleaning area based on the connection relationship, with each travel path as a node.
[0083] The constraint conditions include at least one of the travel direction of the travel path, the location information of the travel path, and the robot's minimum turning diameter. The constraint conditions are used to determine whether any two travel paths are connected. That is, for any first travel path and second travel path, can the robot, after completing the cleaning task of the first travel path, directly move from the exit of the first travel path to the entry of the second travel path to complete the cleaning of the second travel path?
[0084] The position information of the travel paths includes: position information of each travel path in the cleaning area, or relative position information between each travel path.
[0085] The minimum turning diameter Dmin of the robot refers to the diameter corresponding to the maximum turning curvature of the robot. The minimum turning diameter Dmin is used to represent the minimum width required for the robot to complete a turn, for example Figure 9 As shown, the distance between the travel path C and the travel path D is equal to the minimum turning diameter Dmin of the robot, and the robot needs to move from the exit of the travel path C to the entrance of the travel path D at the maximum turning curvature.
[0086] The connection relationship between any two travel paths includes a connectivity relationship and a connection distance. The connectivity relationship includes a connectivity relationship and a disconnected connectivity relationship. Specifically, the connectivity relationship between the first travel path and the second travel path means that the robot can turn from the exit of the first travel path to the entry of the second travel path through a turning operation, that is, the exit of the first travel path is connected to the entry of the second travel path; the disconnected connectivity relationship means that the robot cannot turn from the exit of the first travel path to the entry of the second travel path through a turning operation, that is, the exit of the first travel path is not connected to the entry of the second travel path (the exit of the first travel path is disconnected from the entry of the second travel path). The connection distance refers to the distance between any two travel paths. The shortest distance between the two travel paths in the direction perpendicular to the travel direction can be used as the connection distance. Please refer to Figure 9 ,by Figure 9 Taking the travel path A and the travel path B in as an example, the connection distance between the travel path A and the travel path B is DL.
[0087] In some embodiments, the robot determines the connectivity of any two travel paths in the cleaning area based on the constraint conditions. Specifically, whether any two travel paths are connected can be determined based on at least one of the travel direction of the travel path, the position information of the travel path, and the minimum turning diameter of the robot. Among them, any two connected travel paths have the situation where the exit and the entry are located on the same side, for example, both are located at the upper end or both are located at the lower end, such as Figure 9 As shown in the figure, the travel path A is represented by an arrow from bottom to top, the end pointed by the arrow is the upper end, and the opposite end is the lower end. The exit and entry ends of the two unconnected travel paths are located on different sides.
[0088] For example, when the distance between any two travel paths within the cleaning area is greater than the minimum turning diameter of the robot, the connectivity relationship can be determined directly based on the travel directions of the two travel paths. For another example, when the travel directions of the travel paths are all bidirectional, the connectivity relationship can be determined directly based on the position information of the travel paths. For another example, when the travel paths within the cleaning area include unidirectional travel paths and the distance between any two travel paths within the cleaning area is not all greater than the minimum turning diameter, it is necessary to comprehensively determine the connectivity relationship based on the travel directions of the travel paths and the minimum turning diameter, or comprehensively determine the connectivity relationship based on the travel directions of the travel paths and the position information of the travel paths.
[0089] In one embodiment, determining the connectivity relationship of any two travel paths based on the constraint conditions includes: the robot determines the travel directions of any two travel paths, and then, when judging based on the travel directions that the travel directions of the two travel paths must be the same, the connectivity relationship of the two travel paths is determined to be disconnected. The robot judging based on the travel directions that the travel directions of the two travel paths must be the same means that, no matter how many travel directions the travel paths have, when the judgment is made through permutations and combinations, there is no situation where the travel directions of the two travel paths are different. Taking the case where the travel directions of the two travel paths are both unidirectional as an example, it is only necessary to judge once whether the travel directions of the two travel paths are the same, please refer to Figure 11 , which is a schematic diagram of the planned path in one embodiment of the present application. As shown in the figure, the travel directions of travel path A and travel path C are unidirectional and the travel directions are the same, then the connectivity relationship between travel path A and travel path C is disconnected; taking the case where the travel direction of one travel path is unidirectional and the travel direction of the other travel path is bidirectional (for example, the first travel direction and the second travel direction), it is necessary to separately judge whether the travel direction of one travel path is the same as the two travel directions of the other travel path, that is, two judgments are required to determine whether the travel directions of the two travel paths are necessarily the same or different; taking the case where the travel directions of the two travel paths are both bidirectional, it is necessary to separately judge whether one travel direction of one travel path is the same as the two travel directions of the other travel path, and separately judge whether the other travel direction of one travel path is the same as the two travel directions of the other travel path, that is, four judgments are required to determine whether the travel directions of the two travel paths are necessarily the same or different. In other embodiments, when the traveling direction of one traveling path is unidirectional and the traveling direction of the other traveling path is bidirectional, or the traveling directions of both traveling paths are bidirectional, it is directly determined that the traveling directions of the two traveling paths must be different.
[0090] In one embodiment, determining the connectivity of any two paths based on the constraint condition includes: determining the connectivity of the two paths as connectable based on the minimum turning diameter of the robot, if it is determined that the two paths have opposite directions and the distance between them is no less than the minimum turning diameter of the robot. The two paths having opposite directions include: both paths have unidirectional and opposite directions; both paths have bidirectional directions; and one path has unidirectional and the other has bidirectional directions. Determining that any two paths have opposite directions can be determined, for example, by the robot simultaneously executing the step of determining the connectivity of the two paths as disconnected when the directions of the two paths are necessarily the same. For example, when the robot determines that the directions of the two paths are necessarily the same, it can determine any two paths whose directions are not necessarily the same (i.e., equivalent to the two paths having opposite directions). Furthermore, the robot determines the connection distance of any two paths with opposite directions of travel based on the minimum turning diameter of the robot. If the connection distance is not less than the minimum turning diameter, the robot is considered to be able to turn between the two paths, and the connectivity relationship between the two paths is determined to be connected. Otherwise, the two paths are determined to be disconnected. For example, see Figure 10A , which is a schematic diagram of the travel paths of the cleaning area in one embodiment of the present application. As shown in the figure, travel paths C and F have opposite travel directions, and the connection distance DL between travel paths C and travel paths F is greater than the minimum turning diameter Dmin of the robot. Therefore, travel paths C and travel paths F are connected. Although travel paths D and travel paths E have opposite travel directions, the connection distance DL between travel paths D and travel paths E is less than the minimum turning diameter Dmin of the robot. Therefore, travel paths D and travel paths E are not connected.
[0091] In some application scenarios, the width of the obstacle in the cleaning area is relatively wide. For example, the width of the obstacle can make the connection distance between the travel paths in two adjacent channel areas not less than the sum of the robot's body width and the width of the obstacle. In this case, it is only necessary to judge the position information of the travel path to determine whether the robot can turn between the two travel paths.
[0092] In view of this, in one embodiment, determining the connectivity relationship between any two travel paths based on the constraint condition includes: based on the position information of the travel paths, if it is determined that any two travel paths have opposite travel directions and are respectively located in two adjacent channel areas, determining the connectivity relationship between the travel paths as connected. The two travel paths having opposite travel directions include: both travel directions of the two travel paths are unidirectional and opposite to each other; both travel directions of the two travel paths are bidirectional; and one of the two travel paths has a unidirectional and the other a bidirectional direction. The determination that any two travel paths have opposite directions of travel can be made, for example, by the aforementioned robot executing the step of determining that the directions of travel of the two travel paths are necessarily the same and determining that the connectivity relationship of the two travel paths is not connected. For example, when the robot determines that the directions of travel of the two travel paths are necessarily the same, it can determine any two travel paths whose directions are not necessarily the same (i.e., it is equivalent to the two travel paths having opposite directions of travel). Further, the robot determines whether any two travel paths with opposite directions of travel are respectively located in two adjacent channel areas based on the position information of the travel paths. When the judgment is yes, it is considered that the robot can turn between the two travel paths, and the connectivity relationship of the two travel paths is determined to be connected. Otherwise, it is determined to be not connected. Of course, in other embodiments, two travel paths respectively located in two different channel areas can also be determined to be connected. The aforementioned determination of two travel paths respectively located in two adjacent channel areas as connected in this application is to facilitate the robot to preferentially turn with the closest travel path, and is not a restriction on the selection method.
[0093] As in the previous embodiment, after first judging the travel paths that must have the same travel direction as disconnected based on the travel direction, the connectivity relationship between the remaining travel paths is further judged based on information such as the position information of the travel path or the minimum turning diameter of the robot. This can reduce the calculation time for constructing the path connectivity network, and thus can efficiently generate a planned path for the cleaning area based on subsequent steps.
[0094] After obtaining the connectivity relationship based on the above embodiment, the connectivity relationship is further determined as the connection distance between any two connected travel paths. For example, the connection distance is determined using two parallel straight lines parallel to the travel direction. For example, when the two connected travel paths are parallel straight paths, the connection distance is directly the distance between the two straight paths. For another example, when the two connected travel paths are curved paths, the connection distance is the distance between straight lines tangent to the exit and entry ends of the two travel paths.
[0095] Please continue reading Figure 4In step S420, the robot also constructs a path connectivity network corresponding to the cleaning area based on the connection relationship determined in the above embodiment, with each travel path as a node. The path connectivity network is a graph structure including nodes and connecting edges. Specifically, the robot uses each travel path as a node and uses a connecting edge to connect two nodes with a connected relationship. Furthermore, the connecting edge is a directed edge, which is used to indicate the direction in which the two nodes can be connected. Please refer to Figure 10A and Figure 10B , Figure 10B The display is the corresponding embodiment of the present application Figure 10A A schematic diagram of a path connectivity network of travel paths, as shown in the figure, travel paths A to travel paths H are respectively used as nodes A to node H in the path connectivity network, for example, according to the judgment method of the aforementioned embodiment, travel path A and travel path B, travel path B and travel path C, travel path C and travel path D, travel path D and travel path E, travel path E and travel path F, travel path F and travel path G, travel path G and travel path H, travel path A and travel path C, travel path A and travel path E, travel path A and travel path G, travel path C and travel path E, travel path C and travel path G, travel path E and travel path G, travel path B and travel path D, travel path B and travel path F, travel path B and travel path H, travel path D and travel path F, travel path D and travel path H, travel path F and travel path H, then node A and node B, node B and node C, node C and node D, node D and node E, node E and node F, node F and node G, node G and node H, node A and node C, There is no connecting edge between node A and node E, node A and node G, node C and node E, node C and node G, node E and node G, node B and node D, node B and node F, node B and node H, node D and node F, node D and node H, and node F and node H. According to the judgment method of the above embodiment, it is determined that travel path A and travel path D are connected and travel path A can be entered into travel path D or travel path D can be entered into travel path A, then the connecting edge between node A and node D is set as a bidirectional directed edge. Similarly, The situation also includes travel path A and travel path F, travel path A and travel path H, travel path B and travel path G, travel path B and travel path E, travel path C and travel path H, travel path C and travel path F, travel path D and travel path G, travel path E and travel path H, then the connecting edges between node A and node F, node A and node H, node B and node G, node B and node E, node C and node H, node C and node F, node D and node G, node E and node H are set to bidirectional directed edges.
[0096] In some embodiments, the weight information of the connecting edge and / or the weight information of the node can also be set, so that the constructed path connectivity network is an authorized path connectivity network. In one example, the edge weight information of the connecting edge can be determined based on the connection distance. Specifically, the weight information of the connecting edge is the connection distance between the two travel paths corresponding to the two nodes connected by the connecting edge. In one example, the node weight information can be determined based on the length of each travel path. By constructing a path connectivity network with weight information, reference information can be provided for step S430, so that the robot can efficiently traverse the path connectivity network based on the weight to generate a planned path covering the cleaning area.
[0097] In step S430 , the robot traverses the path connectivity network using one of the nodes as a starting point to determine a planned path of the robot in the cleaning area.
[0098] In one embodiment, the robot first selects a node in the path connectivity network as a starting point, and performs an operation of traversing the path connectivity network based on the starting point to obtain a planned path including all nodes in the path connectivity network.
[0099] In one example, the robot selects a starting point based on the distance between the current position and each node. For example, the node corresponding to the minimum distance is selected as the starting point. Figure 11 , Figure 11 For example, if the distance between the robot and the travel path A (i.e., node A) is the smallest, node A is selected as the starting point. For another example, the starting point is determined based on the distance and the current posture of the robot. Specifically, if the node corresponding to the minimum distance value requires the robot to perform posture transformation, the node closest to the current position among the nodes that do not require the robot to perform posture transformation is selected as the starting point. For another example, the starting point is determined based on the distance and the moving time to the next node. Specifically, due to the existence of obstacles, etc., the time to move from the current position to the node corresponding to the minimum distance value needs to bypass obstacles, resulting in the time to move from the current position to the node being not the shortest, the node with the shortest moving time is selected as the starting point.
[0100] In another example, the starting point is determined based on the importance of the paths within each aisle area, with a path within the more important aisle area being selected as the starting point. When multiple paths are available, a single starting point can be determined based on any of the aforementioned distance-based starting point determination methods. For example, in a supermarket scenario, the area near fresh produce shelves is often more contaminated, so the path closest to the current location within the aisle area near the fresh produce shelves is selected as the starting point.
[0101] In some embodiments, step S430 further includes: the robot uses the starting point and determines the nodes and connecting edges to be passed in sequence based on the connection relationship and the node priority information to form the planned path. Wherein, the node priority information is determined based on the distance between each node and the starting point, the current position of the robot, the current instruction obtained by the robot, and the moving time from the next node. The node priority information represents the priority of each node when traversing the path connection network, that is, it represents the priority passing of each node. The node priority information can be expressed as high priority, medium priority, low priority, etc., and can also be expressed as first priority, second priority, third priority, fourth priority, etc. For example, the node with high priority information is passed first, and then the node with medium priority information is passed, and finally the node with low priority information is passed. In the following embodiments, the node priority information including high priority and low priority is used as an example for explanation.
[0102] In one example, the node priority information is determined based on the distance between each node and the starting point. Specifically, the node priority information can be determined based on a set distance threshold and the distance between each node and the starting point, wherein the distance threshold can be set to one or two or more different distance values. For example, if the distance threshold is one, the node priority information corresponding to nodes whose distance from the starting point is less than the distance threshold is high priority, and the node priority information corresponding to nodes whose distance from the starting point is greater than the distance threshold is low priority. For another example, the distance threshold includes a first distance threshold and a second distance threshold, wherein the first distance threshold is less than the second distance threshold. Then, the node priority information of nodes whose distance from the starting point is less than the first distance threshold is low priority, the node priority information of nodes whose distance from the starting point is between the first distance threshold and the second distance threshold is medium priority, and the node priority information of nodes whose distance from the starting point is greater than the second distance threshold is high priority. It should be noted that the number of distance thresholds can be determined based on the number of nodes and other conditions, thereby maintaining the number of nodes of each priority level within a certain range, thereby efficiently traversing the path connectivity network.
[0103] In another example, the node priority information is obtained based on the current instruction obtained by the robot. Specifically, the current instruction includes each node and the priority corresponding to each node. The user sends the current instruction to the robot through an electronic device, so that the robot can determine the node priority information of all nodes. For example, please refer to Figure 11, the user sets nodes B, C, and D as high-priority nodes and nodes E, F, G, and H as low-priority nodes, and sends an instruction containing the above information to the robot in advance.
[0104] In another example, the node priority information is determined based on the current posture of the robot. Specifically, the current posture of the robot refers to the current position (coordinates) and posture (heading angle) of the robot. For example, the robot can determine the priority information of each node based on the distance between each node and the current position of the robot. For example, when setting the number of the travel path (node), the travel paths of different distances are numbered in sequence according to the distance from the current position of the robot. The travel paths from near to far are sequentially set with digital numbers from small to large or alphabetical numbers from front to back, etc., and then the robot can directly traverse the path connectivity network based on the size of the node number or the alphabetical order of the node number. For another example, the robot determines the node priority information based on the current posture, such as determining the node priority information of the node that is easy to adjust the posture as a high priority, and determining the node priority information of the node that is not easy to adjust the posture as a low priority.
[0105] In another example, the node priority information is determined based on the moving time from the next node. Specifically, the robot obtains the moving distance between the current position and each node, determines the moving time based on the moving distance and the moving speed of the robot, and regards nodes with low moving time as high priority nodes, and nodes with high moving time as low priority nodes.
[0106] In some embodiments, the path connectivity network is traversed based on the node priority information and the connection relationships determined in the above manner, i.e., the planned path is formed by sequentially traversing the nodes and connecting edges in the path connectivity network. Specifically, during the traversal process, high-priority nodes are preferentially traversed. If a high-priority node cannot be traversed, a low-priority node is first traversed, and then the high-priority node is preferentially traversed again. This continues until all high-priority nodes have been traversed, and then the low-priority nodes are traversed.
[0107] See also Figure 12 , which is a flow chart of a method for traversing a path connectivity network in a specific embodiment of the present application. As shown in the figure, the method includes step S1101, step S1102, step S1103, step S1104 and step S1105.
[0108] In step S1101, the robot passes through nodes with high priority based on the starting point. Figure 10B and Figure 11 , Figure 10BNodes A, B, C, and D are high-priority nodes, and nodes E, F, G, and H are low-priority nodes. Specifically, the robot starts from node A, selects node D connected to node A from the high-priority nodes, enters node D through the connecting edge between nodes A and D, and then passes through node D.
[0109] In step S1102, the robot determines whether all high-priority nodes have been passed. If yes, it executes step S1105; if not, it executes step S1103. Figure 10B and Figure 11 After the robot passes node D, if there are still high-priority nodes that have not been passed, execute step S1103.
[0110] In step S1103, it is determined whether the node with high priority can continue to be passed. If yes, step S1101 is executed. If not, step S1104 is executed. Figure 10B and Figure 11 If the robot determines that it cannot continue to move from node D to the remaining high-priority nodes (node B, node C), it executes step S1104.
[0111] In step S1104, the process passes through one of the low priority nodes and then executes step S1101. Figure 10B and Figure 11 , the robot selects the low-priority node G closest to the high-priority node D from the low-priority nodes, and continues to execute step S1101 after passing through the node G through its corresponding connection edge.
[0112] In step S1105, the remaining low-priority nodes are passed through, and then the process ends. Specifically, after all high-priority nodes have been passed through, the remaining low-priority nodes are passed through.
[0113] In a specific embodiment, based on Figure 10B The connectivity relationship and Figure 12 The traversal path connectivity network method can obtain the following Figure 11The planned path shown. The planned path includes 7 sub-paths, among which sub-path 1 is: the robot starts from the entry end of travel path A, passes through the exit end of travel path A and enters the entry end of travel path D via the connection path between travel path A and travel path D; sub-path 2 is: the robot starts from the entry end of travel path D, passes through the exit end of travel path D and enters the entry end of travel path G via the connection path between travel path D and travel path G; sub-path 3 is: the robot starts from the entry end of travel path G, passes through the exit end of travel path G and enters the entry end of travel path B via the connection path between travel path G and travel path B; sub-path 4 is: the robot starts from the entry end of travel path B, passes through the exit end of travel path B and enters the entry end of travel path B via the connection path between travel path G and travel path B. Enter the entry of travel path E from the connection path between travel path B and travel path E; sub-path 5 is: the robot starts from the entry of travel path E, passes through the exit of travel path E, and enters the entry of travel path H via the connection path between travel path E and travel path H; sub-path 6 is: the robot starts from the entry of travel path H, passes through the exit of travel path H, and enters the entry of travel path C via the connection path between travel path H and travel path C; sub-path 7 is: the robot starts from the entry of travel path C, passes through the exit of travel path C, and enters the entry of travel path F via the connection path between travel path C and travel path F, and moves from the entry of travel path F to the exit of travel path F.
[0114] In order to avoid the possibility of omissions in the planned path formed by determining the nodes and connecting edges that are passed in sequence based on the connection relationship and node priority information, that is, the situation where there are nodes that have not been passed, in some embodiments, step S430 further includes: when it is determined that there are nodes that have not been passed, a planned path that can pass through the nodes that have not been passed is determined based on the connection relationship with the current node as the starting point. In order to distinguish the planned paths, the planned path formed by determining the nodes and connecting edges that are passed in sequence based on the connection relationship and node priority information is referred to as the first planned path, and the planned path of the nodes that have not been passed is referred to as the second planned path. It should be understood that in examples where there are no nodes that have not been passed, the planned path of the cleaning area only needs to include the first planned path. In examples where there are nodes that have not been passed, the planned path of the cleaning area includes the first planned path and the second planned path, wherein the first planned path is executed first and then the second planned path is executed.
[0115] In one embodiment, when the robot obtains the first planned path, but there are nodes that have not been passed in the first planned path, the robot uses the current node as the starting point and searches for at least one indirect node among the nodes that have been traversed through the search algorithm. Through the indirect node, a second planned path can be planned from the current node through the indirect node and through the node that has not been passed. The second planned path is combined with the first planned path to obtain a planned path for the cleaning area. The search algorithm includes a depth-first search algorithm and a breadth-first search algorithm. For example, see Figure 13 , which is a schematic diagram of the planned path of the cleaning area in another embodiment of the present application. As shown in the figure, travel path A, travel path B, travel path C, travel path D, and travel path E are high-priority nodes, and travel path F, travel path G, travel path H, and travel path I are low-priority nodes. The robot obtains a first planned path through the traversal method described above. The first planned path is travel path A→travel path C→travel path D→travel path B→travel path E→travel path H→travel path G→travel path F in sequence. Since the travel direction of the travel path F is the same as that of the travel path I, it is impossible to move from the travel path F to the travel path I. Furthermore, the robot takes the current node F as the initial node and re-traverses the points that have been traversed through the search algorithm to obtain a second planned path that can pass through the nodes that have not been passed. The second planned path of the nodes that have not been passed is travel path F → travel path G → travel path I in sequence. The planned path of the cleaning area obtained by combining the two planned paths is travel path A → travel path C → travel path D → travel path B → travel path E → travel path H → travel path G → travel path F → travel path G → travel path I.
[0116] It should be noted that if it is determined that there are nodes that have not been passed, the first planned path can be abandoned and a new planned path can be re-planned based on the search algorithm to connect all nodes in the network through the path. Figure 13 , when traversing Figure 13 When the first planned path (travel path A→travel path C→travel path D→travel path B→travel path E→travel path H→travel path G→travel path F) obtained after the corresponding paths are connected to the network has an unpassed node, the robot can also re-plan a planned path (travel path A→travel path C→travel path D→travel path B→travel path E→travel path I→travel path G→travel path F→travel path H) based on the search algorithm.
[0117] In some embodiments, step S430 further includes planning a connecting path (also referred to as a turning path), wherein the connecting path refers to a turning path between travel paths. Since each travel path is independent, a turning path is required to enter another travel path from one travel path. In one example, see Figure 14 , which is a schematic diagram of a connection path in one embodiment of the present application. As shown in the figure, the turning diameter of the robot between the travel path D and the travel path E is the lateral distance between the travel path D and the travel path E. The connection path includes a curve segment 132, which is a semicircular arc with a diameter equal to the turning diameter. In another example, see Figure 15 , which is a schematic diagram of a connection path in another embodiment of the present application. As shown in the figure, the turning diameter of the robot is the minimum turning diameter Dmin, and the connection path includes a turning-out curve segment 132a, a straight line segment 132b and a turning-in curve segment 132c.
[0118] In other embodiments, the node priority information of each node can also be changed in real time. That is, during the process of traversing the path connectivity network, the priority of each node is determined based on the position of each node and the node currently located by the robot to update the node priority information. Taking the path connectivity network as an example, the nodes include node A2, node B2, node C2, node D2, node E2, node F2, and node G2, where nodes A2, node B2, and node C2 are high priority nodes, and nodes D2, node E2, node F2, and node G2 are low priority nodes. The starting point selected is A2. During the traversal process, the node among node B2 and node C2 that can be connected with the node A2 and is closest to node A2 is selected as the next node to pass through. When node C2 is selected as the next node to be passed by the robot, the node priority information is re-determined. Node B2, node D2, and node E2 are re-determined high priority points, and node F2 and node G2 are re-determined low priority points. The remaining nodes are traversed based on the re-determined node priority information.
[0119] It should be noted that after obtaining the planned path for the cleaning area based on the above embodiment, path planning can be performed again for the remaining boundary areas within the cleaning area, and the paths after the two plannings are used as the planned path for the cleaning area. This can further ensure full coverage of the cleaning area.
[0120] To sum up, the present application generates a path connectivity network based on constraint conditions and then performs path planning based on the path connectivity network, which enables the robot to efficiently generate a planned path covering the cleaning area where the robot is located even when used in a narrow environment. In this way, the present application can not only reduce the generation time of the planned path and efficiently generate a fully covered planned path, but also enable the robot to avoid collisions with obstacles when turning in a narrow environment when performing cleaning tasks based on the planned path, thereby achieving comprehensive, accurate and complete cleaning of the cleaning area, avoiding repeated cleaning, and improving cleaning efficiency.
[0121] This application also discloses a robot system, see Figure 16 , which is a functional block diagram of a robot system in one embodiment of the present application. As shown in the figure, the robot system 150 includes a storage device 151, a map building device 152, and a processing device 153. In an embodiment, the robot system is, for example, a control system for a cleaning robot. In an embodiment, the control system of the cleaning robot may include more or fewer components than shown in the figure, or may combine or separate certain components, or arrange the components differently. The components shown in the figure may be implemented by hardware or software, or a combination of software and hardware.
[0122] The map building device 152 is used to collect environmental data surrounding the robot to generate an environmental map. In an embodiment, when the robot performs a moving task, its control system needs to first obtain the environmental map generated by the map building device 152 so that the robot can perform path planning based on the environmental map.
[0123] In some embodiments, the map building device 152 is used to collect data about the robot's surrounding environment to generate an environment map, which can be pre-planned and stored in its memory so that the robot can read the environment map when performing a moving task.
[0124] In other embodiments, the environmental map is obtained by the map construction device 152 through real-time mapping, such as when the robot initially moves in an unfamiliar environment, the map construction device 152 collects data on the robot's surroundings in real time while traversing the unfamiliar environment to obtain the environmental map; or the environmental map is suddenly lost during the robot's movement and is regenerated.
[0125] The storage device 151 is used to store at least one robot motion control program. In an embodiment, the storage device 151 is used to store at least one program, which is executable by the processing device 153 to coordinate the storage device 151 and an interface device (not shown) to implement the robot path planning method described in any of the above embodiments. Here, the storage device 151 includes, but is not limited to, read-only memory (ROM), random access memory (RAM), and non-volatile RAM (NVRAM). For example, the storage device 151 includes a flash memory device or other non-volatile solid-state storage device. In some embodiments, the storage device 151 may also include memory remote from one or more processing devices, such as a network attached memory (NAS) accessed via RF circuitry or an external port and a communication network, where the communication network may be the Internet, one or more intranets, local area networks, wide area networks, storage area networks, or a suitable combination thereof. The memory controller may control access to the memory by other components of the device, such as the CPU and peripheral interfaces.
[0126] The processing device 153 is connected to the storage device 151 and the map building device 152, and is used to implement the above-mentioned Figure 4 The path planning method of the robot shown.
[0127] In some embodiments, the processing device 153 includes one or more processors. The processing device 153 is operable to perform data read and write operations with the storage device 151. The processing device 153 includes one or more general-purpose microprocessors, one or more application-specific processors (ASICs), one or more digital signal processors (DSPs), one or more field programmable gate arrays (FPGAs), or any combination thereof. In embodiments, the processor can be used to read and execute computer-readable instructions. In a specific implementation, the processor may primarily include a controller, an arithmetic unit (ALU), and registers. The controller is primarily responsible for decoding instructions and issuing control signals for operations corresponding to the instructions. The ALU is primarily responsible for performing fixed-point or floating-point arithmetic operations, shift operations, and logical operations, and may also perform address operations and conversions. The registers are primarily responsible for storing register operands and intermediate operation results temporarily stored during instruction execution. In a specific implementation, the processor's hardware architecture may be an application-specific integrated circuit (ASIC) architecture, a MIPS architecture, an ARM architecture, or an NP architecture, among others.
[0128] In an embodiment, the processor may include one or more processing units, for example, the processor may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0129] The present application also discloses a robot, which is used to execute the robot path planning method described in any of the above embodiments. The robot includes a robot body, left and right drive wheels, at least one passive universal wheel, and a control device.
[0130] In the embodiments, the robot refers to an autonomous mobile device capable of building a map in a physical space, including but not limited to one or more of: a home companion mobile device, a medical mobile device, a home cleaning robot, a commercial cleaning robot, and a patrol robot. For example, it may be a service robot used in commercial scenarios to perform certain tasks (such as a cleaning robot, a patrol robot, or a food / goods delivery robot) or a home robot used in a home scenario to perform cleaning or entertainment tasks (such as a sweeping robot or a companion robot).
[0131] The physical space refers to the actual three-dimensional space where the robot is located, which can be described by abstract data constructed in the spatial coordinate system. For example, the physical space includes but is not limited to home residences, public places (such as offices, shopping malls, supermarkets, hospitals, underground parking lots, and banks), etc. For robots, the physical space usually refers to indoor space, that is, the space has boundaries in the length, width, and height directions. In particular, it includes physical spaces with narrow spatial ranges and high scene repetition, such as the shelf areas of shopping malls, supermarkets or warehouses. In the following embodiments, the robot will be described as a cleaning robot.
[0132] See also Figure 17, which is a schematic diagram of an embodiment of a cleaning robot according to the present application. For example, the cleaning robot is capable of performing one or more tasks including sweeping, vacuuming, and mopping. Accordingly, the cleaning robot is provided with one or more accessories or components, such as a cleaning brush for sweeping, a mop, and a water tank for holding clean water or dirty water.
[0133] In one embodiment, the robot body 10 includes a chassis, wherein the chassis can be integrally formed of materials such as plastic, metal or other materials used in the art, and includes a plurality of pre-formed grooves, recesses, latches or similar structures for mounting or integrating related devices, parts, assemblies, or mechanisms on the chassis. When the robot is a cleaning robot, the robot body also includes a sewage tank, and the chassis includes a clean water tank integrally formed on the top thereof, the sewage tank is nested on the clean water tank to be combined with the chassis, and includes a built-in storage space for recycling sewage collected by the robot, and the built-in storage space and the storage space of the clean water tank have an overlapping area in the vertical direction. The overlapping area in the vertical direction means that the projections of the two areas or spaces on the vertical plane have overlapping parts.
[0134] In an embodiment, the left drive wheel 11 is arranged at the rear side of the bottom of the body 10 of the cleaning robot and is located on the left side of the cleaning robot, and the right drive wheel (not shown) is arranged at the rear side of the bottom of the body 10 of the cleaning robot and is located on the right side of the cleaning robot. The left drive wheel 11 and the right drive wheel are coaxially arranged, and are used to drive the cleaning robot forward or backward when driven by their respective motors, or to drive the cleaning robot to turn by utilizing the differential speed of the left and right drive motors.
[0135] In an embodiment, the universal wheel 12 is arranged at the bottom of the body 10 of the cleaning robot and in the middle position of the front side of the cleaning robot, and is used to support the weight of the front of the cleaning robot and cooperate with the differential speed of the left and right drive wheels to passively realize steering for the cleaning robot. In this application, the universal wheel 12 is a passive wheel, that is, the universal wheel 12 itself does not have driving capability, and it can passively roll or turn under the drive of the left and right drive wheels on the rear side of the cleaning robot.
[0136] In another embodiment, there are two universal wheels, which are respectively arranged at the bottom of the cleaning robot body and located on the left and right sides of the front side of the cleaning robot, and are used to support the weight of the front of the cleaning robot and cooperate with the differential speed of the left and right drive wheels to passively realize steering for the cleaning robot. It should be understood that in other embodiments, the number of universal wheels can be configured accordingly according to the needs of the cleaning robot. For example, in addition to setting a passive universal wheel at the bottom of the robot body and located in the middle position of the front side of the cleaning robot, another passive universal wheel is also set on the left and right sides of its front side.
[0137] The cleaning robot may also have a control device (not shown) electrically coupled to the left and right drive wheels for controlling the left and right drive wheels. The control device is typically provided with a processor and a memory. In some embodiments, the control device is disposed on a circuit board (not shown) within the body, and includes a memory and a processor, etc. The memory and the processor are electrically connected directly or indirectly to enable data transmission or interaction. For example, the memory and the processor may be electrically connected to each other via one or more communication buses or signal lines.
[0138] The control device may further include at least one drive unit, such as a left-wheel drive unit for driving the left drive wheel and a right-wheel drive unit for driving the right drive wheel. The drive unit may include one or more processors (CPUs) or microprocessor units (MCUs) dedicated to controlling the drive motor. For example, the microprocessor is used to convert the information or data provided by the control device into an electrical signal for controlling the drive motor, and to control the speed, direction, etc. of the drive motor according to the electrical signal to adjust the moving speed and direction of the cleaning robot. The information or data is such as the deflection angle determined by the control device. The processor in the drive unit can be shared with the processor in the control device or can be set independently. For example, the drive unit acts as a slave processing device, the control device acts as a master device, and the drive unit performs movement control based on the control of the control device. Or the drive unit and the processor in the control device are shared. The drive unit receives data provided by the control device through a program interface. The drive unit is used to control the drive wheel based on the forward or backward control instructions provided by the control device.
[0139] In the present application, the control device is used to control the rotation speed of the left and right driving wheels to realize the travel control of the robot following the planned path. The control device is configured to: generate multiple independent travel paths in a cleaning area; determine the connection relationship between any two travel paths based on a preset constraint condition, and construct a path connection network corresponding to the cleaning area with each travel path as a node based on the connection relationship; and traverse the path connection network with one of the nodes as the starting point to determine the planned path of the robot in the cleaning area. That is, the following Figure 4 Steps S410 to S430 in the flowchart of the robot path planning method shown in .
[0140] In some embodiments, the processor includes an integrated circuit chip with signal processing capabilities; or a general-purpose processor, such as a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a discrete gate or transistor logic device, or a discrete hardware component, which can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor.
[0141] In some embodiments, the memory may include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. The memory is used to store programs (e.g., path planning programs, cleaning programs, etc.), and the processor executes the programs after receiving execution instructions.
[0142] The cleaning robot body is provided with a plurality of detection devices (not shown) for detecting and / or identifying obstacles in the surrounding environment, thereby adjusting its own movement direction and / or movement posture according to the received feedback signals to avoid collision with obstacles or falling off cliffs. It should be understood that, depending on actual needs, the number of the detection devices can be further provided at different positions of the robot body to improve the accuracy of detection.
[0143] In an embodiment, the detection device of the robot includes, for example, a laser sensor, an ultrasonic sensor, an infrared sensor, an optical camera (such as a monocular camera or a binocular camera), a depth camera (such as a ToF sensor), a millimeter-wave radar sensor, etc.; wherein, for example, the laser sensor can determine its distance from the obstacle based on the time difference between the time it emits the laser beam and the time it receives the laser beam; for another example, the ultrasonic sensor can determine the distance of the robot from the obstacle based on the vibration signal reflected by the obstacle when the sound wave it emits is reflected; for another example, the binocular camera device can determine the distance of the robot from the obstacle based on the image captured by its two cameras using the triangulation principle; for another example, the infrared light projector of the ToF (Time of Flight) sensor projects infrared light outward, and the infrared light is reflected after encountering the obstacle to be measured and is received by the receiving module. By recording the time from the emission to the reception of the infrared light, the depth information of the illuminated obstacle is calculated. It should be noted that the sensor used for obstacle detection in the detection device of this application is also referred to as an obstacle sensor. The obstacle sensor mentioned later should be understood in this way and will not be repeated.
[0144] Among them, obstacles refer to objects located on the travel path or trajectory of the cleaning robot that may block it; the obstacles have different types depending on the environment. For example, in indoor scenes, obstacles may be doors, walls, pillars, stairs, tables, chairs, cabinets, flower pots, electrical appliances and other various placed objects; in outdoor scenes, obstacles may include buildings, public facilities, pedestrians, etc.
[0145] In an embodiment, the robot utilizes multiple behavioral modes to efficiently clean a defined work area, wherein a behavioral mode is a control system layer that can operate in parallel. The microprocessor unit is operable to execute a priority arbitration scheme to identify and implement one or more primary behavioral modes for any given scenario based on input from the sensor system. Examples include a robot route following mode, a turning mode, an obstacle avoidance mode, an edge following mode in which the robot follows the edge of an obstacle, a wall following mode in which the robot follows a wall, or a travel mode in which the robot moves in a U-shaped or U-shaped pattern according to a pre-set planned path.
[0146] In one embodiment, the control device uses a processor to call a path planning program in a memory and executes the path planning program after the processor receives an execution instruction to achieve the following Figure 4 The control device can also control the robot to perform work tasks, such as cleaning the floor.
[0147] In one embodiment, the robot may further include an interaction device (not shown), which is connected to the control device and is used to provide an interaction interface between the user and the robot. The control device works together through the left and right drive wheels, the control device, and the interaction device to execute the robot path planning method described in any of the above embodiments.
[0148] In this embodiment, the robot can directly obtain the current instruction input by the user, the minimum turning diameter of the robot, the distance threshold, etc. through the interactive device. Specifically, the interactive device provides the user with an interactive interface with the robot based on a display visual interface (an operation interface). The interactive device includes, for example, a display. When the display is integrated with a touch sensor, it can be used as a hardware device for displaying and generating input events. The interactive device can be data-connected to the control device of the robot, and the control device receives data from the interactive device or sends data to the interactive device. For example, the control device determines the connection relationship based on the minimum turning diameter of the robot input by the user on the interactive device. Among them, the operation interface can be understood as a display interface provided by the interactive device, which will not be described in detail here.
[0149] In one embodiment, the robot may further include a cleaning device (not shown), which is disposed at the bottom of the robot and is configured to perform cleaning operations under the control of a control device. The cleaning device includes a roller brush assembly, which is connected to the robot's clean water tank. The robot transfers clean water from the clean water tank to the roller brush assembly, which is then used to clean the surface to be cleaned. In the example where the robot is provided with a dirt collection assembly, the roller brush assembly may be located in front of the robot's dirt collection assembly to clean the surface to be cleaned while rotating. The dirt collection assembly can then collect dirty water from the surface to be cleaned, such as liquid left behind by the roller brush assembly after cleaning the surface to be cleaned.
[0150] In some examples, the roller brush assembly of the cleaning device is typically configured as a dual roller brush structure, with the front defined by the forward direction of the cleaning robot. The dual roller brush structure includes a front roller brush and a rear roller brush. The front roller brush, which may also be referred to as a first roller brush, can clean the floor to be cleaned while rotating. The rear roller brush, which may also be referred to as a second roller brush, can be wetted to scrub the floor to be cleaned while rotating. In other words, the dual roller brush structure enables a cleaning method in which the front roller brush / first roller brush pre-cleans the floor to be cleaned, and the rear roller brush / second roller brush scrubs the floor to be cleaned.
[0151] It should be understood that the first roller brush is used to clean the surface to be cleaned, which means that the first roller brush carries / sweeps / draws garbage on the surface to be cleaned into the garbage box / dust collection chamber configured on the robot body. The second roller brush is used to scrub the surface to be cleaned, which means that the second roller brush cleans the surface to be cleaned with the help of liquid. In this way, the cleaning device can clean liquids (such as milk, tea, etc.), highly adherent dirt, wet garbage, etc. on the surface to be cleaned.
[0152] In another embodiment, the cleaning device may include a brush disc, a scrubber and / or the like, which are configured to contact the surface to be cleaned on which the cleaning robot travels. The cleaning device is connected to the clean water tank of the robot, and the robot transports the clean water in the clean water tank to the cleaning device for the cleaning device to clean the ground to be cleaned. For example, in certain embodiments, the cleaning device may include one or more disc-shaped brushes rotatably coupled to the underside of the robot chassis. One or more disc-shaped brushes are detachably coupled to a motor, which is configured to rotate one or more brushes relative to the robot body. In certain embodiments, the cleaning device may include a brush disc or the like, which may include one or more of a cylindrical cleaning member, a disc cleaning member, a track cleaning member and / or the like. Such a brush disc and / or one or more cleaning members contained therein can be exchanged from one type (e.g., a cylindrical or disc-shaped cleaning member) to another type (e.g., a track cleaning member), thereby allowing the cleaning assembly to clean different types of surfaces.
[0153] For example, in one embodiment, the cleaning device includes a cleaning turntable / brush disc, a connecting structure, and an adjustment structure. The cleaning turntable is used to clean the floor (i.e., the surface to be cleaned as described above), and the cleaning turntable includes a relative working surface and a mounting surface. One end of the connecting structure is rotatably connected to the mounting surface, and the rotation axis of one end of the connecting structure is parallel to the working surface. The other end of the connecting structure is used to be mounted on the chassis of the cleaning robot. The adjustment structure is provided on the chassis, and the driving end of the adjustment structure is connected to the connecting structure. The adjustment structure is used to rotate the connecting structure to drive the cleaning turntable to move the working surface closer to or away from the surface to be cleaned, and when the working surface contacts the surface to be cleaned, the adjustment structure is used to continue rotating the connecting structure to provide pressure for the cleaning turntable to press against the surface to be cleaned. At the same time, after increasing the pressure of the cleaning turntable on the floor, the speed output of the working motor is increased; after reducing the pressure of the cleaning turntable on the floor, the speed output of the working motor is reduced. This can further save energy and ensure cleaning quality. In this embodiment, the drive mechanism adjusts the rotation angle of the connecting structure within the rotation plane to control the distance between the cleaning disc and the surface to be cleaned. Furthermore, after the cleaning disc lands, the connecting structure continues to rotate to adjust the pressure exerted by the cleaning disc on the surface to be cleaned. This solves the problem of the inability to adjust the pressure exerted by the cleaning disc on the surface to be cleaned. By adjusting the pressure exerted by the cleaning disc on the surface to be cleaned, energy waste is avoided while ensuring effective cleaning. By providing an idle travel mechanism, the drive mechanism continues to rotate to provide the aforementioned pressure after the weight of the cleaning disc is completely released from the surface to be cleaned. This avoids the problem of insufficient pressure caused by wear and shortening of the working surface of the cleaning disc, and increases the accuracy of the drive mechanism in regulating the aforementioned pressure.
[0154] The present application also provides a computer-readable storage medium storing at least one program, which, when called by a robot processor, performs the above-mentioned Figure 4 And the robot path planning method described in the related embodiments. If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a robot equipped with the storage medium to execute all or part of the steps of the method described in each embodiment of the present application.
[0155] In the embodiments provided herein, the computer storage medium may include a read-only memory, a random access memory, an EEPROM, a CD-ROM or other optical disk storage device, a magnetic disk storage device or other magnetic storage device, a flash memory, a USB flash drive, a mobile hard disk, or any other medium that can be used to store desired program code in the form of instructions or data structures and can be accessed by a computer. In addition, any connection can be appropriately referred to as a computer-readable medium. For example, if the instruction is sent from a website, server or other remote source using a coaxial cable, a fiber optic cable, a twisted pair, a digital subscriber line (DSL) or wireless technologies such as infrared, radio and microwaves, the coaxial cable, fiber optic cable, twisted pair, DSL or wireless technologies such as infrared, radio and microwaves are included in the definition of the medium. However, it should be understood that computer storage media and data storage media do not include connections, carriers, signals or other temporary media, but are intended to be non-temporary, tangible storage media. Disk and disc, as used in this application, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
[0156] In one or more exemplary aspects, the functions described in the computer program of the robot path planning method described in this application can be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, these functions can be stored or transmitted as one or more instructions or codes on a computer-readable medium. The steps of the method or algorithm disclosed in this application can be embodied in a processor-executable software module, wherein the processor-executable software module can be located on a tangible, non-transitory computer storage medium. A tangible, non-transitory computer storage medium can be any available medium that can be accessed by a computer.
[0157] The flowcharts and block diagrams in the accompanying drawings described in this application illustrate the possible implementation architecture, functions and operations of the system, method and computer program product according to various embodiments of the present application. Based on this, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.
[0158] In summary, the present application discloses a robot path planning method, system, robot and storage medium. The present application first generates multiple independent travel paths in a cleaning area, and determines the connection relationship between any two travel paths based on preset constraints, and then uses the connection relationship to construct a connected network corresponding to the cleaning area with each travel path as a node, so that the nodes in the generated connected network include all travel paths in the cleaning area. In this way, after traversing all nodes in the path connected network with one of the nodes as the starting point, the path planning covering the cleaning area where the robot is located can be efficiently completed. In this way, when the robot is used in a narrow environment, the present application can not only reduce the generation time of the planned path and efficiently generate a fully covered planned path, but also enable the robot to avoid collisions with obstacles when turning in a narrow environment when performing cleaning tasks based on the planned path, thereby achieving comprehensive, accurate and complete cleaning of the cleaning area, avoiding repeated cleaning, and improving cleaning efficiency.
[0159] The above embodiments are merely illustrative of the principles and effects of this application and are not intended to limit this application. Anyone skilled in the art may modify or alter the above embodiments without departing from the spirit and scope of this application. Therefore, all equivalent modifications or alterations made by one of ordinary skill in the art without departing from the spirit and technical concepts disclosed in this application shall be covered by the claims of this application.
Claims
1. A robot path planning method, characterized in that: include: Generate multiple independent travel paths within a cleaning area; Generating multiple independent travel paths within a cleaning area includes: dividing the cleaning area to form at least two channel areas; laying out travel paths in each channel area and setting travel directions of the travel paths; wherein the number of travel paths set in each channel area is related to the width of the channel area and the effective working width of the robot; at least two channel areas are linear channel areas or curved channel areas distributed along the direction of obstacle extension formed by extracting the workable areas based on the distribution of obstacles in the cleaning area; Determining a connection relationship between any two travel paths based on a preset constraint condition, and constructing a path connectivity network corresponding to the cleaning area with each travel path as a node based on the connection relationship; wherein the connection relationship includes a connectivity relationship and a connection distance; determining the connectivity relationship between any two travel paths based on the constraint condition includes: based on the minimum turning diameter of the robot, when it is determined that any two travel paths have opposite travel directions and the connection distance between the travel paths is not less than the minimum turning diameter of the robot, determining the connectivity relationship between the two travel paths as connectable; or, when it is determined that any two travel paths have opposite travel directions and are respectively located in two adjacent channel areas, determining the connectivity relationship between the travel paths as connectable; The path connectivity network is traversed using one of the nodes as a starting point to determine a planned path for the robot in the cleaning area.
2. The robot path planning method according to claim 1, characterized in that: The method further includes dividing at least one cleaning area based on the environment map.
3. The robot path planning method according to claim 2, characterized in that: The step of dividing the environment map into at least one clean area includes: acquiring the environment map, and dividing the environment map into at least one clean area according to the environment data in the environment map.
4. The robot path planning method according to claim 1, characterized in that: According to the channel area, the travel path is set to a straight path or a curved path, and the maximum curvature on the curved path is not greater than the maximum turning curvature of the robot.
5. The robot path planning method according to claim 1, characterized in that: The constraint condition includes at least one of a travel direction of the travel path, position information of the travel path, and a minimum turning diameter of the robot.
6. The robot path planning method according to claim 1 or 5, characterized in that: The connectivity relationship is determined based on the constraint condition.
7. The robot path planning method according to claim 6, characterized in that: Determining the connectivity relationship between any two travel paths based on the constraint condition includes: determining the travel directions of any two travel paths, and when judging based on the travel directions that the travel directions of the two travel paths must be the same, determining the connectivity relationship between the two travel paths as disconnected.
8. The robot path planning method according to claim 6, characterized in that: Constructing a path connectivity network corresponding to the cleaning area with each travel path as a node based on the connectivity relationship includes the steps of constructing connection edges of each node according to the connectivity relationship, and determining edge weight information of the connection edges according to the connection distance.
9. The robot path planning method according to claim 1, characterized in that: Constructing a path connection network corresponding to the cleaning area with each travel path as a node based on the connection relationship includes: determining node weight information according to the length of each travel path.
10. The robot path planning method according to claim 1, characterized in that: The step of traversing the path connection network using one of the nodes as a starting point includes: selecting a node as a starting point.
11. The robot path planning method according to claim 10, characterized in that: The selecting a node as the starting point includes: based on the distance between the current position of the robot and each node, selecting the node corresponding to the minimum distance as the starting point.
12. The robot path planning method according to claim 1, characterized in that: Taking one of the nodes as a starting point to traverse the path connectivity network to determine the planned path of the robot in the cleaning area includes: determining the nodes and connection edges to be passed in sequence based on the connection relationship and node priority information to form the planned path.
13. The robot path planning method according to claim 12, characterized in that: The node priority information is determined based on the distance between each node and the starting point, the current posture of the robot, the current instruction obtained by the robot, and the movement time to the next node.
14. The robot path planning method according to claim 12, characterized in that: Using one of the nodes as a starting point to traverse the path connectivity network to determine the planned path of the robot in the cleaning area also includes: when it is determined that there is a node that has not been passed, determining a planned path that can pass through the node that has not been passed based on the connection relationship and using the current node as a starting point.
15. A robot system, characterized in that: include: a storage device for storing a path planning program for at least one robot; A map building device, configured to collect data about the robot's surrounding environment to generate an environmental map; A processing device is connected to the storage device and the map construction device, and is used to implement the robot path planning method as described in any one of claims 1 to 14 when executing the path planning program of the at least one robot.
16. A computer-readable storage medium, characterized in that At least one program is stored, and when the at least one program is called, it is executed and implements the robot path planning method according to any one of claims 1 to 14.
17. A robot, characterized in that: include: Robot body; left and right drive wheels located at the rear side of the robot body; at least one passive universal wheel located on the front side of the robot body; A control device is used to control the rotation speed of the left and right drive wheels to achieve travel control of the robot following the planned path, and the control device is configured to: Generating multiple independent travel paths within a cleaning area; Generating multiple independent travel paths within a cleaning area includes: dividing the cleaning area to form at least two channel areas; laying out travel paths in each channel area and setting travel directions of the travel paths; wherein the number of travel paths set in each channel area is related to the width of the channel area and the effective working width of the robot; at least two channel areas are linear channel areas or curved channel areas distributed along the direction of obstacle extension formed by extracting the workable area based on the distribution of obstacles within the cleaning area; Determining a connection relationship between any two travel paths based on a preset constraint condition, and constructing a path connectivity network corresponding to the cleaning area with each travel path as a node based on the connection relationship; determining the connectivity relationship between any two travel paths based on the constraint condition includes: based on the minimum turning diameter of the robot, when it is determined that any two travel paths have opposite travel directions and the connection distance between the travel paths is not less than the minimum turning diameter of the robot, determining the connectivity relationship between the two travel paths as connectable; or, when it is determined that any two travel paths have opposite travel directions and are respectively located in two adjacent channel areas, determining the connectivity relationship between the travel paths as connectable; The path connectivity network is traversed using one of the nodes as a starting point to determine a planned path for the robot in the cleaning area.
Citation Information
Patent Citations
Dynamic full-coverage path planning method and device, cleaning equipment and storage medium
CN115032993A
Goal-Directed Occupancy Prediction for Autonomous Driving
US20210004012A1