Patent Description:
An autonomous robot (also referred to as a self-moving robot) is a robot that has a body provided with various necessary sensors and controllers and can independently complete a particular task without external manual information input and control during operation. That is, the autonomous robot can move autonomously to perform a work task in a working area.

In a full-coverage working mode, the autonomous robot generally moves along a planned full-coverage walking path to work. At present, in an existing algorithm for planning a full-coverage walking path, a path planning algorithm based on an ox-turning method (a square wave-shaped path) is widely used in actual production for its simple principle and easy implementation.

In the prior art, when the autonomous robot plans a working path based on the ox-turning method, a working area is generally flat by default. When the autonomous robot walks in the flat working area, a work overlap ratio between adjacent path segments is fixed, and a coverage of full-coverage work can be ensured. However, in practice, the entire working area or a part thereof may always be uneven or have a slope. In this case, when the autonomous robot walks in an uneven area along a planned path, a work overlap ratio between adjacent path segments generally changes, the autonomous robot tends to miss a working area, and a work coverage ratio of the autonomous robot in the full-coverage mode is further likely to be affected.

<CIT> discloses a moving robot that includes: a body defining an exterior; a traveling unit configured to move the body against a travel surface; an operation unit disposed in the body and configured to perform a predetermined operation; a tilt information acquisition sensor configured to acquire tilt information on a tilt of the travel surface; and a controller configured to, when target movement direction being preset irrespective of an inclination of the travel surface crosses an upward inclination direction of the travel surface, control a heading direction, which is a direction of a traveling force (Fh) preset to be applied by the traveling unit to the body, to be a direction between the target movement direction and the upward inclination direction based on the tilt information.

An objective of embodiments of this specification is to provide an autonomous robot, a walking path planning method and apparatus therefor, and a storage medium, to improve a work coverage ratio of the autonomous robot in a full-coverage mode.

To achieve the above objective, according to an aspect, an embodiment of this specification provides a walking path planning method for an autonomous robot, including:.

According to another aspect, an embodiment of this specification further provides a walking path planning apparatus for an autonomous robot, including:.

According to another aspect, an embodiment of this specification further provides an autonomous robot, configured with the foregoing walking path planning apparatus.

According to another aspect, an embodiment of this specification further provides a computer storage medium storing a computer program, the computer program, when executed by a processor, implementing the foregoing walking path planning method.

As can be seen from the technical solution provided in the embodiments of this specification, in the embodiments of this specification, during planning of a walking path in a target working area, a work overlap ratio between adjacent path segments can be automatically adjusted, to keep the work overlap ratio between the adjacent path segments within an appropriate range. Therefore, the problem that the autonomous robot misses a working area in a high slope scenario can be effectively prevented, and a work coverage ratio of the autonomous robot in a full-coverage mode is therefore improved.

To describe the technical solutions in the embodiments of this specification or in the prior art more clearly, the following briefly introduces the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description show merely some embodiments of this specification, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts. In the accompanying drawings:.

To enable a person skilled in the art to better understand the technical solutions in this specification, the technical solutions of the embodiments of this specification will be described clearly and thoroughly below with reference to the accompanying drawings of the embodiments of this specification. Apparently, the described embodiments are merely some rather than all of the embodiments of this specification. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of this specification without creative efforts shall fall within the protection scope of this specification.

For ease of description, in some embodiments described below, an example in which a full-coverage working path is a square wave-shaped path is used for description. However, it should be understood by those skilled in the art that this specification is not limited thereto. In other embodiments, the full-coverage working path may be a spiral path or a concentric rectangle path.

Environmental information in this specification refers to terrain distribution environmental information (hereinafter referred to as terrain distribution information). The terrain distribution information may be used for representing an absolute height, a relative height difference, or steepness of a slope of earth surface morphology. For ease of description, in some embodiments described below, an example in which the terrain distribution information is slope distribution information is used for description. However, this specification is not limited thereto. In other embodiments, the terrain distribution information may be an absolute height distribution, a relative height difference distribution, a height change rate distribution, or the like.

Maps mentioned in this specification are all two-dimensional maps. Specifically, the maps mentioned in this specification may be topographic maps or plane maps.

A slope area in this specification refers to an area with terrain distribution satisfying set conditions in a target working area. For example, in some embodiments of this specification, slope distribution information is used as an example. An area with a slope angle value reaching a first slope angle value in a target working area may be used as a slope area.

Referring to <FIG>, an autonomous robot <NUM> according to some embodiments of this specification may move autonomously within a working area <NUM> to automatically perform a work task. In some exemplary embodiments, the autonomous robot <NUM> may be, for example, an automatic lawn mower, an automatic cleaning device, an automatic watering apparatus, or an automatic snow sweeper.

In a full-coverage working mode, the autonomous robot generally moves along a planned full-coverage moving path to work.

When the autonomous robot plans the full-coverage working path based on an ox-turning method or another method, the working area is generally flat by default. When the autonomous robot moves in a flat working area, a work overlap value between adjacent path segments is fixed, and a coverage of full-coverage work can be ensured. In an embodiment of this specification, the work overlap value refers to an overlapped portion between a working width of the autonomous robot working along one of the adjacent path segments and a working width of the autonomous robot working along the other of the adjacent path segments. For example, in <FIG>, an nth path segment is adjacent to an (n+<NUM>)th path segment, a working width of the autonomous robot working along the nth path segment is w, a working width of the autonomous robot working along the (n+<NUM>)th path segment is w, and a work overlap value between the two adjacent path segments is d (for example, as shown by a portion where oblique lines are drawn in <FIG>).

However, in practice, the autonomous robot may sometimes work in a non-flat working area. For example, in a scenario shown in <FIG>, when the autonomous robot works in a flat area, a work overlap value between adjacent path segments (as shown by the vertical dashed lines in <FIG>) is a default value (for example, Δ<NUM> in <FIG>). When the autonomous robot works in an area with a slope <NUM>, a work overlap value between adjacent path segments is Δ<NUM>=A-(A-Δ<NUM>))/cosα, where A is a working width of the autonomous robot, α is a slope angle of the slope <NUM>, cosα=L<NUM>/L<NUM>, L<NUM> is a width between adjacent path segments in the flat area, and L<NUM> is a width between adjacent path segments in the area with the slope <NUM>. Because L<NUM> > L<NUM> and the working width of the autonomous robot is fixed, Δ<NUM> < Δ<NUM>. When the autonomous robot works on slope <NUM> with a larger slope angle, a work overlap value between adjacent path segments is Δ<NUM>=A-(A-Δ<NUM>))/cosβ, β is a slope angle of the slope <NUM>, cosβ=L<NUM>/L<NUM>, and L<NUM> is a width between adjacent path segments in an area with the slope <NUM>. Because L<NUM> >L<NUM> > L<NUM> and the working width of the autonomous robot is fixed, Δ<NUM> < Δ<NUM> < Δ<NUM>.

Generally, the working width of the autonomous robot is determined by a working execution mechanism of the autonomous robot. For example, in an exemplary embodiment, when the autonomous robot is a robotic lawn mower, the diameter of a cutting deck of the robotic lawn mower is a working width of the robotic lawn mower.

Therefore, it can be seen that the work overlap value between adjacent path segments decreases with the increase of the slope angle. When the slope angle is greater than a particular value (for example, as shown by β in <FIG>), the autonomous robot misses a working area, which reduces a work coverage ratio of the autonomous robot in the full-coverage mode.

For example, a working area of an automatic lawn mower is used as an example. An actual lawn usually has uneven terrain such as high slopes due to a special layout of a user's residential environment or garden. If the automatic lawn mower keeps performing coverage cutting based on a full-coverage working path planned based on a two-dimensional map, the autonomous robot is prone to a cutting miss in a high slope scenario.

In view of this, to solve the problem that an autonomous robot tends to miss a working area in a high slope scenario, the autonomous robot according to some embodiments of this specification is provided with a moving path planning apparatus. The moving path planning apparatus can automatically adjust a work overlap value between adjacent path segments during planning of a moving path in a target working area, to keep the work overlap value between the adjacent path segments within an appropriate range. Therefore, the problem that the autonomous robot misses a working area in a high slope scenario can be effectively prevented, and a work coverage ratio of the autonomous robot in a full-coverage mode is therefore improved.

In some embodiments of this specification, the automatically adjusting a work overlap value between adjacent path segments may include: automatically adjusting the work overlap value between the adjacent path segments according to environmental information of the autonomous robot.

For example, referring to <FIG>, in some embodiments of this specification, the moving path planning apparatus may include a terrain information obtaining module <NUM>, a slope area determining module <NUM>, and a moving path planning module <NUM>. The terrain information obtaining module <NUM> may be configured to obtain terrain distribution information of a target working area. The slope area determining module <NUM> may be configured to determine, according to the terrain distribution information, whether a slope area exists in the target working area. The moving path planning module <NUM> may be configured to determine, if a slope area exists in the target working area, a width value between adjacent path segments according to the terrain distribution information during planning of a moving path in the slope area, to keep a work overlap value between the adjacent path segments within a specified range (for example, <NUM> to <NUM>).

Based on the moving path planning apparatus, in the full-coverage working mode, if a slope area exists in the target working area, the autonomous robot may determine a width value between adj acent path segments according to the terrain distribution information during planning of a moving path in the slope area, to keep a work overlap value between adjacent path segments within a range not less than zero, thereby effectively preventing the autonomous robot from missing a working area in the high slope scenario.

In some embodiments of this specification, assuming that a path segment m and a path segment n are adjacent path segments, a distance from any location point x on the path segment n to the path segment m is a width between the location point x on the path segment n and the path segment m (for example, shown by L<NUM>, L<NUM>, and L<NUM> in <FIG>). Therefore, the width Lx between the location point x on the path segment n and the path segment m may be calculated by the formula <MAT>, where θ is a slope angle of a slope surface at which the location point x is located, and L<NUM> is a width (which is generally a default value) between the path segment m and the path segment n when the autonomous robot is within a flat area.

In some other embodiments of this specification, on the premise that the work overlap value is not less than zero, the work overlap value should not be excessively large (for example, exceeds the value of a default work overlap value), to avoid affecting the working efficiency of the autonomous robot due to a large work overlap value.

In some embodiments of this specification, the terrain information obtaining module <NUM> may allow the autonomous robot to traverse the target working area in advance and invoke an inclination sensor, a gyroscope, or the like provided in the autonomous robot to acquire slope distribution information of the target working area during traversal. For example, in an exemplary embodiment, the traversal may be implemented only to acquire slope distribution information. In another exemplary embodiment, the traversal may be performing a full-coverage work task and at the same time acquiring slope distribution information in the process of performing the work task. Certainly, before the traversal, the autonomous robot may plan the full-coverage working path according to a two-dimensional map (for example, as shown in <FIG>) created in a mapping stage (it can be understood that, terrain is not taken into consideration in the planning of the full-coverage working path in this case), to facilitate the traverse of the target working area by the autonomous robot according to the full-coverage working path, thereby acquiring slope distribution information of the target working area.

Experiments and studies show that when the slope angle reaches a particular value (hereinafter referred to as a first slope angle value), the work coverage ratio of the autonomous robot in the full-coverage mode may be substantially affected. Therefore, the first slope angle value may be used as a boundary to define the flat area and the slope area. That is, in the target working area, an area with a slope angle less than the first slope angle value may be referred to as the flat area, and an area with a slope angle reaching the first slope angle value may be referred to as the slope area. Generally, the slope distribution information of the target working area may be represented by a uniform slope distribution map of the target working area. Therefore, the slope area determining module <NUM> may determine whether a slope area exists in the target working area through a uniform slope line on the uniform slope distribution map. For example, in an exemplary embodiment shown in <FIG>, assuming that a slope angle of <NUM>° is used as the first slope angle value, the slope area in the target working area may be determined by deleting or concealing contour lines of flat areas with slope angles less than <NUM>° and keeping areas with slope angles not less than <NUM>°.

If a slope area exists in the target working area, to appropriately plan a moving path in the slope area, the moving path planning module <NUM> may first partition the target working area. For example, when the slope area is a regular area (that is, the outer contour of the slope area has a regular shape such as a rectangle), the target working area may be directly partitioned by using the outer contour of the slope area as a boundary, to facilitate subsequent moving path planning.

In some other embodiments of this specification, when the slope area is an irregular area (that is, the outer contour of the slope area has an irregular shape), the moving path planning module <NUM> may virtually regularize the slope area to make the slope area form a regular working area with a virtual boundary, thereby further facilitating subsequent moving path planning. For example, in an exemplary embodiment shown in <FIG>, there are two slope areas S <NUM> and S2 in the target working area. Because both S <NUM> and S2 are irregular areas, S <NUM> and S2 may be virtually regularized by, for example, generating the smallest circumscribed rectangles of S <NUM> and S2 (for example, shown by the thin dot-dashed line in <FIG>). After virtual regularization, the entire target working area may be divided into seven work zones A, B, C, D, E, S1, and S2 based on the virtual boundaries of S1 and S2 and the boundary of the target working area.

After the entire target working area is divided into a plurality of work zones, the moving path planning module <NUM> may separately plan a full-coverage working path for each work zone. Generally, for work zones located in the flat area, during planning of a square wave-shaped path, the moving path planning module <NUM> may plan each path segment according to a default path segment interval (that is, a width value between adjacent path segments). For work zones located in the slope area, to avoid missing a working area, the moving path planning module <NUM> may adaptively adjust a width value (for example, adjust L<NUM> and L<NUM> in <FIG>) between adjacent path segments according to a slope angle value of each location point on adjacent path segments and the working width of the autonomous robot, to keep the work overlap value between the adjacent path segments within a specified range. The adaptive adjustment means that a width value between adjacent path segments is adjusted according to the largest slope angle value (for example, <NUM>°, <NUM>°, <NUM>°) of a slope area having different slopes, so that even at the largest slope angle, the corresponding work overlap value is positive, that is, there is no possibility of missing a working area.

A square wave-shaped path is used as an example. For work zones located in the flat area, during planning of the square wave-shaped path, the moving path planning module <NUM> can plan each path segment according to a default moving direction (for example, a moving direction in the five work zones A, B, C, D, and E in <FIG> is the default moving direction). For work zones located in the slope area, in consideration of a climbing limit of the autonomous robot and other factors, during planning of moving directions in the work zones located in the slope area, the moving path planning module <NUM> needs to avoid a gradient direction of the slope area as much as possible, making it less difficult for the autonomous robot to climb.

For example, in an embodiment of this specification, if a slope area exists in the target working area, the moving path planning module <NUM> may first determine the gradient direction of the slope area (for example, as shown by a solid double-headed arrow in <FIG>); and determine whether a slope angle value corresponding to the gradient direction exceeds a second slope angle value (the second slope angle value may be set based on the climbing limit of the autonomous robot), where the second slope angle value is greater than the first slope angle value. If the slope angle value corresponding to the gradient direction exceeds the second slope angle value, it indicates that the largest slope angle of the slope area may affect the climbing of the autonomous robot. Therefore, during planning of a moving path in the work zones located in the slope area, the moving path planning module <NUM> may keep an angle between the moving direction of the moving path and the gradient direction within a specified angle range.

In another embodiment of this specification, if the slope angle value corresponding to the gradient direction exceeds the second slope angle value, during planning of a moving path in the work zones located in the slope area, the moving path planning module <NUM> may make the angle between the moving direction of the moving path and the gradient direction be a specified value. When the specified value is larger, it is less difficult for the autonomous robot to climb. Therefore, when the specified value is <NUM>° (for example, as shown by dot-dashed double-headed arrow in <FIG>), the difficulty for the autonomous robot to climb can be reduced to the minimum.

Certainly, in another embodiment of this specification, if the slope angle value corresponding to the gradient direction does not exceed the second slope angle value, it indicates that the largest slope angle of the slope area does not affect the climbing of the autonomous robot. Therefore, during planning of a moving path in the slope area, the moving path planning module <NUM> may use the default moving direction as the moving direction of the moving path.

After the moving direction of each path segment in each work zone and the path segment interval is determined, the corresponding square wave-shaped path can be drawn (for example, as shown in <FIG>), thereby completing the planning of the full-coverage working path for the target working area while taking the slope information of the target working area into consideration. After the planning of the full-coverage working path for the target working area is completed, the autonomous robot can subsequently perform each full-coverage work task according to the full-coverage working path.

For ease of description, when the apparatus is described, the apparatus is divided into units according to functions, which are separately described. Certainly, during implementation of this specification, the functions of the units may be implemented in the same piece of or a plurality of pieces of software and/or hardware.

Corresponding to the foregoing moving path planning apparatus for an autonomous robot, a moving path planning method for an autonomous robot of this specification may include: automatically adjusting a work overlap value between adj acent path segments during planning of a moving path in a target working area.

For example, referring to <FIG>, in some embodiments of this specification, the moving path planning method for an autonomous robot may include the following steps:.

In the moving path planning method according to some embodiments of this specification, the terrain distribution information includes at least one of the following: slope distribution information, absolute height distribution information, relative height difference distribution information, or height change rate distribution information.

In the moving path planning method according to some embodiments of this specification, the determining, according to the terrain distribution information, whether a slope area exists in the target working area includes:
determining, according to whether a slope angle value of the slope area reaches a first slope angle value, whether a slope area exists in the target working area.

In the moving path planning method according to some embodiments of this specification, the determining a width value between adjacent path segments according to the slope distribution information includes:
determining the width value between the adjacent path segments according to a slope angle value of each location point on the adjacent path segments and a working width of the autonomous robot.

In the moving path planning method according to some embodiments of this specification, the method further includes:.

In the moving path planning method according to some embodiments of this specification, the keeping an angle between a moving direction of the moving path and the gradient direction within a preset angle range includes:
making the angle between the moving direction of the moving path and the gradient direction be a specified value.

In the moving path planning method according to some embodiments of this specification, the method further includes:
if the slope angle value corresponding to the gradient direction does not exceed the second slope angle value, using a default moving direction as the moving direction of the moving path during planning of the moving path in the slope area.

In the moving path planning method according to some embodiments of this specification, the obtaining terrain distribution information of a target working area includes:
acquiring the terrain distribution information of the target working area in a process of making the autonomous robot traverse the target working area.

In the moving path planning method according to some embodiments of this specification, the terrain distribution information of a target working area includes:
a uniform slope distribution map of the target working area.

Although the processes described above include a plurality of operations that appear in a particular sequence, it should be clearly understood that these processes may include more or fewer operations which can be performed in sequence or in a parallel manner (for example, by using a parallel processor or in a multithread environment).

The present invention is described with reference to the flowcharts and/or block diagrams of the method, the device (system), and the computer program product according to the embodiments of the present invention. It should be understood that computer program instructions can implement each procedure and/or block in the flowcharts and/or block diagrams and a combination of procedures and/or blocks in the flowcharts and/or block diagrams. These computer program instructions may be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or a processor of another programmable data processing device to generate a machine, so that an apparatus configured to implement functions specified in one or more procedures in the flowcharts and/or one or more blocks in the block diagrams is generated by using instructions executed by the computer or the processor of another programmable data processing device.

These computer program instructions may be stored in a computer-readable memory that can instruct a computer or another programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specific function in one or more procedures in the flowcharts and/or in one or more blocks in the block diagrams.

In a typical configuration, a computing device includes one or more processors (CPUs), an input/output (I/O) interface, a network interface, and an internal memory.

The memory may include a form such as a volatile memory, a random access memory (RAM), and/or a non-volatile memory such as a read-only memory (ROM) or a flash memory (flash RAM) in a computer-readable medium. The memory is an example of the computer-readable medium.

The computer-readable medium includes a non-volatile medium and a volatile medium, a removable medium and a non-removable medium, which may implement storage of information by using any method or technology. The information may be a computer-readable instruction, a data structure, a program module, or other data. Examples of a storage medium of a computer include, but are not limited to, a phase change memory (PRAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), or other types of RAMs, a ROM, an erasable programmable read only memory (EEPROM), a flash memory or another storage technology, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD) or another optical storage, or a cartridge tape. A magnetic storage of a magnetic disk or a disc, another magnetic storage device, or any other non-transmission medium may be configured to store information that can be accessed by a computing device. Based on the description in the present disclosure, the computer-readable medium does not include transitory computer-readable media (transitory media), such as a modulated data signal and a carrier.

It should be further noted that the terms "include", "comprise", or any variants thereof are intended to cover a non-exclusive inclusion. Therefore, a process, method, or device that includes a series of elements not only includes such elements, but also includes other elements not specified expressly, or may include inherent elements of the process, method, or device. Without further limitation, the element defined by a phrase "include one" does not exclude other same elements in the process, method, or device which include the element.

A person skilled in the art should understand that the embodiments of this specification may be provided as a method, a system, or a computer program product. Therefore, this specification may use a form of hardware only embodiments, software only embodiments, or embodiments with a combination of software and hardware. Moreover, this specification may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, a CD-ROM, an optical memory, and the like) that include computer-usable program code.

Claim 1:
A walking path planning method for an autonomous robot, comprising:
obtaining (<NUM>) slope distribution information of a target working area; and
determining (<NUM>), according to the slope distribution information, whether a slope area exists in the target working area; characterised by
determining (<NUM>), if a slope area exists in the target working area, a width value between adjacent path segments according to the slope distribution information during planning of a walking path in the slope area, to keep a work overlap ratio between the adjacent path segments within a specified range.