Detailed Description
The embodiments of the present invention will be described in detail below with reference to the accompanying drawings in order to more clearly understand the objects, features and advantages of the present invention. It should be understood that the embodiments shown in the drawings are not intended to limit the scope of the present invention, but are merely intended to illustrate the spirit of the technical solution of the present invention.
In the following description, for the purposes of illustrating various disclosed embodiments, certain specific details are set forth in order to provide a thorough understanding of the various disclosed embodiments. One skilled in the relevant art will recognize, however, that the embodiments may be practiced without one or more of the specific details. In other instances, well-known devices, structures and techniques associated with this application may not be shown or described in detail to avoid unnecessarily obscuring the description of the embodiments.
Throughout the specification and claims, the word "comprise" and variations thereof, such as "comprises" and "comprising," are to be understood as an open, inclusive meaning, i.e., as being interpreted to mean "including, but not limited to," unless the context requires otherwise.
Reference throughout this specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in one embodiment" or "in an embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
As used in this specification and the appended claims, the singular forms "a", "an", and "the" include plural referents unless the context clearly dictates otherwise. It should be noted that the term "or" is generally employed in its sense including "and/or" unless the context clearly dictates otherwise.
In the following description, for the purposes of clearly illustrating the structure and operation of the present invention, directional terms will be used, but terms such as "front", "rear", "left", "right", "outer", "inner", "outer", "inward", "upper", "lower", etc. should be construed as words of convenience and should not be construed as limiting terms.
Fig. 1 shows an external view schematic diagram of a walking robot 1 according to the present invention. Fig. 2 shows a schematic view of the internal structure of the walking robot 1 according to the present invention. The walking robot 1 can be similar in appearance to some walking robots in the prior art, as described in chinese invention patent application publication No. CN 109673241 a. Specifically, as shown in fig. 1, the walking robot 1 may include a main body 10 and a control mechanism 20. The control mechanism 20 may be provided inside or outside the main body 10 for controlling a traveling route of the main body 10. The main body 10 further includes a traveling mechanism 30. In some implementations, the travel mechanism 30 includes a pair of drive wheels 32 disposed at the rear of the main body 10 and one or more driven wheels (not shown) disposed at the front of the main body 10. In these implementations, the main body 10 further includes one or a pair of driving motors 12 (see fig. 2) for driving the driving wheels 32 under the control of the control mechanism 20 to drive the main body 10 to walk, such as to drive the main body 10 to move forward, backward, turn, and the like. The driven wheel may be provided as a universal wheel which supports the main body 10 together with the driving wheel 32 and moves with the movement of the driving wheel 32. It will be understood by those skilled in the art that the arrangement of the walking mechanism 30 is not limited to that described herein and shown in the drawings, but may have various different arrangements depending on the function and structure of the walking robot 1. For example, in the case where the walking robot 1 is a sweeping robot or a mopping robot having a circular outer shape, the driving wheels 32 of the walking mechanism 30 may be provided at both ends of one diameter of the circular bottom surface, and the driven wheels may be provided at one end or both ends of the other diameter perpendicular to the diameter where the driving wheels 32 are provided, or the driven wheels may not be provided.
Further, the walking robot 1 may further include a working mechanism (not shown in the drawings) that performs a specific operation function when the main body 10 walks within a specific operation area. For example, in the case where the walking robot 1 is a grass cutting robot, the working mechanism may include a working driving motor and a working device, such as a cutting device, disposed below the main body 10 and driven by the working driving motor, for trimming grass on the walking path as the walking robot 1 walks. For another example, in the case where the walking robot 1 is a floor sweeping robot, the working mechanism may include a working driving motor and working devices, such as one or more cleaning brushes, a dust suction port, and the like, provided below the main body 10 and driven by the working driving motor.
Further, the walking robot 1 may further include an energy mechanism (not shown in the drawings). In some implementations, the energy mechanism includes a removable or non-removable lithium ion battery pack or other rechargeable battery, or the like. Alternatively, in some implementations, the energy mechanism may also include a power cord and a dc-to-ac converter, etc. to connect to an external ac power source.
The control mechanism 20 is configured to perform various functions including: the control main body 10 walks along the boundary line of the predetermined operation region and samples the boundary line to acquire a set of all boundary sampling points on the boundary line.
Fig. 3 shows a schematic view of the operation area 4 of the walking robot 1 according to the present invention. As shown in fig. 3, the operation area 4 is a work area where the walking robot 1 performs work such as mowing, sweeping, and the like, and a boundary line 3 is previously provided around the operation area 4 to define the operation area 4. Fig. 3 exemplarily shows the operation area 4 in a rectangular shape, however, it is understood by a person skilled in the art that the operation area 4 may be any other possible shape.
In the initial case, the walking robot 1 may be located at any point on or within the closed loop constituted by the boundary line 3, for example. For simplicity, it is assumed that the walking robot 1 is initially located at the base station 2 installed on the boundary line 3, as shown in fig. 3. The base station 2 may for example comprise a feeding module for feeding the border line 3 connected thereto so as to generate an electromagnetic signal around the border line 3. The walking robot 1 can continuously sense the electromagnetic signal while walking to walk along the boundary line 3 in different operation modes or judge whether it is located within the operation area 4 according to the polarity of the sensed electromagnetic signal. Here, the boundary line 3 may be, for example, a metal wire capable of receiving a power feed and generating an electromagnetic signal, however, it will be understood by those skilled in the art that the boundary line 3 may be other forms of tangible or intangible boundaries.
In some implementations, the base station 2 may further include a charging module that charges the walking robot 1 when the walking robot 1 resides thereon.
Fig. 4 shows a flow chart of a method 400 of operating the walking robot 1 according to the invention in one mode of operation. Specifically, fig. 4 shows a flowchart of a method 400 of determining map information of the operation area 4 in an initial state of the walking robot 1. The method 400 is described below in conjunction with fig. 1-4.
In the method 400, the control mechanism 20 first determines whether the walking robot 1 is in an initial position at step 410. For simplicity, it is assumed that the walking robot 1 is in an initial position when it is located at the base station 2, as shown in fig. 3. For example, the control means 20 may determine whether the walking robot 1 is located at the base station 2 by determining whether the walking robot 1 is connected to the base station 2 or whether the distance between the two is less than a very small value, thereby determining whether the walking robot 1 is located at the initial position.
If the control mechanism 20 determines that the walking robot 1 is not in the initial position, the method 400 proceeds to step 420, where the walking robot 1 is adjusted to the initial position. Here, the walking robot 1 can be adjusted to the initial position in various ways. For example, in some implementations, the walking robot 1 can sense electromagnetic signals around the boundary line 3, thereby capturing the boundary line 3, and return to the original position (as at the base station 2) along the boundary line 3. Alternatively, in some other implementations, the walking robot 1 may also be placed at the base station 2 manually by an operator. The invention is not limited in this respect.
On the other hand, if the control mechanism 20 determines that the walking robot 1 is in the initial position, the method 400 proceeds to step 430, where the control mechanism 20 establishes a coordinate system for subsequent boundary point sampling. For example, the control mechanism 20 may establish a cartesian plane coordinate system XOY with the center of the walking robot 1 or the projected position of the midpoint of the wheel shaft connecting the pair of driving wheels 32 on the horizontal plane as the origin of coordinates O, with the extending direction of the walking robot 1 from the base station 2 to the boundary line 3 in the first direction (e.g., clockwise direction) as the X-axis, as shown in fig. 3. However, it is understood by those skilled in the art that the present invention is not limited thereto, and various other coordinate systems such as a planar polar coordinate system and the like may be established as needed, and the origin of coordinates is not limited to the center of the walking robot 1, but may be any other reference point such as a projected position of the geometric center of the walking robot 1 on a horizontal plane, or a projected position of the geometric center of the working mechanism on a horizontal plane and the like. Further, the establishment of the plane coordinate system XOY is not limited to the above, but the directions of the X axis and the Y axis shown in fig. 3 may be exchanged, or the directions of the X axis and the Y axis may be arbitrarily set. In the embodiment in which the walking robot 1 is equipped with the geomagnetic sensor, it is also optional to extend the X-axis or the Y-axis toward the geomagnetic north pole or the south pole.
Next, at step 440, the control means 20 controls the walking robot 1 to walk from the base station 2 in a predetermined direction (e.g., clockwise direction) along the boundary line 3, and samples the boundary line 3.
In some implementations, the control mechanism 20 may further include a master controller 22, a mileage acquisition module 24 and a heading acquisition module 26 coupled to the master controller 22, and a memory 28, as shown in FIG. 2. The mileage acquisition module 24 may be used to acquire the walking mileage of the walking robot 1, and the direction acquisition module 26 may be used to acquire the heading deflection angle of the walking robot 1. Specifically, the driving motor 12 may be provided with a photoelectric encoder to detect the arc degree of the driving wheel 32 rotating within a certain time, and the mileage acquiring module 24 and the heading acquiring module 26 may calculate the moving mileage and the heading deflection angle of the walking robot 1 within a certain time by combining the radius of the driving wheel 32 according to the result detected by the photoelectric encoder. In other embodiments, a gyroscope may be used instead of an optical encoder. In other embodiments, both a gyroscope and an optical-to-electrical encoder may be used to modify each other. Further, a geomagnetic sensor may be provided on the main body 10 to compensate for an accumulated error of the photoelectric encoder and/or the gyroscope to improve accuracy.
In step 440, the control unit 20 samples points on the boundary line 3, which are referred to as boundary sampling points, at predetermined intervals of time or at predetermined distances. Further, the control mechanism 20 (e.g., the main controller 22) may calculate coordinates of the boundary sample points according to the traveled mileage and the heading deflection angle, and store the coordinates of the boundary sample points in the memory 28 in the form of a linked list.
The walking mode of the walking robot 1 can be walking along the boundary line 3 after driving away from the initial position along the first direction and rotating 180 ° on the spot, or can be walking directly along the first direction in a backward mode, which depends on whether the walking robot 1 supports the backward walking mode.
Next, at step 450, the control mechanism 20 determines whether data of the set of all boundary sample points on the boundary line 3 has been obtained. For example, the control means 20 may determine whether its travel path constitutes a closed curve, or whether the walking robot 1 is again brought back to the initial position, such as in contact with the base station 2 or very close to it, to determine whether the sampling of the entire boundary line 3 has been completed.
Specifically, after the coordinates of all the boundary sample points are acquired, the control mechanism 20 may store the coordinates of all the boundary sample points in the memory 28, for example, as shown in table 1.
TABLE 1 boundary sample Point List
Sampling point serial number
|
Coordinates of sampling points
|
1
|
(u1,v1)
|
2
|
(u2,v2)
|
…
|
…
|
N
|
(un,vn) |
Here, the full set of boundary sample points shown in table 1 may be represented as Bn={b1,b2,b3,…,bn-1,bnIn which boundary sample points bi(1. ltoreq. i. ltoreq. n) has a coordinate of (u)i,vi) N denotes the number of boundary sample points obtained on the boundary line 3, and n is a positive integer.
If it is determined in step 450 that all of the boundary sample points have not been acquired, the method 400 returns to step 440 to continue.
On the other handAfter completing the sampling of the entire boundary line 3, the control mechanism 20 may sample the set B of boundary sample points from the boundary in step 460nTo form map information of the operation area 4. Wherein the map information includes at least a list of coordinates of the boundary feature points.
From the coordinate information of the boundary sampling points as shown in table 1, the control mechanism 20 can determine the profile information of the operation region 4, such as the area and the shape. Further, the control mechanism 20 may determine a number threshold condition, such as a number threshold or a number threshold range, of required boundary feature points based on the profile information of the operating region 4, and then sample a set B of points from the boundarynBoundary feature points are selected that meet the quantity threshold or a range of quantity thresholds.
In some embodiments, curve fitting may be performed on the boundary sampling points, and points with larger curvature on the fitted curve may be selected as the boundary feature points. For example, the curvature of each boundary sampling point may be determined by fitting a set of the boundary sampling points using a curvature method, a circumcircle method, a vector method, or the like, so as to select a corresponding boundary feature point therefrom.
How the control mechanism 20 selects the boundary feature points from the boundary sample points is described in detail below using a curvature method as an example. As described above, the control means 20 can determine the shape and area of the operation region 4 from the coordinates of the boundary sampling points as shown in table 1, thereby automatically generating the feature point number threshold m0Or a number threshold range mmin,mmax]. Generally, the larger the area and the more complex the shape of a particular operating region, the more boundary feature points are needed. For example, if the operation region area is too small or the shape is too simple, such as a convex polygon, the threshold of the number of boundary feature points may be determined to be a smaller value, such as 3. Threshold value m of number of boundary feature points0Or a number threshold range mmin,mmax]May be selected from a list of alternative thresholds or threshold ranges stored in memory 28.
When the number of boundary feature points in the operation region 4 calculated with a certain curvature threshold is equal toNumber threshold m0Or fall within a quantity threshold range mmin,mmax]Then, it can be determined that boundary feature points satisfying the condition exist within the operation region 4 and corresponding boundary feature points can be determined.
In one implementation, the control mechanism 20 sets a curvature threshold k for the operating region 40. The control mechanism 20 may set B of boundary sample points as shown in Table 1nCurve fitting is performed to calculate the curvature k of each boundary sample pointi(1 ≦ i ≦ n), and the curvature k of each boundary sample pointiRespectively with a curvature threshold k0Making a comparison to determine if it is greater than a curvature threshold k0Is given as m1。
The control mechanism 20 determines that the curvature threshold k is greater than0M of the boundary sampling points1Whether or not it is equal to the number threshold m0Or fall within a quantity threshold range mmin,mmax]. If m is1Equal to the number threshold m0Or fall within a quantity threshold range mmin,mmax]Then m is set1And determining boundary sampling points as boundary characteristic points.
On the other hand, in some embodiments, if m1Not equal to the number threshold m0Or does not fall within a quantity threshold range mmin,mmax]The control mechanism 20 may further determine at least two different proper subsets of the set of boundary sample points, where each proper subset has the same number of elements, n- (k-1), where n is the set of boundary sample points BnK is the number of proper subsets. Preferably, the spacing between adjacent elements in each proper subset is equal. The control mechanism 20 may compare the curvatures of the boundary sample points in the k proper subsets with curvature thresholds, respectively, to determine the number of boundary sample points in each proper subset whose curvature is greater than the curvature threshold. If only one proper subset in the k proper subsets meets the threshold condition of the number, selecting the boundary sampling points in the proper subsets as boundary characteristic points; if more than one of the k proper subsets satisfies the quantity threshold condition, edges of any of the more than one proper subsets are assignedSelecting boundary sampling points as boundary characteristic points; and set B may be further modified if none of the k proper subsets satisfy the quantity threshold conditionnDivided into more proper subsets (e.g. |, l)>k) And the above operation is repeated.
For example, assuming that k is 2, the
control mechanism 20 may determine the set B
nTwo proper subsets of
And
next, the
control unit 20 performs curve fitting on the two proper subsets, calculates the curvature at each boundary sampling point in each proper subset, and compares the curvature with the curvature threshold k
0A comparison is made to determine that the curvatures in the two proper subsets are greater than a curvature threshold k, respectively
0The number of boundary samples of (1) is assumed to be m respectively
21And m
22. Next, the
control mechanism 20 determines the number m
21And m
22Whether or not it is equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]. If the number m
21Or m
22Equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]Then m will correspond to
21Or m
22And selecting the boundary sampling points as boundary characteristic points. If the number m
21And m
22Are all equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]Then arbitrarily select m
21Or m
22And taking the boundary sampling points as boundary characteristic points.
On the contrary, if the number m
21And m
22Are not equal to the number threshold m
0Or none falls within the quantity threshold range m
min,m
max]The
control mechanism 20 may further determine a set B of boundary sample points
nAt least three different subsets of trues, wherein each trueThe number of elements of the subset is the same, and is n- (l-1), wherein n is the set B
nIs the number of edge sample points, l is the number of proper subsets, and l>k. Preferably, the spacing between adjacent elements in each proper subset is equal. For example, assuming that l is 3, the
control mechanism 20 may determine the set B
nThree proper subsets of
And
next, the
control unit 20 performs curve fitting on the three proper subsets, calculates the curvature at each boundary sampling point in each proper subset, and compares the curvature with the curvature threshold k
0A comparison is made to determine that the curvatures in the three proper subsets are greater than a curvature threshold k, respectively
0The number of boundary samples of (1) is assumed to be m respectively
31、m
32And m
33. Next, the
control mechanism 20 determines the number m
31、m
32And m
33Whether or not it is equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]. If the number m
31、m
32And m
33Is equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]Then m will correspond to
31、m
32Or m
33And selecting the boundary sampling points as boundary characteristic points. If the number m
31、m
32And m
33Are both equal to the number threshold m
0Or fall within a quantity threshold range m
min,m
max]Then the boundary sampling point of any one of the at least two satisfied proper subsets is arbitrarily selected as the boundary feature point.
If none of the three proper subsets still satisfies the threshold condition, the algorithm may continue until a subset is found that satisfies the threshold condition for the number of boundary feature points.
The embodiment of determining the boundary feature points is not limited to those described above. In other embodiments, the partitioning of the proper subsetAnd may take different forms. In particular, if m1Not equal to the number threshold m0Or does not fall within a quantity threshold range mmin,mmax]The control mechanism 20 may further determine at least two proper subsets of the set of boundary sample points, wherein the elements of each proper subset are different from each other and the number of elements of each proper subset is substantially equal to the set BnIs 1/k of the number of elements of (a), where k is the number of proper subsets, i.e. set B is divided substantially equallyn. The control mechanism 20 may compare the curvatures of the boundary sample points in the k proper subsets with curvature thresholds, respectively, to determine the number of boundary sample points in each proper subset whose curvature is greater than the curvature threshold. If only one proper subset in the k proper subsets meets the threshold condition of the number, selecting the boundary sampling points in the proper subsets as boundary characteristic points; if more than one of the k proper subsets meets the number threshold condition, selecting the boundary sampling point of any one of the more than one proper subsets as a boundary feature point; and set B may be further modified if none of the k proper subsets satisfy the quantity threshold conditionnDivided into more proper subsets (e.g. |, l)>k) And the above operation is repeated.
For example, assuming that k is 2, the
control mechanism 20 may determine the set B
nTwo proper subsets of
And
if the number m is derived from these two proper subsets
21And m
22None of which satisfies the quantity threshold condition, the
control mechanism 20 may further determine a set B of boundary sample points
nWherein the elements of each proper subset are different from each other and the number of elements of each proper subset is substantially equal to set
B n1/l of the number of elements (c), wherein l isNumber of proper subsets, and l>k, i.e. dividing the set B substantially equally
n. Preferably, the spacing between adjacent elements in each proper subset is substantially equal. For example, assuming that l is 3, the
control mechanism 20 may determine the set B
nThree proper subsets of
And
next, the
control mechanism 20 performs curve fitting on the three proper subsets, respectively, to determine whether a number threshold condition is satisfied. Similar to the above embodiment, the algorithm may continue until a subset is found that meets a threshold condition for the number of boundary feature points.
In the above method, if the subset satisfying the threshold condition of the number of boundary feature points cannot be found at all times, the control unit 20 may further adjust the curvature threshold k0And the above calculation is repeated. For example, if the curvature threshold k is satisfied for each subset as calculated above0The number of the sampling points is less than the threshold value condition of the number of the characteristic points, the curvature threshold value k can be reduced0Then repeating the above calculation; if each subset satisfies a curvature threshold k0The number of the sampling points is larger than the threshold value condition of the number of the characteristic points, the curvature threshold value k can be increased0The above calculation is repeated thereafter.
By the above method, the control mechanism 20 can obtain the coordinates of all the boundary feature points, and can store the coordinates in the memory 28, for example, as shown in table 2.
TABLE 2 boundary characteristic points List
Serial number of characteristic point
|
Characteristic point coordinates
|
1
|
(x1,y1)
|
2
|
(x2,y2)
|
…
|
…
|
M
|
(xm,ym) |
Where m denotes the number of boundary feature points of the entire operation region 4, and m is a positive integer.
Specifically, four boundary feature points (x) within the operation region 4 are shown in fig. 41,y1)、(x2,y2)、(x3,y3) And (x)4,y4)。
Optionally, the method 400 may further include: the control mechanism 20 divides the operation area 4 into at least two sub-areas based on the map information of the operation area 4 obtained in step 460, and records the information of each sub-area. The information of the sub-area at least comprises the coordinates of the boundary characteristic points in the sub-area. Furthermore, the information of the sub-region may further include the shape, area, and/or coordinates of the boundary sample points within the sub-region.
Specifically, the control means 20 may take each boundary sample point of the operation region 4 as a vertex of the unweighted undirected graph, and determine the set B of the vertex and the boundary sample pointnIs run-through between the other boundary sample point in (1). Here, the fact that two points are connected through means that all connecting lines between the two points fall within or on a closed boundary region. If the vertex and the other edgeIf the boundary sampling point is through, an edge (which may be a logical edge rather than a physical edge) may be added between the vertex and the other boundary sampling point. The control mechanism 20 traverses the set B of boundary sample pointsnTo generate a set of all edges, so that the generated set of all edges and all boundary samples form at least one complete graph, and the control mechanism 20 divides the boundary samples located in the same complete graph into one sub-region.
However, in many practical cases, the borderline 3 may not be arranged as a standard straight line, but bending will inevitably occur, and the present invention provides a redundancy mechanism for the division of sub-areas in such cases. For example, if two sampling points are located within a straight line segment on the
boundary line 3, a connection line between the two sampling points theoretically coincides with the fitted boundary line, i.e., each sampling point between the two sampling points is on the connection line. In this case, the line between the two sampling points may not be considered when dividing the sub-region. On the other hand, in the case where the
boundary line 3 is not a straight line, there may be a plurality of intersections between the connecting line and the
boundary line 3. In this case, a distance threshold l may be set in advance
0Calculating the distance between two adjacent intersection points, and determining whether the distance is less than the distance threshold value l
0. If the distance is less than the distance threshold l
0The intersection is considered invalid, i.e. the connection line should not be considered when dividing the sub-region. Specifically, it is assumed that the intersection points of the
boundary line 3 and the connecting line between the sampling point a and the sampling point B are { x in this order
1,x
2,x
3,…,x
nFrom A to B), then by x
iAs a reference, judge
And l
0The magnitude relationship between them. If it is
Is greater than or equal to l
0Then continue with x
i+1As a reference, judge
And l
0The magnitude relationship of (1). As long as the distance between any adjacent nodes is less than the distance threshold/
0The connection between a and B is removed from the set of edges (or is directly disregarded when generating the set of edges).
In a practical working scenario, the operation area 4 is often irregular, for example the entire operation area 4 is an irregular figure consisting of a rectangle and a circle or a sector. Fig. 10 shows a schematic view of an irregular operating area 4 according to the invention.
In the case of an irregular operating region 4 as shown in fig. 10, the boundary characteristic points of the entire operating region 4 are determined to be 101 to 106, for example, according to the methods of steps 410 to 460, and the number may satisfy the number threshold condition, but in some special parts of the operating region 4, such as the circular or fan-shaped part 110, because the boundary lines of the parts are relatively smooth (i.e., the curvature of each point on the boundary line is substantially the same), the points either satisfy the curvature threshold value or do not satisfy the curvature threshold value, so that the characteristic points satisfying the number threshold condition cannot be obtained according to the curvature method.
In this case, the entire operation region 4 may be divided into a plurality of sub-regions 110, 120, and 130 as described above, and the above-described steps 410 to 460 may be performed separately for each sub-region. Namely, each sub-area is respectively regarded as an independent closed graph to determine the boundary characteristic point.
In another embodiment, after all the boundary sample points on the boundary line 3 are obtained (step 440), the operation region 4 may be divided into a plurality of sub-regions based on at least three of the boundary sample points, and for each sub-region, information of the sub-region is determined separately, the information of the sub-region including at least coordinates of the boundary sample points in the sub-region. For example, the operation region 4 may be divided based on the boundary sampling points in a similar manner to the above-described boundary feature points. Specifically, each of the at least three boundary sampling points is respectively used as a vertex of the unweighted undirected graph, whether the vertex is communicated with another boundary sampling point of the at least three boundary sampling points is judged, if the vertex is communicated with the another boundary sampling point, an edge (which may be a logical edge rather than a physical edge) is added between the vertex and the another boundary sampling point, the at least three boundary sampling points are traversed to generate a set of all edges, and therefore the generated set of all edges and the at least three boundary sampling points form at least two complete graphs, and the boundary sampling points in one of the complete graphs are divided into a sub-area. Next, in a similar manner as described in step 460, a boundary feature point in the sub-region may be determined for each sub-region to form information of the sub-region, which is not described herein again.
The method for sub-region division based on the boundary feature points and the boundary sampling points is described above respectively. In either case, however, for a sub-region having a substantially smooth border line, the above-described method may still not be able to acquire sufficient border feature points at the sub-region because the curvature of each point on the border line is substantially the same. In this case, it may be determined whether the sub-region has a substantially smooth boundary line based on the coordinates of the boundary sample points within the sub-region. Alternatively, when the feature point satisfying the number threshold condition cannot be found within the sub-region in the manner described in step 460 above, it is determined that the sub-region has a substantially smooth boundary line. For a sub-region having a smooth boundary line (e.g., sub-region 110 shown in fig. 10), feature points satisfying a threshold number condition, such as feature points 107, 108, and 109 shown in fig. 10, may be randomly selected on the boundary line of the sub-region. For example, the selected feature points may be evenly distributed over the boundary of the sub-region.
Similarly, for some specially shaped operating regions 4, such as smooth circular regions, the above method may still not be able to obtain enough boundary feature points throughout the operating region 4 because the curvature of each point on its boundary line 3 is substantially the same. In this case, it may be determined whether the operation region 4 has the substantially smooth boundary line 3 based on the coordinates of the boundary sample points within the entire operation region. Alternatively, when the feature point satisfying the number threshold condition cannot be found within the operation region 4 in the manner described in the above step 460, it is determined that the operation region 4 has a substantially smooth boundary line. For such an operation region with a smooth boundary line, feature points satisfying a number threshold condition may also be randomly generated on the boundary line of the operation region, and these feature points may be uniformly distributed on the boundary line of the operation region, for example.
The walking robot 1 according to some aspects of the present invention is described above with reference to fig. 1 to 4, and more particularly, a process of mapping a specific operation area 4 before the walking robot 1 starts performing a task within the operation area 4 to form map information for subsequent operations is described. Further, the walking robot 1 can also divide the operation area 4 into a plurality of sub-areas to enable the whole operation area 4 to be better traversed without missing any part when performing work.
In further aspects according to the invention, the walking robot 1 is also able to achieve an efficient traversal of the operation area 4 even with low precision positioning. Fig. 5 shows a flow chart of a method 500 of operating the walking robot 1 according to the present invention in another working mode. The method 500 is described below in conjunction with fig. 3 and 5.
The walking robot 1 may be, for example, the walking robot 1 described above in conjunction with fig. 1 and 2. Further, in the memory 28 of the control means 20, map information of the operation area 4 including coordinates of a plurality of boundary feature points within the operation area 4 is stored, as shown in table 2. Additionally or alternatively, the memory 28 may also store therein information of a plurality of sub-regions of the operating region 4, the information of the sub-regions including at least the coordinates of the boundary feature points within the respective sub-region.
In one implementation, the above-mentioned map information and/or information of the sub-area is obtained by the control mechanism 20 controlling the walking robot 1 in advance to traverse the entire operation area 4, as by the method 400 described above in connection with fig. 4. However, the present invention is not limited to this, and the above map information and/or the information of the sub-area may be set in advance in the memory 28 in other manners. For example, for some walking robots 1 equipped with a mobile phone or a computer desk-side application, it is possible to draw a figure of the operation area 4 and manually specify boundary feature points on the mobile phone or the computer desk-side application.
In the method 500, the control mechanism 20 first determines whether the walking robot 1 is in an initial position at step 510. Similar to the method 400 of fig. 4, it is assumed that the walking robot 1 is in an initial position when it is located at the base station 2, as shown in fig. 3. For example, the control means 20 may determine whether the walking robot 1 is located at the base station 2 by determining whether the walking robot 1 is connected to the base station 2 or whether the distance between the two is less than a very small value, thereby determining whether the walking robot is located at the initial position.
If the control mechanism 20 determines that the walking robot 1 is not in the initial position, the method 500 proceeds to step 520, in which the walking robot 1 is adjusted to the initial position. Here, the walking robot 1 can be adjusted to the initial position in various ways. For example, in some implementations, the walking robot 1 can sense electromagnetic signals around the boundary line 3, thereby capturing the boundary line 3, and return to the original position (as at the base station 2) along the boundary line 3. Alternatively, in some other implementations, the walking robot 1 may also be placed at the base station 2 manually by an operator. The invention is not limited in this respect.
On the other hand, if the control mechanism 20 determines that the walking robot 1 is at the initial position, the method 500 proceeds to step 530, where the control mechanism 20 controls the main body 10 to walk from the initial position along the boundary line 3 in a predetermined first direction (e.g., clockwise). At step 540, when the main body 10 reaches the vicinity of one of the boundary feature points, the control mechanism 20 controls the main body 10 to adjust the main body 10 so that the main body 10 enters the operation region 4 along the normal direction of the boundary line 3 at the boundary feature point. Here, on the one hand, for the purpose of the work of the walking robot 1, the walking robot 1 needs to start entering the operation area 4 to perform the work when reaching the boundary feature point. On the other hand, it is difficult for the walking robot 1 to start entering the operation area 4 at an exact boundary characteristic point due to the positioning error of the walking robot 1 itself and the accumulated error, but the boundary characteristic point is generally considered to be reached in the vicinity of the boundary characteristic point. This is determined by the operating principle of the walking robot 1, and the walking robot 1 retrieves the coordinates of the boundary feature points planned to arrive from its memory, and calculates its own real-time position coordinates from the initial position (e.g., at the base station 2) by using, for example, a mileage acquisition module and a direction acquisition module. When the estimated real-time position coordinate falls within a specific area (such as a circular or other shaped area) centered on the planned arrival boundary feature point coordinate, it is determined that it has reached the planned arrival boundary feature point by itself. In this case, a positioning error is generated between the actual position and the boundary feature point that is planned to arrive. Further, a position deviation between the actual position of the walking robot 1 when entering the operation area 4 and the boundary feature point becomes larger and larger due to an accumulated error generated by accumulation of the positioning error.
Fig. 6 is a schematic view showing a state when the walking robot 1 according to the present invention reaches one boundary feature point. For example, assume that the walking robot 1 reaches the boundary feature point (x)1,y1) The boundary line 3 is at the boundary feature point (x)1,y1) The normal direction is t-t, and the tangential direction is n-n. In this case, the walking robot 1 stops walking along the boundary line 3, and the main body 10 can be rotated so that it enters the operation area 4 in the normal direction t-t.
Hereinafter, the traveling path along the tangential direction n-n may be referred to as a lateral path, and the traveling path along the normal direction t-t may be referred to as a longitudinal path. The transverse path is controlled to be as straight as possible, while the longitudinal path may be straight or curved.
Further, in some implementations, the boundary feature point (x) is reached at the subject 101,y1) At this time, the control means 20 starts the operation means of the walking robot 1 to start the operation in the operation area 4. For example, when the walking robot 1 is a robot for mowing grass, the control means 20 activates the working means so that the working device (mowing device) trims grass on the walking path as the walking robot 1 walks.
Next, in step 550, when the control mechanism 20 determines that the main body 10 is at the boundary characteristic point (x) along the boundary line 31,y1) Enters the operating area 4 in a normal direction t-t by a predetermined distance WlAt the time, the body 10 is adjusted so that the body 10 is at the boundary characteristic point (x) along the boundary line 31,y1) The tangential direction n-n of the position is walked. Here, the predetermined distance WlIs generally set to be equal to or smaller than the width of the main body 10, or is set to be equal to or smaller than the effective working width of the working device (such as the mowing device, the sweeping brush, or the dust suction opening described above) of the walking robot 1.
Next, at step 560, the body 10 is positioned at the boundary feature point (x) along the boundary line 31,y1) When the main body 10 travels in the tangential direction n-n until the boundary line 3 is reached, the control means 20 determines whether or not the traveling of the main body 10 in the tangential direction n-n reaches a predetermined stop condition.
If it is determined in step 560 that the walking of the main body 10 in the tangential direction n-n does not reach the predetermined stop condition, the operation returns to step 540, and the control mechanism 20 adjusts the main body 10 such that the main body 10 again walks the predetermined distance W toward the operation region 4 along the normal direction t-t of the boundary line 3 at the boundary feature pointl。
That is, as shown in fig. 6, the walking robot 1 is folded back and forth along the longitudinal path and the lateral path within the operation area 4 to travel in a bow-shaped route.
On the other hand, if it is determined at step 560 that the walking of the body 10 along the tangential direction n-n reaches the predetermined stop condition, the method 500 proceeds to step 570, where the control mechanism 20 adjusts the body 10 such that the body 10 returns to the initial position, which may be, for example, along the boundary line 3 or otherwise. Here, the initial position may be, for example, the position of the base station 2 as shown in fig. 3.
In one embodiment, the predetermined stop time comprises a predetermined length of time. In this case, taking the main body 10 entering the operation area 4 along the normal direction for the first time at step 540 as a timing start point, when the walking time of the main body 10 within the operation area 4 reaches or exceeds the predetermined time length, it is determined at step 560 that the predetermined stop condition is reached.
In another embodiment, the predetermined stop condition includes a length and a change in length of the transverse path. For example, consider that in many cases the length of the transverse path will typically undergo a change from small to large, and then large to small, as shown in fig. 6. In this case, in step 560, it may be determined whether the distance traveled by the main body 10 in the tangential direction is less than or equal to a predetermined value WhAnd whether the distance (lateral path length) traveled by the main body 10 in the tangential direction is less than or equal to the distance (previous lateral path length) traveled in the tangential direction last time. In determining that the transverse path length of the body 10 is less than or equal to a predetermined value WhAnd the transverse path length of the body 10 is less than or equal to the last transverse path length, step 560 determines that the predetermined stop condition is satisfied and the method 500 proceeds to step 570. In this way, the occurrence of an error in which the stop condition is determined to be reached just when the main body 10 enters the operation region 4 is avoided, as compared with the determination made only by the transverse path length itself.
Here, the predetermined value WhMay be a value comparable to the length of the body 10, for example 0.3 to 0.5 times the length.
Up to this point, one operation on the operation area 4 is completed, and the area in which the walking robot 1 actually works in this operation may be referred to as one work block.
After returning to the initial position, the control mechanism 20 may reset the travel mileage acquired by the mileage acquisition module and the heading deflection angle acquired by the direction acquisition module to eliminate the error accumulated in the previous operation and avoid affecting the next operation.
Next, the control means 20 controls the main body 10 to start traveling from the initial position to the next boundary feature point (x)2,y2) And the operations of method 500 described above are repeated until all the boundary feature points are traversed.
In case the operation area 4 is of a regular shape, such as the regular rectangle shown in fig. 3, the work blocks starting with each boundary feature point can substantially cover the entire operation area 4, so that the above-described method can traverse the entire operation area 4 well. However, in the case where the operation region 4 is an irregular shape such as the irregular shape shown in fig. 10, the entire operation region 4 can be better traversed by dividing the entire operation region 4 into sub-regions.
In particular, in this case, the memory 28 also stores therein information of a plurality of sub-areas of the operating area 4. Here, the method of dividing the operation region 4 into a plurality of sub-regions may be the method described above in connection with fig. 4. However, the present invention is not limited to this, and the division of the plurality of sub-regions may be performed by other means, such as geometric division or manual pre-assignment.
In the case where the operation area 4 is divided into a plurality of sub-areas, the control mechanism 20 may control the walking robot 1 to perform the operation as described in the method 500 in each of the sub-areas, respectively. In this case, the work block starting with each boundary feature point cannot cover the entire operating area 4, but only one sub-area and a part of the adjacent sub-area. However, the work blocks starting with all the boundary feature points 101 to 109 can well cover the entire operation area 4.
In particular, in the case where the walking robot 1 is configured with not a high-precision positioning device such as a GPS but a low-precision positioning device such as the above-described photoelectric encoder, gyroscope, and/or geomagnetic sensor, it is highly likely that the walking robot 1 cannot accurately position each boundary feature point, and thus a case arises where the boundary feature point actually enters the operation area 4 earlier or later. In this case, operation according to the method 500 of fig. 5 above may produce a missing portion within the operation area 4. Fig. 7A and 7B show schematic views of a missing part a1 generated in the vicinity of a boundary feature point by the walking robot 1 equipped with a low-precision positioning means. As shown in fig. 7A and 7B, the walking robot 1 actually reaches the boundary feature point (x)1,y1) Judging that the boundary characteristic point (x) is reached at the previous position1,y1) And the operations of the method 500 described above are initiated, resulting in boundary feature points (x)1,y1) The nearby area a1 is not processed. Similarly, the walking robot 1 is in practiceReach boundary feature point (x)1,y1) The position later is judged to reach the boundary characteristic point (x)1,y1) In the case of (2), the feature point (x) of the boundary is also found1,y1) Similar missing parts are generated nearby.
In this case, by performing the above-described work in each of the plurality of work blocks overlapped with each other, it is possible to process the missing part a 1. For example, in the case of a rectangular operation region 4 as shown in fig. 3, the feature point (x) is in the range from the boundary1,y1) The missing portion A1 that may be generated in the beginning job of the first work block will be at the boundary feature point (x)2,y2) And boundary feature point (x)4,y4) And processing is performed in the started jobs of the second work block and the fourth work block.
However, for some more complex shaped operating regions, working in the above manner may still not be sufficient to cover the missing portions around all the boundary feature points. In this regard, the present invention further improves upon the method 500 described above by eliminating missing portions by performing a radial operation on the area near the boundary feature points. Fig. 8 shows a schematic view of one method of processing the missing part a1 in the vicinity of the boundary feature point by the walking robot 1 according to the present invention. In the method shown in fig. 8, the walking robot 1 can perform work along the path of p0 → p1 → p2 → p3 → p4 → p5 → p6 → p7 → p8 → p9 → p10 → p11 → p12 → p13 in the operation area 4. Similarly to the above, the walking path along the tangential direction n-n is referred to as a transverse path or a standard transverse path, and the walking path along the normal direction t-t is referred to as a longitudinal path or a standard longitudinal path. The paths p0 → p1, p2 → p3, p4 → p5, p6 → p7, p8 → p9, p10 → p11 have a significant angle with the boundary line 3 and may be referred to as a temporary transverse path, and the paths p1 → p2, p3 → p4, p5 → p6, p7 → p8, p9 → p10, p11 → p12 substantially coincide with the boundary line 3 and may be referred to as a temporary longitudinal path. Here, the operation of the walking robot 1 on the temporary lateral path p0 → p1, p2 → p3, p4 → p5, p6 → p7, p8 → p9, p10 → p11 can be regarded as a radial operation on the omitted portion a 1. It can be seen that, among the paths shown in fig. 8, the temporary longitudinal paths p1 → p2, p3 → p4, p5 → p6, p7 → p8, p9 → p10, p11 → p12 are short, mainly due to the width of the walking robot 1 itself, so that it must perform the temporary longitudinal paths as shown in the figure. In fact, in an ideal operating situation, the length of the temporary longitudinal path is 0, i.e. p1/p2, p5/p6, p9/p10, p0/p3/p4/p7/p8/p11/p12, so that the walking robot 1 starts from p0 each time the angle is changed, ensuring the accuracy of the angle control. Hereinafter, this ideal case will be described as an example, and p0/p3/p4/p7/p8/p11/p12 will be collectively referred to as a first position p0, p1/p2 will be collectively referred to as a second position p1, p5/p6 will be collectively referred to as a third position p5, and p9/p10 will be collectively referred to as a fourth position p 9.
Specifically, in the method shown in fig. 8, it is assumed that when the body 10 travels along the boundary line 3, the boundary feature point (x) is moved for the reason of positioning accuracy or the like1,y1) The previous first position p0 was misidentified as a boundary feature point (x)1,y1) And stops advancing, and assumes that the angle between the direction in which the walking robot 1 walks along the boundary line 3 (i.e., the tangential direction of the boundary line 3 at the first position) and the tangential direction n-n at the boundary feature point (i.e., the normal lateral path direction) is the first angle α0。
In some embodiments, when the body 10 stops at the first position p0, the control mechanism 20 controls the body 10 to enter the operation region 4 from the first position p0 and along the second angle α1Travel until the borderline 3 is reached, e.g. to the second position p1. on the borderline 3-here, the second angle α1Less than the first angle α0For example, the control mechanism 20 may control the main body 10 at the second angle α at the first position p01Turns to the operation region 4 and travels in the operation region 4 along a straight line. When reaching the second position p1, the walking robot 1 completes the first radial work p0 → p1 at the omitted part a 1.
In some implementations, the control mechanism 20 may be according to the first angle α
0Of the body (and possibly other factors such as the width or working width of the body 10 and/or the operating area 4 or respectivelySize of operation block, etc.) determines a boundary feature point (x)
1,y
1) The number of reciprocations of the radial work performed by the nearby area a1, and the second angle α is determined accordingly
1For example, as shown in FIG. 8, assume that the control mechanism 20 is according to a first angle α
0Determining that the q-time (assumed to be 4 times (reciprocation is noted as 1 time) radial work is performed in the region a1, the control mechanism 20 may determine the angle α as shown in fig. 8
1、α
2、α
3And α
4Wherein, α
4=α
0Angle α
1、α
2、α
3And α
4May be in an arithmetic progression, i.e. each radial operation is angularly offset to the right with respect to the previous one
And angle of the first radial operation
However, the invention is not so limited, as angle α
1、α
2、α
3And α
4Alternatively, the angle α may be determined in other ways
1、α
2、α
3And α
4In fact, as long as the angle is less than the first angle α within the missing portion A1
0Second angle α
1Performing the radial operation as shown in fig. 8 at least once will effectively improve the processing of the missing part a 1.
When the main body 10 is along the second angle α1When the control mechanism 20 controls the main body 10 to return to the first position p0. from the second position p1 when reaching the second position p1 on the boundary line 3, the control mechanism 20 may determine an angle greater than the second angle α1Third angle α2E.g. α as described above2=α1+ Δ, and a third angle α is determined2Whether or not toGreater than or equal to the first angle α0If the third angle α is determined2Less than the first angle α0Then the control mechanism 20 controls the main body 10 to move from the first position p0 at a third angle α2Crosses the operation area 4 to reach the boundary line 3, for example to reach the third position p5. on the boundary line so that the walking robot 1 completes the second radial work p0 → p5. at the missing part a 1. on the other hand, if the third angle α is reached2Greater than or equal to the first angle α0The control means 20 controls the walking robot 1 to enter the operation area 4 in the lateral path direction (n-n), i.e. if the third angle α2Greater than or equal to the first angle α0Operation is switched to standard operation as described above in connection with fig. 5.
Similarly, the above process may be repeated until the next deflection angle from the first position p0 is greater than or equal to the first angle α0Thus, for example, in the above-described manner the control mechanism 20 controls the main body 10 to move from the first position p0 at the third angle α2After passing through the operation region 4 to the third position p5 on the boundary line 3, the control mechanism 20 can control the main body 10 to return to the first position p0. from the third position p5 on the boundary line 3. at this time, the control mechanism 20 can determine an angle larger than the third angle α2Fourth angle α3E.g. α3=α2+ Δ, and determining a fourth angle α3Whether greater than or equal to the first angle α0If the fourth angle α is determined3Less than the first angle α0Then the control mechanism 20 controls the main body 10 to move from the first position p0 at a fourth angle α3Crosses the operation region 4 to reach the boundary line 3, for example, to reach the fourth position p9. on the boundary line 3. thus, the walking robot 1 completes the third radial work p0 → p9. and so on in the omitted part a1, and the walking robot 1 can perform a plurality of radial walks in the omitted part a1 until the next deflection angle is greater than or equal to the first angle α0. At this time, the walking robot 1 can be adjusted again to follow the standard lateral path direction (i.e., boundary feature point (x))1,y1) The tangential direction n-n) of the running.
In the case where the walking robot 1 needs to perform a certain kind of specific work (such as mowing, sweeping, etc.), the control means 20 may activate the working means each time the walking robot 1 enters the operation area 4, for example, working on the operation area 4 in the round trip from p0 → p1 and from p1 → p0, from p0 → p5 and from p5 → p0, and from p0 → p9 and from p9 → p 0. Alternatively, the control means 20 may control the walking robot 1 to perform the work on the operation area 4 only during the walking process from the first position p0 each time, and not to perform the work during the returning process. This makes it possible to save on the one hand the energy consumption of the walking robot 1 and on the other hand to avoid repeated work on certain parts of the operating area 4 and the resulting wear of the walking robot 1.
For example, after the walking robot 1 travels from the first position p0 to the second position p1, it may not return to the first position p0 but travel in the first direction (e.g., clockwise direction) along the boundary line 3 to the third position p2 by a specific distance, which may be calculated according to the angle Δ (the angle α) from the third position p2 to the first position p0.1、α2、α3And α4In the case of an arithmetic series), or may be determined according to other factors, such as the width of the main body 10 or the working width. In this way, the number of times the walking robot 1 walks within the operation area 4 can be saved, so that effective work can be performed every walking. However, this increases the amount of calculation by the control mechanism 20 for calculating the travel path of the travel robot 1.
Fig. 9 shows a schematic view of another method of processing a missing part in the vicinity of a boundary feature point by the walking robot 1 according to the present invention. Fig. 9 may be considered a simplified implementation of the method described in fig. 8.
As shown in fig. 9, similarly to fig. 8, it is assumed that the first position p0 of the body 10 on the boundary line 3 stops advancing and follows the angle β from the first position p01When the main body 10 reaches the second position p1 on the boundary line 3, the control mechanism 20 controls the main body 10 to rotate by a second angle β2And enter into operationFor example, where the first direction is clockwise, the second direction is counterclockwise, and vice versa, and angle β2Is the first angle α0And angle β1The set angle of difference, i.e. β2=360°-(α0-β1)。
At the rotation angle β of the main body 10 along the second direction2Thereafter, the direction of the main body 10 is parallel to the tangential direction n-n (i.e., the normal lateral path direction) of the boundary line 3 at the boundary characteristic point, and at this time, the control mechanism 20 may control the main body 10 to enter the operation region 4 along the tangential direction n-n of the boundary line 3 at the boundary characteristic point, thereby starting to perform the first normal lateral path direction operation p1 → p2 as shown in fig. 9.
It is understood that fig. 8 and 9 have been described by taking the example that the stopping point (the first position p0) of the walking robot 1 is before the boundary feature point, however, those skilled in the art will appreciate that the solution of the present invention can be easily extended to the case that the stopping point is after the boundary feature point. For example, assuming that the first direction is clockwise when the first position is before the boundary feature point, the first direction may be counterclockwise when the first position is after the boundary feature point. In either case, the stopping point should be uniformly located before the boundary feature point or uniformly located after the boundary feature point.
Further, in order to reduce the wear of the operation area 4 caused by the repeated walking at the stop point p0 (for example, in the case where the walking robot 1 is a mowing robot), it is also possible to set different amounts of advance or retard to obtain different stop points p0 each time.
Further aspects of the invention are described above in connection with fig. 5 to 9, wherein the walking robot 1 according to the invention is capable of working within the operation area 4 under the control of the control mechanism 20, so that the entire operation area 4 can be more easily traversed. Further, in these aspects, even if the walking robot 1 is equipped with a positioning means of low precision, the control mechanism 20 can control the walking robot 1 to traverse the entire operation area 4, thereby avoiding significant omission.
Various implementations of the present invention are described above in connection with the following figures. In one or more exemplary implementations, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. For example, if implemented in software, the functions implemented by control mechanism 20 may be stored on or distributed as one or more instructions or code on a computer-readable medium, such as memory 28 or the like.
It will also be appreciated by those of ordinary skill in the art that the control mechanism 20, or components thereof, described in connection with the various embodiments of the present application, may be implemented as a plurality of discrete hardware components, or may be integrally implemented on a single hardware component, such as a processor. For example, the control mechanism 20 or its constituent main controller 22, mileage acquisition module 24 or heading acquisition module 26 described in connection with the present disclosure may be implemented or performed with a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof for performing the functions described herein.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.