Mobile Robot Control Method, Device, Equipment and Storage Medium

By recording boundary points and making judgments, adjusting the preset value to determine the rotation angle, the mobile robot can quickly escape from the narrow area, solving the problem of wasting time and resources in the narrow area in the prior art, and improving work efficiency.

CN114721364BActive Publication Date: 2025-07-22KINGCLEAN ELECTRIC GREEN TECHNOLOGY (SUZHOU) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011529992.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-22
Publication Date
2025-07-22
Estimated Expiration
2040-12-22

AI Technical Summary

Technical Problem

Existing mobile robots are difficult to quickly disengage in narrow areas, resulting in wasted time and resources and affecting work efficiency.

Method used

By recording boundary points and making judgments, the preset value is adjusted to determine the rotation angle, so that the mobile robot can quickly escape from the narrow area.

Benefits of technology

Reduces the waste of time and resources of mobile robots in narrow areas and improves work efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114721364B_ABST
    Figure CN114721364B_ABST
Patent Text Reader

Abstract

The present invention discloses a mobile robot control method, device, equipment and storage medium, belonging to the technical field of mobile robots. The method includes: when the mobile robot detects a boundary, obtaining the current boundary point; based on the current boundary point and each boundary point in the boundary point sequence, determining whether the mobile robot is in a narrow area, wherein each boundary point in the boundary point sequence is recorded each time the mobile robot detects a boundary; based on the determined result, adjusting a preset value, which is used to indicate the situation where the mobile robot is continuously in a narrow area; determining the rotation angle of the mobile robot according to the preset value, and storing the current boundary point into the boundary point sequence; controlling the mobile robot to rotate according to the rotation angle. The present invention can enable the mobile robot to quickly pass through a narrow area, reduce the waste of time and resources, and improve the working efficiency of the mobile robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of mobile robots, and particularly to a control method, device, equipment and storage medium for a mobile robot. Background Art

[0002] At present, during the working process of mobile robots such as lawn mowing robots and cleaning robots, when entering a specific area, for example, an area surrounded by walls, tables, fences, and other obstacles, they usually rotate at a preset angle. However, when the specific area is relatively narrow, due to the usually large preset angle, the mobile robot needs to perform multiple rotation controls to get out of the specific area, which not only causes a waste of a large amount of time and resources (such as power), but also seriously affects the working efficiency of the mobile robot. Summary of the Invention

[0003] The present invention provides a control method, device, equipment and storage medium for a mobile robot, which can enable the mobile robot to quickly pass through a narrow area, reduce the waste of time and resources, and improve the working efficiency of the mobile robot.

[0004] On the one hand, the present invention provides a control method for a mobile robot, the method comprising:

[0005] When the mobile robot detects a boundary, obtain the current boundary point;

[0006] Based on the current boundary point and each boundary point in the boundary point sequence, determine whether the mobile robot is in a narrow area, wherein each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary;

[0007] Based on the determination result, adjust a preset value, where the preset value is used to indicate the situation where the mobile robot continuously stays in the narrow area;

[0008] Determine the rotation angle of the mobile robot according to the preset value, and store the current boundary point into the boundary point sequence;

[0009] Control the mobile robot to rotate according to the rotation angle.

[0010] In a feasible implementation manner, before determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, it further comprises:

[0011] Judge whether the number of boundary points in the boundary point sequence is greater than or equal to a preset number of boundary points;

[0012] If the number of the boundary points is greater than or equal to the preset number of boundary points, perform the step of determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence.

[0013] In another feasible embodiment, the determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence includes:

[0014] Obtain the previous preset number of consecutive boundary points of the current boundary point from the boundary point sequence;

[0015] Determine whether the mobile robot is in a narrow area based on the previous preset number of consecutive boundary points and the current boundary point.

[0016] In another feasible embodiment, the obtaining the previous preset number of consecutive boundary points of the current boundary point from the boundary point sequence includes:

[0017] Obtain a first boundary point and a second boundary point from the boundary point sequence, where the first boundary point is the boundary point recorded when the boundary was detected the penultimate time, and the second boundary point is the boundary point recorded when the boundary was detected the last time;

[0018] Correspondingly, the determining whether the mobile robot is in a narrow area based on the previous preset number of consecutive boundary points and the current boundary point includes:

[0019] Determine a triangular structure with the current boundary point, the first boundary point, and the second boundary point as vertices;

[0020] Determine whether the mobile robot is in the narrow area based on the triangular structure.

[0021] In another feasible embodiment, the determining whether the mobile robot is in the narrow area based on the triangular structure includes:

[0022] In the triangular structure, calculate the distances between the second boundary point and the current boundary point and the first boundary point respectively to obtain a first distance and a second distance;

[0023] Determine whether the mobile robot is in the narrow area based on the first distance and the second distance.

[0024] In another feasible embodiment, the determining whether the mobile robot is in the narrow area based on the first distance and the second distance includes:

[0025] Determine whether both the first distance and the second distance are less than or equal to a first preset threshold;

[0026] If the first distance is greater than the first preset threshold, or the second distance is greater than the first preset threshold, it is determined that the mobile robot is not in the narrow area.

[0027] In another feasible implementation, the method further includes:

[0028] If both the first distance and the second distance are less than or equal to the first preset threshold, the edge formed by connecting the current boundary point and the first boundary point is determined as the reference edge;

[0029] Calculate the perpendicular distance from the second boundary point to the reference edge;

[0030] Determine whether the perpendicular distance is less than a second preset threshold;

[0031] If the perpendicular distance is less than the second preset threshold, it is determined that the mobile robot is in the narrow area;

[0032] If the perpendicular distance is greater than or equal to the second preset threshold, it is determined that the mobile robot is not in the narrow area.

[0033] In another feasible implementation, if the preset value is the value of a preset counter, the adjustment of the preset value based on the determination result includes:

[0034] If the determination result indicates that the mobile robot is in the narrow area, add a first preset value to the value of the preset counter;

[0035] If the determination result indicates that the mobile robot is not in the narrow area, set the value of the preset counter to the preset initial value.

[0036] In another feasible implementation, if the preset value is the value of a preset timer, the adjustment of the preset value based on the determination result includes:

[0037] If the determination result indicates that the mobile robot is not in the narrow area, reset the value of the preset timer.

[0038] In another feasible implementation, the determination of the rotation angle of the mobile robot according to the preset value includes:

[0039] Determine the preset range that matches the preset value in the preset range set as the target range; where each of the preset ranges in the preset range set is inversely proportional to the preset value;

[0040] Randomly select an angle within the target range as the rotation angle of the mobile robot.

[0041] On the other hand, a mobile robot control device is provided, and the device includes:

[0042] A boundary point acquisition module for acquiring the current boundary point when the mobile robot detects a boundary;

[0043] A narrow area determination module for determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, where each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary;

[0044] A preset value adjustment module for adjusting a preset value based on the result of the determination, where the preset value is used to indicate the situation where the mobile robot is continuously in the narrow area;

[0045] An angle determination module for determining the rotation angle of the mobile robot according to the preset value and storing the current boundary point into the boundary point sequence;

[0046] A control module for controlling the mobile robot to rotate according to the rotation angle.

[0047] On the other hand, a control device is provided, including a processor and a memory. At least one instruction or at least one program segment is stored in the memory, and the at least one instruction or at least one program segment is loaded and executed by the processor to implement the mobile robot control method as described above.

[0048] On the other hand, a computer storage medium is provided. At least one instruction or at least one program segment is stored in the computer storage medium, and the at least one instruction or at least one program segment is loaded and executed by a processor to implement the mobile robot control method as described above.

[0049] Due to the above technical solutions, the present invention has the following beneficial effects:

[0050] In the present invention, each time a boundary is detected, the boundary point corresponding to the boundary is recorded, and the current detected boundary point and the historically recorded boundary points are used to determine whether the current mobile robot is in a narrow area, and then the preset value is adjusted according to the determination result; since the preset value indicates the situation where the mobile robot is continuously in the narrow area, the rotation angle of the mobile robot can be more reasonably determined according to the preset value, so that the mobile robot can quickly get out of the narrow area based on the rotation angle, reducing the waste of time and resources and improving work efficiency. Brief Description of the Drawings

[0051] To more clearly illustrate the technical solutions and advantages in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.

[0052] Figure 1 It is a schematic diagram of an application environment provided by an embodiment of the present invention.

[0053] Figure 2 It is a schematic flowchart of a mobile robot control method provided by an embodiment of the present invention.

[0054] Figure 3 It is a schematic flowchart of another mobile robot control method provided by an embodiment of the present invention.

[0055] Figure 4 It is a schematic flowchart of another mobile robot control method provided by an embodiment of the present invention.

[0056] Figure 5 It is a schematic diagram of a triangular structure formed by selecting continuous boundary points provided by an embodiment of the present invention.

[0057] Figure 6 It is a schematic flowchart of a narrow area determination provided by an embodiment of the present invention.

[0058] Figure 7 It is a schematic flowchart of another narrow area determination provided by an embodiment of the present invention.

[0059] Figure 8 It is an example of a mobile robot control method provided by an embodiment of the present invention.

[0060] Figure 9 It is a schematic block diagram of a mobile robot control device provided by an embodiment of the present invention.

[0061] Figure 10 It is a schematic hardware structure diagram of a control device provided by an embodiment of the present invention. Detailed Embodiments

[0062] To enable those skilled in the art to better understand the solution of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention.

[0063] It should be noted that the terms "first", "second", etc. in the description and claims of the present invention and the above-mentioned accompanying drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged under appropriate circumstances so that the embodiments of the present invention described here can be implemented in an order other than those illustrated or described here. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or server comprising a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices.

[0064] Please refer to Figure 1 , which shows a schematic diagram of an application environment provided by an embodiment of the present invention. Taking a lawn mowing robot performing a lawn mowing task as an example in Figure 1 . As shown in Figure 1 , the application environment may include a lawn mowing robot 1, a boundary line 2, and an obstacle 3. The lawn mowing robot 1 performs a lawn mowing task in a working area 4 surrounded by the boundary line 2. The obstacle 3 generally refers to objects such as flower beds, fences, and walls that hinder the progress of the lawn mowing robot.

[0065] When the lawn mowing robot 1 starts, it will start a counter to record the situation of continuously being in a narrow area; during the traveling process, record the boundary points each time a boundary is detected, and determine whether it is currently in a narrow area based on the current boundary point and the historically recorded boundary points; and adjust the value of the counter according to the determination result of the narrow area; then, based on the value of the counter, determine the angle that needs to be rotated.

[0066] As shown in Figure 1During operation, the lawn mowing robot 1 travels along a pre-planned path. During travel, it first detects the boundary of the obstacle 3 and records the boundary point A. Since no boundary points are included in the current historical record, the lawn mowing robot 1 selects a rotation angle in the default manner and saves the boundary point A to the historical record. Next, it detects the boundary of the boundary line 2 and records the boundary point B. Since the boundary point A has been stored in the current historical record, it is possible to determine whether it is in a narrow area based on the boundary points A and B. The value of the counter is adjusted according to the determination result of the narrow area, a rotation angle is selected based on the value of the counter, and the boundary point B is stored in the historical record. Then, it detects the boundary of the boundary line 2 and records the boundary point C. Since the boundary points A and B have been stored in the current historical record, it is possible to determine whether it is in a narrow area based on the boundary points A, B, and C. The value of the counter is adjusted according to the determination result of the narrow area, a rotation angle is selected based on the value of the counter, and the boundary point C is stored in the historical record.

[0067] By recording historical boundary points, determining whether it is in a narrow area, and determining the situation of continuously being in a narrow area, the rotation angle of the lawn mowing robot can be determined, which can prevent the lawn mowing robot from being unable to select a suitable rotation angle when staying in a narrow area for a long time, resulting in its inability to quickly get out of the narrow area and affecting the mowing efficiency of the lawn mowing robot.

[0068] It should be noted that Figure 1 This is just an example. In some embodiments, the lawn mowing robot can also be other types of mobile robots, such as cleaning robots, etc.

[0069] In practical applications, various regular or irregular obstacles may exist in the working area of the mobile robot, which requires the mobile robot to be able to quickly adapt to the complex environment composed of these different obstacles in order to complete the work task as soon as possible. For example, more and more families choose to use lawn mowing robots to trim lawns. However, the lawn areas, layouts, and furnishings of different families are diverse, which requires the lawn mowing robot to be more intelligent and complete the lawn trimming more quickly.

[0070] Moreover, there are often relatively long and narrow passages or relatively small areas in the lawn. After the lawn mowing robot enters these areas, it cannot quickly get out and spends a lot of time and power mowing the grass, which has a great impact on the overall efficiency of trimming the lawn and also causes waste of time and energy.

[0071] It can be seen that when using a mobile robot to perform work tasks, due to the existence of various boundary lines or obstacles, there will be many areas of different sizes. How to quickly determine whether these areas are narrow areas and quickly escape when in a narrow area will have a crucial impact on the mobile robot to complete work tasks.

[0072] Based on the above description, in order to accurately determine whether the mobile robot is in a narrow area and can quickly pass through the narrow area when in a narrow area, reducing the waste of time and resources and improving the working efficiency of the mobile robot, the embodiments of the present invention provide a mobile robot control method.

[0073] Figure 2 It is a schematic flowchart of a mobile robot control method provided by the embodiments of the present invention. This specification provides the method operation steps as described in the embodiments or flowcharts, but based on routine or non-creative labor, it may include more or fewer operation steps. The step order listed in the embodiments is only one way among the execution orders of numerous steps and does not represent the only execution order. When the actual system or server product executes, it can be executed in the order of the method shown in the embodiments or the drawings or executed in parallel (for example, in an environment of parallel processors or multi-threaded processing). Specifically, as Figure 2 shown, the method may include:

[0074] S201, when the mobile robot detects a boundary, obtain the current boundary point.

[0075] In the embodiments of the present invention, the mobile robot refers to a machine device that automatically performs work, the boundary refers to the boundary line that hinders the movement of the mobile robot and the edges of various obstacles, and the current boundary point is used to indicate the position of the detected boundary, such as Figure 1 the boundary point A, boundary point B, and boundary point C in. Among them, the boundary line can be physical, such as a wall, a fence, etc., or an electromagnetic wire, etc.

[0076] In specific implementation, as Figure 1 shown, the center point position when the mobile robot starts can be used as the origin, the current orientation of the mobile robot can be used as the positive direction of the y-axis, and the direction perpendicular to the y-axis can be used as the x-axis direction to establish a reference coordinate system. Based on this reference coordinate system, the coordinates of the current boundary point are obtained. It can be understood that for a mobile robot equipped with a gyroscope, the coordinates of the current boundary point can also be determined based on the offset of the gyroscope. This specification does not make a specific limitation on the acquisition method of the current boundary point.

[0077] S202. Determine whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, where each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary.

[0078] During the operation of the mobile robot, record the boundary point corresponding to each detected boundary and store it in the boundary point sequence. Before determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, the number of boundary points in the boundary point sequence can be determined. If the number of boundary points is less than the preset number of boundary points, randomly select an angle from the default range as the rotation angle of the mobile robot. Generally, this default range is a range preset by the program that can avoid collisions with the boundary, such as between 60 degrees and 120 degrees.

[0079] If the number of boundary points in the boundary point sequence is greater than or equal to the preset number of boundary points, execute step S02 to determine whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence.

[0080] Specifically, as shown in Figure 3 , step S202 may include:

[0081] S2021. Obtain the previous preset number of consecutive boundary points of the current boundary point from the boundary point sequence.

[0082] In the embodiment of the present invention, consecutive boundary points refer to the boundary points recorded when the boundary is continuously detected. For example, if C i represents the boundary point recorded when the boundary is detected for the i-th time, and the current boundary point is represented by C n , then the previous preset number of consecutive boundary points of C n are C n-1 , C n-2 , C n-3 , C n-4 ,... If the previous preset number of consecutive boundary points is determined as a boundary point sequence, assuming that the current is the 9th time the boundary is detected, and the current boundary point can be represented by C9. If the preset number is 6, the boundary point sequence composed of the boundary points recorded when the boundary is detected in the previous 6 times is {C8, C7, C6, C5, C4, C3}.

[0083] S2022. Determine whether the mobile robot is in a narrow area based on the preset number of consecutive boundary points and the current boundary point.

[0084] Since each boundary point is recorded each time the boundary is detected, if the time of the recorded boundary point is far from the current time, the boundary point will have no reference value and can be removed. In view of this, step S2022 may include: forming a boundary point sequence from the preset number of consecutive boundary points and obtaining the current time; adding the current time to the preset time interval value to obtain a reference time; in the boundary point sequence, comparing the recorded time corresponding to each boundary point with the reference time; if the recorded time is earlier than the reference time, removing the boundary point from the boundary point sequence to obtain a target sequence; determining whether the mobile robot is in a narrow area according to each boundary point in the target sequence.

[0085] In specific implementation, the number of boundary points in the target sequence can be counted. If the number of boundary points is greater than the set threshold, it can be determined that the mobile robot is in a narrow area; if the number of boundary points is less than or equal to the set threshold, it can be determined that the mobile robot is not in / has left the narrow area.

[0086] In addition, in some embodiments, the first two consecutive boundary points can also be directly selected in combination with the current boundary point to determine whether the mobile robot is in a narrow area. Refer to Figure 4 As shown in, step S2021 may include:

[0087] S20211, obtaining a first boundary point and a second boundary point from the boundary point sequence, where the first boundary point is the boundary point recorded when the boundary was detected the time before last, and the second boundary point is the boundary point recorded when the boundary was detected last time.

[0088] Correspondingly, step S2022 may include:

[0089] S20221, determining a triangular structure with the current boundary point, the first boundary point, and the second boundary point as vertices.

[0090] S20222, determining whether the mobile robot is in the narrow area based on the triangular structure.

[0091] It can be understood that the first boundary point and the second boundary point can also be obtained from the above target sequence after time screening. In other words, when the recorded times corresponding to the first boundary point and the second boundary point are both later than the reference time, it is determined whether the robot is in a narrow area according to the triangular structure formed by the current boundary point, the first boundary point, and the second boundary point.

[0092] As Figure 5 shown, if C n is used to represent the current boundary point, the selected first boundary point is Cn-2 The second boundary point is C n-1 , from C n , C n-2 and C n-1 to determine the triangle ΔC determined by the vertices n C n-2 C n-1 to determine whether the mobile robot is in a narrow area.

[0093] Specifically, as Figure 6 shown, step S20222 may include:

[0094] S202221, in the triangle structure, calculate the distances between the second boundary point and the current boundary point and the first boundary point respectively, to obtain a first distance and a second distance.

[0095] As Figure 5 the triangle structure in, based on the second boundary point C n-1 , the current boundary point C n and the first boundary point C n-2 coordinates, the lengths of sides C n C n-1 and side C n-1 C n-2 can be calculated respectively by Heron's formula, to obtain the first distance d1 and the second distance d2.

[0096] S202222, based on the first distance and the second distance, determine whether the mobile robot is in the narrow area.

[0097] In the embodiment of the present invention, as Figure 7 shown, step S202222 may include:

[0098] S701, determine whether the first distance is less than or equal to a first preset threshold.

[0099] If the first distance is greater than the first preset threshold, then execute step S706; if the first distance is less than or equal to the first preset threshold, then execute step S702.

[0100] S702, determine whether the second distance is less than or equal to the first preset threshold.

[0101] If the second distance is greater than the first preset threshold, then execute step S706; if the second distance is less than or equal to the first preset threshold, then execute step S703.

[0102] S703, determine the side formed by connecting the current boundary point and the first boundary point as the reference side.

[0103] S704. Calculate the perpendicular distance from the second boundary point to the reference edge.

[0104] S705. Determine whether the perpendicular distance is less than the second preset threshold.

[0105] If the perpendicular distance is greater than or equal to the second preset threshold, execute step S706; if the perpendicular distance is less than or equal to the second preset threshold, execute step S707.

[0106] S706. Determine that the mobile robot is not in a narrow area.

[0107] S707. Determine that the mobile robot is in a narrow area.

[0108] For example, as shown in Figure 5 the first distance is the side length d1 of side C n C n-1 and the second distance is the side length d2 of side C n-1 C n-2 As long as any one of d1 and d2 is greater than the first preset threshold, it means that there is enough space between the two boundary points for the mobile robot to pass through, so it is determined that the mobile robot is not in a narrow area. If both d1 and d2 are less than or equal to the first preset threshold, since the second boundary point C n-1 is the midpoint, the perpendicular distance h from the second boundary point C n-2 to side C n C n-2 can be used to determine whether the mobile robot is in a narrow area. If h is greater than or equal to the second preset threshold, since h can be regarded as the lateral distance of the area perpendicular to side C n C n-2 when the lateral distance is large enough, there is also enough space in this area for the mobile robot to pass through, so it is determined that the mobile robot is not in a narrow area.

[0109] S203. Based on the determined result, adjust a preset value, where the preset value is used to indicate the situation where the mobile robot continuously stays in the narrow area.

[0110] In the embodiments of the present invention, the preset value includes the value of a preset counter and the value of a preset timer. When the mobile robot starts to work, the preset counter or the preset timer will be started. After each determination of the narrow area is completed, the value of the preset counter or the value of the preset timer will be adjusted based on the determination result.

[0111] Specifically, if the preset value is the value of a preset counter, step S203 may include: if the determination result indicates that the mobile robot is in the narrow area, adding a first preset value to the value of the preset counter; if the determination result indicates that the mobile robot is not in the narrow area, setting the value of the preset counter to a preset initial value.

[0112] Among them, the first preset value can be any fixed value or a value determined according to a preset calculation method. Usually, the first preset value can be set to 1. Once it is detected that the mobile robot is not in the narrow area, that is, the mobile robot exits the narrow area, the value of the preset counter is restored to the initial state, for example, restored to zero. It can be understood that the larger the value of the preset counter, the longer the time the mobile robot is in the narrow area. When the preset initial value is 0 and the first preset value is 1, the preset counter can represent the number of times the mobile robot is continuously in the narrow area.

[0113] Further, if the preset value is the value of a preset timer, step S203 may further include: if the determination result indicates that the mobile robot is not in the narrow area, resetting the value of the preset timer. That is to say, when the determination result indicates that the mobile robot is in the narrow area, the preset timer continues to perform the timing operation; otherwise, the value of the preset timer is reset to the initial state, that is, reset to zero.

[0114] S204. Determine the rotation angle of the mobile robot according to the preset value, and store the current boundary point in the boundary point sequence.

[0115] Specifically, step S204 may include: determining the preset range that matches the preset value in the preset range set as the target range; where each preset range in the preset range set is inversely proportional to the preset value; randomly selecting an angle within the target range as the rotation angle of the mobile robot.

[0116] In the embodiment of the present invention, the inverse proportional relationship between the preset range and the preset value means that the larger the preset value, the larger the minimum angle and the maximum angle of the preset range, and the smaller the preset value, the smaller the minimum angle and the maximum angle of the preset range. Different preset ranges corresponding to different preset values (including the value of the preset counter and the value of the preset timer) are stored in the preset range set, and each preset range can be set according to the specific application environment. Taking the value of the preset counter as an example, if the preset initial value is 0 and the step size increased each time, that is, the first preset value is 1, then in specific implementation, the preset ranges can be set as shown in the following table:

[0117] Value of the preset counter Preset range 0 (60°,90°) 1 (45°,75°) 2 (30°,60°) Greater than or equal to 3 (15°,45°)

[0118] That is to say, if the mobile robot is not in a narrow area, the range of randomly selected rotation angles is (60°, 90°); if the mobile robot is in a narrow area for 1 consecutive time, the range of randomly selected rotation angles is (45°, 75°); if the mobile robot is in a narrow area for 2 consecutive times, the range of randomly selected rotation angles is (30°, 60°); if the mobile robot is in a narrow area for 3 or more consecutive times, the range of randomly selected rotation angles is (15°, 45°).

[0119] It can be understood that the larger the preset value is, the greater the probability that the mobile robot is in a narrow area for a long time. If the value of the rotation angle is too large, it may be necessary to control the rotation of the mobile robot multiple times to enable the mobile robot to get out of the narrow area. Therefore, the preset range is inversely proportional to the preset value, that is, the larger the preset value is, the larger the minimum and maximum values of the preset range are. In the above table, when the value of the preset counter is 0, the minimum angle of the preset range is 60° and the maximum value is 90°; when the value of the preset counter is 1, the minimum angle of the preset range is 45° and the maximum value is 75°; when the value of the preset counter is 2, the minimum angle of the preset range is 30° and the maximum value is 60°; when the value of the preset counter is greater than or equal to 3, the minimum angle of the preset range is 15° and the maximum value is 45°.

[0120] It should be noted that the preset ranges corresponding to the values of each preset counter in the above table are only examples and are not used to limit the embodiments of the present invention.

[0121] S205, control the mobile robot to rotate according to the rotation angle.

[0122] Taking a lawn mowing robot as an example, the mobile robot control method of the present invention will be elaborated in detail below.

[0123] As Figure 8 shown in, it is an example of a mobile robot control method provided by an embodiment of the present invention. In Figure 8 it, there is a regular flower bed in the working area. The distance between the width edge of the flower bed and the boundary line is 200 cm, and the distance between one side of the length edge of the flower bed and the boundary line is 80 cm.

[0124] Assume that the preset value is the value of the preset counter, the first preset threshold is 5 m (the threshold of the triangle side length), the second preset threshold is 1 m (the threshold of the vertical distance), the preset initial value of the preset counter is 0, the step size of each increase of the preset counter, that is, the first preset value, is 1, the preset number of boundary points is 2 (the threshold of the number of boundary points in the boundary point sequence), and the preset number is also 2 (the number of consecutive boundary points selected from the boundary point sequence). S is the starting point for the lawn mowing robot to perform the lawn mowing task, C1, C2, C2, C3, C4, C5, C6, C7, C8, C9, C10 and C 11 are the respective boundary points detected during the lawn mowing task.

[0125] The lawn mowing robot starts working at position S and sets the value of the preset counter to the preset initial value (0).

[0126] When the boundary is detected for the first time, the current boundary point C1 is recorded. The number of boundary points in the boundary point sequence is 0, which is less than the preset number of boundary points (2). The value of the preset counter is 0. A random angle is selected within the range of (60°, 90°) as the rotation angle to control the rotation of the lawn mowing robot, and C1 is added to the boundary point sequence. At this time, the boundary point sequence is {C1}.

[0127] When the boundary is detected for the second time, the current boundary point C2 is recorded. The number of boundary points in the boundary point sequence is 1, which is less than the preset number of boundary points (2). The value of the preset counter is 0. A random angle is selected within the range of (60°, 90°) as the rotation angle to control the rotation of the lawn mowing robot, and C2 is added to the boundary point sequence. At this time, the boundary point sequence is {C1, C2}.

[0128] When the boundary is detected for the third time, the current boundary point C3 is recorded. The number of boundary points in the boundary point sequence is 2, which is equal to the preset number of boundary points (2). Then, the first two consecutive boundary points C1 and C2 are obtained from the boundary point sequence, and it is determined whether the lawn mowing robot is in a narrow area based on the triangle ΔC1C2C3 formed by the three points C1, C2, and C3.

[0129] During the determination process of the narrow area, first, it is judged whether the side lengths formed by connecting the two points C1 and C2, and the side lengths formed by connecting the two points C2 and C3 are both less than or equal to the first preset threshold (5m). If either of them is greater than 5m, it is determined that it is not in the narrow area, and the value of the preset counter is set to the preset initial value (0); if both are less than or equal to 5m, the vertical distance from the boundary point C2 to the side length formed by connecting the two points C1 and C3 is obtained; if the vertical distance is less than the second preset threshold (1m), it is determined that it is in the narrow area, and the value of the preset counter is incremented by the first preset value (1); if the vertical distance is greater than or equal to 1m, it is determined that it is not in the narrow area, and the value of the preset counter is set to the preset initial value (0).

[0130] Assume that the determination result at this time is that the mobile robot is not in the narrow area, that is, the value of the preset counter is 0. Then, a random angle is selected within the range of (60°, 90°) as the rotation angle to control the rotation of the lawn mowing robot, and C3 is added to the boundary point sequence. At this time, the boundary point sequence is {C1, C2, C3}.

[0131] According to the above steps, determine whether the mowing robot is in a narrow area each time a boundary is detected in sequence, then adjust the value of the preset counter according to the determination result, and select the range of the rotation angle based on the value of the preset counter, so as to control the rotation of the mowing robot.

[0132] If the determination results when the boundary is detected for the fourth, fifth, and sixth times are all that the mobile robot is not in a narrow area, that is, the value of the preset counter is 0.

[0133] When the boundary is detected for the seventh time, the boundary point sequence is {C1, C2, C3, C4, C5, C6} at this time, and the current boundary point is C7. In the triangle ΔC5C6C7 formed by the three points C5, C6, and C7 as vertices, the perpendicular distance from C6 to the side C5C7 (60 cm) is less than 1 m. It is determined that the mowing robot is in a narrow area, so the value of the preset counter is incremented by 1. That is, the value of the preset counter is 1, and a random angle is selected within the range of (45°, 75°) as the rotation angle to control the rotation of the mowing robot.

[0134] When the boundary is detected for the eighth time, it is determined that the mowing robot is in a narrow area based on the triangle ΔC6C7C8 formed by the three points C6, C7, and C8 as vertices. Since the distance from the flower bed to the boundary line is 80 cm, the perpendicular distance must be less than 1 m, so the value of the preset counter is incremented by 1. That is, the value of the preset counter is 2, and a random angle is selected within the range of (30°, 60°) as the rotation angle to control the rotation of the mowing robot.

[0135] When the boundary is detected for the ninth and tenth times, it is also determined that the mowing robot is in a narrow area, satisfying the condition that the value of the preset counter is greater than or equal to 3. A random angle will be selected within the range of (15°, 45°) as the rotation angle to control the rotation of the mowing robot.

[0136] When the boundary is detected for the eleventh time, since the perpendicular distance from C 10 to the side formed by the line connecting C9 and C 11 two points is greater than 1 m, it is determined that the mowing robot is out of the narrow area, so the value of the preset counter is set to the preset initial value (0). Based on the value of the preset counter, a random angle will be selected within the range of (60°, 90°) as the rotation angle to control the rotation of the mowing robot.

[0137] In the above example, during the mowing process of the mowing robot, the position of the boundary point corresponding to each time the boundary is detected is recorded. When the number of recorded boundary points is greater than or equal to the set value, select the two boundary points C n consecutive to the current boundary point C n-2 and C n-1 , and calculate the boundary point C n-1With the boundary point C n and the boundary point C n-2 The lengths d1 and d2 of the sides formed by the connection lines therebetween. If any one of d1 and d2 is greater than the first preset threshold, it is determined that the lawn mowing robot is out of / not in a narrow area; if both d1 and d2 are less than or equal to the first preset threshold, calculate the boundary point C n-1 to the vertical distance h from the side formed by the connection line between the boundary point C n and the boundary point C n-2 therebetween. If h is less than the second preset threshold, it is determined that the lawn mowing robot is in a narrow area; if h is greater than or equal to the second preset threshold, it is determined that the lawn mowing robot is out of / not in a narrow area.

[0138] Each time it is determined that the lawn mowing robot is in a narrow area, increment the value of the preset counter by 1; once it is determined that the lawn mowing robot is out of / not in a narrow area, clear the value of the preset counter. Then, based on the value of the counter, select a preset angle range, and randomly select an angle within this angle range as the rotation angle of the mobile robot.

[0139] It should be noted that the preset values such as the first preset threshold, the second preset threshold, and the preset range are related to the working environment of the lawn mowing robot. Therefore, in practical applications, various preset values provided in the embodiments of the present invention can be set according to the specific implementation environment, and no specific limitation is made here.

[0140] As can be seen from the technical solutions provided by the above embodiments, in the present invention, each time a boundary is detected, the corresponding boundary point of the boundary is recorded, and the current detected boundary point and the historically recorded boundary points are used to determine whether the current mobile robot is in a narrow area, and then the preset value is adjusted according to the determination result; since the preset value indicates the situation where the mobile robot is continuously in a narrow area, the rotation angle of the mobile robot can be more reasonably determined according to the preset value, so that the mobile robot can quickly get out of the narrow area based on this rotation angle, reducing the waste of time and resources and improving work efficiency.

[0141] The embodiment of the present invention also provides a mobile robot control device, as Figure 9 shown, the device may include:

[0142] A boundary point acquisition module 910, configured to acquire the current boundary point when the mobile robot detects a boundary;

[0143] A narrow area determination module 920, configured to determine whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, where each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary;

[0144] A preset value adjustment module 930, configured to adjust a preset value based on the determined result, where the preset value is used to indicate a situation where the mobile robot continuously stays in the narrow area;

[0145] An angle determination module 940, configured to determine a rotation angle of the mobile robot according to the preset value, and store the current boundary point into the boundary point sequence;

[0146] A control module 950, configured to control the mobile robot to rotate according to the rotation angle.

[0147] In a feasible implementation manner, the device may further include:

[0148] A boundary point number determination module, configured to determine whether the number of boundary points in the boundary point sequence is greater than or equal to a preset number of boundary points.

[0149] In a feasible implementation manner, the narrow area determination module 920 may include:

[0150] A first boundary point selection unit, configured to obtain a continuous preset number of boundary points before the current boundary point from the boundary point sequence;

[0151] A first determination unit, configured to determine whether the mobile robot is in a narrow area based on the continuous preset number of boundary points and the current boundary point.

[0152] In a feasible implementation manner, the first boundary point selection unit may include:

[0153] A second boundary point selection unit, configured to obtain a first boundary point and a second boundary point from the boundary point sequence, where the first boundary point is the boundary point recorded when the boundary was detected the penultimate time, and the second boundary point is the boundary point recorded when the boundary was detected the last time.

[0154] Correspondingly, the first determination unit may include:

[0155] A structure determination unit, configured to determine a triangular structure with the current boundary point, the first boundary point, and the second boundary point as vertices;

[0156] A second determination unit, configured to determine whether the mobile robot is in the narrow area based on the triangular structure.

[0157] In another feasible implementation manner, the second determination unit may include:

[0158] A side length calculation unit, configured to calculate, in the triangular structure, the distances between the second boundary point and the current boundary point and the first boundary point respectively, to obtain a first distance and a second distance;

[0159] A third determination unit, configured to determine whether the mobile robot is in the narrow area based on the first distance and the second distance.

[0160] In another feasible embodiment, the third determination unit may include:

[0161] A side length judgment unit, configured to judge whether both the first distance and the second distance are less than or equal to a first preset threshold;

[0162] A first result processing unit, configured to determine that the mobile robot is not in the narrow area when the first distance is greater than the first preset threshold, or the second distance is greater than the first preset threshold.

[0163] A reference side determination unit, configured to, when both the first distance and the second distance are less than or equal to the first preset threshold, determine the side formed by connecting the current boundary point and the first boundary point as a reference side;

[0164] A vertical distance judgment unit, configured to judge whether the vertical distance is less than a second preset threshold;

[0165] A second result processing unit, configured to determine that the mobile robot is in the narrow area when the vertical distance is less than the second preset threshold;

[0166] A third result processing unit, configured to determine that the mobile robot is not in the narrow area when the vertical distance is greater than or equal to the second preset threshold.

[0167] In the embodiments of the present application, the preset value may include the value of a preset counter and the value of a preset timer.

[0168] In another feasible embodiment, when the preset value is the value of a preset counter, the preset value adjustment module 930 may include:

[0169] An increment unit, configured to add a first preset value to the value of the preset counter when the determination result indicates that the mobile robot is in the narrow area;

[0170] A restoration unit, configured to set the value of the preset counter to a preset initial value when the determination result indicates that the mobile robot is not in the narrow area.

[0171] In another feasible implementation, when the preset value is the value of a preset timer, the preset value adjustment module 930 may include:

[0172] A reset unit, configured to reset the value of the preset timer when the result of the determination indicates that the mobile robot is not in the narrow area.

[0173] In another feasible implementation, the angle determination module 940 may include:

[0174] An angle range determination unit, configured to determine, as a target range, a preset range in a preset range set that matches the preset value; wherein, each of the preset ranges in the preset range set has an inverse relationship with the preset value;

[0175] An angle selection unit, configured to randomly select an angle within the target range as the rotation angle of the mobile robot.

[0176] It should be noted that, for the device provided in the above embodiments, when implementing its functions, only the above-mentioned division of each functional module is used for illustration. In actual applications, the above functions may be allocated to different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device provided in the above embodiments and the method embodiments belong to the same concept, and the specific implementation process thereof can be found in the method embodiments, which will not be elaborated here.

[0177] An embodiment of the present invention further provides a control device, which is characterized by including a processor and a memory. At least one instruction or at least one program segment is stored in the memory, and the at least one instruction or at least one program segment is loaded and executed by the processor to implement the mobile robot control method provided in the above method embodiments.

[0178] Furthermore, Figure 10 shows a schematic hardware structure diagram of the control device provided in an embodiment of the present invention. The control device may participate in forming or include the mobile robot control device provided in an embodiment of the present invention. As Figure 10 shown, the control device 10 may include one or more (shown as 1002a, 1002b,..., 1002n in the figure) processors 1002 (the processor 1002 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 1004 for storing data, and a transmission device 1006 for communication functions. In addition, it may further include: an input / output interface (I / O interface), a universal serial bus (USB) port (which may be included as one of the ports of the I / O interface), a network interface, a power supply, and / or a camera. Those of ordinary skill in the art can understand,Figure 10 The structure shown is only schematic and does not limit the structure of the above control device. For example, the control device 10 may further include more or fewer components than those shown in Figure 10 or have a different configuration from that shown in Figure 10 .

[0179] It should be noted that one or more of the above processors 1002 and / or other data processing circuits can generally be referred to as "data processing circuits" herein. The data processing circuit can be embodied in whole or in part as software, hardware, firmware, or any combination thereof. In addition, the data processing circuit can be a single independent processing module, or be incorporated in whole or in part into any one of other elements in the control device 10 (or mobile device). As involved in the embodiments of the present invention, the data processing circuit is a kind of processor control (such as the selection of a variable resistance terminal path connected to an interface).

[0180] The memory 1004 can be used to store software programs and modules of application software, such as the program instructions / data storage devices corresponding to the methods described in the embodiments of the present invention. The processor 1002 executes various functional applications and data processing by running the software programs and modules stored in the memory 1004, that is, implements the above mobile robot control method. The memory 1004 may include a high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memories. In some instances, the memory 1004 may further include a memory remotely disposed relative to the processor 1002, and these remote memories can be connected to the control device 10 through a network. Examples of the above network include but are not limited to the Internet, intranet, local area network, mobile communication network, and combinations thereof.

[0181] The transmission device 1006 is used to receive or send data via a network. Specific examples of the above network may include the wireless network provided by the communication provider of the control device 10. In one example, the transmission device 1006 includes a network adapter (Network Interface Controller, NIC), which can be connected to other network devices through a base station and thus communicate with the Internet. In one embodiment, the transmission device 1006 can be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0182] An embodiment of the present invention also provides a storage medium, which can be disposed in a control device to store at least one instruction or at least one program related to a mobile robot control method in a method embodiment. The at least one instruction or the at least one program is loaded and executed by the processor to implement the mobile robot control method provided in the above method embodiment.

[0183] Optionally, in this embodiment, the above storage medium may be located in at least one network server among multiple network servers of a computer network. Optionally, in this embodiment, the above storage medium may include, but is not limited to: various media that can store program codes such as USB flash drives, read-only memories (ROMs), random access memories (RAMs), mobile hard disks, magnetic disks, or optical discs.

[0184] It should be noted that: the above sequence of embodiments of the present invention is only for description and does not represent the advantages or disadvantages of the embodiments. And the above specific embodiments of this specification have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be executed in a different order than in the embodiments and still achieve the desired results. Additionally, the processes depicted in the drawings do not necessarily require the specific order or sequential order shown to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0185] Each embodiment in this specification is described in a progressive manner. The same or similar parts among the embodiments can be referred to each other, and the key point of each embodiment is to illustrate the differences from other embodiments. In particular, for the device and electronic device embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.

[0186] The above description has fully disclosed the specific implementation manners of the present invention. It should be pointed out that any modification made by those skilled in the art to the specific implementation manners of the present invention does not depart from the scope of the claims of the present invention. Correspondingly, the scope of the claims of the present invention is not limited to the foregoing specific implementation manners.

Claims

1. A mobile robot control method, characterized in that, The method includes: When the mobile robot detects a boundary, obtain the current boundary point; Based on the current boundary point and each boundary point in the boundary point sequence, determine whether the mobile robot is in a narrow area, where each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary; Based on the determination result, adjust a preset value, where the preset value is used to indicate the situation where the mobile robot is continuously in the narrow area; Determine the rotation angle of the mobile robot according to the preset value, and store the current boundary point into the boundary point sequence; Control the mobile robot to rotate according to the rotation angle; The determination of whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence includes: Obtain a first boundary point and a second boundary point from the boundary point sequence, where the first boundary point is the boundary point recorded when the boundary was detected the time before last time, and the second boundary point is the boundary point recorded when the boundary was detected last time; In a triangle structure, calculate the distances between the second boundary point and the current boundary point and the first boundary point respectively to obtain a first distance and a second distance, and the vertices of the triangle structure are the current boundary point, the first boundary point, and the second boundary point; Judge whether both the first distance and the second distance are less than or equal to a first preset threshold to obtain a first judgment result; If both the first distance and the second distance are less than or equal to the first preset threshold, judge whether the perpendicular distance from the second boundary point to the reference side is less than a second preset threshold to obtain a second judgment result, where the reference side is the side formed by connecting the current boundary point and the first boundary point; Based on the first judgment result and / or the second judgment result, determine whether the mobile robot is in a narrow area.

2. The method according to claim 1, characterized in that, Before the determination of whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence, it further includes: Judge whether the number of boundary points in the boundary point sequence is greater than or equal to a preset number of boundary points; If the number of boundary points is greater than or equal to the preset number of boundary points, execute the step of determining whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence.

3. The method according to claim 1 or 2, characterized in that, The determination of whether the mobile robot is in a narrow area based on the current boundary point and each boundary point in the boundary point sequence includes: Obtain the previous preset number of consecutive boundary points of the current boundary point from the boundary point sequence; Based on the preset number of consecutive boundary points and the current boundary point, determine whether the mobile robot is in a narrow area.

4. The method according to claim 1, characterized in that The determination of whether the mobile robot is in a narrow area based on the first judgment result and / or the second judgment result includes: If the first judgment result is that the first distance is greater than the first preset threshold, or the second distance is greater than the first preset threshold, it is determined that the mobile robot is not in the narrow area.

5. The method according to claim 1, wherein The determination of whether the mobile robot is in the narrow area based on the first judgment result and / or the second judgment result further includes: If the second judgment result is that the vertical distance is less than the second preset threshold, it is determined that the mobile robot is in the narrow area.

6. The method according to claim 1, wherein The determination of whether the mobile robot is in the narrow area based on the first judgment result and / or the second judgment result further includes: If the second judgment result is that the vertical distance is greater than or equal to the second preset threshold, it is determined that the mobile robot is not in the narrow area.

7. The method according to claim 1 or 2, characterized in that, If the preset value is the value of a preset counter, the adjustment of the preset value based on the determined result includes: If the determined result indicates that the mobile robot is in the narrow area, add a first preset value to the value of the preset counter; If the determined result indicates that the mobile robot is not in the narrow area, set the value of the preset counter to the preset initial value; If the preset value is the value of a preset timer, the adjustment of the preset value based on the determined result includes: If the determined result indicates that the mobile robot is not in the narrow area, reset the value of the preset timer.

8. The method according to claim 1 or 2, characterized in that, The determination of the rotation angle of the mobile robot according to the preset value includes: Determine the preset range that matches the preset value in the preset range set as the target range; wherein, each preset range in the preset range set is inversely proportional to the preset value; Randomly select an angle within the target range as the rotation angle of the mobile robot.

9. A mobile robot control device, characterized in that, The device includes: A boundary point acquisition module, configured to acquire the current boundary point when the mobile robot detects a boundary; A narrow area determination module, configured to determine whether the mobile robot is in the narrow area based on the current boundary point and each boundary point in the boundary point sequence, where each boundary point in the boundary point sequence is recorded each time the mobile robot detects the boundary; A preset value adjustment module, configured to adjust the preset value based on the determined result, where the preset value is used to indicate the situation where the mobile robot is continuously in the narrow area; An angle determination module, configured to determine the rotation angle of the mobile robot according to the preset value and store the current boundary point into the boundary point sequence; A control module, configured to control the mobile robot to rotate according to the rotation angle; The narrow area determination module includes: A boundary point selection unit, configured to obtain a first boundary point and a second boundary point from the boundary point sequence, where the first boundary point is the boundary point recorded when the boundary was detected the time before last, and the second boundary point is the boundary point recorded when the boundary was detected last time; A side length calculation unit, configured to calculate the distances between the second boundary point and the current boundary point and the first boundary point respectively in a triangular structure, to obtain a first distance and a second distance, wherein the vertices of the triangular structure are the current boundary point, the first boundary point and the second boundary point; A side length judgment unit, configured to judge whether both the first distance and the second distance are less than or equal to a first preset threshold, to obtain a first judgment result; A vertical distance judgment unit, configured to, if both the first distance and the second distance are less than or equal to the first preset threshold, judge whether the vertical distance from the second boundary point to a reference edge is less than a second preset threshold, to obtain a second judgment result, where the reference edge is the edge formed by connecting the current boundary point and the first boundary point; A result processing unit, configured to determine whether the mobile robot is in a narrow area based on the first judgment result and / or the second judgment result.

10. A control device, characterized in that, Comprising a processor and a memory, wherein at least one instruction or at least one program segment is stored in the memory, and the at least one instruction or at least one program segment is loaded and executed by the processor to implement the mobile robot control method according to any one of claims 1-8.

11. A computer storage medium, characterized in that, At least one instruction or at least one program segment is stored in the computer storage medium, and the at least one instruction or the at least one program segment is loaded and executed by a processor to implement the mobile robot control method according to any one of claims 1-8.

Citation Information

Patent Citations

  • Autonomous Robot

    US20080183349A1

  • Control apparatus for autonomously navigating utility vehicle

    US20160231749A1