Patent Description:
Material costs and regulatory requirements limit how much agricultural treatment material (e.g., pesticide) can be applied to land. However, regulatory requirements often also limit the ability to trailer agricultural machines having full and/or partially full tanks. Using current systems, it is difficult to manage an amount of agricultural treatment material in a tank of a machine as the machine performs agricultural operations. Accordingly, users of agricultural machines must often dispose of agricultural treatment material when usage is overestimated, causing unnecessary material costs. Background art to the present disclosure can be found in <CIT>, which relates to a weed management system and method in a plantation field.

The present invention relates to a method for managing treatment fluid in a tank for a farming machine, according to claim <NUM>, a farming machine according to claim <NUM> and a system according to claim <NUM>. Historical information is accessed. The historical information describes a previous state of a field, previous environmental conditions for the field, and previous farming machine actions performed in the field. In some embodiments, the historical information may further describe a topography of the field. A tank management model is applied to the accessed historical information to determine an expected density of weeds within each of a plurality of portions within the field and an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion.

While the farming machine is treating plants in the field with treatment fluid, current information describing a current state of the field is accessed. The current information may be a quantification of current weed locations and current weed numbers. Alternatively, or additionally, the current information may include at least one of a soil moisture, a sun exposure, a wind exposure, a temperature, a relative humidity, or a pressure. In some embodiments, the current information may be obtained from a camera capturing images of the field, a sensor attached to the farming machine , or the like.

The tank management model is applied to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated. In some embodiments, applying the tank management model to the current information includes determining an actual weed density within one or more field portions based on the accessed information. In these embodiments, the updated amount of treatment fluid may be determined based on a comparison of the expected weed density within the field portions and the actual weed density within the one or more field portions.

The farming machine performs a modified plant treatment action based on the updated density of weeds and based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine and an updated amount of treatment fluid for treating plants within field portions that have not yet been treated. In some embodiments, the modified plant treatment action is updated based on the locations of weeds within field portions not yet treated and the distances between the weeds within the field portions not yet treated.

The modified plant treatment action may include a drive path of the farming machine. In these embodiments, the drive path may be determined by identifying, from the field portions not yet treated, a subset of field portions with a weed density confidence less than a weed density confidence threshold and a subset of field portions with a weed density confidence greater than a weed density confidence threshold. The drive path may be determined based on the subsets of field portions, and the farming machine may perform the modified treatment action along the drive path.

According to a first aspect of the disclosure, there is provided a method for managing treatment fluid in a tank of a farming machine: accessing historical information describing a previous state of a field, previous conditions for the field, and previous farming machine actions performed in the field; applying a tank management model to the accessed historical information to: determine, for each of a plurality of field portions, an expected density of weeds within the portion of the field, and determine an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion; while the farming machine is treating plants in the field with treatment fluid, accessing current information describing a current state of the field; applying the tank management model to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated; and performing, by the farming machine and based on the updated density of weeds, a modified plant treatment action based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine and an updated amount of treatment fluid for treating plants within the field portions that have not yet been treated.

Optionally, applying the tank management model to the accessed current information comprises: determining the updated amount of treatment fluid for the treatment of the plants within the field portions that have not yet been treated.

Optionally, the modified plant treatment action includes a drive path of the farming machine, the drive path determined by: identifying a first subset of field portions in the field portions that have not yet been treated with a weed density confidence less than a weed density confidence threshold; identifying a second subset of field portions in the fields portions that have not yet been treated with a weed density confidence greater than the weed density confidence threshold; and determining a drive path based on the first subset of field portions and the second subset of field portions; and wherein the farming machine performs the modified plant treatment action along the drive path.

Optionally, applying the tank management model to the current information further comprises: determining an actual weed density within one or more field portions of the plurality of field portions based on the accessed current information; and determining the updated amount of treatment fluid based on a comparison of the expected weed density within the plurality of field portions within the field and the actual weed density within the one or more field portions of the plurality of field portions.

Optionally, performing, a modified plant treatment comprises any of: varying a pressure of the treatment fluid, changing a vehicle speed of the farming machine, modifying a height of a boom of the farming machine; modifying a flow rate of the treatment fluid, or selecting a nozzle tip for the treatment fluid.

Optionally, the method further comprises: determining locations of weeds within the field portions that have not yet been treated; determining distances between the weeds within the field portions that have not yet been treated; and updating the modified plant treatment action based on the locations of the weeds within the field portions that have not yet been treated and the distances between the weeds within the field portions that have not yet been treated.

Optionally, the method further comprises: responsive to performing the modified plant treatment action, determining an updated remaining amount of treatment fluid within the tank; and determining an updated modified plant treatment action based on the updated remaining amount of treatment fluid within the tank.

Optionally, the current information describing the current state of the field is a quantification of current weed locations and current weed numbers.

Optionally, the current information describing the current state of the field include at least one of a soil moisture, a sun exposure, a wind exposure, a temperature, a relative humidity, or a pressure.

Optionally, accessing the current information describing the current state of the field comprises obtaining the current information from a camera capturing images of the field.

Optionally, accessing the current information describing the current state of the field comprises obtaining the current information from a sensor attached to the farming machine.

According to a second aspect of the disclosure, there is provided a farming machine configured to perform machine actions as the machine moves through an operational environment, the machine comprising: a plurality of mechanisms configured to perform machine actions as the machine travels through the operational environment; an image sensor to capture a single image of the operational environment as the machine moves through the operational environment; and a processor; and a non-transitory computer readable storage medium comprising instructions that, where executed by the processor, cause the processor to: access historical information describing a previous state of a field, previous environmental conditions for the field, and previous farming machine actions performed in the field; apply a tank management model to the accessed historical information to: determine, for each of a plurality of field portions, an expected density of weeds within the portion of the field, and determine an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion; while the farming machine is treating plants in the field with treatment fluid, access current information describing a current state of the field; apply the tank management model to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated; and perform, by the farming machine and based on the updated density of weeds, a modified plant treatment action based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine and an updated amount of treatment fluid for treating plants within the field portions that have not yet been treated.

Optionally, applying the tank management model to the current information further comprises: determining an actual weed density within one or more field portions of the plurality of field portions based on the accessed current information; and determining the updated amount of treatment fluid based on a comparison of the expected density within the plurality of field portions within the field and the actual weed density within the one or more field portions of the plurality of field portions.

Optionally, the farming machine further comprises: determining locations of weeds within the field portions that have not yet been treated; determining distances between the weeds within the field portions that have not yet been treated; and updating the modified plant treatment based on the locations of the weeds within the field portions that have not yet been treated and the distances between the weeds within the field portions that have not yet been treated.

According to a third aspect of the disclosure, there is provided a system, comprising: a computer processor; and a non-transitory computer-readable storage medium storing computer program instructions executable by the computer processor to perform steps of a farming machine travelling in a field, the steps comprising: access historical information describing a previous state of a field, previous environmental conditions for the field, and previous farming machine actions performed in the field; apply a tank management model to the accessed historical information to: determine, for each of a plurality of field portions, an expected density of weeds within the portion of the field, and determine an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion; while the farming machine is treating plants in the field with treatment fluid, access current information describing a current state of the field; apply the tank management model to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated; and perform, by the farming machine and based on the updated density of weeds, a modified plant treatment action based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine and an updated amount of treatment fluid for treating plants within the field portions that have not yet been treated.

A farming machine is configured to perform farming actions in a field, such as plant treatment actions, and the implemented farming actions are part of a dynamic tank management plan. To illustrate, the farming machine implements a farming action which applies a treatment (e.g., a spray treatment) to one or more plants, the ground, or the substrate (e.g., planting a seed) within a geographic area (e.g., a field).

Here, the plant treatment actions are included in a treatment plan to dynamically manage the plant treatment in a tank of the farming machine (e.g., a treatment fluid) in accordance with jurisdictional regulations on tank management. Treatments may be applied directly to a single plant, applied directly to multiple plants, applied indirectly to one or more plant, applied to the environment adjacent to one or more plants, or the like. After treatment application is complete, the amount of treatment in the tank of the farming machine will be in accordance with local and/or regional jurisdictional requirements (e.g., empty tank requirements for trailering a machine).

Agricultural managers ("managers") are responsible for managing farming operations in one or more fields. Managers work to implement a farming objective within those fields and select from among a variety of farming actions to implement that farming objective. Traditionally, managers are, for example, a farmer or agronomist that works the field but could also be other people and/or systems configured to manage farming operations within the field. For example, a manager could be an automated farming machine, a machine learned computer model, etc. In some cases, a manager may be a combination of the managers described above. For example, a manager may include a farmer assisted by a machine learned agronomy model and one or more automated farming machines or could be a farmer and an agronomist working in tandem.

Managers implement one or more farming objectives for a field. A farming objective is typically a macro-level goal for a field. For example, macro-level farming objectives may include treating crops with growth promotors, neutralizing weeds with growth regulators, harvesting a crop with the best possible crop yield, or any other suitable farming objective. However, farming objectives may also be a micro-level goal for the field. For example, micro-level farming objectives may include treating a particular plant in the field, repairing or correcting a part of a farming machine, requesting feedback from a manager, etc. Of course, there are many possible farming objectives and combinations of farming objectives, and the previously described examples are not intended to be limiting.

Faming objectives are accomplished by one or more farming machines performing a series of farming actions. Farming machines are described in greater detail below. Farming actions are any operation implementable by a farming machine within the field that works towards a farming objective. Consider, for example, a farming objective of harvesting a crop with the best possible yield. This farming objective requires a litany of farming actions, e.g., planting the field, fertilizing the plants <NUM>, watering the plants <NUM>, weeding the field, harvesting the plants, evaluating yield, etc. Similarly, each farming action pertaining to harvesting the crop may be a farming objective in and of itself. For instance, planting the field can require its own set of farming actions, e.g., preparing the soil, digging in the soil, planting a seed, etc..

In other words, managers implement a treatment plan in the field to accomplish a farming objective. A treatment plan is a hierarchical set of macro-level and/or micro-level objectives that accomplish the farming objective of the manager. Within a treatment plan, each macro or micro-objective may require a set of farming actions to accomplish, or each macro or micro-objective may be a farming action itself. So, to expand, the treatment plan is a temporally sequenced set of farming actions to apply to the field that the manager expects will accomplish the faming objective.

When executing a treatment plan in a field, the treatment plan itself and/or its constituent farming objectives and farming actions have various results. A result is a representation as to whether, or how well, a farming machine accomplished the treatment plan, farming objective, and/or farming action. A result may be a qualitative measure such as "accomplished" or "not accomplished," or may be a quantitative measure such as "<NUM> pounds harvested," or "<NUM> acres treated. " Results can also be positive or negative, depending on the configuration of the farming machine or the implementation of the treatment plan. Moreover, results can be measured by sensors of the farming machine, input by managers, or accessed from a datastore or a network.

Traditionally, managers have leveraged their experience, expertise, and technical knowledge when implementing farming actions in a treatment plan. In a first example, a manager may spot check weed pressure in several areas of the field to determine when a field is ready for weeding. In a second example, a manager may refer to previous implementations of a treatment plan to determine the best time to begin planting a field. Finally, in a third example, a manager may rely on established best practices in determining a specific set of farming actions to perform in a treatment plan to accomplish a farming objective.

Leveraging manager and historical knowledge to make decisions for a treatment plan affects both spatial and temporal characteristics of a treatment plan. For instance, farming actions in a treatment plan have historically been applied to entire field rather than small portions of a field. To illustrate, when a manager decides to plant a crop, she plants <NUM> the entire field instead of just a corner of the field having the best planting conditions; or, when the manager decides to weed a field, she weeds the entire field rather than just a few rows. Similarly, each farming action in the sequence of farming actions of a treatment plan are historically performed at approximately the same time. For example, when a manager decides to fertilize a field, she fertilizes the field at approximately the same time; or, when the manager decides to harvest the field, she does so at approximately the same time.

Notably though, farming machines have greatly advanced in their capabilities. For example, farming machines <NUM> continue to become more autonomous, include an increasing number of sensors and measurement devices, employ higher amounts of processing power and connectivity, and implement various machine vision algorithms to enable managers to successfully implement a treatment plan.

Because of this increase in capability, managers are no longer limited to spatially and temporally monolithic implementations of farming actions in a treatment plan. Instead, managers may leverage advanced capabilities of farming machines to implement treatment plans that are highly localized and determined by real-time measurements in the field. In other words, rather than a manager applying a "best guess" treatment plan to an entire field, they can implement individualized and informed treatment plans for each plant in the field.

A farming machine that implements farming actions of a treatment plan may have a variety of configurations, some of which are described in greater detail below.

<FIG> is an isometric view of a farming machine <NUM> that performs farming actions of a treatment plan, according to one example embodiment, and <FIG> is a top view of the farming machine <NUM> in <FIG>. <FIG> is an isometric view of another farming machine <NUM> that performs farming actions of a treatment plan, in accordance with one example embodiment.

The farming machine <NUM> includes a detection mechanism <NUM>, a treatment mechanism <NUM>, and a control system <NUM>. The farming machine <NUM> can additionally include a mounting mechanism <NUM>, a verification mechanism <NUM>, a power source, digital memory, communication apparatus, or any other suitable component that enables the farming machine <NUM> to implement farming actions in a treatment plan. Moreover, the described components and functions of the farming machine <NUM> are just examples, and a farming machine <NUM> can have different or additional components and functions other than those described below.

The farming machine <NUM> is configured to perform farming actions in a field <NUM>, and the implemented farming actions are part of a treatment plan. To illustrate, the farming machine <NUM> implements a farming action which applies a treatment to one or more plants <NUM> and/or the substrate <NUM> within a geographic area. Here, the treatment farming actions are included in a treatment plan to regulate plant growth. As such, treatments are typically applied directly to a single plant <NUM>, but can alternatively be directly applied to multiple plants <NUM>, indirectly applied to one or more plants <NUM>, applied to the environment <NUM> associated with the plant <NUM> (e.g., soil, atmosphere, or other suitable portion of the plant's environment adjacent to or connected by an environmental factors, such as wind), or otherwise applied to the plants <NUM>.

In a particular example, the farming machine <NUM> is configured to implement a farming action which applies a treatment that necroses the entire plant <NUM> (e.g., weeding) or part of the plant <NUM> (e.g., pruning). In this case, the farming action can include dislodging the plant <NUM> from the supporting substrate <NUM>, incinerating a portion of the plant <NUM> (e.g., with directed electromagnetic energy such as a laser), applying a treatment concentration of working fluid (e.g., fertilizer, hormone, water, etc.) to the plant <NUM>, or treating the plant <NUM> in any other suitable manner.

In another example, the farming machine <NUM> is configured to implement a farming action which applies a treatment to regulate plant growth. Regulating plant growth can include promoting plant growth, promoting growth of a plant portion, hindering (e.g., retarding) plant <NUM> or plant portion growth, or otherwise controlling plant growth. Examples of regulating plant growth includes applying growth hormone to the plant <NUM>, applying fertilizer to the plant <NUM> or substrate <NUM>, applying a disease treatment or insect treatment to the plant <NUM>, electrically stimulating the plant <NUM>, watering the plant <NUM>, pruning the plant <NUM>, or otherwise treating the plant <NUM>. Plant growth can additionally be regulated by pruning, necrosing, or otherwise treating the plants <NUM> adjacent to the plant <NUM>.

The farming machine <NUM> operates in an operating environment <NUM>. The operating environment <NUM> is the environment <NUM> surrounding the farming machine <NUM> while it implements farming actions of a treatment plan. The operating environment <NUM> may also include the farming machine <NUM> and its corresponding components itself.

The operating environment <NUM> typically includes a field <NUM>, and the farming machine <NUM> generally implements farming actions of the treatment plan in the field <NUM>. A field <NUM> is a geographic area where the farming machine <NUM> implements a treatment plan. The field <NUM> may be an outdoor plant field but could also be an indoor location that houses plants such as, e.g., a greenhouse, a laboratory, a grow house, a set of containers, or any other suitable environment <NUM>.

A field <NUM> may include any number of field portions. A field portion is a subunit of a field <NUM>. For example, a field portion may be a portion of the field <NUM> small enough to include a single plant <NUM>, large enough to include many plants <NUM>, or some other size. The farming machine <NUM> can execute different farming actions for different field portions. For example, the farming machine <NUM> may apply an herbicide for some field portions in the field <NUM>, while applying a pesticide in another field portion. Moreover, a field <NUM> and a field portion are largely interchangeable in the context of the methods and systems described herein. That is, treatment plans and their corresponding farming actions may be applied to an entire field <NUM> or a field portion depending on the circumstances at play.

The operating environment <NUM> may also include plants <NUM>. As such, farming actions the farming machine <NUM> implements as part of a treatment plan may be applied to plants <NUM> in the field <NUM>. The plants <NUM> can be crops but could also be weeds or any other suitable plant <NUM>. Some example crops include cotton, lettuce, soybeans, rice, carrots, tomatoes, corn, broccoli, cabbage, potatoes, wheat, or any other suitable commercial crop. The weeds may be grasses, broadleaf weeds, thistles, or any other suitable determinantal weed.

More generally, plants <NUM> may include a stem that is arranged superior to (e.g., above) the substrate <NUM> and a root system joined to the stem that is located inferior to the plane of the substrate <NUM> (e.g., below ground). The stem may support any branches, leaves, and/or fruits. The plant <NUM> can have a single stem, leaf, or fruit, multiple stems, leaves, or fruits, or any number of stems, leaves or fruits. The root system may be a tap root system or fibrous root system, and the root system may support the plant <NUM> position and absorb nutrients and water from the substrate <NUM>. In various examples, the plant <NUM> may be a vascular plant <NUM>, non-vascular plant <NUM>, ligneous plant <NUM>, herbaceous plant <NUM>, or be any suitable type of plant <NUM>.

Plants <NUM> in a field <NUM> may be grown in one or more plant <NUM> rows (e.g., plant <NUM> beds). The plant <NUM> rows are typically parallel to one another but do not have to be. Each plant <NUM> row is generally spaced between <NUM> inches and <NUM> inches apart when measured in a perpendicular direction from an axis representing the plant <NUM> row. Plant <NUM> rows can have wider or narrower spacings or could have variable spacing between multiple rows (e.g., a spacing of <NUM> in. between a first and a second row, a spacing of <NUM> in. a second and a third row, etc.).

Plants <NUM> within a field <NUM> may include the same type of crop (e.g., same genus, same species, etc.). For example, each field portion in a field <NUM> may include corn crops. However, the plants <NUM> within each field <NUM> may also include multiple crops (e.g., a first, a second crop, etc.). For example, some field portions may include lettuce crops while other field portions include pig weeds, or, in another example, some field portions may include beans while other field portions include corn. Additionally, a single field portion may include different types of crop. For example, a single field portion may include a soybean plant <NUM> and a grass weed.

The operating environment <NUM> may also include a substrate <NUM>. As such, farming actions the farming machine <NUM> implements as part of a treatment plan may be applied to the substrate <NUM>. The substrate <NUM> may be soil but can alternatively be a sponge or any other suitable substrate <NUM>. The substrate <NUM> may include plants <NUM> or may not include plants <NUM> depending on its location in the field <NUM>. For example, a portion of the substrate <NUM> may include a row of crops, while another portion of the substrate <NUM> between crop rows includes no plants <NUM>.

The farming machine <NUM> may include a detection mechanism <NUM>. The detection mechanism <NUM> identifies objects in the operating environment <NUM> of the farming machine <NUM>. To do so, the detection mechanism <NUM> obtains information describing the environment <NUM> (e.g., sensor or image data), and processes that information to identify pertinent objects (e.g., plants <NUM>, substrate <NUM>, persons, etc.) in the operating environment <NUM>. Identifying objects in the environment <NUM> further enables the farming machine <NUM> to implement farming actions in the field <NUM>. For example, the detection mechanism <NUM> may capture an image of the field <NUM> and process the image with a plant <NUM> identification model to identify plants <NUM> in the captured image. The farming machine <NUM> then implements farming actions in the field <NUM> based on the plants <NUM> identified in the image.

The farming machine <NUM> can include any number or type of detection mechanism <NUM> that may aid in determining and implementing farming actions. In some embodiments, the detection mechanism <NUM> includes one or more sensors. For example, the detection mechanism <NUM> can include a multispectral camera, a stereo camera, a CCD camera, a single lens camera, a CMOS camera, hyperspectral imaging system, LIDAR system (light detection and ranging system), a depth sensing system, dynamometer, IR camera, thermal camera, humidity sensor, light sensor, temperature sensor, or any other suitable sensor. Further, the detection mechanism <NUM> may include an array of sensors (e.g., an array of cameras) configured to capture information about the environment <NUM> surrounding the farming machine <NUM>. For example, the detection mechanism <NUM> may include an array of cameras configured to capture an array of pictures representing the environment <NUM> surrounding the farming machine <NUM>. The detection mechanism <NUM> may also be a sensor that measures a state of the farming machine <NUM>. For example, the detection mechanism <NUM> may be a speed sensor, a heat sensor, or some other sensor that can monitor the state of a component of the farming machine <NUM>. Additionally, the detection mechanism <NUM> may also be a sensor that measures components during implementation of a farming action. For example, the detection mechanism <NUM> may be a flow rate monitor, a grain harvesting sensor, a mechanical stress sensor etc. Whatever the case, the detection mechanism <NUM> senses information about the operating environment <NUM> (including the farming machine <NUM>).

A detection mechanism <NUM> may be mounted at any point on the mounting mechanism <NUM>. Depending on where the detection mechanism <NUM> is mounted relative to the treatment mechanism <NUM>, one or the other may pass over a geographic area in the field <NUM> before the other. For example, the detection mechanism <NUM> may be positioned on the mounting mechanism <NUM> such that it traverses over a geographic location before the treatment mechanism <NUM> as the farming machine <NUM> moves through the field <NUM>. In another examples, the detection mechanism <NUM> is positioned to the mounting mechanism <NUM> such that the two traverse over a geographic location at substantially the same time as the farming machine <NUM> moves through the filed. Similarly, the detection mechanism <NUM> may be positioned on the mounting mechanism <NUM> such that the treatment mechanism <NUM> traverses over a geographic location before the detection mechanism <NUM> as the farming machine <NUM> moves through the field <NUM>. The detection mechanism <NUM> may be statically mounted to the mounting mechanism <NUM>, or may be removably or dynamically coupled to the mounting mechanism <NUM>. In other examples, the detection mechanism <NUM> may be mounted to some other surface of the farming machine <NUM> or may be incorporated into another component of the farming machine <NUM>.

The farming machine <NUM> may include a verification mechanism <NUM>. Generally, the verification mechanism <NUM> records a measurement of the operating environment <NUM> and the farming machine <NUM> may use the recorded measurement to verify or determine the extent of an implemented farming action (i.e., a result of the farming action).

To illustrate, consider an example where a farming machine <NUM> implements a farming action based on a measurement of the operating environment <NUM> by the detection mechanism <NUM>. The verification mechanism <NUM> records a measurement of the same geographic area measured by the detection mechanism <NUM> and where farming machine <NUM> implemented the determined farming action. The farming machine <NUM> then processes the recorded measurement to determine the result of the farming action. For example, the verification mechanism <NUM> may record an image of the geographic region surrounding a plant <NUM> identified by the detection mechanism <NUM> and treated by a treatment mechanism <NUM>. The farming machine <NUM> may apply a treatment detection algorithm to the recorded image to determine the result of the treatment applied to the plant <NUM>.

Information recorded by the verification mechanism <NUM> can also be used to empirically determine operation parameters of the farming machine <NUM> that will obtain the desired effects of implemented farming actions (e.g., to calibrate the farming machine <NUM>, to modify treatment plans, etc.). For instance, the farming machine <NUM> may apply a calibration detection algorithm to a measurement recorded by the farming machine <NUM>. In this case, the farming machine <NUM> determines whether the actual effects of an implemented farming action are the same as its intended effects. If the effects of the implemented farming action are different than its intended effects, the farming machine <NUM> may perform a calibration process. The calibration process changes operation parameters of the farming machine <NUM> such that effects of future implemented farming actions are the same as their intended effects. To illustrate, consider the previous example where the farming machine <NUM> recorded an image of a treated plant <NUM>. There, the farming machine <NUM> may apply a calibration algorithm to the recorded image to determine whether the treatment is appropriately calibrated (e.g., at its intended location in the operating environment <NUM>). If the farming machine <NUM> determines that the farming machine <NUM> is not calibrated (e.g., the applied treatment is at an incorrect location), the farming machine <NUM> may calibrate itself such that future treatments are in the correct location. Other example calibrations are also possible.

The verification mechanism <NUM> can have various configurations. For example, the verification mechanism <NUM> can be substantially similar (e.g., be the same type of mechanism as) the detection mechanism <NUM> or can be different from the detection mechanism <NUM>. In some cases, the detection mechanism <NUM> and the verification mechanism <NUM> may be one in the same (e.g., the same sensor). In an example configuration, the verification mechanism <NUM> is positioned distal the detection mechanism <NUM> relative the direction of travel <NUM>, and the treatment mechanism <NUM> is positioned there between. In this configuration, the verification mechanism <NUM> traverses over a geographic location in the operating environment <NUM> after the treatment mechanism <NUM> and the detection mechanism <NUM>. However, the mounting mechanism <NUM> can retain the relative positions of the system components in any other suitable configuration. In some configurations, the verification mechanism <NUM> can be included in other components of the farming machine <NUM>.

The farming machine <NUM> can include any number or type of verification mechanism <NUM>. In some embodiments, the verification mechanism <NUM> includes one or more sensors. For example, the verification mechanism <NUM> can include a multispectral camera, a stereo camera, a CCD camera, a single lens camera, a CMOS camera, hyperspectral imaging system, LIDAR system (light detection and ranging system), a depth sensing system, dynamometer, IR camera, thermal camera, humidity sensor, light sensor, temperature sensor, or any other suitable sensor. Further, the verification mechanism <NUM> may include an array of sensors (e.g., an array of cameras) configured to capture information about the environment <NUM> surrounding the farming machine <NUM>. For example, the verification mechanism <NUM> may include an array of cameras configured to capture an array of pictures representing the operating environment <NUM>. Treatment mechanism(s).

The farming machine <NUM> may include a treatment mechanism <NUM>. The treatment mechanism <NUM> can implement farming actions in the operating environment <NUM> of a farming machine <NUM>. For instance, a farming machine <NUM> may include a treatment mechanism <NUM> that applies a treatment to a plant <NUM>, a substrate <NUM>, or some other object in the operating environment <NUM>. More generally, the farming machine <NUM> employs the treatment mechanism <NUM> to apply a treatment to a treatment area <NUM>, and the treatment area <NUM> may include anything within the operating environment <NUM> (e.g., a plant <NUM> or the substrate <NUM>). In other words, the treatment area <NUM> may be any portion of the operating environment <NUM>.

When the treatment is a plant treatment, the treatment mechanism <NUM> applies a treatment to a plant <NUM> in the field <NUM>. The treatment mechanism <NUM> may apply treatments to identified plants or non-identified plants. For example, the farming machine <NUM> may identify and treat a specific plant (e.g., plant <NUM>) in the field <NUM>. Alternatively, or additionally, the farming machine <NUM> may identify some other trigger that indicates a plant treatment and the treatment mechanism <NUM> may apply a plant treatment. Some example plant treatment mechanisms <NUM> include: one or more spray nozzles, one or more electromagnetic energy sources (e.g., a laser), one or more physical implements configured to manipulate plants, but other plant <NUM> treatment mechanisms <NUM> are also possible.

Additionally, when the treatment is a plant treatment, the effect of treating a plant <NUM> with a treatment mechanism <NUM> may include any of plant necrosis, plant growth stimulation, plant portion necrosis or removal, plant portion growth stimulation, or any other suitable treatment effect. Moreover, the treatment mechanism <NUM> can apply a treatment that dislodges a plant <NUM> from the substrate <NUM>, severs a plant <NUM> or portion of a plant <NUM> (e.g., cutting), incinerates a plant <NUM> or portion of a plant <NUM>, electrically stimulates a plant <NUM> or portion of a plant <NUM>, fertilizes or promotes growth (e.g., with a growth hormone) of a plant <NUM>, waters a plant <NUM>, applies light or some other radiation to a plant <NUM>, and/or injects one or more working fluids into the substrate <NUM> adjacent to a plant <NUM> (e.g., within a threshold distance from the plant). Other plant treatments are also possible. When applying a plant treatment, the treatment mechanisms <NUM> may be configured to spray one or more of: an herbicide, a fungicide, insecticide, some other pesticide, or water.

When the treatment is a substrate treatment, the treatment mechanism <NUM> applies a treatment to some portion of the substrate <NUM> in the field <NUM>. The treatment mechanism <NUM> may apply treatments to identified areas of the substrate <NUM>, or non-identified areas of the substrate <NUM>. For example, the farming machine <NUM> may identify and treat an area of substrate <NUM> in the field <NUM>. Alternatively, or additionally, the farming machine <NUM> may identify some other trigger that indicates a substrate <NUM> treatment and the treatment mechanism <NUM> may apply a treatment to the substrate <NUM>. Some example treatment mechanisms <NUM> configured for applying treatments to the substrate <NUM> include: one or more spray nozzles, one or more electromagnetic energy sources, one or more physical implements configured to manipulate the substrate <NUM>, but other substrate <NUM> treatment mechanisms <NUM> are also possible.

Of course, the farming machine <NUM> is not limited to treatment mechanisms <NUM> for plants <NUM> and substrates <NUM>. The farming machine <NUM> may include treatment mechanisms <NUM> for applying various other treatments to objects in the field <NUM>.

Depending on the configuration, the farming machine <NUM> may include various numbers of treatment mechanisms <NUM> (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, etc.). A treatment mechanism <NUM> may be fixed (e.g., statically coupled) to the mounting mechanism <NUM> or attached to the farming machine <NUM>. Alternatively, or additionally, a treatment mechanism <NUM> may movable (e.g., translatable, rotatable, etc.) on the farming machine <NUM>. In one configuration, the farming machine <NUM> includes a single treatment mechanism <NUM>. In this case, the treatment mechanism <NUM> may be actuatable to align the treatment mechanism <NUM> to a treatment area <NUM>. In a second variation, the farming machine <NUM> includes a treatment mechanism <NUM> assembly comprising an array of treatment mechanisms <NUM>. In this configuration, a treatment mechanism <NUM> may be a single treatment mechanism <NUM>, a combination of treatment mechanisms <NUM>, or the treatment mechanism <NUM> assembly. Thus, either a single treatment mechanism <NUM>, a combination of treatment mechanisms <NUM>, or the entire assembly may be selected to apply a treatment to a treatment area <NUM>. Similarly, either the single, combination, or entire assembly may be actuated to align with a treatment area, as needed. In some configurations, the farming machine <NUM> may align a treatment mechanism <NUM> with an identified object in the operating environment <NUM>. That is, the farming machine <NUM> may identify an object in the operating environment <NUM> and actuate the treatment mechanism <NUM> such that its treatment area aligns with the identified object.

A treatment mechanism <NUM> may be operable between a standby mode and a treatment mode. In the standby mode the treatment mechanism <NUM> does not apply a treatment, and in the treatment mode the treatment mechanism <NUM> is controlled by the control system <NUM> to apply the treatment. However, the treatment mechanism <NUM> can be operable in any other suitable number of operation modes.

The farming machine <NUM> includes a control system <NUM>. The control system <NUM> controls operation of the various components and systems on the farming machine <NUM>. For instance, the control system <NUM> can obtain information about the operating environment <NUM>, processes that information to identify a farming action to implement, and implement the identified farming action with system components of the farming machine <NUM>.

The control system <NUM> can receive information from the detection mechanism <NUM>, the verification mechanism <NUM>, the treatment mechanism <NUM>, and/or any other component or system of the farming machine <NUM>. For example, the control system <NUM> may receive measurements from the detection mechanism <NUM> or verification mechanism <NUM>, or information relating to the state of a treatment mechanism <NUM> or implemented farming actions from a verification mechanism <NUM>. Other information is also possible.

Similarly, the control system <NUM> can provide input to the detection mechanism <NUM>, the verification mechanism <NUM>, and/or the treatment mechanism <NUM>. For instance, the control system <NUM> may be configured input and control operating parameters of the farming machine <NUM> (e.g., speed, direction). Similarly, the control system <NUM> may be configured to input and control operating parameters of the detection mechanism <NUM> and/or verification mechanism <NUM>. Operating parameters of the detection mechanism <NUM> and/or verification mechanism <NUM> may include processing time, location and/or angle of the detection mechanism <NUM>, image capture intervals, image capture settings, etc. Other inputs are also possible. Finally, the control system may be configured to generate machine inputs for the treatment mechanism <NUM>. That is translating a farming action of a treatment plan into machine instructions implementable by the treatment mechanism <NUM>.

The control system <NUM> can be operated by a user operating the farming machine <NUM>, wholly or partially autonomously, operated by a user connected to the farming machine <NUM> by a network, or any combination of the above. For instance, the control system <NUM> may be operated by an agricultural manager sitting in a cabin of the farming machine <NUM>, or the control system <NUM> may be operated by an agricultural manager connected to the control system <NUM> via a wireless network. In another example, the control system <NUM> may implement an array of control algorithms, machine vision algorithms, decision algorithms, etc. that allow it to operate autonomously or partially autonomously.

The control system <NUM> may be implemented by a computer or a system of distributed computers. The computers may be connected in various network environments. For example, the control system <NUM> may be a series of computers implemented on the farming machine <NUM> and connected by a local area network. In another example, the control system <NUM> may be a series of computers implemented on the farming machine <NUM>, in the cloud, a client device and connected by a wireless area network.

The control system <NUM> can apply one or more computer models to determine and implement farming actions in the field <NUM>. For example, the control system <NUM> can apply a plant identification module to images acquired by the detection mechanism <NUM> to determine and implement farming actions. The control system <NUM> may be coupled to the farming machine <NUM> such that an operator (e.g., a driver) can interact with the control system <NUM>. In other embodiments, the control system <NUM> is physically removed from the farming machine <NUM> and communicates with system components (e.g., detection mechanism <NUM>, treatment mechanism <NUM>, etc.) wirelessly.

In some configurations, the farming machine <NUM> may additionally include a communication apparatus, which functions to communicate (e.g., send and/or receive) data between the control system <NUM> and a set of remote devices. The communication apparatus can be a Wi-Fi communication system, a cellular communication system, a short-range communication system (e.g., Bluetooth, NFC, etc.), or any other suitable communication system. Other Machine Components.

In various configurations, the farming machine <NUM> may include any number of additional components.

For instance, the farming machine <NUM> may include a mounting mechanism <NUM>. The mounting mechanism <NUM> provides a mounting point for the components of the farming machine <NUM>. That is, the mounting mechanism <NUM> may be a chassis or frame to which components of the farming machine <NUM> may be attached but could alternatively be any other suitable mounting mechanism <NUM>. More generally, the mounting mechanism <NUM> statically retains and mechanically supports the positions of the detection mechanism <NUM>, the treatment mechanism <NUM>, and the verification mechanism <NUM>. In an example configuration, the mounting mechanism <NUM> extends outward from a body of the farming machine <NUM> such that the mounting mechanism <NUM> is approximately perpendicular to the direction of travel <NUM>. In some configurations, the mounting mechanism <NUM> may include an array of treatment mechanisms <NUM> positioned laterally along the mounting mechanism <NUM>. In some configurations, the farming machine <NUM> may not include a mounting mechanism <NUM>, the mounting mechanism <NUM> may be alternatively positioned, or the mounting mechanism <NUM> may be incorporated into any other component of the farming machine <NUM>.

The farming machine <NUM> may include locomoting mechanisms. The locomoting mechanisms may include any number of wheels, continuous treads, articulating legs, or some other locomoting mechanism(s). For instance, the farming machine <NUM> may include a first set and a second set of coaxial wheels, or a first set and a second set of continuous treads. In the either example, the rotational axis of the first and second set of wheels/treads are approximately parallel. Further, each set is arranged along opposing sides of the farming machine <NUM>. Typically, the locomoting mechanisms are attached to a drive mechanism that causes the locomoting mechanisms to translate the farming machine <NUM> through the operating environment <NUM>. For instance, the farming machine <NUM> may include a drive train for rotating wheels or treads. In different configurations, the farming machine <NUM> may include any other suitable number or combination of locomoting mechanisms and drive mechanisms.

The farming machine <NUM> may also include one or more coupling mechanisms <NUM> (e.g., a hitch). The coupling mechanism <NUM> functions to removably or statically couple various components of the farming machine <NUM>. For example, a coupling mechanism may attach a drive mechanism to a secondary component such that the secondary component is pulled behind the farming machine <NUM>. In another example, a coupling mechanism may couple one or more treatment mechanisms <NUM> to the farming machine <NUM>.

The farming machine <NUM> may additionally include a power source, which functions to power the system components, including the detection mechanism <NUM>, control system <NUM>, and treatment mechanism <NUM>. The power source can be mounted to the mounting mechanism <NUM>, can be removably coupled to the mounting mechanism <NUM>, or can be incorporated into another system component (e.g., located on the drive mechanism). The power source can be a rechargeable power source (e.g., a set of rechargeable batteries), an energy harvesting power source (e.g., a solar system), a fuel consuming power source (e.g., a set of fuel cells or an internal combustion system), or any other suitable power source. In other configurations, the power source can be incorporated into any other component of the farming machine <NUM>.

<FIG> is a block diagram of the system environment for the farming machine <NUM>, in accordance with one or more example embodiments. In this example, the control system <NUM> (e.g., control system <NUM>) is connected to external systems <NUM> and a machine component array <NUM> via a network <NUM> within the system environment <NUM>.

The external systems <NUM> are any system that can generate data representing information relevant in the management of a tank of a farming machine <NUM>. External systems <NUM> may include one or more sensors <NUM>, one or more processing units <NUM>, and one or more datastores <NUM>. The one or more sensors <NUM> can measure the field <NUM>, the operating environment <NUM>, the farming machine <NUM>, etc. and generate data representing those measurements. For instance, the sensors <NUM> may include a rainfall sensor, a wind sensor, heat sensor, a camera, etc. The processing units <NUM> may process measured data to provide additional information that may aid management of the tank in the field. For instance, a processing unit <NUM> may access an image of a field <NUM> and calculate a weed pressure from the image or may access historical weather information for a field <NUM> to generate a spray forecast for the field. Datastores <NUM> store historical information regarding the farming machine <NUM>, the operating environment <NUM>, the field <NUM>, etc. that may be relevant in the management of a tank of a farming machine <NUM>. For instance, the datastore <NUM> may store results of previously implemented treatment plans and farming actions for a field <NUM>, a nearby field, and or the region. The historical information may have been obtained from one or more farming machines (i.e., measuring the result of a farming action from a first farming machine with the sensors of a second farming machine). Further, the datastore <NUM> may store results of specific faming actions in the field <NUM>, or results of farming actions taken in nearby fields having similar characteristics. The datastore <NUM> may also store historical weather, flooding, field use, planted crops, etc. for the field and the surrounding area. Finally, the datastores <NUM> may store any information measured by other components in the system environment <NUM>.

The machine component array <NUM> includes one or more components <NUM>. Components <NUM> are elements of the farming machine <NUM> that can take farming actions (e.g., a treatment mechanism <NUM>). As illustrated, each component has one or more input controllers <NUM> and one or more sensors <NUM>, but a component may include only sensors <NUM> or only input controllers <NUM>. An input controller <NUM> controls the function of the component <NUM>. For example, an input controller <NUM> may receive machine commands via the network <NUM> and actuate the component <NUM> in response. A sensor <NUM> generates data representing measurements of the operating environment <NUM> and provides that data to other systems and components within the system environment <NUM>. The measurements may be of a component <NUM>, the farming machine <NUM>, the operating environment <NUM>, etc. For example, a sensor <NUM> may measure a configuration or state of the component <NUM> (e.g., a setting, parameter, power load, etc.), measure conditions in the operating environment <NUM> (e.g., moisture, temperature, etc.), capture information representing the operating environment <NUM> (e.g., images, depth information, distance information), and generate data representing the measurement(s).

The control system <NUM> receives information from external systems <NUM> and the machine component array <NUM> and implements a treatment plan in a field with a farming machine. In particular, the control system <NUM> employs tank management module <NUM> to dynamically manage one or more tanks of the farming machine <NUM> using information received from the external systems <NUM> and the machine component array <NUM>. The tank management module <NUM> is described in greater detail below in regard to <FIG>.

The network <NUM> connects nodes of the system environment <NUM> to allow microcontrollers and devices to communicate with each other. In some embodiments, the components are connected within the network as a Controller Area Network (CAN). In this case, within the network each element has an input and output connection, and the network <NUM> can translate information between the various elements. For example, the network <NUM> receives input information from the camera array <NUM> and component array <NUM>, processes the information, and transmits the information to the control system <NUM>. The control system <NUM> generates a farming action based on the information and transmits instructions to implement the farming action to the appropriate component(s) <NUM> of the component array <NUM>.

Additionally, the system environment <NUM> may be other types of network environments and include other networks, or a combination of network environments with several networks. For example, the system environment <NUM>, can be a network such as the Internet, a LAN, a MAN, a WAN, a mobile wired or wireless network, a private network, a virtual private network, a direct communication line, and the like.

As described above, the farming machine <NUM> and the system environment <NUM> include components configured to dynamically manage the tank of a farming machine as part of a treatment plan. <FIG> is a block diagram of a tank management module <NUM> for tank management, according to one embodiment. In the embodiment shown, the tank management module <NUM> includes a treatment module <NUM>, a plant treatment action module <NUM>, a controller feedback module <NUM>, field datastores <NUM>, and plant treatment action datastores <NUM>. In alternative embodiments, the tank management module <NUM> may include different and/or additional components. In addition, the functionality of each of the components may be distributed in a different manner than to that described herein.

The treatment module <NUM> determines an amount of material (i.e., treatment material) required to treat one or more field portions. The treatment module <NUM> may determine an amount of material required based on historical information associated with the field. Historical information may include, but is not limited to, a previous state of a field, previous conditions for the field, previous farming machine <NUM> actions performed in the field, historical information associated with adjacent fields, historical information associated with field having similar geography and/or topographies as the field, historical information associated with field used to plant, harvest, and/or process similar crops to the field, or the like.

Historical information describing a previous state of the field may include data describing a type of crop planted in the field; a treatment status of the field (e.g., complete, partially complete, incomplete, etc.); types of treatment applied to the field during planting, harvesting, and/or processing the field; processing techniques implemented; irrigation schemes used to irrigate the field; crop rotation schemes; or the like. Previous conditions of the field may include previous environmental conditions, such as temperature, relative humidity, sun exposure, air pressure, soil composition, soil acidity, botany, etc. Previous farming actions may include any farming action implemented during planting, harvesting, and/or processing a crop from a portion of a field, such as treatment application, irrigation, harvesting, tilling, etc. For example, data describing previous farming actions performed in the field may include treatment data resulting from a treatment applied to one or more field portions during the planting of a field. Treatment data includes types of treatment applied (e.g., herbicides, pesticides, fungicides, irrigation, etc.), amounts of treatment applied, frequency of treatment application(s), status of treatment applied (e.g., complete, partially complete, incomplete), etc..

Historical information may be collected from one or more sensors of the farming machine <NUM> (e.g., an array sensor <NUM>), one or more external sensors <NUM>, or the like. Historical information may be accessed from one or more databases of the tank management module <NUM>, one or more databases connected to the farming machine <NUM> through the network <NUM>, etc. In addition, historical information may be updated at predetermined frequencies, in response to a request from a user, in response to an indication that a farming action was performed on a portion of a field, or the like.

To determine an amount of material required for treatment of a portion of a field, the treatment module <NUM> may apply the historical data to a tank management model that is configured to predict an amount of treatment required to treat a portion of a field. The tank management model may be a trained machine learning model, a heuristic, a statistical model, an algorithm, or the like. Examples include, but are not limited to, linear regression models, logistic regression models, random forest classifiers, neural networks, ANOVA, principal component analysis, decision trees, support vector machines, boosting for other algorithms (e.g., AdaBoost), clustering models, naive Bayes classifiers, memory-based learning, bagged trees, boosted stump, etc..

In some embodiments, the treatment module <NUM> determines an amount of material required for treatment of a portion of a field based on an expected and/or actual weed density in the portion of the field. A weed density is a number of weeds in an area of land. The size of the area of land may vary based on user preferences. For example, a weed density may reflect a number of weeds in a field, a number of weeds in a portion of a field, a number of weeds in a substrate, etc., selected by a user of the farming machine <NUM>, predetermined by the farming machine <NUM>, recommended by the farming machine <NUM>, etc..

In addition, a weed density may be weed-species specific. For example, an area of land (e.g., a field portion) may be associated with a first weed density associated with a first weed species and a second weed density associated with a second weed species. An expected weed density is a predicted measure of weed density for one or more field portions. An expected weed density may be associated with a weed density confidence, indicating a likelihood an area associated with the expected weed density has the weed density. For example, a portion of a field may have an expected weed density of a hundred weeds per acre with a seventy percent confidence. An actual weed density may be an observed, measured, and/or calculated density of weeds within one or more field portions.

The treatment module <NUM> may predict an expected weed density using the tank management model. In these embodiments, the tank management model may predict an expected weed density for a portion of the field and a required amount of treatment of a portion of the field concurrently, consecutively, or a combination thereof. For example, the tank management model may first predict an expected weed density for a portion of a field and then predict an amount of treatment required for the portion of the field based, in part, on the expected weed density. In addition, the tank management model may determine a corresponding weed density confidence for each predicted expected weed density.

The tank management model may predict expected weed densities based on the accessed historical information, sensor data (e.g., image data obtained from one or more camera), or the like. Alternatively, or additionally, the treatment module <NUM> may predict an expected weed density using a separate weed density model, such as a separate machine learning model, statistical model, heuristic, or the like. In these embodiments, the output from the weed density model may be further input to the tank management model used to predict an amount of treatment required to treat a portion of a field. The weed density model may predict expected weed densities based on historical information of the field, historical environmental weather, historical geography weather, historical botany, sensor data, or the like.

The treatment module <NUM> may determine an actual weed density using sensor data collected from the field, such as image data obtained from a camera. Sensor data may be obtained from one or more sensors of the tank management module <NUM> (e.g., an array sensor <NUM>), external sensors <NUM>, or the like. In these embodiments, the actual weed density data may be further input to the tank management model to predict an amount of treatment required to treat a portion of the field. In some embodiments, the treatment module <NUM> may determine an actual weed density for one or more field portions and predict an updated expected weed density for one or more additional field portions. For example, the treatment module <NUM> may determine an actual weed density in a representative portion of the field and extrapolate the weed densities in different field portions based on the determined actual density, the location of the different portions in the field, the topographies of the field portions, the geographies of the field portions, the geometries of the field portions, the crops planted in the field portions, or the like.

In some embodiments, the treatment module <NUM> may determine an updated weed density of field portions based on current data describing a current state of the field. Current data may include a soil moisture, a sun exposure, a wind exposure, a temperature, a relative humidity, a pressure, etc. of one or more field portions. Current data may also include actual weed densities from one or more field portions, as described above. Current data may be accessed while the farming machine <NUM> is treating one or more field portions. For example, the farming machine <NUM> may begin treating one or more field portions based on the expected density. Concurrently, one or more sensors may measure the one or more field portions being treated. The farming machine <NUM> may access the current data obtained from the one or more sensors, such as a camera capturing images of the field. The one or more sensors capturing current data may include a sensor measuring the field that is attached to the farming machine <NUM>, a sensor that is external to the farming machine <NUM>, a combination thereof, or the like. The tank management module <NUM> may apply the current data to the tank management model to predict updated weed densities within field portions, such as field portions not yet treated.

In some embodiments, the treatment module <NUM> determines an amount of material required for treatment of a portion of a field based, in part, on the location of weeds within the field and/or buffers around the weeds within the field. As discussed above, the amount of material required to treat an area may be based on the weed density, a number of weeds in an area of land. For example, an acre of a field covered in <NUM>% weeds may require less herbicide than an acre of a field covered in <NUM>% weeds. Alternatively, or additionally, the amount of material required to treat an area may be based on the location of the weeds within the field and/or a buffer around each weed. A buffer is an area around a weed in which treatment is applied. The size and/or shape of a buffer may vary based on weed species, user preferences, jurisdictional regulations, buffer recommendations determined by the farming machine <NUM>, or the like. Depending on the size of the buffer and/or the location of the weeds, weeds may be located within the buffers of adjacent weeds. When weeds are within the buffers of adjacent weeds, less material may be required overall because weeds will receive residual spray applied to neighboring weeds. When the weeds are not within the buffers of adjacent weeds, more material may be required because weeds will not receive residual spray applied to neighboring weeds. As an example, two fields of similar size may each by covered in <NUM>% weeds. However, a majority of the weeds in the first of the two fields may be located within one portion of the field and the majority of weeds in the second field may be distributed across all portions of the second field. Thus, weeds in the first field are more likely to be located in the buffers of adjacent weeds than weeds in the second field. Accordingly, more herbicide may be required to treat the weeds in the second field than the first field.

Additionally, the treatment module <NUM> can determine an amount of treatment material based on the treatment material itself. That is, the tank management module <NUM> may store exemplary treatment parameters for each treatment material and determine amounts of treatment material based on the exemplary treatment parameters. Some stored treatment parameters may include maximum or minimum treatment densities, maximum or minimum treatment flow rates, maximum of minimum total density per unit time, etc. Moreover, the treatment parameters may be used to constrain any interpolation or modelling of data from the other methods described herein. In this manner, the treatment module can generate treatment actions for tank management that adhere to jurisdictional limits.

The plant treatment action module <NUM> determines a plant treatment action for the farming machine <NUM> to perform for tank management of the farming machine <NUM>. Plant treatment actions include, but are not limited to, application of treatment material to a field, a portion of a field, a substrate, or a plant. Plant treatment actions may include how treatment is applied. For example, the plant treatment action module <NUM> may determine an application rate of treatment, how an application rate is controlled, which mixes of treatment to apply, size and/or geometries of buffer zones around each weed, or the like, for each plant treatment action. Application rates may be controlled based on a spray rate, a spray pressure, a speed of the farming machine <NUM>, etc..

Plant treatment actions may also include how the farming machine <NUM> operates during implementation of a plant treatment action. For example, the plant treatment action module <NUM> may determine a drive path of a farming machine <NUM> along which the farming machine <NUM> operates during treatment application, an amount of material to fill one or more tanks of the farming machine <NUM>, a number of tanks to fills, a nozzle type, or the like. Additional plant treatment actions for dynamically managing the tank of the farming machine <NUM> may include varying pressure, vehicle speed, boom height, flow rate, and selecting different nozzle tips (i.e., managing the amount of liquid exiting the tank). Moreover, the level of granularity of a plant treatment action may vary. In some embodiments, the plant treatment action module <NUM> may determine a different plant treatment actions for each field, each portion of a field, each substrate within a field, each plant within a field, or the like.

In some embodiments, the plant treatment action module <NUM> identifies a drive path of a farming machine <NUM> such that a tank of the farming machine <NUM> is empty upon completion of field treatment, empty upon arrival at a tendering station of a field, empty and/or partially empty on sensitive areas of the field (e.g., area of the field with reduced loading threshold, areas of the field with steep inclines, etc.), or the like. In one example drive path, a farming machine <NUM> makes an initial pass of one or more field portions to sample the field and makes one or more additional passes to apply treatment to the field portions. In another example drive path, a farming machine <NUM> makes an initial pass around the entirety of the field to apply a first round of treatment and makes one or more additional passes to apply additional treatment to different field portions based on determined actual weed density, an amount of treatment remaining in the tank of the farming machine <NUM>, etc. In another example drive path, the farming machine <NUM> may first apply treatment to an inner portion of the field and then sequentially apply treatment to the perimeter of the field. In this example, the farming machine <NUM> may broadcast any remaining treatment material in the tank of the farming machine <NUM> such that it is empty upon completion of treatment application. Broadcast spraying indicates engaging every treatment mechanism <NUM> of the farming machine <NUM> to spray all of the corresponding treatment areas <NUM> (rather than specific treatment mechanisms <NUM> spraying identified plants <NUM> in specific treatment areas <NUM>).

In another example drive path, a farming machine <NUM> applies treatment to field portions having a sloping angle less than a threshold sloping angle and then apply treatment to portion of the field having a sloping angle greater than or equal to a threshold sloping angle. In another example drive path, a farming machine <NUM> applies a first treatment to field portions in a first pass and a second treatment to portion of the field in a second path. In a further example drive path, a farming machine <NUM> applies a treatment to field portions with a first nozzle in a first pass and the treatment to field portions with a second nozzle in a second pass. For example, the farming machine <NUM> may spray specific plants with a fine nozzle in a first pass and may broadcast the contents of a tank of the farming machine <NUM> with a wide nozzle in a second pass.

The plant treatment action module <NUM> may determine a plant treatment action based on the output of the treatment module <NUM>, such as expected weed densities of field portions, actual weed densities of field portions, required material amounts for field portions, or the like. In addition, the plant treatment action may be based on one or more goals of a user of the farming machine <NUM>, such as emptying the tank upon treatment completion of the field, reducing the material costs, environmental goals, yield goals, or the like. The plant treatment action may be further based on the type of treatment being applied, jurisdictional requirements, the types of crop planted, environmental conditions, etc..

The plant treatment action module <NUM> may update one or more plant treatment actions as a field is being treated. The plant treatment action module <NUM> may update a plant treatment action based on differences between expected and actual weed densities and the goals of a user of the farming machine <NUM>. Updates may include increasing treatment application rates to empty a tank, decreasing application rates to slow down material use, redirecting the farming machine <NUM> along a different drive path, altering a mix of two or more treatments, etc..

The tank management module <NUM> stores field data in one or more field datastores <NUM>. Field data includes, but is not limited to, a size of a field, a geometry of a field, a location of the field, a number of portions in a field, crops planted in the field, entities associated with the field, a geography of the field, a topology of the field, environmental conditions of a field (e.g., temperate, pressure, relative humidity, sun exposure, etc.), a soil composition of the field, a jurisdiction of the field, system aggressiveness (i.e., accounting for identification uncertainty), spray buffers, or the like.

The plant treatment action datastores <NUM> may store data describing plant treatment actions implemented in one or more fields during one or more seasons. Data may indicate a type of plant treatment action, which field portions correspond to a plant treatment action, a method of implementation of the plant treatment action, or the like. The plant treatment action datastore <NUM> may also store model parameters for one or more tank management models, one or more weed density models, and/or model parameters for plant treatment action models.

The plant treatment action datastores <NUM> may also include training, testing, and/or validation data. Training, testing, and/or validation data is used to train, test, and/or validate one or more models used by the tank management module <NUM>. Training, testing, and/or validation data may include plant treatment actions from one or more seasons, corresponding crop outcomes from the one or more seasons, corresponding weed densities from the one or more seasons, corresponding tank usages, environmental data, machine data, geography data, field data, or the like. In some embodiments, data may be labeled. Labels may indicate an actual weed density, an amount of material used, a method of material application, field conditions, machine conditions, field locations, entities associated with the field, etc. When data is labeled, one or more models used by the tank management module <NUM> may be trained using supervised and/or semi-supervised learning. In some embodiments, a portion of the data is unlabeled. Accordingly, one or more models used by the tank management module <NUM> may be trained using semi-supervised and/or unsupervised learning.

<FIG> illustrates a first treatment plan with one or more plant treatment actions performed by a farming machine, according to one embodiment. A field <NUM> includes field portions <NUM> to be treated by the farming machine <NUM> (e.g., farming machine <NUM>) along a route (e.g., drive path) <NUM>. In the first treatment plan, each field portion <NUM> is associated with one or more plant treatment actions determined based on an expected weed density in each portion <NUM>. The plant treatment actions may be further determined based on the expected locations of weeds within each field portion <NUM>.

<FIG> illustrates a second treatment with one or more plant treatment actions performed by the farming machine, according to one embodiment. The second treatment plan is an updated treatment plan, updated by the tank management module <NUM> as the farming machine <NUM> the field portions <NUM>. The tank management module <NUM> may update the treatment plan based on current data obtained while the farming machine <NUM> treats one or more field portions <NUM>. The treatment plan may also be updated based on an amount of treatment left in a tank of the farming machine <NUM>, a location of the farming machine <NUM> within the field <NUM>, or the like. In the illustrated example, updated treatment actions are represented by different types of shading. So, for example, each of the illustrated field portions may have received a different amount of spray as determined by the tank management module.

In some embodiments, as the farming machine <NUM> completes the route <NUM> and determines an actual weed density in one or more field portions <NUM>, the tank management module <NUM> may update and/or change a plant treatment action for one or more field portions <NUM>. In the illustration shown, the actual location and weed density of weeds within field <NUM> is different than expected weed locations and weed densities.

<FIG> illustrates a method of treatment fluid tank management, according to one embodiment. In the method <NUM> shown, historical information is accessed <NUM>. The historical information may describe a previous state of a field, previous environmental conditions for the field, and previous farming machine <NUM> actions performed in the field. A tank management model is applied <NUM> to the accessed historical information to determine <NUM> an expected density of weeds within each of a plurality of portions within the field. Further, the tank management model is applied <NUM> to the accessed historical information to determine <NUM> an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion.

While the farming machine <NUM> is treating plants in the field with treatment fluid, current information describing a current state of the field is accessed <NUM>. In some embodiments, the current information is a quantification of current weed locations and current weed numbers. Alternatively, or additionally, the current information may include at least one of a soil moisture, sun exposure, wind exposure, a temperature, a relative humidity, or a pressure associated with the field and/or field portions. The current information may be obtained from an image sensor (e.g., a camera) capturing images of the field. The current information may also be obtained from a sensor attached to the farming machine <NUM>.

The tank management model is applied <NUM> to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated. In some embodiments, applying <NUM> the tank management model to the accessed information includes determining the updated amount of treatment fluid for the treatment of the plants within the field portions that have not yet been treated. Alternatively, or additionally, applying <NUM> the tank management model to the accessed information includes determining an actual weed density within one or more field portions of the plurality of field portions based on the accessed current information, and determining the updated amount of treatment fluid based on a comparison of the expected weed density within the plurality of field portions within the field and the actual weed density within the one or more field portions of the plurality of field portions.

The farming machine <NUM> performs <NUM> a modified plant treatment action based on the updated density of weeds and based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine <NUM> and an updated amount of treatment fluid for treating plants within field portions that have not yet been treated. In some embodiments, the modified treatment action includes a drive path of the farming machine <NUM>. In these embodiments, the drive path may be determined by identifying a first subset of field portions that have not yet been treated and that have a weed density confidence less than a weed density confidence threshold. A second subset of field portions with a weed density confidence greater than the weed density confidence may be identified. In these embodiments, a drive path is determined based on the first subsets of field portions and the second subset of field portions, and the farming machine <NUM> performs the modified plant treatment action along the drive path. Alternatively, or additionally, responsive to performing the modified plant treatment action, an updated remaining amount of treatment fluid within the tank may be determined. An updated modified plant treatment action may be determined based on the updated remaining amount of treatment fluid within the tank.

In some embodiments, locations of weeds within field portions that have not yet been treated are determined. Distances between the weeds within the field portions that have not yet been treated may also be determined. In these embodiments, the modified plant treatment plan is updated based on the locations of the weeds within the field portions that have not yet been treated and the distances between the weeds within the field portions that have not yet been treated. In some embodiments, the historical information may describe a topography of the field. In these embodiments, the modified plant treatment action may be further based on the topography of the field.

<FIG> is a block diagram illustrating components of an example machine for reading and executing instructions from a machine-readable medium. Specifically, <FIG> shows a diagrammatic representation of control system <NUM> in the example form of a computer system <NUM>. The computer system <NUM> can be used to execute instructions <NUM> (e.g., program code or software) for causing the machine to perform any one or more of the methodologies (or processes) described herein. In alternative embodiments, the machine operates as a standalone device or a connected (e.g., networked) device that connects to other machines. In a networked deployment, the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a smartphone, an internet of things (IoT) appliance, a network router, switch or bridge, or any machine capable of executing instructions <NUM> (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute instructions <NUM> to perform any one or more of the methodologies discussed herein.

The example computer system <NUM> includes one or more processing units (generally processor <NUM>). The processor <NUM> is, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a state machine, one or more application specific integrated circuits (ASICs), one or more radio-frequency integrated circuits (RFICs), or any combination of these. The computer system <NUM> also includes a main memory <NUM>. The computer system may include a storage unit <NUM>. The processor <NUM>, memory <NUM>, and the storage unit <NUM> communicate via a bus <NUM>.

In addition, the computer system <NUM> can include a static memory <NUM>, a graphics display <NUM> (e.g., to drive a plasma display panel (PDP), a liquid crystal display (LCD), or a projector). The computer system <NUM> may also include alphanumeric input device <NUM> (e.g., a keyboard), a cursor control device <NUM> (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a signal generation device <NUM> (e.g., a speaker), and a network interface device <NUM>, which also are configured to communicate via the bus <NUM>.

The storage unit <NUM> includes a machine-readable medium <NUM> on which is stored instructions <NUM> (e.g., software) embodying any one or more of the methodologies or functions described herein. For example, the instructions <NUM> may include the functionalities of modules of the system <NUM> described in <FIG>. The instructions <NUM> may also reside, completely or at least partially, within the main memory <NUM> or within the processor <NUM> (e.g., within a processor's cache memory) during execution thereof by the computer system <NUM>, the main memory <NUM> and the processor <NUM> also constituting machine-readable media. The instructions <NUM> may be transmitted or received over a network <NUM> (e.g., network <NUM>) via the network interface device <NUM>.

Notably, the description above largely describes dynamically controlling the tank of a farming machine who is performing spray treatments. That is, the tank of the farming machine is filled with a liquid. However, tanks on farming machines need not always include a liquid. In some embodiments, the tank of a farming machine can include a solid (e.g., a seed). In these circumstances, the principles described above to dynamically manage a tank including solids still apply. For example, the farming machine may leverage sensor information from external systems and the farming machine itself to determine farming actions for planting crops. That is, the farming machine may determine past weed pressures, current weed pressures, and expected weed pressures to determine how to plant seeds in field portions of the field. For instance, increasing the seeding rate in field portions where past and current weed pressures indicated that expected weed pressures will be lower. Other factors for seeds may include topography, soil type, moisture level, residue present, past yield, past weed pressure, etc..

In the description above, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the illustrated system and its operations. It will be apparent, however, to one skilled in the art that the system can be operated without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the system.

Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the system.

Some portions of the detailed descriptions are presented in terms of algorithms or models and symbolic representations of operations on data bits within a computer memory. An algorithm is here, and generally, conceived to be steps leading to a desired result. The steps are those requiring physical transformations or manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated.

Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Some of the operations described herein are performed by a computer physically mounted within a machine. This computer may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of non-transitory computer readable storage medium suitable for storing electronic instructions.

The figures and the description above relate to various embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.

One or more embodiments have been described above, examples of which are illustrated in the accompanying figures.

For example, some embodiments may be described using the term "connected" to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term "coupled" to indicate that two or more elements are in direct physical or electrical contact. The term "coupled," however, may also mean that two or more elements are not in direct physical or electrical contact with each other, but yet still co-operate or interact with each other.

For example, a process, method, article or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article or apparatus. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B is true (or present).

In addition, use of "a" or "an" are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the system. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.

Claim 1:
A method for managing treatment fluid in a tank of a farming machine:
accessing historical information describing a previous state of a field, previous environmental conditions for the field, and previous farming machine actions performed in the field;
applying a tank management model to the accessed historical information to:
determine, for each of a plurality of field portions, an expected density of weeds within the portion of the field, and
determine an amount of treatment fluid required to treat plants within the field based on the expected density of weeds within each field portion;
while the farming machine is treating plants in the field with treatment fluid, accessing current information describing a current state of the field;
applying the tank management model to the accessed current information to determine an updated density of weeds within field portions that have not yet been treated; and
performing, by the farming machine and based on the updated density of weeds, a modified plant treatment action based on a comparison of a remaining amount of treatment fluid within a tank of the farming machine and an updated amount of treatment fluid for treating plants within the field portions that have not yet been treated.