Patent Description:
There are a wide variety of different types of off-road equipment. Such equipment can include agricultural equipment, construction equipment, forestry equipment, turf management equipment, among other equipment.

Such off-road equipment often operates in a predefined area or worksite where the equipment is not to deviate outside of the peripheral boundaries, or other boundaries, of that worksite. For instance, agricultural equipment often operates within the boundaries of a field and should not deviate outside of those boundaries.

Also, such agricultural equipment often includes a towing vehicle and a towed implement. The towed implement often does not follow a predictable path behind the towing vehicle. Therefore, it can be difficult for such agricultural equipment to operate close to a boundary or within tight areas of the worksite, such as field corners.

As discussed above, off-road equipment often operates within a worksite that has a bounded area and is not supposed to cross the boundaries of that area. For example, agricultural equipment operates in a field and should not operate outside of the boundaries of the field. This can be difficult for a number of different reasons. For instance, it can be difficult for an operator to accurately gauge the precise dimensions of the equipment to thus ensure that it does not cross a field boundary. Similarly, when towing a towed implement, it may be that the towed implement does not follow a predictable path behind the towing vehicle, so it can be difficult to ensure that the implement does not cross the boundary.

This can lead to significant inefficiencies. For instance, because an operator may not be able to accurately gauge the precise dimensions of the equipment, or know the precise path that a towed implement will follow, the operator often slows down when the equipment is near a boundary. The reduction in speed allows the operator to more precisely control the equipment so that it does not cross the field boundary. Also, an operator may maintain an unnecessarily large distance from the boundary to ensure that the equipment will not cross the boundary. Both of these (the reduction in speed and staying a relatively large distance from the boundary) lead to inefficiencies in that it may take longer for the equipment to perform the desired operation and/or the equipment may waste a portion of the field by staying too far away from the boundary.

<CIT> describes a so-called headland management system for an agricultural machine, automatically controlling among others speed and steering angle of the machine operating on a field to perform a turn when, according to a sensed position of the machine and a known location of the headland, the machine approaches the headland.

<CIT> describes an autonomously driving vehicle that is automatically steered over a road on the centerline of a generated multi-dimensional envelope, the dimensions of the envelope dependent among others on the speed of the vehicle. If the envelope would touch an obstacle, the size and position of the envelope is adjusted accordingly.

A digital fence of a work area is generated and loaded into a machine control system that controls an off-road machine. The machine control system detects whether the off-road machine is within a threshold distance of the digital fence and automatically controls operating parameters of the off-road machine when the off-road machine is within a threshold distance of the digital fence.

The system automatically senses the location of the equipment relative to the boundary and also considers an equipment model that models the dimensions and behavior of the equipment. The location of the equipment relative to the boundary and the equipment model are used to limit the operating envelope (e.g., operating parameters) of the equipment, such as speed, heading, steering angle, etc. to reduce the likelihood that the equipment will cross the boundary. In this way, an operator or an automated system can operate at higher speeds and at locations closer to the boundary, knowing that the system will preclude the operator or automated system from controlling the equipment in a way where it crosses the boundary.

<FIG> is a pictorial illustration of a worksite, or field <NUM> with off-road equipment deployed at various locations in the field. In the example shown in <FIG>, the off-road equipment is illustrated as a tractor <NUM> that is pulling a tillage implement <NUM>. The tractor <NUM> and tillage implement <NUM> are shown at a plurality of different locations <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> within the field <NUM>. When the equipment is at location <NUM>, it can be seen that the equipment is traveling in the direction illustrated by arrow <NUM>, and is closely adjacent a boundary <NUM> of field <NUM>. In such a location, the operator of tractor <NUM> may go relatively slowly or provide a relatively large buffer from boundary <NUM> so that neither tractor <NUM> nor the towed implement <NUM> cross the boundary <NUM>. When in location <NUM>, the tractor <NUM> is approaching a different boundary <NUM> of field <NUM>. Therefore, the operator of tractor <NUM> may be going relatively slowly so as not to accidently cross the boundary <NUM>. When in location <NUM>, the tractor <NUM> and implement <NUM> are not only close to boundary <NUM>, but they are also close to boundary <NUM> of field <NUM>. In such a location, the operator of tractor <NUM> may also control tractor <NUM> to go slowly and maintain a relatively large buffer from the boundaries <NUM> and <NUM> of field <NUM>. When in location <NUM>, however, the equipment is not close to any of the boundaries of field <NUM>. Therefore, the operator <NUM> may operate the equipment at a relatively high rate of speed. When in location <NUM>, again the tractor <NUM> is approaching a boundary <NUM> of field <NUM> so that the operator may operate a low speed and maintain a buffer distance from boundary <NUM>.

<FIG> shows a tractor <NUM> towing a tillage implement <NUM>. <FIG> also shows, in one example, either the tractor <NUM> or the tillage implement <NUM>, or both, have a machine control system <NUM>. Machine control system <NUM> automatically identifies the potential collision points for tractor <NUM> and towed implement <NUM> and monitors the location of those collision points relative to the boundaries of the field in which it is operating (e.g., field <NUM>). In the example shown in <FIG>, machine control system <NUM> thus identifies the collision points on tractor <NUM> as collision points <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Collision points <NUM>-<NUM> correspond to the points on the furthest edges or corners of the periphery of tractor <NUM>. Similarly, machine control system <NUM> identifies the collision points for towed implement <NUM> as collision points <NUM>, <NUM>, <NUM>, and <NUM>. Again, collision points <NUM>-<NUM> are points on the edges of the periphery of towed implement <NUM>.

Machine control system <NUM> illustratively monitors the location of tractor <NUM> and towed implement <NUM> relative to the boundaries of field <NUM>. When the location of tractor <NUM> or towed implement <NUM> are within a threshold distance of any of the boundaries, then machine control system <NUM> limits the operating envelope of machine <NUM> and/or towed implement <NUM> to ensure that none of the collision points <NUM>-<NUM> will cross the boundary of field <NUM>. For instance, machine control system <NUM> can limit the speed, the heading, and/or the turn angle of tractor <NUM>. Also, where towed implement <NUM> has a steerable axle, machine control system <NUM> may generate steering control signals to control the steering of the steerable axle to ensure that none of the collision points on towed implement <NUM> cross the boundary of field <NUM>.

<FIG> shows one example of machine control system <NUM> in more detail. In the example shown in <FIG>, machine control system <NUM> includes one or more processors or servers <NUM>, data store <NUM>, digital fence generation system <NUM>, operating envelope control system <NUM>, controllable subsystems <NUM>, operator interface mechanisms <NUM>, and other control system functionality <NUM>. Data store <NUM> can include one or more maps <NUM>, digital fences <NUM>, equipment dimensions <NUM> for a plurality of different pieces of equipment, equipment model <NUM>, and other items <NUM>.

Digital fence generation system <NUM> can include boundary identifier <NUM>, drivable area identifier <NUM>, passable area identifier <NUM>, work area identifier <NUM>, feature addition system <NUM>, tolerance generator <NUM>, buffer addition system <NUM>, and other items <NUM>. Operating envelope control system <NUM> can include equipment collision point identifier <NUM>, digital fence accessing system <NUM>, sensor limiting condition detector <NUM>, location evaluation triggering system <NUM>, geographic location system <NUM>, threshold distance comparison system <NUM>, collision point projection system <NUM>, boundary crossing detector <NUM>, limitation enforcement system <NUM>, and other items <NUM>. Collision point projection system <NUM> can include forward projection system <NUM>, transverse projection system <NUM>, and other items <NUM>. Limitation enforcement system <NUM>, can include heading limitation system <NUM>, turn limitation system <NUM>, speed limitation system <NUM>, implement control signal generator <NUM>, and other items <NUM>. Controllable subsystems <NUM> can include propulsion control subsystem <NUM>, steering control subsystem <NUM>, and other controllable subsystems <NUM>.

<FIG> also shows that, in one example, machine control system <NUM> is operated by an operator <NUM>. Operator <NUM> can interact with operator interface mechanisms <NUM> to control and manipulate machine control system <NUM> and thus tractor <NUM> and possibly some portions of towed implement <NUM>. Operator interface mechanisms <NUM> may include a steering wheel, joysticks, pedals, linkages, levers, buttons, dials, a display device, a point and click device, a touchscreen, or wide variety of other visual, audio and haptic input/output devices.

Before describing the overall operation of machine control system <NUM> in more detail, a description of some of the items in machine control system <NUM> and their operation will first be provided.

Digital fence generation system <NUM> generates a digital fence with boundaries defining the periphery of a worksite, such as a field. Operating envelope control system <NUM> detects how close the agricultural machine is to the boundaries and, if close enough, limits the operating envelope of the machine. In limiting the operating envelope of the machine, control system <NUM> can control controllable subsystems <NUM>. For instance, control system <NUM> can control propulsion control subsystem <NUM> to limit the maximum speed of the machine. Control system <NUM> can control steering control subsystem <NUM> to limit the turning angle and/or heading of the machine.

Digital fence generation system <NUM> uses boundary identifier <NUM> to identify the boundary of a field. Boundary identifier <NUM> can access a prior map <NUM> to identify a boundary of the field. Boundary identifier <NUM> may also identify the boundary of a field based upon a vehicle driving around the boundary and marking the boundary. Similarly, boundary identifier <NUM> can identify the boundary based upon a prior operation (such as a seeding operation, a tillage operation, etc.).

Drivable area identifier <NUM> identifies an area within the boundary that is drivable. For instance, drivable area identifier <NUM> may identify the particular passes that a machine took during a previous operation. By accessing the dimensions <NUM> of the machine and the location of the ground engaging elements (e.g., wheels, tracks, etc.) of the machine, the actual area where a machine was driven and where the ground engaging elements contacted the ground can be identified as the drivable area within the identified boundary.

Passable area identifier <NUM> identifies the area that is passable by the agricultural machine. For instance, by knowing the dimensions <NUM> of the machine and how far the machine protrudes beyond the wheel base of the machine, the area of a field where the machine passed during a prior operation can be identified as the passable area. This may be larger than the drivable area in that the machine frame, for instance, may be larger than the wheel base of the machine so that the area where the machine actually passed is larger than the area where the wheels or other ground engaging elements passed.

Work area identifier <NUM> identifies the area of the field where work was performed. This may also be larger than the passable area. For instance, a sprayer may have a boom with nozzles that spray a chemical in an area that extends beyond the physical dimensions of the boom. Thus, work is performed in an area that is larger than the passable area in the field and thus the work area may be identified to be larger than the passable area.

Feature addition system <NUM> can be used to add features to the boundaries. For instance, a field may include a rock, a tile inlet, a wet area, debris, holes, ditches, an old building foundation, telephone poles, etc. These features can be added to the digital fence. In one example, feature addition system <NUM> controls operator interface mechanisms <NUM> so that operator <NUM> can manually add the location of a feature. For instance, operator <NUM> may hold a mobile device and manually traverse the boundary of a rock or ditch or other feature so that it can be added to the digital fence. In another example, an automated perception system, such as a camera, a mechanical sensor, a RADAR or LIDAR sensor, or another automated perception system can detect the feature and automatically add the location of the feature to the digital fence. In yet another example, the feature can be automatically added to the digital fence but then an operator interface display can be generated to allow operator <NUM> to review and confirm the addition of the feature or reject the addition of the feature. These are examples only.

Tolerance generator <NUM> then identifies a tolerance value corresponding to the boundaries, the different areas identified, and the features that have been added. The tolerance may be based upon how accurately the machine can be steered (e.g., the machine steering characteristics), the accuracy of the sensors that have been used to generate the boundaries and/or based on other tolerance criteria. Buffer addition system <NUM> then adds a buffer to the boundary locations and the feature locations based upon the tolerance. For instance, it may be that a buffer of twelve inches is added to all of the boundary lines around a field and around features that have been added to the digital fence. This is just one example.

The digital fence can then be stored as one of digital fences <NUM> in data store <NUM>, or it can be loaded into operating envelope controls system <NUM>, or it can be processed in other ways.

Equipment collision point identifier <NUM> in operating envelope control system <NUM> identifies the collision points of the agricultural equipment that is being used. Equipment collision point identifier <NUM> can access the equipment dimensions <NUM> and/or equipment model <NUM> from data store <NUM> or from another location and identify the collision points that are to be used for the equipment.

Digital fence accessing system <NUM> then accesses the digital fence <NUM> for the field that is going to be operated on. Sensor limiting condition detector <NUM> detects any sensor limiting conditions. For instance, if the agricultural machine uses an optical sensor, and it is a foggy day or there is a great deal of dust or debris or other obscurants in the air, then these conditions (the fog, dust or obscurants, etc.) can be detected by sensor limiting condition detector <NUM> and used by control system <NUM> to increase a tolerance or buffer or to otherwise control the machine.

Geographic location system <NUM> identifies the geographic location (and, for example, the orientation and heading) of the agricultural machine. Therefore, geographic location system <NUM> may include a GPS receiver or another GNSS receiver, a dead reckoning system, a cellular triangulation system, one or more gyroscopes, initial measurement units, or other sensors that generate an output indicative of the geographic location of the agricultural machine.

Location evaluation triggering system <NUM> determines whether it is time to evaluate the location of the agricultural machine relative to the boundaries identified in the digital fence. In one example, the triggering criteria may be time based criteria. As an example, it may be that the operating envelope control system <NUM> evaluates the location of the agricultural machine relative to the boundaries every <NUM> milliseconds, every <NUM> milliseconds, etc. The trigger criteria can also be variable. For instance, if the agricultural machine is traveling at a high rate of speed, then the triggering criteria may be one set of criteria (such as <NUM> milliseconds) whereas if the agricultural machine is traveling at a relatively low rate of speed then the triggering criteria may be a different set of time criteria (such as <NUM> milliseconds). The criteria can be other criteria as well.

When location evaluation triggering system <NUM> determines that it is time to evaluate the location of the agricultural machine, then geographic location system <NUM> identifies the geographic location of the agricultural machine and threshold distance comparison system <NUM> compares the location of the machine to the boundaries in the digital fence to see if the machine is close enough to the boundaries (e.g., within a threshold distance) so that further analysis needs to be done. For instance, if the agricultural machine is in the middle of the field and is not close to any marked features in the field, then no analysis needs to be done to determine whether to limit the operating envelope of the machine. However, if the machine is within a threshold distance of a boundary or feature in the digital fence, then this may indicate that an analysis is to be done to determine whether the operating envelope of the agricultural machine should be limited.

Assuming that the analysis is to be performed, then boundary crossing detector <NUM> analyzes the different collision points to determine whether they have already crossed a boundary, or whether they are still within the boundaries defined by the digital fence. This is described in greater detail below with respect to <FIG>. Assuming that the identified collision points are all still within the boundary of the digital fence, then collision point projection system <NUM> uses forward projection system <NUM> to project the collision points forward to see if they are about to cross a boundary or collide with a boundary or feature. The amount by which the collision points are projected forward may be based on the heading, course, and/or bearing of the machine, based on how close the agricultural machine is to a boundary, the speed of the agricultural machine, the ability of the agricultural machine to stop, or based on other criteria. Boundary crossing detector <NUM> can also access an equipment model <NUM> which models the behavior of the equipment. For instance, equipment model <NUM> may model the stopping behavior of the equipment (such as how long it takes the equipment to stop under different circumstances and at different speeds), the turning behavior of the equipment (such as angles through which the equipment can be turned, the responsiveness in turning, among other things. If the projected collision points are encroaching upon or cross a boundary, then this can be indicated to control system <NUM> which can limit the operating envelope of the agricultural machine accordingly.

Even if the projected collision points are not encroaching upon or crossing a boundary, transverse projection system <NUM> projects the collision points in a direction transverse to the heading of the agricultural machine. For instance, it may be that the agricultural machine is traveling closely proximate a boundary, such as the agricultural machine in position <NUM> in <FIG>. In that case, transverse projection system <NUM> can project the collision points transversely toward boundary <NUM> to determine whether machine <NUM> could be steered in such a way that the collision could quickly cross boundary <NUM>. If so, this can be indicated to limitation enforcement system <NUM> which can limit the operating envelope of the agricultural machine to inhibit the machine from being steered toward the boundary.

If it is determined that the operating envelope of the agricultural machine should be limited, limitation enforcement system <NUM> identifies and enforces the limitations on the operating envelope. For instance, if the agricultural machine is operating close to a boundary, then heading limitation system <NUM> may preclude the agricultural machine from being turned in a direction where it would quickly cross the boundary. Turn angle limitation system <NUM> may limit the turn angle of the machine based upon how close the machine is to the boundary, the speed of the machine, etc. Speed limitation system <NUM> can limit the operating speed of the machine. For instance, if a collision point on the agricultural machine is rapidly approaching a boundary, and the agricultural machine takes a relatively large distance within which to stop, then speed limitation system <NUM> can limit the operating speed of the machine so that it will be able to stop prior to having one of its collision points cross the boundary.

It may also be that the agricultural machine includes a towing vehicle, such as tractor, and a towed implement. Some towed implements may have independently steerable axles so that they can be steered to more closely follow a predictable path behind the towing vehicle. In such a scenario, implement control signal generator <NUM> generates a control signal to steer the steerable axle of the implement in order to avoid colliding with a boundary of feature in the digital fence. The implement can be controlled in other ways as well.

<FIG> is a flow diagram illustrating one example of the operation of digital fence generation system <NUM> in generating a digital fence. Boundary identifier <NUM> first obtains the boundaries of the periphery of the field, as indicated by block <NUM> in the flow diagram of <FIG>. In one example, the boundary of the periphery are obtained by driving around the periphery of the field in a vehicle and recording the geographic location of the boundaries, as indicated by block <NUM>. In another example, the boundaries of the periphery of the field may be obtained from a prior map <NUM> or from other prior recorded boundaries, as indicated by block <NUM>. The boundaries of the periphery of the field can be obtained in other ways as well, as indicated by block <NUM>.

Drivable area identifier <NUM> then identifies the drivable area in the field, as indicated by block <NUM>. The drivable area is identified based upon the location where the ground engaging elements of a machine have already traveled in that field, as indicated by block <NUM>. The drivable area can be identified in other ways as well, as indicated by block <NUM>.

Passable area identifier <NUM> then identifies the passable area in the field, as indicated by block <NUM>. The passable area can be identified based upon the outer dimensions and turn characteristics of the equipment, as indicated by block <NUM>. Referring, to <FIG>, it can be seen that the tractor <NUM> is towing a tillage implement <NUM>. While the tractor has successfully navigated a corner <NUM> of the field, the tillage implement may, in fact, follow a path that is closer to the corner <NUM> and thus cross the boundary of the corner of the field. Therefore, the passable area of the field can be identified based upon the turn characteristics of the agricultural machine as well as its dimensions, and the actual drivable area of the field. The passable area may well exceed or extend beyond the drivable area in certain places. The passable area of the field can be identified in other ways as well, as indicated by block <NUM>.

Work area identifier <NUM> then identifies the work area of the field, as indicated by block <NUM>. The work area may be identified based upon the working dimensions of the agricultural machine. For instance, if the agricultural machine is a sprayer or spreader, then the working dimensions may include the area beyond the physical periphery of the machine, that is sprayed with chemicals or where chemicals are spread. Identifying the work area based upon the working dimensions of the machine is indicated by block <NUM>. The work area may be identified in other ways as well, as indicated by block <NUM>.

Tolerance generator <NUM> then identifies the tolerance values that will be added to the boundaries as a buffer. Identifying tolerance values is indicated by block <NUM>. The tolerance values can be based upon the driving characteristics and machine dimensions represented by the equipment dimensions <NUM> and equipment model <NUM>. The tolerance values can be based on other criteria as well.

Buffer addition system <NUM> then adds a buffer to the boundaries based upon the tolerance values, as indicated by block <NUM>. Similarly, <FIG> shows one example of a field <NUM> that has a boundary represented by the solid line <NUM>. The buffer is represented by the dashed line <NUM>. As shown in <FIG>, the buffer may be larger in certain areas and smaller in other areas. For instance, where a sharp turn in the field boundary will be needed, such as in the area shown at <NUM>, the boundary <NUM> in that area may be larger than it is in other areas, based upon the turning characteristic of the agricultural machine that will be used in the field. Again, referring to <FIG>, it may be that the implement <NUM> will not follow directly behind the tractor <NUM> so that the boundary needs to be larger in areas where a sharp turn or corner is to be encountered.

Referring again to <FIG>, feature addition system <NUM> can then add any detected features to the boundaries in the digital fence, as indicated by block <NUM>. The feature addition system <NUM> can generate a user interface that operator <NUM> can interact with in order to manually add features using a user interface mechanism <NUM>, as indicated by block <NUM>. The features can be added using a manual or automated boundary survey, such as by allowing an operator to drive around or walk around the feature, as indicated by block <NUM>. The features can be added using a perception system either automatically or with human approval, as indicated by block <NUM>. <FIG> shows an example of a feature, such as a boulder or rock shown generally at block <NUM>. The object data that identifies the feature <NUM> may include such things as the geographic location of the feature, the size of the feature, the shape of the feature, the time or date when the feature was identified, an image or description of the data, a buffer area around the data, or other object data <NUM>. The features can be detected and added to the boundaries in other ways as well, as indicated by block <NUM>.

Digital fence generation system <NUM> then stores the boundaries as a digital fence <NUM>. The digital fence can be stored in local data store <NUM>, a remote data store, or other data stores. Storing the boundaries as a digital fence is indicated by block <NUM> in the flow diagram of <FIG>.

<FIG> and <FIG> (collectively referred to herein as <FIG>) show a full diagram illustrating one example of the operation of machine control system <NUM> in limiting the operating envelope of the agricultural machine, where limitation is warranted, given the location of the agricultural machine relative to the boundary.

Digital fence generation system <NUM> first generates a digital fence, as indicated by block <NUM> in the flow diagram of <FIG>. Equipment collision point identifier <NUM> may then obtain an equipment model <NUM>, as indicated by block <NUM>. The equipment model may include the equipment dimensions <NUM>, or those may be obtained separately. The equipment model <NUM> may model the stopping distance <NUM> of the equipment, the turn characteristics <NUM>, of the equipment, it may indicate that the equipment has a steerable axle <NUM>, or it may identify other items <NUM>.

Equipment collision point identifier <NUM> then identifies the equipment collision points, as indicated by block <NUM>. The equipment collision points may be referenced to the geographic location sensor in geographic location system <NUM>, as indicated by block <NUM>. The collision points may illustratively be the outermost points on the equipment periphery, as indicated by block <NUM>, and the collision points may be identified on the towing vehicle and a towed implement as indicated by block <NUM>, or in other ways, as indicated by block <NUM>.

Digital fence accessing system <NUM> loads the digital fence <NUM> into the operating envelope control system <NUM>, as indicated by block <NUM>. Location evaluation triggering system <NUM> then determines whether it is time to evaluate the location of the equipment, as indicated by block <NUM> and, if so, sensor limiting condition detector <NUM> detects any sensor limiting conditions, as indicated by block <NUM>.

Geographic location system <NUM> then identifies the geographic location of the equipment as indicated by block <NUM>. The geographic location can include the geographic position <NUM>, orientation/heading <NUM>, velocity <NUM>, and other information <NUM> corresponding to the geographic position of the equipment. Threshold distance comparison system <NUM> then determines whether the equipment is within a threshold distance of the digital fence (e.g., the boundary or the boundary plus the buffer), as indicated by block <NUM>. If not, then no further analysis needs to be performed relative to the geographic position of the equipment and the digital fence, and processing reverts to block <NUM>. However, if, at block <NUM>, it is determined that the location of the equipment is within the threshold distance of the digital fence, then collision point projection system <NUM> projects the collision points of the equipment.

Forward projection system <NUM> projects the collision points of the equipment forward to see if any are already outside the boundary, or are encroaching upon, or crossing the digital fence boundary, as indicated by block <NUM>. In one example, collision point projection system <NUM> is first controlled by boundary crossing detector <NUM> to project the collision points forward by casting a ray in any direction to verify that the collision points are still within the boundary of the field, and have not already crossed the boundary of the field, as indicated by block <NUM>. One example of this is shown in <FIG>. Assume, in <FIG>, that the boundary of the field is represented by the solid line <NUM>. Then, assume that three collision points on the vehicle are labeled <NUM>, <NUM>, and <NUM> in <FIG>. If the number of boundary crossings is odd, this means that the collision point is still within the boundary <NUM> of the field, whereas if the number of boundary crossings is even, this will indicate that the point is outside the boundary of the field.

It can be seen, for example, in <FIG> that a ray is cast from each of the collision points <NUM>, <NUM>, <NUM> along an X axis in <FIG>. The ray projected from collision point <NUM> crosses two boundaries, which is an even number indicating that collision point <NUM> is outside the boundary <NUM>. The ray cast from collision point <NUM> crosses four boundaries indicating that it is also outside of the boundary <NUM>. The ray cast from collision point <NUM> crosses the boundary three times, which is an odd number, indicating that collision point <NUM> is within the boundary <NUM>. Therefore, as a first step, collision point projection system <NUM> can be controlled by boundary crossing detector <NUM> to cast a ray in any direction from the collision points to verify that those collision points are still within the boundary.

Once it is verified that the collision points are still within the boundaries, then the points are cast forward by a certain projection distance to determine whether they are encroaching upon, or will cross, a boundary. The distance of the forward projection may be based on the stopping distance of the equipment or the speed of the equipment, or the heading, course, and/or bearing of the equipment, as indicated by block <NUM> in the flow diagram of <FIG>. The collision points may be projected forward in other ways as well, as indicated by block <NUM>.

<FIG> and <FIG> show examples in which collision points are identified and projected forward to determine whether the equipment is approaching a boundary. <FIG> shows a tractor <NUM> pulling a tillage implement <NUM>. The collision points are identified and are the same as shown in <FIG>, and they are similarly numbered. The boundary of the field in which equipment <NUM>, <NUM> is operating is indicated by first boundary <NUM> and second boundary <NUM>. It can be seen that equipment <NUM>, <NUM> is traveling closely adjacent boundary <NUM> and is approaching boundary <NUM>.

<FIG> shows an example in which the collision points are projected forward toward boundary <NUM>. Collision points <NUM>, <NUM>, and <NUM> on tractor <NUM> are projected forward to the locations indicated by projected collision points <NUM>', <NUM>', and <NUM>'. Collision points <NUM> and <NUM> from implement <NUM> are projected forward to the points indicated by projected collisions points <NUM>' and <NUM>'. Boundary crossing detector <NUM> determines whether the projected collision points are outside the boundary. <FIG> shows that projected collision points <NUM>', <NUM>', and <NUM>' have all crossed boundary <NUM>. Determining whether any of the projected collision points have crossed the boundary is indicated by block <NUM> in the flow diagram of <FIG>. If so, this means that limitation enforcement system <NUM> should limit the operating envelope of tractor <NUM> and/or implement <NUM> based upon its proximity to boundary <NUM>. Thus, processing skips to block <NUM> where limitation enforcement system <NUM> enforces limits on the operating envelope of the equipment. Heading limitation system <NUM> can limit the heading <NUM> of the equipment. Turn angle limitation system <NUM> can limit the turn angle <NUM> of the equipment. Speed limitation system <NUM> can limit the speed <NUM> of the equipment. Implement control signal generator <NUM> can generate implement steering control signals to control steering of the implement, as indicated by block <NUM>.

In addition, any operator inputs or other control inputs can be modified based upon the limitations, as indicated by block <NUM>. For instance, assume that an operator has provided an input to have towing vehicle <NUM> moving at a speed of <NUM> miles per hour. In that case, limitation enforcement system <NUM> may limit the input to control the towing vehicle <NUM> to only operate at a speed of <NUM> miles per hour. The desired equipment commands can be modified based upon the limitations in other ways as well, as indicated by block <NUM>.

Returning again to block <NUM> in <FIG>, assume that the boundary crossing detector <NUM> determines that none of the projected collision points for the equipment will cross a boundary. In that case, then transverse projection system <NUM> projects the collision points of the equipment in a transverse direction relative to the heading of the equipment, to determine whether any collision points might cross a boundary if the direction of travel of the equipment changes. Projecting the collision point in a transverse direction is indicated by block <NUM> in the flow diagram of <FIG>.

<FIG> is similar to <FIG>, and similar items are similarly numbered. However, <FIG> now shows that collision point <NUM> has not only been projected straight forward to the projected collision point <NUM>', but it has also been projected in a transverse direction to the projected collision points <NUM>" and <NUM>‴. It can be seen that collision point <NUM>" has crossed boundary <NUM>. This means that, should the towing vehicle <NUM> be turned to the right, collision point <NUM> could easily cross boundary <NUM>.

Boundary crossing detector <NUM> then determines whether any of the projected collision points, that are projected in a direction transverse to the direction of travel of the equipment, will cross a boundary, as indicated by block <NUM>. If so, processing again proceeds at block <NUM> where limitation enforcement system <NUM> enforces limitations on the operating envelope of the equipment. <FIG> shows one example of this. In the example shown in <FIG>, boundary crossing detector <NUM> generates an output indicative of the boundary crossing of point <NUM>" and limitation enforcement system <NUM> enforces limitations on the operating envelope of the equipment accordingly. By way of example, turn angle limitation system <NUM> may prevent towing vehicle <NUM> from being turned to the right. These and other limitations can be enforced as well.

If none of the projected collision points cross a boundary, as indicated by block <NUM>, or once the limitations on the operating envelope of the equipment have been enforced as indicated by block <NUM>, processing continues at block <NUM>. If the operation that the equipment is performing is not yet complete, then processing reverts to block <NUM> where location evaluation triggering system <NUM> determines whether the location of the equipment should again be evaluated.

It can thus be seen that the present description describes a system which detects the location of equipment operating in a work area relative to the boundary of that work area or the boundary of a feature within the work area. The present system limits the operating envelope of the equipment based upon the location so that the equipment can be operated more efficiently with less concern that the equipment may cross a boundary.

The present discussion has mentioned processors and servers. In one example, the processors and servers include computer processors with associated memory and timing circuitry, not separately shown. The processors and servers are functional parts of the systems or devices to which they belong and are activated by, and facilitate the functionality of the other components or items in those systems.

Also, a number of user interface (UI) displays have been discussed. The UI displays can take a wide variety of different forms and can have a wide variety of different user actuatable input mechanisms disposed thereon. For instance, the user actuatable input mechanisms can be text boxes, check boxes, icons, links, drop-down menus, search boxes, etc. The mechanisms can also be actuated in a wide variety of different ways. For instance, the mechanisms can be actuated using a point and click device (such as a track ball or mouse). The mechanisms can be actuated using hardware buttons, switches, a joystick or keyboard, thumb switches or thumb pads, etc. The mechanisms can also be actuated using a virtual keyboard or other virtual actuators. In addition, where the screen on which the mechanisms are displayed is a touch sensitive screen, they can be actuated using touch gestures.

It will be noted the data stores can each be broken into multiple data stores.

<FIG> is a block diagram of machine <NUM> with machine control system <NUM>, shown in <FIG>, except that system <NUM> communicates with elements in a remote server architecture <NUM>. In an example, remote server architecture <NUM> can provide computation, software, data access, and storage services that do not require end-user knowledge of the physical location or configuration of the system that delivers the services. In various examples, remote servers can deliver the services over a wide area network, such as the internet, using appropriate protocols. For instance, remote servers can deliver applications over a wide area network and they can be accessed through a web browser or any other computing component. Software or components shown in previous FIGS. as well as the corresponding data, can be stored on servers at a remote location. The computing resources in a remote server environment can be consolidated at a remote data center location or they can be dispersed. Remote server infrastructures can deliver services through shared data centers, even though they appear as a single point of access for the user. Thus, the components and functions described herein can be provided from a remote server at a remote location using a remote server architecture. Alternatively, they can be provided from a conventional server, or they can be installed on client devices directly, or in other ways.

In the example shown in <FIG>, some items are similar to those shown in previous FIGS. and they are similarly numbered. <FIG> specifically shows that digital fence generation system <NUM> and operation envelope control system <NUM> and data store <NUM> can be located at a remote server location <NUM>. Therefore, the off-road machine accesses those systems through remote server location <NUM>.

<FIG> also depicts another example of a remote server architecture. <FIG> shows that it is also contemplated that some elements of previous FIGS. are disposed at remote server location <NUM> while others are not. By way of example, data store <NUM> can be disposed at a location separate from location <NUM>, and accessed through the remote server at location <NUM>. Regardless of where they are located, they can be accessed directly by the off-road machine, through a network (either a wide area network or a local area network), they can be hosted at a remote site by a service, or they can be provided as a service, or accessed by a connection service that resides in a remote location. Also, the data can be stored in substantially any location and intermittently accessed by, or forwarded to, interested parties. For instance, physical carriers can be used instead of, or in addition to, electromagnetic wave carriers. In such an example, where cell coverage is poor or nonexistent, another mobile machine (such as a fuel truck) can have an automated information collection system. As the off-road machine comes close to the fuel truck for fueling, the system automatically collects the information from the off-road machine using any type of ad-hoc wireless connection. The collected information can then be forwarded to the main network as the fuel truck reaches a location where there is cellular coverage (or other wireless coverage). For instance, the fuel truck may enter a covered location when traveling to fuel other machines or when at a main fuel storage location. All of these architectures are contemplated herein. Further, the information can be stored on the off-road machine until the off-road machine enters a covered location. The off-road machine, itself, can then send the information to the main network.

It will also be noted that the elements of previous FIGS. , or portions of them, can be disposed on a wide variety of different devices. Some of those devices include servers, desktop computers, laptop computers, tablet computers, or other mobile devices, such as palm top computers, cell phones, smart phones, multimedia players, personal digital assistants, etc..

<FIG> is a simplified block diagram of one illustrative example of a handheld or mobile computing device that can be used as a user's or client's hand held device <NUM>, in which the present system (or parts of it) can be deployed. For instance, a mobile device can be deployed in the operator compartment of tractor <NUM> for use in generating, processing, or displaying the collision points and position data. <FIG> are examples of handheld or mobile devices.

<FIG> provides a general block diagram of the components of a client device <NUM> that can run some components shown in previous FIGS. , that interacts with them, or both. In the device <NUM>, a communications link <NUM> is provided that allows the handheld device to communicate with other computing devices and under some embodiments provides a channel for receiving information automatically, such as by scanning. Examples of communications link <NUM> include allowing communication though one or more communication protocols, such as wireless services used to provide cellular access to a network, as well as protocols that provide local wireless connections to networks.

In other examples, applications can be received on a removable Secure Digital (SD) card that is connected to an interface <NUM>. Interface <NUM> and communication links <NUM> communicate with a processor <NUM> (which can also embody processors or servers from previous FIGS. ) along a bus <NUM> that is also connected to memory <NUM> and input/output (I/O) components <NUM>, as well as clock <NUM> and location system <NUM>.

I/O components <NUM>, in one example, are provided to facilitate input and output operations. I/O components <NUM> for various example of the device <NUM> can include input components such as buttons, touch sensors, optical sensors, microphones, touch screens, proximity sensors, accelerometers, orientation sensors and output components such as a display device, a speaker, and or a printer port. Other I/O components <NUM> can be used as well.

Memory <NUM> stores operating system <NUM>, network settings <NUM>, applications <NUM>, application configuration settings <NUM>, data store <NUM>, communication drivers <NUM>, and communication configuration settings <NUM>. Memory <NUM> can include all types of tangible volatile and non-volatile computer-readable memory devices. It can also include computer storage media (described below). Memory <NUM> stores computer readable instructions that, when executed by processor <NUM>, cause the processor to perform computer-implemented steps or functions according to the instructions. Processor <NUM> can be activated by other components to facilitate their functionality as well.

<FIG> shows one example in which device <NUM> is a tablet computer <NUM>. In <FIG>, computer <NUM> is shown with user interface display screen <NUM>. Screen <NUM> can be a touch screen or a pen-enabled interface that receives inputs from a pen or stylus. Computer <NUM> can also use an on-screen virtual keyboard. Of course, computer <NUM> might also be attached to a keyboard or other user input device through a suitable attachment mechanism, such as a wireless link or USB port, for instance. Computer <NUM> can also illustratively receive voice inputs as well.

<FIG> is one example of a computing environment in which elements of previous FIGS. , or parts of it, (for example) can be deployed. With reference to <FIG>, an example system for implementing some embodiments includes a general-purpose computing device in the form of a computer <NUM> programmed to operate as described above. Components of computer <NUM> may include, but are not limited to, a processing unit <NUM> (which can comprise processors or servers from previous FIGS. ), a system memory <NUM>, and a system bus <NUM> that couples various system components including the system memory to the processing unit <NUM>. The system bus <NUM> may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Memory and programs described with respect to previous FIGS. can be deployed in corresponding portions of <FIG>.

The computer <NUM> is operated in a networked environment using logical connections (such as a controller area network - CAN, local area network - LAN, or wide area network WAN) to one or more remote computers, such as a remote computer <NUM>.

Claim 1:
A machine control system (<NUM>) for an off-road machine (<NUM>), comprising:
a digital fence generation system (<NUM>) configured to generate a digital fence with a boundary (<NUM>) defining the periphery of a worksite (<NUM>) on which the off-road machine (<NUM>) operates;
a geographic location system (<NUM>) configured to detect a geographic location of the off-road machine (<NUM>);
a threshold distance comparison system (<NUM>) configured to determine that the off-road machine (<NUM>) is within a threshold distance of the boundary (<NUM>); the machine control system (<NUM>) being characterised in that it further comprises:
a boundary crossing detector (<NUM>) configured to determine, if the threshold distance comparison system (<NUM>) has determined that the machine (<NUM>) is within a threshold distance of the boundary (<NUM>), whether machine (<NUM>) could be steered in such a way that a projected collision point (<NUM>'-<NUM>') on a periphery of the off-road machine (<NUM>) would encroach on the boundary (<NUM>) and to generate an encroachment signal indicative of the determination; and
a limitation enforcement system (<NUM>) configured to control limitation of an operating envelope of the off-road machine (<NUM>) by limiting speed, heading and steering angle of the off-road machine (<NUM>) based on the encroachment signal to avoid colliding with the boundary (<NUM>).