Autonomous ground care machine field coverage method
By determining a target navigation start region and selecting a start point based on the operator's intent, the autonomous ground care machine can efficiently start work at arbitrary staging locations, reducing transit time and ensuring optimal operation.
Patent Information
- Application Number
- PCT/US2024/055101
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-22
- Filing Date
- 2024-11-08
- Publication Date
- 2025-05-30
AI Technical Summary
Existing autonomous ground care machines face challenges in efficiently starting work when staged at arbitrary locations within a work region, due to difficulties in determining the correct starting pose and navigating to a predefined starting point, which can result in suboptimal behavior and increased transit time.
The method involves accessing a path definition that defines a vehicle work path through a work region, determining a target navigation start region based on the starting pose of the autonomous machine, and selecting a start point on the work path within this region to estimate the operator's intent, thereby allowing the machine to perform autonomous work efficiently.
This approach enables the autonomous machine to begin working via a shortest transition path to the work path, minimizing transit time and ensuring optimal operation, even when staged at arbitrary locations within the work region.
Smart Images

Figure US2024055101_30052025_PF_FP_ABST
Abstract
Description
AUTONOMOUS GROUND CARE MACHINE FIELD COVERAGE METHODRELATED PATENT DOCUMENTS
[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 602,047, filed on 22 November 2023, which is incorporated herein by reference in its entirety.SUMMARY
[0002] The present disclosure is directed to an autonomous ground care machine and system. In one embodiment, a method involves accessing a path definition that defines a vehicle work path through a work region. During a staging of an autonomous machine at an arbitrary location within the work region by an operator, a starting pose of the autonomous machine is determined. A target navigation start region within the work region is determined based on the starting pose. The target navigation start region represents an allowable region within which to start work. One or more start points on the work path are selected within the target navigation start region. The selected start point provides an estimate of an intent of the operator during the staging. The selected start point is used for performing autonomous work with the autonomous machine along on the vehicle work path.
[0003] These and other features and aspects of various embodiments may be understood in view of the following detailed discussion and accompanying drawings.BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The discussion below makes reference to the following figures, wherein the same reference number may be used to identify the similar / same component in multiple figures. The drawings are not necessarily to scale.
[0005] FIG. 1 is a schematic diagram of a ground care vehicle according to various example embodiments;
[0006] FIGS. 2 and 3 are schematic diagrams of path planning scenarios according to an example embodiment;
[0007] FIGS. 4 and 5 are schematic diagrams of path selection based on operator intent according to an example embodiment;
[0008] FIGS. 6, 7, and 8 are schematic diagrams showing generating a looped work path according to an example embodiment;
[0009] FIGS. 9 and 10 are schematic diagrams showing primary path directions for a work paths according to example embodiments;
[0010] FIG. 11 is a block diagram of a system according to an example embodiment; and
[0011] FIGS. 12 and 13 are flowcharts showing methods according to example embodiments.DETAILED DESCRIPTION
[0012] In the following detailed description of illustrative embodiments, reference is made to the accompanying figures of the drawing which form a part hereof. It is to be understood that other equivalent embodiments, which may not be described and / or illustrated herein, are also contemplated.
[0013] The present disclosure relates generally to work machines such as ground care machines, which may be variously referred to herein as ground care vehicles, ground maintenance machines, ground maintenance vehicles, and the like. Ground care machines, such as lawn and garden machines, are known for performing a variety of tasks. For instance, powered lawn mowers are used by both homeowners and professionals alike to maintain grass areas within a property or yard. The same or different machines may be used for maintenance on the turf areas (and sometimes away from the turf), which may involve performing any combination of operations such as material collection (e.g., plant matter, dirt, golfballs, markers), spraying, fertilizing, dethatching, edging, rolling, towing, snow / ice treatment, snow / ice removal, etc. Other work machines may be used both inside and outside, such as cleaning machines that can be used to clean similar surfaces (e.g., concrete floors) both indoors and outdoors.
[0014] Embodiments of the present disclosure relate to features of ground maintenance machines that facilitate autonomous functionality. Generally, autonomous functionality may include any operation that can be performed without human input that causes or effects a physical action performed by the machine. One example of autonomous operation is autonomous navigation, where the machine can maneuver around a work region without user input, or with minimal user input (e.g., initial placement and initiating a start command). These vehicles are referred to herein, among other things, as autonomous work vehicles, autonomous ground care vehicles, autonomous vehicles, and autonomous machines.
[0015] Some types of autonomous work machines can work using random paths around a work region. So long as the machine has sufficient time to work, it can eventually work the entire region, albeit with some areas being passed multiple times. For some ground care applications such as golf courses, sports playing fields, and the like, a predetermined patterned path is desired and expected. One example of this is the mowing in crisscross stripes that create a checkerboard effect. For an autonomous mower to create a pattern such as this, a predefined path will typically be created.
[0016] In order to create an aesthetically pleasing mowing path in embodiments described herein, a computer algorithm is used to plan out a work path in a work region. Given a boundary of a work region and descriptions of obstacles (areas to be avoided) within the work region, an algorithm may generate a path that covers the work region in such a way that certain goals are met, as described for example, in U.S. Patent 11,029,691, dated June 8, 2021.
[0017] One of the goals of the above-referenced algorithm that the work machine follows a straight line (as defined by the generated path) for as long as possible while covering the field, thereby minimizing slower turns. Other goals are that the generated path avoids defined obstacles within the field and a tool the work machine uses to perform work reaches / covers every part of the field. The generated path geometry will be such that work machine is able to make turns defined by the generated path (e.g., obeying a minimum turning radius of the robot). Other high level performance goals may be used in a path generation algorithm without departing from the scope of this disclosure.
[0018] While automated path generation can be used to effectively guide an autonomous machine through a work region, the ease of operator use is not always considered in path generation. For example, it is common to define a beginning and an end of a generated path, as this is the way the path points may be stored, e.g., as a series of geolocations in a linked list or other data structure with a natural progression from beginning to end. The operator, who performs certain tasks such as staging the work machine and collecting the work machine after work is complete, may not always arrive at the work region at the same location. In some instances, the operator may not even know where the predefined starting point is.
[0019] A machine that is staged some distance from where the predefined starting point can self-navigate to the starting point, assuming it can dynamically generate a path to the starting point from an arbitrary location. Otherwise, the operator may have to move the machine, e.g., guiding the machine via onboard controls or a remote control. In either case, the movement of the machine to the starting point can take valuable time that could better be used for performing autonomous work.
[0020] Another issue that might occur when staging the work machine relates to the path being directional. Whether the desired path is operator selected or predetermined, the operator may still not know or remember which direction the machine should be placed to follow the path direction. If the machine is placed near the starting point but in the wrong direction, it may need to circle around the same area to achieve the desired orientation to start work. This type of behavior might be seen by the operator as sub- optimal behavior or even a malfunction.
[0021] In embodiments described below, a path planning service for an autonomous machine takes into account operator intent when staging an autonomous machine in a work area. When the operator stages the machine in a work location for example, the machine can begin working via a shortest transition path to the work path. If multiple paths are possible, the orientation of the machine as well as its location may be determinative on which path is taken to perform the work, as well as minimizing transit time needed to start the work.
[0022] In FIG. 1, a block diagram shows details of an apparatus according to one or more embodiments, the apparatus operable as a ground care vehicle. As seen in FIG. 1, the ground care vehicle 100 includes a drive section 102 that moves the ground care vehicle 100 within a work region 104 along a path direction 106. The path direction 106 is generally aligned with a forward or reverse direction of the ground care vehicle 100 when going straight, and tangent to a curved path through a turn. A work unit 108 defines a full coverage width 112 of a path of the ground care vehicle 100. A cross path direction 107 of the full coverage width 112 is defined normal to the path direction. The cross path direction 107 is aligned with a lateral direction of the ground care vehicle 100 as it moves along its path in a forward direction 124.
[0023] As seen in the embodiment of FIG. 1, the work unit 108 is centrally disposed in the cross path direction 107. The work unit 108 is a mechanism that performs a specific operation, e.g., cutting, dethatching, rolling, etc. The work unit 108 may be a reel cutter, rotary cutter, roller, brush, spiker, verticutter, dethatcher, sprayer, etc. The ground care vehicle 100 may have multiple such work units, e.g., arrayed in the cross path direction 107 to cover a greater coverage width.
[0024] The work unit 108 may have a dedicated electric motor, actuator, or the like (not shown), and / or may be driven by a power take off from a main drive unit of the vehicle 100. In either configuration, the work unit 108 may be selectively activated and deactivated to allow work to stop or start independently of the movement of the ground care vehicle 100. The work unit 108 may have a mechanical and electrical coupling interface to the ground care vehicle 100, e.g., to a central frame 114 and central electrical system 116 of the vehicle 100.
[0025] The ground care vehicle 100 is shown with two wheels 122 used to propel the vehicle. The wheels 122 may be independently driven such that they can differentially steer the vehicle 100. The vehicle 100 may include additional powered wheels, or unpowered wheels such as caster wheels. The drive section 102 may include one or more electrical motors (not shown) that drive the wheels 122, powered by an onboard battery 120. The ground care vehicle 100 may be driven by another source of mechanical powersuch as an internal combustion engine, although some source of electrical power such as the battery 120 and a generator may be provided to power onboard electrical components.[00261 The vehicle 100 includes a controller 110 that controls the autonomous and non-autonomous functions of the vehicle 100. The autonomous functions may include sensor collection and fusion, navigation control, work unit control, remote data center communications, automatic stop, etc. The non-autonomous functions may include manual control inputs, user interface indicators / display, manual locks, etc. Various functionality described below related to path planning may be performed entirely off vehicle (e.g., at a data center 118 or a standalone computer), entirely on vehicle (e.g., via controller 110), or cooperatively performed by both the vehicle and a separate computing device or service.
[0027] In FIG. 2, a diagram shows a ground care vehicle 100 starting work in a work region 104 according to an example embodiment. A path definition 202 is accessed that defines a vehicle work path 200 through the work region. The path definition 202 is a set of data that describes the path in a way that it can be used by the ground care vehicle 100 to work within a known tolerance, e.g., defined by locational error of the path definition 202 and the accuracy and precision the vehicle’s own navigation system.
[0028] The geometry defined in a path definition 202 may be any form, e.g., an ordered collection of points, parametric description of path segments, etc. The path definition 202 may also include metadata such as user-provided labels, exclusion zone boundaries (regions in which work is intentionally not performed), work region description and location data (e.g., center point of work region, boundary box of work region, terrain data, obstacles), relation to other paths, time of creation, last time worked, etc. The path definition 202 may be calculated by the data center 118 and transmitted to the autonomous work vehicle 100, e g., via a mobile data network, or may be calculated by the machine 100 itself. The path definition 202 is generated based on some previously collected reference data, such as geometry of boundary and obstacles of the work region and vehicle specifications (e.g., turning radii, work path width, etc ). Multiple path definitions may be prepared for the work region 104, as will be described in detail elsewhere.
[0029] As shown, the autonomous work vehicle 100 is staged at an arbitrary location within the work region 104 by an operator. The staging involves, among otherthings, placing the work vehicle 100 at the location (e.g., manually or via remote control), making preparations for work (e.g., removing locking pins), and initiating autonomous work, e.g., via an onboard or remote user interface. During the staging, a starting pose of the autonomous work vehicle 100 is determined, e.g., measured by onboard sensors such as Global Navigation Satellite Systems (GNSS) sensors and a compass. Generally, pose refers to a combination of location and orientation (the latter indicated by start heading 201), and is updated as the work vehicle 100 moves through the work region 104. A pose measurement may include other data, such as roll and tilt angles, but those are not necessary to be measured in the illustrated scenario.
[0030] A target navigation start region 204 within the work region 104 is determined based on the starting pose. The target navigation start region 204 represents an allowable region within which to start work. As shown, the target navigation start region 204 the target navigation start region 204 encompasses a forward field of view of the autonomous work vehicle 100. This field of view could be defined on the center, forward- most part of the vehicle and / or based on a camera or other sensor at or near that location. The illustrated forward field of view is around 180°, and in other embodiments it could be less, e.g., 120°, 90°, 60° or less. For purposes of this example, the field of view is assumed to be centered along a longitudinal centerline of the vehicle 100, such that a 180° field of view would correspond to ±90° relative to this centerline.
[0031] Note that the field of view that defines the target region 204 is shown as a circular sector, however the target navigation start region 204 need not always conform to this shape. For example, if the circular sector overlaps a boundary of the work region 104 or an obstacle within the work region 104, then the target navigation start region 204 may be truncated to remove these parts from the sector. Also, the field of view angle and extent (corresponding to the circular radius) may be adjusted depending on work conditions, user preference, and the like. For example, if a 60° view at 3 meters fails to result in a viable starting point as described below, then it could be adjusted to 80° and / or 4 meters for a subsequent starting point search.
[0032] Once the target navigation start region 204 is defined, a processor (either on the work vehicle 100 or data center 118) selects one or more start points 206 on the workpath within the target navigation start region. The selected start point 206 provides an estimate of an intent of the operator during the staging. Generally, operator’s intent is assumed to be a desire start autonomous work without significant non-work travel and without excessive turning, and is defined at least by the vehicle pose. The operator may provide other indications of intent, such as moving the autonomous vehicle 100 between two points that define an orientation and direction, manipulating a user interface such as a pointer on the vehicle 100 or swiping on a graphical map on a smartphone application. Operator intent may also include user preferences that may apply to one work region and / or all work regions.
[0033] Note that while the start point 206 is shown on the boundary of the target navigation start region 204 in this example, a starting point may be anywhere within the target navigation start region 204. In one embodiment, the determination of the one or more start points on the work path involves considering, in order, nearest points, then angular offset of the points from the start heading of the machine, and then alignment of the machine start heading with a primary direction of the work path. The concept of a “primary direction” will be explained in detail below in the discussion of FIGS. 9 and 10.
[0034] In some embodiment, start points may be less likely to be used (or excluded) if they would result in the autonomous machine 100 making a turn of some maximum turn angle (e g., greater than ±90°) to navigate to the start point. This maximum turn angle may be used to select from multiple valid start points, e g., the start point that requires the least turning of the machine to arrive at is more highly ranked or weighted. The start point selection criteria could also be ranked / weighted by the total distance needed to access the points, e.g., shorter distance has a higher rank or weight. In other embodiments, the selected start point 206 could be a closest point on the path 200 that that can be navigated to via a Dubins path with a radius greater than or equal to a minimum turn radius of the autonomous machine 100. This criterion based on turn radius of a Dubins path (e g., the shortest curve that connects two points in the two-dimensional Euclidean plane) could be considered in addition to or instead of the maximum turn angle criterion described above.
[0035] As indicated by dashed line 208, the selected start point 206 is used for performing autonomous work with the autonomous work vehicle 100 along on the vehicle work path 200. The line 208 represents a transit path, and the work implement may be disengaged along the transit path. The start point 206 can also be an end point, in the event that the full work path 200 is worked during the same session. The path in such a configuration is a geometric loop, which is generally defined as a closed curve where the start point is also the end point. Some paths need not be looped, and so in order to allow starting at an arbitrary point for those paths, an extra leg of the path may be added in order to complete a loop. This will be discussed in greater detail below.
[0036] The illustrated path 200 includes a fill path 200a that fills an area of the work region 104 and a clean-up path 200b that follows a boundary of the work region 104. The clean-up path 200b (also sometimes referred to as headland laps) conforms to the boundary and may overlap with the fill path 200a, e.g., parts of the fill path 200a where the autonomous machine 100 turns around. One or more transition paths 200c connect the fill path 200a and the clean-up path 200b. The work implement of the autonomous machine 100 may be turned off on the transition path 200c.
[0037] This type of path arrangement lends itself well to be formatted as a loop, because the clean-up path 200b traverses a boundary of the region, and so there may be a number of locations to place the transition path without undo amounts of redundant navigation, e.g., moving along a path that already has been worked or will later be worked. The path definition 202 may have a beginning point 210 that, for example, is at the beginning of an ordered list. Even with a predefined beginning point 210 in the stored data, the actual traversal of the autonomous machine 100 can start at any point defined within the path definition 202. Because the path 200 is defined as a loop, the beginning point 210 can also be an end point.
[0038] In FIG. 3, a diagram shows a ground care vehicle 100 starting work in the same work region 104 as in FIG. 2, but using a different work path 300 according to an example embodiment. As with the previous example, this path 300 is represented on a computer as a path definition 302, and the path 300 includes a fill path 300a, clean-up path 300b, and transition path 300c. Note that the fill path 300a is a similar parallel line fill asfill path 200a in FIG. 2, but the lines of fill path 300a at a different angle than fill path 200a.[00391 InFIG. 3, the starting pose of the autonomous machine 100 is the same as shown in FIG. 2, therefore the target navigation start region 204 is the same. Because the path 300 within the target region 204 is different than in FIG. 2, the starting point 306 and transit path 308 is different. The starting point 306 is different than a beginning point 310 that may be defined in the path definition 302 data structure. This path 300 is also a loop, and so beginning point 310 can also be considered an end point. Note that the transit path 308 is longer than path 208 in FIG. 2 and has a smaller curve diameter than path 208 in FIG. 2 due to the larger angle of the autonomous machine 100 relative to the primary direction of the path 300 compared to path 200.
[0040] In some embodiments, the autonomous machine 100 may have multiple paths available from which to choose. Some of those may be selected deterministically, e.g., one of two crisscrossing patterns that are alternatively selected for each subsequent session. In other embodiments, the operator will be able to choose a primary direction of the fill pattern, e.g., due to preference, current turf condition, etc. Therefore, as part of determining operator intent during staging, the data center and / or autonomous machine may select one of two or more path definitions based on the starting pose. The selected path definition defines a selected work path that estimates the intent of the operator during the staging, and is used to perform work in the work region.
[0041] In FIGS. 4 and 5, diagrams illustrate how one of two different fill paths 200a, 300a may be selected as a work path based on staging pose. Parts of both paths 200a, 300a are shown using dotted lines within the work regions 104 in both FIGS. 4 and 5, and can represent a primary direction of the path. The start heading 201 of the autonomous machine 100 forms different angles 400, 402, 500, 502 with parallel lines of the fill paths 200a, 300a. In FIG. 4, fill path 200a is chosen because angle 400 is less than angle 402. In FIG. 5, fill path 300a is chosen because angle 500 is less than angle 402.
[0042] In this example, just the fill paths 200a, 300a were considered when comparing to the machine start heading 201, however the entire paths 200, 300 could be considered if the other parts of the paths are within the target navigation start region duringstaging. Usually, a majority of the work will be done along the fill paths, and so it is likely the fill path directions are of primary concern to the operator. Accordingly, in some embodiments only the fill paths will be considered when trying to determine operator intent. In such a case, the fill paths 200a, 300a could be defined within separate path definitions, those definitions being separate from definitions for the clean-up paths 200b, 300b, and transition paths 200c, 300c. For example, a single clean-up path definition could be defined along with multiple fill path definitions and transition path definitions. The final work path in such a case can be obtained by combining multiple path definitions, e.g., final work path is a selected one of the fill paths plus the single clean-up path, plus a predetermined or dynamically generated transit path that connects the selected fill path and the clean-up path.
[0043] In some cases, the path selection and generation may be configured such that a path is selected only if primary direction of the path is within some predefined angle of the start heading of the machine, e.g., 30°. If no paths are found that align with the start heading, then a new path may be generated. The new path may have a primary direction that corresponds to the start heading, or it may “snap” to some predefined value. For example, the system (e.g., through user preference setting) could auto-generate paths that conform to eight compass directions (e.g., N, NE, E, SE, S, SW, W, and NW) in which case a path is selected if the angle between primary direction of the path and the start heading is less than 22.5° (a random selection could be made if the angle is exactly 22.5°). If no paths satisfy this criterion, then a new path could be defined and used.
[0044] Note that in FIGS. 2 and 3, the paths 200, 300 are already defined as a loop, with beginning points 210, 310 that can serve as end points in the path definitions, even if not used for those functions for autonomous work. It is possible that automatically or manually generated paths may not be in the form of a loop. An example of this is shown in FIG. 6, where a path 600 has starting point 604 on an upper left corner of a rectangular work region 602, traversing horizontally from top to bottom, ending at the bottom right corner at end point 606. The autonomous machine (not shown) turns around in end parts 608, which are often referred to as headlands. The work implement of the machine may beturned off while in the end parts 608, or the work implement can be left on if there is no negative impact on the machine and / or the work.[00451 As with other embodiments, an operator may want to start within a posebased, target navigation start region which encompasses arbitrary start point 610. In order to start from the arbitrary point 610 on the path 600, an additional transit path from the end point 606 to the beginning point 604 may be generated. Two such transit paths are shown in FIGS. 7 and 8. In FIG. 7, a transit path 700 remains as much as possible in the side region 608 or close to the border near the top. In FIG. 8, a transit path 800 takes the most direct route from end point 606 to beginning point 604. A work implement may be turned off when the autonomous work machine traverses either of these transit paths 700, 800.
[0046] Note that in a situation such as shown in FIG. 6, where a clean-up or outside border path is not used, a strategy of first maneuvering the autonomous work vehicle to the start point 604 to perform work along path 600 would usually take less time than working loops as shown in FIGS. 7 and 8. Nonetheless, this may be an acceptable tradeoff for the benefit of the user being able to start at any location. Also, the use of the start heading during staging of the machine (or other user input described above) as described in relation to FIGS. 4 and 5 can be used to select between the indicated path 600 and other paths (not shown) that run in different primary directions, e.g., based on a smallest angle between the start heading and the primary direction of the chosen path.
[0047] In reference again to FIGS. 2 and 3, the work is started somewhere in the middle of the work region 104, and so the clean-up laps will occur somewhere in the middle of the work because the paths 200, 300 are defined as loops. This is different than how the work may be performed manually. For example, a manual operator may prefer to work the clean-up laps either before or after the fill paths for a better appearance. Therefore performing the clean-up laps in the middle of the work region traversal could be confusing to operators and suboptimal for aesthetics.
[0048] In some embodiments, the path definitions 202, 302 can include additional metadata that identifies segments within the paths. For example, fill paths 200a, 300a could be labeled with a segment type such as “LaneSegmenf ’ and the clean-up paths 200b, 300b could be labeled with a segment type such as “BoundarySegment.” At runtime,when the loop is reordered to start at points 206, 306, the machine can be configured to start on and to complete only a certain segment type, e.g. only starting on a“LaneSegmenf ’ sub-path, and work this sub-path in full before moving to another segment type. If there are multiple “LaneSegmenf ’ types, they may be worked in a logical order, e.g., closest to the previous segment, before moving on to the next segment type.
[0049] Note that have a preferential start segment type may change the starting point determination described above. For example, before selecting a starting point, a determination is made (e.g., by reading user preference data) that one of the two or more segment types are to be worked first. The start point will be selected such that it is in one of the predefined segments of that segment type before looking at other criteria. Thus, if the fill is to be worked first but the machine is located within the headland, the start point will be a closest point on the fill path segment which is outside the headland, which is covered separately and later by following the clean-up path segment.
[0050] In order to achieve the above-described segment coverage, the segments can be reformatted into loops (also referred to as “sub-loops” to distinguish from the full path loop, e.g., paths 200 and 300). This reformatting can be performed dynamically each time work starts in the region. In other embodiments, the reformatting may involve changing / adding persistently stored data within the path definitions 202, 302, e.g., adding transit paths as discussed below, so that the reformatting need only be done once. The starting point of the sub-loops could still be dynamically determined for each session based on inference of operator intent as described elsewhere herein.
[0051] The starting segment can be reformatted into a sub-loop by adding a transit path. For example, as seen in FIG. 2, a segment based on fill path 200a can be formed into a loop by adding a transit path from point 210 to point 212. This sub-loop would begin and end at point 206. After completing the starting segment, a next segment (clean-up path 200b) can be started, e.g., by creating a transit path from point 206 to a nearest point on the clean-up segment 200b, e.g., point 214. In this way, a looped path can be created at the anywhere within the fill geometry, and other path segments can be sequentially worked to meet performance or aesthetic goals. Because the selection of the working start point 206 is arbitrary (e.g., operator can place the machine anywhere in the work region), the creationof transit paths between loops may be dynamic, e.g., not persistently stored with the path definition. This is because the transitions between successive sub-loops will be based on the arbitrarily placed start point, which will also be the end point of the first-worked subloop.
[0052] As described below, the existence of a primary direction of a path may be determined in order to determine operator intent. In cases where a fill path includes mostly parallel lines, the primary direction would correspond to the direction of those lines. There may be other paths where the primary direction may not be so clear, particularly given the ability of autonomous work machines to accurately navigate complex work paths. One example is shown in FIG. 9, where partial work paths 900, 901 for the same work region include parallel curves, e.g., sine waves. In this case, the lines 902, 903 represent the respective primary directions, as they correspond to zero axes of the waves.
[0053] In FIG. 10, partial work paths 1000, 1001 each cover the same two regions with parallel lines in two different directions in each region. This could result in two possible primary directions 1002, 1003 for work path 1000 and two possible primary directions 1004, 1005 for work path 1001. In this scenario, the primary direction may be start-location-dependent, and / or there may be a preference for one of the possible directions.
[0054] In FIG. 11, a block diagram shows components of various apparatuses and systems as described herein. A work vehicle 1100 includes a system controller 1101 adapted to monitor and control various system functions. The system controller 1101 may include one or more processors that are coupled to one or more input / output (I / O) busses1102. The controller 1101 receives various inputs and executes one or more computer programs or applications stored in memory 1104. The memory 1104 may include volatile memory (e.g., dynamic random-access memory) or non-volatile memory (e.g., flash memory). Other hardware may also be coupled to the I / O busses 1102 including sensors1103, power management circuits 1105, batteries 1106, drive controller circuits 1107, drive motor / actuators 1108, work unit controller 1109, work unit motor / actuators 1110, and external data interface 1111 that allows exchanging data with an external computing arrangement, e.g., operations facility 1120.
[0055] The memory 1104 includes computer-readable instructions or applications that, when executed, e.g., by one or more processors, cause the controller 1101 to perform various computations and / or issue commands. That is to say, the controller 1101 and memory 1104 may together define a computing apparatus operable to process input data and generate the desired output to one or more components / devices. For example, the sensors 1103 may include a Global Position System (GPS) receiver and / or wheel encoders that generate signals processed by the controller 1101 (e.g., via autonomous navigation software 1112) to generate speed and steering angle commands to the one or more motors 1108 to cause the drive wheels to rotate (at the same or different speeds and in the same or different directions). In other words, the controller 1101 may control the steering angle and speed of the vehicle 1100.
[0056] The sensors 1103 may include navigation sensors such as cameras, as proximity sensors, ground contact sensors, cameras, LIDAR, Global Navigation Satellite Systems sensors (GNSS), real-time kinetic (RTK) sensors, wheel encoders, radar, LIDAR, contact sensors, beacon detectors, boundary wire detectors, etc. In various embodiments described herein, the vehicle 1100 operates with one or more work implements that perform work tasks, such as cutting turf, aerating turf, spraying turf or other plants, ground leveling, irrigation, fertilization, etc. The work implement may include independent motors and / or actuators 1110 that drive the implement. A work unit controller 1109 can enable and disable the motors / actuators 1110, and control aspects such as speed, cut height, etc.
[0057] The vehicle 1100 may have the ability to communicate with an operations facility 1120, which may include a data center and / or computing device with similar functionality, e.g., an on-site mobile device. Example functions provided by the operations center include map management 1121, which involves the learning, definition, storage, and retrieval of maps of a work region and work paths within the work region. The work paths may be generated and stored before work commences, e.g., after an initial training on work region boundaries and obstacles. In some cases, work paths may be dynamically generated for one or more work sessions. The work paths are used by an autonomous navigation unit 1112. A manual control unit 1113 may also be used to manually control machineoperations, as well as provide inputs to communicate information that can imply operator intent.[00581 The operations facility 1120 may assist in work planning 1122, such as identification of maps and paths for use at a current location, estimating time to completion, monitoring work as it goes on, etc. The operations facility 1120 may have facilities for fleet management 1123, which generally involve monitoring a fleet of vehicles for purposes such as coordination to match a collection of vehicles to a particular job, identification of spares, tracking equipment maintenance, etc.
[0059] In view of the above, it will be readily apparent that the functionality of the controllers of the system may be implemented in any manner known to one skilled in the art. For instance, the memory may include any volatile, non-volatile, magnetic, optical, and / or electrical media, such as a random-access memory (RAM), read-only memory (ROM), non-volatile RAM (NVRAM), electrically-erasable programmable ROM (EEPROM), flash memory, and / or any other digital media.
[0060] The processors used in the controllers may include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or equivalent discrete or integrated logic circuitry. In some embodiments, the processor may include multiple components, such as any combination of one or more microprocessors, one or more controllers, one or more DSPs, one or more ASICs, and / or one or more FPGAs, as well as other discrete or integrated logic circuitry. The functions attributed to the controller and / or processor herein may be embodied as software, firmware, hardware, or any combination of these. Certain functionality of the controller may also be performed in the cloud or other distributed computing systems operably connected to the processor.
[0061] The inter-device and intra-device communications may use any combination of wired and wireless communications. Examples of wireless data interfaces include WiFi, Bluetooth, cellular modem, inductive data interface, and NFC. Examples of wired interfaces include Universal Serial Bus (USB), Ethernet, Controller Area Network (CAN), Inter-Integrated Circuit (I2C), and serial line (e.g., RS-232, IEEE 1394).
[0062] In FIG. 12, a flowchart illustrates a method according to an example embodiment. The method involves accessing 1200 a path definition that defines a vehicle work path through a work region. During a staging of an autonomous machine at an arbitrary location within the work region by an operator, a starting pose of the autonomous machine is determined 1201, e.g., using a sensor on the machine. A target navigation start region is determined 1202 (e.g., computed using an algorithm) within the work region based on the starting pose. The target navigation start region representing an allowable region within which to start work. One or more start points on the work path within the target navigation start region are selected 1203. The selected start point provides an estimate of an intent of the operator during the staging. The selected start point is used 1204 for performing autonomous work with the autonomous machine along on the vehicle work path.
[0063] In FIG. 13, a flowchart illustrates a method according to another example embodiment. The method involves accessing 1300 (e.g., generating and / or retrieving from data storage) two or more path definitions that define different vehicle work paths through a work region. During a staging of an autonomous machine at an arbitrary location within the work region by an operator, a starting pose of the autonomous machine is determined 1301 (e.g., measured via sensor of the machine). One of the two or more path definitions is selected 1302 based on the starting pose. The selected path definition defines a selected work path that estimates an intent of the operator during the staging. One or more start points on the selected work path are selected 1303, and the selected start point is used 1304 for performing autonomous work along on the selected work path.
[0064] While the present disclosure is not so limited, an appreciation of various aspects of the disclosure will be gained through a discussion of the specific illustrative aspects provided below. Various modifications of the illustrative aspects, as well as additional aspects of the disclosure, will become apparent herein.
[0065] Example l is a method comprising: accessing a path definition that defines a vehicle work path through a work region; during a staging of an autonomous machine at an arbitrary location within the work region by an operator, determining a starting pose of the autonomous machine; determining a target navigation start region within the workregion based on the starting pose, the target navigation start region representing an allowable region within which to start work; selecting one or more start points on the vehicle work path within the target navigation start region, the selected start point providing an estimate of an intent of the operator during the staging; and using the selected start point for performing autonomous work with the autonomous machine along on the vehicle work path.
[0066] Example 2 includes the method of example 1, wherein the vehicle work path is represented in the path definition as a geometric loop, with a beginning point that is different than the selected start point. Example 3 includes the method of example 2, further comprising traversing the geometric loop of the vehicle work path using the selected start point as an end point. Example 4 includes the method of example 2 or 3, wherein the geometric loop is traversed arbitrarily in one of two opposite directions.
[0067] Example 5 includes the method of example 2, 3, or 4, wherein the path definition comprises: a fill path that fills an area of the work region; a clean-up path that follows a boundary of the work region; and a transition path connecting the fill path and the clean-up path. Example 6 includes the method of example 5, wherein the fill path comprises parallel lines.
[0068] Example 7 includes the method of any previous method example, wherein the target navigation start region includes no more than 180° of a forward field of view of the autonomous machine. Example 8 includes the method of example 7, wherein the forward field of view is 60° or less. Example 9 includes the method of any previous method example, wherein selecting the one or more start points on the work path comprises excluding points that result in the autonomous machine making a turn of greater than ±90° to navigate to the start point.
[0069] Example 10 includes the method of any previous method example, wherein selecting the one or more start points on the work path comprises selecting a closest point on the path that that can be navigated to via a curved path with a radius greater than or equal to a minimum turn radius of the autonomous machine. Example 11 includes the method of any previous method example, wherein if no start point can be found that estimates the intent of the operator, the method further comprises generating a new pathdefinition that defines a new vehicle work path through the work region that estimates the intent of the operator.[00701 Example 12 includes the method of any previous method example, wherein the path definition defines two or more segments of the vehicle work path that are defined by respective different segment types, the method further comprising reformatting the path definition such that the two or more segments are worked as respective two or more loops. Example 13 includes the method of example 12, wherein the selection of the one or more start points on the vehicle work path further comprises: determining that a selected one of the different segment types is to be worked first; and causing the selected start point to be within one of the two or more segments that corresponds to the selected segment type. Example 14 includes the method of example 12 or 13, further comprising creating transit paths to move between the two or more loops.
[0071] Example 15 is system, comprising: the autonomous machine set forth in example 1, the autonomous machine comprising a controller operable to use the selected start point for performing the autonomous work along on the vehicle work path; and an operations facility coupled to exchange data with the autonomous machine, the operations facility comprising a processor operable to determine the target navigation start region within the work region based on the starting pose and select the selected start point. Example 16 includes the system of example 15, wherein the processor of the operations facility is further operable to generate the path definition and communicate the path definition to the autonomous machine.
[0072] It is noted that the terms “have,” “include,” “comprises,” and variations thereof, do not have a limiting meaning, and are used in their open-ended sense to generally mean “including, but not limited to,” where the terms appear in the accompanying description and claims. Further, “a,” “an,” “the,” “at least one,” and “one or more” are used interchangeably herein. Moreover, relative terms such as ’’left,” “right,” “front,” “fore,” “forward,” “rear,” “aft,” “rearward,” “top,” “bottom,” “side,” “upper,” “lower,” “above,” “below,” “horizontal,” “vertical,” and the like may be used herein and, if so, are from the perspective shown in the particular figure, or while the machine is in an operating configuration. These terms are used only to simplify the description, however,and not to limit the interpretation of any embodiment described. As used herein, the terms “determine” and “estimate" may be used interchangeably depending on the particular context of their use, for example, to determine or estimate a position or pose of a vehicle, boundary, obstacle, etc.
[0073] Further, it is understood that the description of any particular element as being connected to or coupled to another element can be directly connected or coupled, or indirectly coupled / connected via intervening elements.
[0074] Unless otherwise indicated, all numbers expressing feature sizes, amounts, and physical properties used in the specification and claims are to be understood as being modified in all instances by the term “about.” Accordingly, unless indicated to the contrary, the numerical parameters set forth in the foregoing specification and attached claims are approximations that can vary depending upon the desired properties sought to be obtained by those skilled in the art utilizing the teachings disclosed herein. The use of numerical ranges by endpoints includes all numbers within that range (e.g., 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.80, 4, and 5) and any range within that range.
[0075] The various embodiments described above may be implemented using circuitry, firmware, and / or software modules that interact to provide particular results. One of skill in the arts can readily implement such described functionality, either at a modular level or as a whole, using knowledge generally known in the art. For example, the flowcharts and control diagrams illustrated herein may be used to create computer-readable instructions / code for execution by a processor. Such instructions may be stored on a non- transitory computer-readable medium and transferred to the processor for execution as is known in the art. The structures and procedures shown above are only a representative example of embodiments that can be used to provide the functions described hereinabove.
[0076] Note that any components described herein using terms such as “processor,” “controller,” “logic circuit,” “CPU,” or the like may be implemented using a plurality of discrete units operating together. For example, a processer that performs a series of steps or operations may be construed as two or more processors operating cooperatively to perform the steps. Similarly, other processing hardware such as memory and input-output mayperform the described functions with multiple discrete units operating cooperatively or being coordinated by another unit, e.g., by a central processor or processors.[00771 The foregoing description of the example embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. Any or all features of the disclosed embodiments can be applied individually or in any combination and are not meant to be limiting, but purely illustrative. It is intended that the scope of the invention be limited not with this detailed description, but rather determined by the claims appended hereto.
Claims
CLAIMS:
1. A method comprising: accessing a path definition that defines a vehicle work path through a work region; during a staging of an autonomous machine at an arbitrary location within the work region by an operator, determining a starting pose of the autonomous machine; determining a target navigation start region within the work region based on the starting pose, the target navigation start region representing an allowable region within which to start work; selecting one or more start points on the vehicle work path within the target navigation start region, the selected start point providing an estimate of an intent of the operator during the staging; and using the selected start point for performing autonomous work with the autonomous machine along on the vehicle work path.
2. The method of claim 1, wherein the vehicle work path is represented in the path definition as a geometric loop, with a beginning point that is different than the selected start point.
3. The method of claim 2, further comprising traversing the geometric loop of the vehicle work path using the selected start point as an end point.
4. The method of claim 3, wherein the geometric loop is traversed arbitrarily in one of two opposite directions.
5. The method of any one of claims 2-4, wherein the path definition comprises: a fill path that fills an area of the work region; a clean-up path that follows a boundary of the work region; and a transition path connecting the fill path and the clean-up path.
6. The method of claim 5, wherein the fill path comprises parallel lines.
7. The method of any one of claims 1-6, wherein the target navigation start region includes no more than 180° of a forward field of view of the autonomous machine.
8. The method of claim 7, wherein the forward field of view is 60° or less.
9. The method of any one of claims 1-8, wherein selecting the one or more start points on the work path comprises excluding points that result in the autonomous machine making a turn of greater than ±90° to navigate to the start point.
10. The method of any one of claims 1-9, wherein selecting the one or more start points on the work path comprises selecting a closest point on the path that that can be navigated to via a curved path with a radius greater than or equal to a minimum turn radius of the autonomous machine.
11. The method of any one of claims 1-10, wherein if no start point can be found that estimates the intent of the operator, the method further comprises generating a new path definition that defines a new vehicle work path through the work region that estimates the intent of the operator.
12. The method of any one of claims 1-11, wherein the path definition defines two or more segments of the vehicle work path that are defined by respective different segment types, the method further comprising reformatting the path definition such that the two or more segments are worked as respective two or more loops.
13. The method of claim 12, wherein the selection of the one or more start points on the vehicle work path further comprises: determining that a selected one of the different segment types is to be worked first; andcausing the selected start point to be within one of the two or more segments that corresponds to the selected segment type.
14. The method of claim 12, further comprising creating transit paths to move between the two or more loops.
15. An autonomous work machine comprising a drive section and controller operable to perform the method of any one of claims 1-14.
16. A system, comprising: an autonomous machine comprising a controller configured to, during a staging of the autonomous machine at an arbitrary location within the work region by an operator, determining a starting pose of the autonomous machine; an operations facility coupled to exchange data with the autonomous machine, the operations facility comprising a processor operable to perform: receiving the starting pose from the autonomous machine; accessing a path definition that defines a vehicle work path through a work region; determining a target navigation start region within the work region based on the starting pose, the target navigation start region representing an allowable region within which to start work; selecting one or more start points on the vehicle work path within the target navigation start region, the selected start point providing an estimate of an intent of the operator during the staging; and communicate the selected start point to the autonomous machine, the autonomous machine using the selected start point for performing autonomous work with the autonomous machine along on the vehicle work path.
17. The system of claim 16, wherein the processor of the operations facility is further operable to generate the path definition and communicate the path definition to the autonomous machine.
Citation Information
Patent Citations
Nonholonomic robot field coverage method
US11029691B1
Self-propelling vehicle
US6834220B1
Robotic vehicle controller
US8239083B2
System facilitating user arrangement of paths for use by autonomous work vehicle
WO2022256475A1
US202363602047P