Patent Description:
There are a wide variety of different types of work machines. Those work machines can include agricultural machines having controllable subsystem(s) that perform a variety of tasks on a worksite. The controllable subsystems are controlled by a control system responsive to user input (e.g., local or remote operators) and/or through automated processes. For example, a mobile work machine may operate in semi-autonomous or fully autonomous modes.

Some work machines can operate in autonomous or semi-autonomous modes in which aspects of the machine operation are controlled without requiring direct operator (or other user) input. The quality of work operations (referred to as "work quality") can be affected by speed of the machine. For example, but not by limitation, in the case of an agricultural harvesting machine, threshing efficiency decreases (e.g., crop loss increases) as the speed of the machine increases. Similarly, for an agricultural spraying machine, spraying performance (e.g., the amount of the spray pattern that hits the target area) decreases as the sprayer speed increases. These types of performance or work quality metrics are referred to as having an inverse relationship to machine speed.

The machine speed is often controlled manually by the operator or can be set by automated control schemes through setting a maximum throttle position. In many cases, these machine speed control approaches result in underperformance as the machine either travels too slowly over the worksite or travels too quickly resulting in low work quality. Thus, automated speed control approaches often do not result in high efficiency and work quality.

<CIT>, considered as generic, describes a prior art agricultural machine in which the size of a swath is detected and used to control propelling speed of a tractor pulling a loading wagon such that speed is increased when swath size reduces and vice versa.

<FIG> is a block diagram showing one example of a work machine architecture <NUM> that includes a mobile work machine <NUM>. Mobile work machine <NUM> can be any type of work machine that moves and performs agricultural tasks on a worksite.

Mobile work machine <NUM> also can include autonomous or semi-autonomous machines, such as robotic or self-driving vehicles. As noted above, examples of machine <NUM> can operate in a fully autonomous mode and/or a semi-autonomous mode in which an operator is on-board or nearby to perform one or more functions. These functions may include, for example without limitation, one or more of guidance, safeguarding, diagnosis, task monitoring, task control, or data recording.

While machine <NUM> is illustrated with a single box in <FIG>, machine <NUM> can include multiple machines (e.g., a towed implement towed by a support or towing machine <NUM>). In this example, the elements of machine <NUM> illustrated in <FIG> can be distributed across a number of different machines (represented by the dashed blocks in <FIG>).

Machine <NUM> includes a control system <NUM> configured to control a set of controllable subsystems <NUM> that perform operations on a worksite. For instance, an operator <NUM> can interact with and control work machine <NUM> through operator interface mechanism(s) <NUM>. Operator interface mechanism(s) <NUM> can include such things as a steering wheel, pedals, levers, joysticks, buttons, dials, linkages, etc. In addition, mechanism(s) <NUM> can include a display device that displays user actuatable elements, such as icons, links, buttons, etc. Where the device is a touch sensitive display, those user actuatable items can be actuated by touch gestures. Similarly, where mechanism(s) <NUM> includes speech processing mechanisms, then operator <NUM> can provide inputs and receive outputs through a microphone and speaker, respectively. Operator interface mechanism(s) <NUM> can include any of a wide variety of other audio, visual or haptic mechanisms.

Work machine <NUM> includes a communication system <NUM> configured to communicate with other systems or machines in architecture <NUM>. For example, communication system <NUM> can communicate with support machine <NUM>, other machines <NUM> (such as other machines operating on a same worksite as work machine <NUM>), remote computing system(s) <NUM>, and/or prior data collection system(s) <NUM>, either directly or over a network <NUM>. Network <NUM> can be any of a wide variety of different types of networks. For instance, network <NUM> can be a wide area network, a local area network, a near field communication network, a cellular communication network, or any of a wide variety of other networks, or combinations of networks.

Communication system <NUM> can include wired and/or wireless communication components, which can be substantially any communication system that can be used by the systems and components of machine <NUM> to communicate information to other items, such as between control system <NUM>, controllable subsystems <NUM>, and sensors <NUM>. In one example, communication system <NUM> communicates over a controller area network (CAN) bus (or another network, such as an Ethernet network, etc.) to communicate information between those items. This information can include the various sensor signals and output signals generated by the sensor variables and/or sensed variables.

A remote user <NUM> is illustrated as interacting with remote computing system <NUM>, such as to receive communications from or send communications to work machine <NUM> through communication system <NUM>. For example, but not by limitation, remote user <NUM> can receive communications, such as notifications, requests for assistance, etc., from work machine <NUM> on a mobile device.

System(s) <NUM> are configured to collect prior data that can be used by work machine <NUM> in performing a work assignment on a worksite. Prior data can be generated from a wide variety different types or sources, such as from aerial or satellite images, thermal images, etc. The prior data can be used to generate a model, such as a predictive map, that can be used to control work machine <NUM>. Examples of prior data include, but are not limited to, location conditions that identify various conditions that can affect operation of work machine <NUM>.

<FIG> also shows that work machine <NUM> includes in-situ data collection system <NUM>, one or more processors <NUM>, a data store <NUM>, and can include other items <NUM> as well. Sensors <NUM> can include any of a wide variety of sensors depending on the type of work machine <NUM>. For instance, sensors <NUM> can include material sensors <NUM>, position/route sensors <NUM>, speed sensors <NUM>, worksite imaging sensors <NUM>, orientation and/or inertial sensors <NUM>, and can include other sensors <NUM> as well.

Material sensors <NUM> are configured to sense material being moved, processed, or otherwise worked on by work machine <NUM>. In the case of an agricultural harvester, material sensors <NUM> include yield sensors. In-situ (or worksite) data (such as field data) can be obtained from sensors on the machine and/or sensors on a support machine that works in parallel with work machine <NUM>.

Position/route sensors <NUM> are configured to identify a position of work machine <NUM> and a corresponding route (e.g., heading) of work machine <NUM> as machine <NUM> traverses the worksite. Speed sensors <NUM> are configured to output a signal indicative of a speed of work machine <NUM>. Worksite imaging sensors <NUM> are configured to obtain images of the worksite, which can be processed, for example by in-situ data collection system <NUM>, to identify conditions of the worksite. Examples of conditions include, but are not limited to, terrain topology, terrain roughness, terrain soil conditions, obstacles that inhibit operation of work machine <NUM>, etc. In an example agricultural harvester, signals from worksite imaging sensors <NUM> can be used to identify crop characteristics, such as an expected yield, whether the crop being harvested is "downed", etc. In an example agricultural tiller, signals from worksite imaging sensors <NUM> can be used to identify a plugged or broken tillage tool, or residue buildup. In an example agricultural sprayer, signals from worksite imaging sensors <NUM> can be used to identify spray precision (e.g., how much of the target field area is covered by the spray). In an example agricultural planter, signals from worksite imaging sensors <NUM> can be used to identify seed singulation and spacing.

Sensors <NUM> are configured to detect an orientation and/or inertia of machine <NUM>. Sensors <NUM> can include accelerometers, gyroscopes, roll sensors, pitch sensors, yaw sensors, to name a few.

Control system <NUM> can include settings control component <NUM>, route control component <NUM>, a performance or work quality metric generator component <NUM>, a work quality-based speed control system <NUM>, and a display generator component <NUM>. Control system <NUM> can include other items <NUM>.

Performance metric generator component <NUM> and work quality-based machine speed control system <NUM> are discussed in further detail below. Briefly, however, component <NUM> is configured to generate performance metrics indicative of the operational performance of work machine <NUM>. The performance metrics indicate a quality of the work being performed by machine <NUM> on one or more dimensions. The performance metrics have an inverse relationship to machine speed. That is, the performance metric decreases (e.g., the work quality degrades) as machine speed increases. In one example, performance metric generator component <NUM> is configured to calculate a performance or work quality score for each of a plurality of different performance pillars (or performance categories) that can be used to characterize the operation of machine <NUM>. The performance categories can vary depending on the type of work machine and operations to be performed on the worksite. The particular performance pillars, and associated scores, are described in greater detail below.

Controllable subsystems <NUM> include propulsion subsystem <NUM>, steering subsystem <NUM>, material handling subsystem <NUM>, worksite operation subsystem <NUM>, one or more different actuators <NUM> that can be used to change machine settings, machine configuration, etc., and can include a wide variety of other systems <NUM>, some of which are described below.

Propulsion subsystem <NUM> includes an engine (or other power source) that drives a set of ground engaging traction elements, such as wheels or tracks. Steering subsystem <NUM> is configured to control a direction of machine <NUM> by steering one or more of the ground engaging traction elements.

Settings control component <NUM> can control one or more of subsystems <NUM> in order to change machine settings based upon the predicted and/or observed conditions or characteristics of the worksite. By way of example, in the case of an agricultural harvesting machine or combine, settings control component <NUM> can actuate actuators <NUM> that change the positioning of a header, the concave clearance, etc., based upon the predicted yield or biomass to be encountered by the machine. In the case of an agricultural tilling machine, settings control component <NUM> can control the positioning or down pressure on the tilling implement by controlling actuators <NUM>.

In one example, control of the traversal of machine <NUM> over the field can be automated or semi-automated, for example using an automated guidance system. For instance, route control component <NUM> is configured to guide machine <NUM> along a path across the field using the geographic position sensed by sensors <NUM>.

Subsystem <NUM> is configured to perform worksite operations while machine <NUM> traverses the field or other worksite. A field operation refers to any operation performed on a worksite or field. For example, in the case of an agricultural machine, worksite operations include field preparation (e.g., tilling), crop seed placement (e.g., planting), crop care (e.g., fertilizer spraying), harvesting, etc..

Data store <NUM> is configured to store data for use by machine <NUM>. For example, in agricultural applications the data can include field location data that identifies a location of the field to be operated upon by a machine <NUM>, field shape and topography data that defines a shape and topography of the field, crop location data that is indicative of a location of crops in the field (e.g., the location of crop rows), or any other data.

Further, where machine <NUM> is towed or otherwise supported by support machine <NUM>, machine <NUM> can include a data store <NUM> and one or more processors or servers <NUM>, and can include other items <NUM>.

Prior data collection system <NUM> illustratively collects worksite data, such as prior data corresponding to a target field to be operated upon by machine <NUM>. Briefly, by prior, it is meant that the data is formed or obtained beforehand, prior to the operation by machine <NUM>. The data generated by system <NUM> can be sent to machine <NUM> directly and/or can be stored in a data store <NUM> as prior data <NUM>. Control system <NUM> can use this data to control operation of one or more subsystems <NUM>.

As noted above, work machine <NUM> can take a wide variety of different forms.

<FIG> illustrates one example of an agricultural work machine. More specifically, <FIG> is a partial pictorial, partial schematic, illustration of a combine harvester (or combine) <NUM>.

It can be seen in <FIG> that combine <NUM> illustratively includes an operator compartment <NUM>, which can have a variety of different operator interface mechanisms, for controlling combine <NUM>, as will be discussed in more detail below. Combine <NUM> can include a set of front-end equipment that can include header <NUM>, and a cutter generally indicated at <NUM>. Combine <NUM> can also include a feeder house <NUM>, a feed accelerator <NUM>, and a thresher generally indicated at <NUM>. Thresher <NUM> illustratively includes a threshing rotor <NUM> and a set of concaves <NUM>. Further, combine <NUM> includes a separator <NUM> that includes a separator rotor. Combine <NUM> includes a cleaning subsystem (or cleaning shoe) <NUM> that, itself, includes a cleaning fan <NUM>, chaffer <NUM> and sieve <NUM>. The material handling subsystem in combine <NUM> can include (in addition to a feeder house <NUM> and feed accelerator <NUM>) discharge beater <NUM>, tailings elevator <NUM>, clean grain elevator <NUM> (that moves clean grain into clean grain tank <NUM>) as well as unloading auger <NUM> and spout <NUM>. Combine <NUM> can further include a residue subsystem <NUM> that can include chopper <NUM> and spreader <NUM>. Combine <NUM> has a propulsion subsystem that includes an engine (or other power source) that drives ground engaging wheels <NUM> or tracks, etc. It will be noted that combine <NUM> may also have more than one of any of the subsystems mentioned above (such as left and right cleaning shoes, separators, etc.).

In operation, and by way of overview, combine <NUM> illustratively moves through a field in the direction indicated by arrow <NUM>. As combine <NUM> moves, header <NUM> engages the crop to be harvested and gathers the crop toward cutter <NUM>. After the crop is cut, the crop is moved through a conveyor in feeder house <NUM> toward feed accelerator <NUM>, which accelerates the crop into thresher <NUM>. The crop is threshed by rotor <NUM> rotating the crop against concave <NUM>. The threshed crop is moved by a separator rotor in separator <NUM> where some of the residue is moved by discharge beater <NUM> toward the residue subsystem <NUM>. The residue can be chopped by residue chopper <NUM> and spread on the field by spreader <NUM>. In other implementations, the residue is simply dropped in a windrow, instead of being chopped and spread.

Grain falls to cleaning shoe (or cleaning subsystem) <NUM>. Chaffer <NUM> separates some of the larger material from the grain, and sieve <NUM> separates some of the finer material from the clean grain. Clean grain falls to an auger in clean grain elevator <NUM>, which moves the clean grain upward and deposits the clean grain in clean grain tank <NUM>. Residue can be removed from the cleaning shoe <NUM> by airflow generated by cleaning fan <NUM>. That residue can also be moved rearwardly in combine <NUM> toward the residue handling subsystem <NUM>.

Tailings can be moved by tailings elevator <NUM> back to thresher <NUM> where the tailings can be re-threshed. Alternatively, the tailings can also be passed to a separate rethreshing mechanism (also using a tailings elevator or another transport mechanism) where the tailings can be re-threshed as well.

<FIG> also shows that, in one example, combine <NUM> includes ground speed sensor <NUM>, one or more separator loss sensors <NUM>, a clean grain camera <NUM>, and one or more cleaning shoe loss sensors <NUM>. Ground speed sensor <NUM> illustratively senses the travel speed of combine <NUM> over the ground. This can be done by sensing the speed of rotation of the wheels, the drive shaft, the axel, or other components. The travel speed and position of combine <NUM> can also be sensed by a positioning system <NUM>, such as a global positioning system (GPS), a dead reckoning system, a LORAN system, or a wide variety of other systems or sensors that provide an indication of travel speed.

Cleaning shoe loss sensors <NUM> illustratively provide an output signal indicative of the quantity of grain loss by both the right and left sides of the cleaning shoe <NUM>. In one example, sensors <NUM> are strike sensors (or impact sensors) which count grain strikes per unit of time (or per unit of distance traveled) to provide an indication of the cleaning shoe grain loss. The strike sensors for the right and left sides of the cleaning shoe can provide individual signals, or a combined or aggregated signal. It will be noted that sensors <NUM> can include only a single sensor as well, instead of separate sensors for each shoe.

Separator loss sensor <NUM> provides a signal indicative of grain loss in the left and right separators. The sensors associated with the left and right separators can provide separate grain loss signals or a combined or aggregate signal. This can be done using a wide variety of different types of sensors as well. It will be noted that separator loss sensors <NUM> may also include only a single sensor, instead of separate left and right sensors.

It will also be appreciated that sensor and measurement mechanisms (in addition to the sensors already described) can include other sensors on combine <NUM> as well. For instance, the sensors can include a residue setting sensor that is configured to sense whether machine <NUM> is configured to chop the residue, drop a windrow, etc. The sensors can include cleaning shoe fan speed sensors that can be configured proximate fan <NUM> to sense the speed of the fan. The sensors can include a threshing clearance sensor that senses clearance between the rotor <NUM> and concaves <NUM>. The sensors include a threshing rotor speed sensor that senses a rotor speed of rotor <NUM>. The sensors can include a chaffer clearance sensor that senses the size of openings in chaffer <NUM>. The sensors can include a sieve clearance sensor that senses the size of openings in sieve <NUM>. The sensors can include a material other than grain (MOG) moisture sensor that can be configured to sense the moisture level of the material other than grain that is passing through combine <NUM>. The sensors can include machine setting sensors that are configured to sense the various configurable settings on combine <NUM>. The sensors can also include a machine orientation sensor that can be any of a wide variety of different types of sensors that sense the orientation or pose of combine <NUM>. Crop property sensors can sense a variety of different types of crop properties, such as crop type, crop moisture, and other crop properties. The sensors can also be configured to sense characteristics of the crop as the crop is being processed by combine <NUM>. For instance, the sensors can sense grain feed rate, as the grain travels through clean grain elevator <NUM>. The sensors can sense yield as mass flow rate of grain through elevator <NUM>, correlated to a position from which the grain was harvested, as indicated by position sensor <NUM>, or provide other output signals indicative of other sensed variables.

<FIG> is a block diagram showing one example of performance or work quality metric generator component <NUM>, in more detail. Briefly, component <NUM> is configured to generate quality metric(s) representing machine performance on any of a wide variety of criteria or categories, such as fuel consumption, productivity, power utilization, agricultural material loss (e.g., harvester residue percentage), agricultural material quality, to name a few. As discussed below, machine work quality can be generated based on machine data acquired by machine sensors, including imaging components such as cameras that acquire images of the field and/or the machine subsystems. For instance, in an example agricultural harvester, a camera can acquire images that provide information on residue percentage that is used by component <NUM> to generate a work quality metric for harvesting productivity. In another example of an agricultural tilling machine, a camera can acquire images that provide information on ground engagement of tilling tools, that is used by component <NUM> to generate a work quality metric for tilling productivity. In another example of an agricultural spraying machine, a camera can acquire images that provide information on work coverage area, that is used by component <NUM> to generate a work quality metric for sprayer productivity.

In the example shown in <FIG>, performance metric generator component <NUM> includes material lost/savings metric generator component <NUM>, material productivity metric generator component <NUM>, fuel economy metric generator component <NUM>, power utilization metric generator component <NUM>, overall metric generator component <NUM>, and component <NUM> can include a wide variety of other items <NUM> as well. Some ways of generating performance metrics are shown in more detail in co-pending <CIT>, <CIT>, <CIT>, <CIT>, <CIT> which are incorporated herein by reference.

Material loss/savings metric generator component <NUM> illustratively generates a metric indicative of material savings or loss that the machine <NUM> is experiencing. In the case of an agricultural harvesting machine, this can include grain loss or savings generated by sensing and combining items, such as the mass flow of crop through the harvester sensed by a mass flow sensor, tailings volume of tailings of output by the harvester using a volume sensor, crop type, the measured loss on the harvester using various loss sensors (such as separator loss sensors, cleaning shoe loss sensors, etc.), among others. The metric can be generated by performing an evaluation of the loss using fuzzy logic components and an evaluation of the tailings, also using fuzzy logic components. Based upon these and/or other considerations, loss/savings metric generator component <NUM> illustratively generates a loss/savings metric indicative of the performance of the machine, with respect to material loss/savings.

Material productivity metric generator component <NUM> uses the sensor signal generated by sensors on the machine to sense productivity of the machine. In the case of an agricultural harvester, component <NUM> illustratively uses the sensor signals generated by sensors on the machine to sense vehicle speed, mass flow of grain through the machine, and the machine configuration and generates an indication of crop yield and processes the crop yield to evaluate the crop yield against a productivity metric. For instance, a productivity metric plotted against a yield slope provides an output indicative of grain productivity. This is one example.

Fuel economy metric generator component <NUM> illustratively generates a fuel economy metric, based upon the productivity of the machine versus fuel consumption rate sensed by sensors on the machine. For example, in the case of an agricultural harvester, this can be based upon the throughput versus fuel consumption rate, a separator efficiency metric and also, based upon sensed fuel consumption, vehicle state, vehicle speed, etc. The fuel economy metric can be based on a combination of working (e.g., harvest) fuel efficiency and a non-productive fuel efficiency. These metrics may include, respectively, the efficiency of the machine during working operations and other, non-working operations (such as when idling, etc.).

Power utilization metric generator component <NUM> illustratively generates a power utilization metric based on sensor signals (or based on derived engine power used by the machine, that is derived from sensor signals). The sensors may generate sensor signals indicative of engine usage, engine load, engine speed, etc. The power utilization metric can indicate whether the machine could be more efficiently run at higher or lower power levels, etc..

Overall metric generator component <NUM> illustratively generates a metric that is based upon a combination of the various metrics output by components <NUM>-<NUM>. Component <NUM> illustratively provides a metric indicative of the overall operational performance of the machine.

<FIG> is a block diagram showing one example of display generator component <NUM>. Display generator component <NUM> illustratively generates a control interface display for operator <NUM>, or another user such as remote user <NUM>. The display can be an interactive display with user input mechanisms for interaction by operator <NUM>.

Display generator component <NUM> illustratively includes performance metric display generator <NUM>, machine detail display generator <NUM>, machine settings display generator <NUM>, setting adjustment display generator <NUM>, notification display generator <NUM>, display device controller <NUM> and component <NUM> can include a wide variety of other items <NUM>.

Performance metric display generator <NUM> illustratively generates display elements that display the performance metrics for a selected combine, or a group of combines (so that the performance metrics can be compared from one machine to the next). The metrics can be those described above with respect to performance metric generator component <NUM> on combine <NUM> and those generated by the various items on a remote analytics system.

Machine detail display generator <NUM> illustratively obtains various machine details (some of which will be described in greater detail below) for a machine under analysis and generates display elements that are indicative of the machine details. For instance, the machine detail display generator <NUM> can control communication system <NUM> to obtain near real time sensor signal values from sensors <NUM> on combine <NUM>, and generate display elements indicative of those sensor signal values. This is just one example.

Machine settings display generator <NUM> illustratively obtains the current machine settings for the combine <NUM> under analysis and generates display elements indicative of those machine settings. Some examples of this are shown and described below.

Setting adjustment display generator <NUM> illustratively generates a setting adjustment display, with setting adjustment actuators that can be actuated by user <NUM> in order to adjust the settings on the combine being analyzed, or on a set of combines. There are a variety of different adjustment actuators that can be used and some examples are described below.

Notification display generator <NUM> illustratively generates notification displays based upon notifications or alerts received from other items in architecture <NUM>. Generator <NUM> also displays those generated by the application running on user computing system <NUM>.

Display device controller <NUM> illustratively controls a display device on user computing system <NUM> in order to display the various elements and displays generated by the items <NUM>-<NUM>. Again, some examples of these are described in greater detail below.

<FIG> is a block diagram showing one example of work quality-based machine speed control system <NUM>. System <NUM> includes an in-situ data collection component <NUM>, an application detection component <NUM>, a work quality metric comparison component <NUM>, an operator presence detection component <NUM>, a lateral error detection component <NUM>, a terrain roughness detection component <NUM>, a machine path detection component <NUM>, and a speed setting change selection component <NUM>. System <NUM> can include one or more processors or servers <NUM>, and can include other items <NUM> as well. In-situ data collection component <NUM> is configured to collect or otherwise obtain data during the operation of work machine <NUM> on the worksite. This can include data from sensors <NUM> on machine <NUM>. For example, worksite imaging sensors <NUM> can obtain images of the worksite in a path of work machine <NUM> as well as operation of various subsystems <NUM>. For example, in-situ data collection component <NUM> can receive data from the various sensors discussed above with respect to <FIG>. In another example of an agricultural spraying machine, in-situ data collection component <NUM> can receive images indicating coverage of the spray nozzles relative to target areas on the field. In another example of an agricultural tilling machine, in-situ data collection component <NUM> can receive images from camera that detect whether the tillage tool has become plugged or is otherwise operating inefficiently. Suffice it to say that component <NUM> can receive any data that indicates operation of various aspects of machine <NUM>, either from on-board sensors or from remote sources such as remote imaging components, unmanned aerial vehicles (UAVs) or drones, other machines on the worksite, etc..

Application detection component <NUM> is configured to detect various aspects of the application being performed by machine <NUM> on the worksite. Illustratively, component <NUM> includes a worksite detector <NUM> configured to detect the worksite being operated upon by work machine <NUM>. For instance, in the case of an agricultural machine, this can include a field identifier that identifies the particular field and can be used to obtain data identifying the target worksite operations, machine path, etc. Component <NUM> can also include a machine detector <NUM> configured to detect the machine <NUM> operating on the worksite, and can include a task detector <NUM> configured to detect the various tasks to be performed by machine <NUM>. Component <NUM> can include other items <NUM> as well.

Task detector <NUM> can receive a work machine assignment, for example from remote system <NUM>, that indicates a starting location, a destination location and a path to be taken from the starting location to the destination location across the worksite. Task detector <NUM> can identify areas on the field at which the machine operations are to be performed (e.g., areas to be harvested, sprayed, tilled, planted, etc.).

Metric comparison component <NUM> is configured to compare a current metric value for a quality metric (representing a current performance characteristic of work machine <NUM>) to a target or threshold value, which can be set in any of a number of ways. This is discussed in further detail below. Briefly, however, component <NUM> is configured to determine whether work machine <NUM> is operating at a target performance on one or more performance dimensions (e.g., threshold efficiency, spraying efficiency, etc.).

Operator presence detection component <NUM> is configured to detect whether an operator is present on-board work machine <NUM>. For instance, in the case of combine <NUM>, component <NUM> is configured to detect whether an operator is present within operator compartment <NUM>. Operator presence detection can be accomplished in a number of ways. For instance, operator presence detection can be based on input from cameras that view the operator compartment, seat switches that detect operator presence based on switch depression, input or lack of input received from operator input mechanisms (i.e., whether an operator is engaging controls within the operator compartment), to name a few.

The lateral error detection component <NUM> is configured to detect lateral error, or the offset of machine <NUM> relative to the target path. In one example, lateral error detection can be based on a comparison of a current location of the machine as detected based on sensor signals from positions sensors <NUM> and a machine path defined in a work assignment.

Terrain roughness detection component <NUM> is configured to detect roughness of the terrain being operated upon by work machine <NUM>. As discussed below, detected roughness can be utilized to select a target machine speed based on a predefined or user selected ride quality or ride smoothness setting. As noted above, sensors <NUM> can detect pitch, roll, and yaw of machine <NUM>, as well as acceleration on multiple axes. Thus, pitch data during a sampling interval can be used to obtain pitch acceleration and roll data for the sampling interval can be used to obtain roll acceleration. A surface roughness estimator determines or estimates a surface roughness of the worksite area based on the detected motion data, pitch data, roll data, and/or other position or movement data. Alternatively, or in addition, image data of the worksite in a forward field of view of machine <NUM> can be collected, for example from worksite imaging sensors <NUM>. Based on the collected image data, a visual surface roughness index can be estimated for the area of the field in front of machine <NUM>.

The surface roughness could be measured in any of a number of ways. For instance, the data from sensors <NUM> can utilized to generate a surface roughness metric on a predefined scale (e.g., <NUM> to <NUM>). Based on machine speed, the field roughness can be correlated to an expected machine ride quality or roughness. For example, component <NUM> can estimate the precise attitude (e.g., yaw data, roll data, or both) of machine <NUM> as well as the current or predicted acceleration (e.g., in meters per second squared (m/s<NUM>) on any of a number of axes. The target terrain roughness can be set as a maximum attitude and/or acceleration of machine <NUM> and the machine speed can be selected to maintain the actual machine attitude and acceleration below the target set point(s). Further, when ride quality is utilized as a weighting constraint in generating the target machine speed, a target machine ride roughness can be set and the machine speed can be selected to maintain the machine ride quality below the target setting.

Machine path detection component <NUM> is configured to detect a path (e.g., current and/or future) of machine <NUM> over the worksite. Illustratively, component <NUM> includes a curvature lookahead component <NUM> configured to identify dimensions of curvature of the path ahead of machine <NUM>, which can be utilized in speed control. This is discussed in further detail below. Briefly, the radius or degree of curvature of the machine path can be utilized to identify a predicted effect on the performance metrics, as the machine enters the curvature, which in turn can be utilized to identify a target machine speed increase or decrease. Component <NUM> can include other items <NUM> as well.

Speed setting change selection component <NUM> is configured to identify and select changes to machine speed based on input from components of control system <NUM>. This is discussed in further detail below. Briefly, in one example, component <NUM> utilizes an output from work quality metric comparison component <NUM> that indicates a difference between a current metric value for a particular quality metric relative to a predefined or dynamically selected target value for that quality metric. Component <NUM> determines an amount at which the speed of machine <NUM> can be increased based on this comparison, along with an indication of terrain roughness and curvature lookahead.

Illustratively, component <NUM> includes a machine learning component <NUM> and a training component <NUM> configured to train machine learning component <NUM>. Component <NUM> can include other items <NUM> as well.

In one example, artificial intelligence (AI) can be utilized to identify machine capabilities, and to determine how to adjust machine settings to achieve work assignment criteria and the target work quality. The machine learning and training components can include a variety of different types of learning mechanisms, such as a neural network that is trained based on corresponding training logic using training data. Briefly, a neural network can include a deep neural network (DNN), such as a convolutional neural network (CNN). Of course, other types of classification or learning mechanisms, such as rule-based classifiers, Bayesian network, decision trees, etc. can be utilized.

Machine learning component <NUM> includes a machine learning model configured to determine an increase in machine speed <NUM> (e.g., to a maximum machine speed) that achieves the target work quality of machine <NUM>. The machine learning model can take into consideration inputs from external sensors, and can also consider ride quality parameters. For example, as discussed in further detail below, component <NUM> can weight the machine speed determination based on a ride quality parameter in response to a determination that an operator is present in the operator compartment.

The machine learning model thus models the effect of changes in machine speed on various machine performance categories given prior data and/or in-situ data collected in any of a number of ways. For instance, the in-situ data can represent field data, machine data, or any other types of data. The field data can indicate field characteristics, such as terrain slope, crop data, etc. The machine data can indicate settings of the machine. The machine learning model is trained to adjust the machine operating parameters based on these various inputs.

<FIG> and <FIG> (collectively referred to as <FIG>) provide a flow diagram illustrating one example of work quality-based machine speed control. For sake of illustration, but not by limitation, <FIG> will be described in the context of control system <NUM> shown in <FIG> controlling mobile work machine <NUM> shown in <FIG>.

At block <NUM>, the worksite and/or machine are identified. This can be done automatically, such as based on inputs from sensors <NUM> and/or remote computing system <NUM> (block <NUM>). For example, worksite detector <NUM> can receive a location signal from sensor <NUM> that indicates a current location of machine <NUM>, and detect the worksite being operated upon by machine <NUM>. Alternatively, or in addition, the worksite and/or machine can be identified based on manual input, as represented at block <NUM>. For example, operator <NUM> can provide inputs that identify the worksite to be operated upon by machine <NUM>.

At block <NUM>, one or more worksite tasks are identified. For example, as represented at block <NUM>, this can include obtaining a worksite assignment or mission plan from remote computing system <NUM>. A worksite assignment plan can identify a predefined path to be traversed by machine <NUM> over the worksite, as well as the various operations to be performed by machine <NUM>. For example, in the case of agricultural machines, a worksite assignment plan can include crop maps that identify crop rows to be harvested, yield maps, weed maps that identify weed locations to be sprayed, etc. The worksite tasks can be identified automatically, as represented at block <NUM>. This can include receiving the worksite tasks from remote computing system <NUM>, as represented at block <NUM>. Also, the worksite tasks can be identified based on manual input, such as by operator <NUM>, which is represented at block <NUM>.

At block <NUM>, worksite conditions can be identified. This can include weather conditions (block <NUM>) and terrain conditions (block <NUM>). Examples of terrain conditions include topology (block <NUM>) and/or terrain roughness (block <NUM>). Other terrain conditions (block <NUM>) can be identified as well. Of course, other worksite conditions can be identified, as represented at block <NUM>.

At block <NUM>, operator presence is detected by operator presence detection component <NUM>. As noted above, operator presence can be automatically detected, as represented at block <NUM>. For example, an operator compartment of machine <NUM> can include a seat switch that is depressed due to weight of the operator, which indicates whether the operator is sitting in the operator compartment seat. Also, imaging sensors, or other sensors, can be placed in the operator compartment to provide an indication as to whether the operator is present. Also, operator presence can be inferred based on receipt of input through the operator interface controls. Detection of operator presence based on manual input, is represented at block <NUM>.

At block <NUM>, one or more performance categories, or work quality metrics of interest, are selected. In one example, operator <NUM> selects a work quality metric of interest through operator interface mechanisms <NUM>. <FIG> illustrates one example of a user interface display <NUM> that can be displayed by operator interface mechanisms <NUM> and interacted with by operator <NUM>. Alternatively, or in addition, display <NUM> can be displayed to another user, such as remote user <NUM>.

As shown in <FIG>, user interface display <NUM> includes a performance category selection user input mechanism <NUM> that facilitates selection of a work quality metric (at block <NUM> in <FIG>) by operator <NUM>. In the example illustrated in <FIG>, input mechanism <NUM> includes a drop down box <NUM> that, which actuated, displays a list of possible performance categories from which the user can select the work quality metric of interest. In <FIG>, threshing efficiency for harvesting machine is selected and displayed in mechanism <NUM>.

Of course, the performance categories can depend on the type of machine being utilized. For example, in the case of an agricultural tilling machine, a performance category can include a measure of residue build-up on the ground-engaging tilling implements. In the case of an agricultural planting machine, a performance category can include seed singulation, that being an indication of the percentage of seeds that are placed with a desired seed spacing. In the case of an agricultural spraying machine, a performance category can include spraying accuracy, indicating the percent of target plants that are sprayed by spray nozzles of the machine. These target performance parameters can be defined in the worksite assignment plan obtained at block <NUM>, or can be obtained in other ways as well.

Referring again to <FIG>, at block <NUM> a machine learning model is obtained that corresponds to the selected performance category, selected at block <NUM>. Multiple different machine learning models can be obtained if multiple performance categories are selected at block <NUM>. As noted above, the machine learning model can be trained by training component <NUM> using training data as represented at block <NUM>. The machine learning model can include a neural network (block <NUM>), a deep machine learning system (block <NUM>), a clustering algorithm (block <NUM>), a Bayesian system (block <NUM>), or the model can include other machine learning models (block <NUM>).

At block <NUM>, a target metric value is selected or otherwise defined for the quality metric(s), selected at block <NUM>. The target metric value can be selected in any of a number of ways. The target metric value can be automatically selected at block <NUM>. For example, the target metric value can be selected based on input from remote computing system <NUM>, as indicated at block <NUM>. At block <NUM>, the target metric value can be selected based on manual input. For example, referring again to <FIG>, user interface display <NUM> includes a target metric value selection user input mechanism <NUM>, that allows operator <NUM> (or other user) to set a target metric value for the selected performance category/ies (i.e., threshing efficiency in the example of <FIG>). User input mechanism <NUM> can include any of a number of different types of user input mechanisms. For example, user input mechanism <NUM> can include a text box, a drop down box, a slider, or any other type of user input mechanism that allows the user to set the target or threshold metric value for the given performance category. In the example of <FIG>, the operator has set a target threshing efficiency of ninety-five percent using text box <NUM>.

Referring again to <FIG>, the target metric value can be selected in other ways as well, as represented at block <NUM>. At block <NUM>, one or more performance metric weighting parameters are identified. As noted above, this can include weighting parameters based on lateral offset of machine <NUM> relative to the desired or target machine path, as represented at block <NUM>. Also, the performance metric weighting parameters can include ride quality, as represented at block <NUM>, and can include other weighting parameters as represented at block <NUM>. The performance metric weighting parameters can be identified in any of a number of ways. In one example, the weighting parameters are input by the operator through operator interface mechanisms <NUM>.

With reference again to <FIG>, user interface display <NUM> includes user input mechanisms <NUM> that allow operator <NUM> to set the weighting parameters. In the example of <FIG>, a ride quality user input mechanism <NUM> allows the user to set a desired ride quality and a lateral offset user input mechanism <NUM> allows the operator to set a lateral offset sensitivity. The user input mechanisms can include any of a variety of different types of user input mechanisms. In the example of <FIG>, the user input mechanisms include slider mechanisms <NUM> and <NUM>, respectively, that each have a plurality of discrete slider positions that allow the operator to set the ride quality and lateral offset sensitivity between minimum and maximum settings.

Application of the performance metric weighting parameters in determining a target machine speed are discussed in further detail below. Briefly, however, the ride quality weighting parameter defines an extent to which ride quality of the operator is considered in determining how much to adjust machine speed, given the difference between the current performance parameters and the target performance parameters. For example, for a given difference between the current and target performance metrics, an increase of <NUM>,<NUM>/h (three miles per hour (MPH)) is selected for a minimum ride quality setting (i.e., ride quality has a low weighting effect on the machine speed selection) and whereas an increase of <NUM>,<NUM>/h (one MPH) is selected for a maximum ride quality setting (i.e., ride quality has a high weighting effect on the machine speed selection). Similarly, the lateral offset sensitivity can indicate a degree to which lateral offset is acceptable. During operation, higher machine speeds can increase the likelihood that the machine deviates from the machine path, resulting in lateral offset between the current machine location and the desired machine path.

Referring again to <FIG>, at block <NUM> in-situ data is received that indicates operating parameters of machine <NUM>. For example, the data can be received from on-board sensors, represented at block <NUM>. Alternatively, or in addition, as represented at block <NUM> in-situ data can be remotely sensed, such as by another machine on or proximate to the worksite. For instance, a UAV flying above the worksite can provide imaging data that indicates how machine <NUM> is performing to meet the work assignment or plan.

As discussed below, an indication of work quality can be based on machine data acquired by machine sensors, as represented at block <NUM>. For instance, in the example of combine <NUM>, machine data is received at block <NUM> based on input from the sensors discussed above with respect to <FIG>.

Alternatively, or in addition, work quality can be based on image data obtained from imaging sensors, as represented at block <NUM>. For instance, in an example agricultural harvester, a camera can acquire images that provide information on residue percentage. In another example of an agricultural tilling machine, a camera can acquire images that provide information on ground engagement of tilling tools. In another example of an agricultural spraying machine, a camera can acquire images that provide information on work coverage area.

Of course, in-situ data can be received in other ways as well, as represented at block <NUM>.

At block <NUM>, a current metric value is obtained for the quality metric of interest. In the illustrated example, the current metric value is obtained by applying the relevant performance metric generator(s), as represented at block <NUM>. In the example of <FIG>, if threshold efficiency is selected, performance metric generator component <NUM> utilizes material loss/savings metric generator component <NUM> to generate an indication of the amount of grain loss from the harvesting machine.

The current metric value can be generated based on prior data, such as data obtained from prior data collection systems <NUM> (block <NUM>) and/or in-situ data (block <NUM>) such as data obtained from sensors <NUM>. Of course, the current metric value can be obtained or generated in other ways as well, as represented at block <NUM>.

The current metric value can represent past or current performance of machine <NUM>, as well as predicted performance of machine <NUM> as it continues to travel the worksite. For example, in the case of combine <NUM> shown in <FIG>, the current metric value can indicate threshing efficiency over the last <NUM> (one hundred feet) traveled by combine <NUM>, and can be generated based on the various sensor signals discussed above with respect to <FIG>. Alternatively, or in addition, metric generator component <NUM> can predict the threshing efficiency over the next <NUM> (one hundred feet) to be traveled by combine <NUM>. For instance, component <NUM> can use yield maps and/or other data to predict how much grain will be lost at the current machine speed. This, of course, is by way of example only.

At block <NUM>, a target or suggested machine speed is determined based on the current metric value (obtained at block <NUM>) relative to the target metric value (obtained at block <NUM>). In one example, the target machine speed is determined based on setting change selection component <NUM> applying machine learning component <NUM> to determine a maximum increase in machine speed that will obtain a work quality metric that meets or exceeds the target metric value. This is represented at block <NUM>. For sake of illustration, but not by limitation, in the example shown in <FIG>, a current threshing efficiency of ninety-eight percent is obtained at block <NUM> and, at block <NUM>, the machine learning model determines that a <NUM>,<NUM>/h (one mile per hour) increase in machine speed will maintain the threshold efficiency at or above the target of ninety-five percent. This, of course, is for sake of example only.

Setting change selection component <NUM> can also select the target speed based on input from curvature lookahead component <NUM>. For example, if component <NUM> indicates that a sharp turn will be encountered by machine <NUM> in <NUM> (one hundred feet), and that the sharp turn will decrease the performance of machine <NUM>, component <NUM> can lower the selected target speed to minimum or mitigate the effect of the path curvature.

At block <NUM>, any weighting parameters, discussed above with respect to block <NUM>, are applied in determining the target machine speed. For instance, a lateral offset parameter, indicating a desired lateral offset sensitivity (an allowable amount of lateral offset), is used to weight the machine speed selection. For sake of example, if a relatively small amount of lateral offset (e.g., <NUM> (two feet)) is allowable, then the lateral offset is weighted more heavily to reduce the suggested machine speed. Conversely, if a relatively large amount of lateral offset (e.g., <NUM> (ten feet)) is allowable, then the lateral offset is weighted less heavily to increase the suggested machine speed.

In another example, if operator presence is detected based on input from component <NUM>, then setting change selection component <NUM> can weight ride quality based on indications of terrain roughness from terrain roughness detector component <NUM>. As noted above, component <NUM> can determine terrain roughness based on sensor signals from sensor(s) <NUM> (e.g., accelerometers, gyroscopes, imaging sensors, etc.). Alternatively, or in addition, component <NUM> can determine terrain roughness based on terrain maps. In any case, ride quality can be weighted to increase or decrease the target machine speed, depending on the desired smoothness of the ride experience by the operator. For example, based on the ride quality weighting parameter, a threshold (e.g., maximum) attitude and/or acceleration of machine <NUM> can be determined. Taking into account the indications of terrain roughness, machine learning model <NUM> can determine a maximum machine speed that maintains the machine attitude and/or acceleration below the threshold.

The machine speed can be determined in other ways as well, as represented at block <NUM>. At block <NUM>, control instructions are generated to control the machine based on the target machine speed. This can include controlling operator interface mechanisms <NUM> to generate a display (e.g., user interface display <NUM>), as represented at block <NUM>. Alternatively, or in addition, control system <NUM> can send an indication of the target machine speed to another machine, system, or device, as represented at block <NUM>. In another example, controllable subsystems <NUM> can be automatically controlled to obtain the target machine speed. For example, as illustrated at block <NUM>, propulsion subsystem <NUM> can be automatically controlled based on the target machine speed. Of course, machine <NUM> can be controlled in other ways as well, as represented at block <NUM>.

Referring again to <FIG>, user interface display <NUM> includes a display element <NUM> that indicates the current speed of machine <NUM> and a current speed set point display element <NUM> that indicates the current speed set point. For instance, display element <NUM> indicates the speed at which control system <NUM> is commanding propulsion subsystem <NUM> to propel machine <NUM> over the worksite.

User interface display <NUM> can include speed control user input mechanisms <NUM> that are actuatable to increase or decrease the speed set point. For instance, user input mechanism <NUM> can be actuated to increase or decrease the speed set point in <NUM>,<NUM>/h (one MPH) increments. Display <NUM> also includes a current performance metric display element <NUM> that indicates the current metric value. In the example of <FIG>, display element <NUM> indicates that machine <NUM> has a current threshing efficiency of ninety-eight percent.

Display <NUM> also includes a suggested speed adjustment display element <NUM> that indicates a suggested speed adjustment based on the target metric value indicated by display element <NUM> and the current metric value indicated by display element <NUM>. In the example of <FIG>, a <NUM>,<NUM>/h (one MPH) increase in speed is suggested given the current threshing efficiency of ninety-eight percent and the target threshing efficiency of ninety-five percent. In other words, speed setting change selection component <NUM> has determined that a <NUM>,<NUM>/h (one MPH) speed increase will maintain the threshing efficiency at or above the ninety-five percent target.

User interface display <NUM> includes a suggested speed selection user input mechanism <NUM> that is actuatable to apply the selected speed adjustment, represented by display element <NUM>. That is, actuation of element <NUM> will cause control system <NUM> to increase the speed of machine <NUM> by <NUM>,<NUM>/h (one MPH).

Display <NUM> can also include a performance category add user input mechanism <NUM> that is actuatable to add an additional performance category, if desired. For example, if operator <NUM> desires that a target threshing efficiency and a target material productivity metric are to be used in providing speed adjustments, operator <NUM> can actuate user input mechanism <NUM> to add additional performance category selection and target set point display elements, for the additional performance category.

Display <NUM> includes a maximum speed selection user input mechanism <NUM> that is actuatable by operator <NUM> to automatically apply selected speed adjustments. In the example of <FIG>, input mechanism <NUM> includes a check box that the user can toggle between automatic and manual speed adjustments. When automatic speed adjustments are selected, control system <NUM> is configured to automatically apply the suggested speed adjustments so that machine <NUM> traverses at the maximum speed that maintains the target metric values.

Also, as shown in <FIG>, display <NUM> can include a display element <NUM> that shows the performance metric over a given time window (ten minutes in the example of <FIG>) relative to the target set point represented by display line <NUM>. Also, display <NUM> can include a machine settings display element <NUM> that shows various other machine settings that can be interacted with to adjust those machine settings.

It can thus be seen that the present features provide a control system that provides machine speed control based on work quality metrics. The control system can operate the machine based on internal or external parameters, to provide improved performance and productivity, and can be utilized with autonomous, semi-autonomous, and/or operator-controlled machine operation.

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 the processors and servers belong and are activated by, and facilitate the functionality of the other components or items in those systems.

The user interface 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 user actuatable input mechanisms can be actuated in a wide variety of different ways. For instance, user actuatable input mechanisms can be actuated using a point and click device (such as a track ball or mouse). The user actuatable input mechanisms can be actuated using hardware buttons, switches, a joystick or keyboard, thumb switches or thumb pads, etc. The user actuatable input mechanisms can also be actuated using a virtual keyboard or other virtual actuators. In addition, where the screen on which the user actuatable input mechanisms are displayed is a touch sensitive screen, the user actuatable input mechanisms can be actuated using touch gestures. Also, where the device that displays them has speech recognition components, the user actuatable input mechanisms can be actuated using speech commands.

It will be noted the data stores can each be broken into multiple data stores. All of the data stores can be local to the systems accessing the data stores, all of the data stores can be remote, or some data stores can be local while others can be remote.

It will be noted that the above discussion has described a variety of different systems, components, logic, and interactions. It will be appreciated that any or all of such systems, components, logic and interactions may be implemented by hardware items, such as processors, memory, or other processing components, including but not limited to artificial intelligence components, such as neural networks, some of which are described below, that perform the functions associated with those systems, components, logic, or interactions. In addition, any or all of the systems, components, logic and interactions may be implemented by software that is loaded into a memory and is subsequently executed by a processor or server or other computing component, as described below. Any or all of the systems, components, logic and interactions may also be implemented by different combinations of hardware, software, firmware, etc., some examples of which are described below. These are some examples of different structures that may be used to implement any or all of the systems, components, logic and interactions described above. Other structures may be used as well.

<FIG> is a block diagram of one example of work machine architecture <NUM>, shown in <FIG>, where machine <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 the remote servers 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 the computing resources can be dispersed. Remote server infrastructures can deliver services through shared data centers, even though the services 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, the components and functions can be provided from a conventional server, or the components and functions 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 figures and the items are similarly numbered. <FIG> specifically shows system <NUM> from previous FIGS. can be located at a remote server location <NUM>. Therefore, machine <NUM>, machine <NUM>, machine <NUM>, and/or system <NUM> can access 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, one or more of data store <NUM> and system <NUM> can be disposed at a location separate from location <NUM>, and accessed through the remote server at location <NUM>. Regardless of where the systems and data stores are located, the systems and data stores can be accessed directly by machines <NUM>, <NUM>, and/or <NUM> through a network (either a wide area network or a local area network), the systems and data stores can be hosted at a remote site by a service, or the systems and data stores can be provided as a service, or accessed by a connection service that resides in a remote location. All of these architectures are contemplated herein.

It will also be noted that the elements of the 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 handheld device <NUM>, in which the present system (or parts of the present system) can be deployed. For instance, a mobile device can be deployed in the operator compartment of machine <NUM> and/or <NUM> for use in generating, processing, or displaying machine speed and performance metric 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 <FIG>, 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 other 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 embodiment, are provided to facilitate input and output operations. I/O components <NUM> for various embodiments 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.

Clock <NUM> illustratively includes a real time clock component that outputs a time and date. Clock <NUM> can also, illustratively, provide timing functions for processor <NUM>.

Location system <NUM> illustratively includes a component that outputs a current geographic location of device <NUM>. Location system <NUM> can also include, for example, mapping software or navigation software that generates desired maps, navigation routes and other geographic functions.

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. Memory <NUM> 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. Screen <NUM> can also use an on-screen virtual keyboard. Of course, screen <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 them, (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 discussed above. Components of computer <NUM> may include, but are not limited to, a processing unit <NUM> (which can include 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>.

By way of example, and not limitation, computer readable media may include computer storage media and communication media. Computer storage media includes hardware storage media including both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware components. For example, and without limitation, illustrative types of hardware components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (e.g., ASICs), Application-specific Standard Products (e.g., ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc..

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

It should also be noted that the different examples described herein can be combined in different ways. That is, parts of one or more examples can be combined with parts of one or more other examples. All of this is contemplated herein.

Claim 1:
A method of controlling a mobile agricultural machine (<NUM>; <NUM>), the method comprising:
detecting (<NUM>) a target value setting input identifying a target metric value for a quality metric representing a performance characteristic of the mobile agricultural machine (<NUM>; <NUM>) and having an inverse relationship to machine speed;
receiving (<NUM>) machine data indicative of operating parameters of the mobile agricultural machine (<NUM>; <NUM>);
generating (<NUM>), based on the machine data, a current metric value for the quality metric;
determining (<NUM>) a target machine speed based on the current metric value relative to the target metric value; and
outputting (<NUM>) a control instruction that controls a propulsion subsystem (<NUM>) configured to drive one or more ground engaging traction elements of the mobile agricultural machine (<NUM>; <NUM>) based on the target machine speed;
characterized by identifying a weighting parameter that defines an extent to which a ride quality parameter representing a desired smoothness of a ride experience by an operator of the agricultural machine and/or a lateral offset parameter representing a difference between a position of the mobile agricultural machine and a predefined path is considered in determining how much to adjust machine speed, given the difference between the current metric value and the target metric value; and
by determining a target machine speed based on applying the weighting parameter to the current metric value.