Patent Description:
Farming machines may move through a field and perform farming actions to the field or crops growing in the field. To perform farming actions, the farming machine supports one or more treatment mechanisms by a beam. However, the beam and treatment mechanisms may be damaged as the farming machine moves through the field. For example, the beam may strike the ground or an object in the field. Similar methods to those of the present disclosure may be found in <CIT>.

The present invention provides a farming machine according to claim <NUM>, a method according to claim <NUM> and a non-transitory computer-readable storage medium according to claim <NUM>.

Embodiments relate to a farming machine that includes an actuatable beam, an actuator system, a sensor system, and a control system. The beam extends away from the body of the farming machine. The beam may support a treatment mechanism. The actuator system controls a position of the actuatable beam relative to the body of the farming machine. The sensor system includes one or more sensors and generates measurement data. This measurement data indicate distances and angles between the sensor system and ground points in the field. The measurement data may also indicate heights of plants growing in the field. The ground points in the field are at least a first threshold distance (e.g., <NUM> meters) in front of a component of the farming machine (e.g., the beam, the body, or a locomoting mechanism). The control system determines a target (or desired) beam height for each ground point. Based on the measurement data and the target beam heights, the control system drives/commands/actuates the actuator system to adjust the position of the beam as the farming machine moves toward the ground points. As a result of the position adjustments, the height of the beam relative to the field is equal to (e.g., within a second threshold of) each target beam height prior to the component passing over the corresponding ground points.

Among other advantages, the farming machine reduces the likelihood of the beam (or an object coupled to the beam) striking the ground or an object in the field. The farming machine may also increase the stability of the beam and reduce beam height variability as it moves through the field.

To generate measurement (e.g., distance) data for ground points in front of the component, the sensor system may be oriented along a forward direction and a downward direction. Forward looking information allows the control system to adjust the beam while accounting for the dynamics and limits of the actuator system. The sensor system may be coupled to the beam or to the body of the farming machine. The sensor system may include a LIDAR sensor. The sensor system may also include an IMU sensor or potentiometer sensor.

The control system may determine the target actuatable beam heights based on at least one of: a sensing distance of the sensor system, a sensing angle of the sensing system, a speed of the farming machine moving through the field, an actuator authority of the actuator system, a crop in the field, a height of the crop in the field, a treatment mechanism coupled to the actuatable beam, or a height variability of the ground. Responsive to the height variability of the ground exceeding a threshold variability value, the control system may raise the actuatable beam to a predetermined safety position. The beam in the safety position is unlikely to strike the ground or objects in the field.

For brevity, the description herein refers to adjusting the position of a beam of a farming machine. Additionally, or alternatively, the actuator system may include actuators to control other components of the farming machine. For example, the actuator system may control a position of an intermediate body that supports the beams. In another example, the actuator system controls a chassis of the farming machine. The positions of these other components may be adjusted using similar methods and systems as described herein.

Embodiments relate to a farming machine with a forward-looking sensor system and an actuatable beam. This allows the farming machine to proactively adjust the position of the beam based on data from the sensor system. Before describing embodiments of this farming machine, <FIG> describe general information related to example farming machines.

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 a farmer or agronomist that works the field but could also be other systems configured to manage farming operations within the field. For example, a manager could be an automated farming machine (e.g., farming machine <NUM> below), 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 machine 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 a macro-level goal for a field. For example, macro-centric 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 more micro level goal for the field. For example, micro-centric 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 the aforementioned examples are not intended to be limiting.

Faming objectives may be 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, the 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, watering the plants, 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 accomplish a farming objective by implementing a treatment plan in the field. A treatment plan is a hierarchical set of macro-centric and/or micro-centric 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.

A treatment plan is generally a temporally sequenced set of farming actions to apply to the field that the manager expects will accomplish the farming objective. A result is a representation as to whether, or how well, a farming machine accomplished a farming objective. 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 be positive or negative, depending on the configuration of the farming machine or implemented treatment plan. Moreover, results can be measured by sensors of the farming machine, input by managers, or accessed from a datastore or a network.

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 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. The farming machine <NUM> can include additional or fewer components than described herein. Furthermore, 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, 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>, the ground, 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, indirectly applied to one or more plants, applied to the environment associated with the plant (e.g., soil, atmosphere, or other suitable portion of the plant environment adjacent to or connected by an environmental factor, such as wind), or otherwise applied to the plants.

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

In another particular 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 or plant portion growth, or otherwise controlling plant growth. Examples of regulating plant growth includes applying growth hormone to the plant, applying fertilizer to the plant or substrate, applying a disease treatment or insect treatment to the plant, electrically stimulating the plant, watering the plant, pruning the plant, or otherwise treating the plant. Plant growth can additionally be regulated by pruning, necrosing, or otherwise treating the plants adjacent to the plant.

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

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

The field may include any number of field portions. A field portion is a subunit of a field. For example, a field portion may be a portion of the field small enough include a single plant, large enough to include many plants, 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, while applying a pesticide in another field portion. Moreover, a field 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 or a field portion depending on the circumstances at play.

Depending on the application, the boundaries of the field portions may be determined by an agricultural manager, for example, based on the shape and size of the field. In some embodiments, the boundaries of the portions depend on the size of the farming machine, the speed of the machine as it moves through the field, how often the farming machine performs farming actions, and how often the farming machine generates farming action data. For example, if a header of a harvester farming machine is <NUM>-<NUM> feet wide and it generates crop yield data every <NUM>-<NUM> feet, then the field portions may be <NUM>-<NUM> feet wide and <NUM>-<NUM> feet long.

The operating environment may also include plants. As such, farming actions the farming machine <NUM> implements as part of a treatment plan may be applied to plants in the field. The plants can be crops but could also be weeds or any other suitable plant. 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 substrate plane (e.g., below ground). The stem may support any branches, leaves, and/or fruits. The plant 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 position and absorb nutrients and water from the substrate <NUM>. In various examples, the plant may be a vascular plant, non-vascular plant, ligneous plant, herbaceous plant, or be any suitable type of plant.

Plants in a field may be grown in one or more plant rows (e.g., plant beds). The plant rows are typically parallel but do not have to be. Each plant row is generally spaced between <NUM> inches and <NUM> inches apart when measured in a perpendicular direction from an axis representing the plant row. Plant 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 <NUM> in. spacing between a second and a third row, etc.).

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

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

The farming machine <NUM> may include a detection mechanism <NUM>. The detection mechanism <NUM> identifies objects in the operating environment of the farming machine <NUM>. To do so, the detection mechanism <NUM> obtains information describing the environment (e.g., sensor or image data), and processes that information to identify pertinent objects (e.g., plants, substrate, persons, etc.) in its surrounding environment. Identifying objects in the environment further enables the farming machine <NUM> to implement farming actions in the field. For example, the detection mechanism <NUM> may capture an image of the field and process the image with a plant identification model to identify plants in the captured image. The farming machine <NUM> then implements farming actions in the field based on the plants 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 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 surrounding the farming machine <NUM>. The detection mechanism <NUM> may also be a sensor that measures a state of the farming machine. For example, the detection mechanism may be a speed sensor, a heat sensor, or some other sensor that can monitor the state of a component of the farming machine. 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 senses information about the operating environment.

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 <NUM> in the field before the other. For example, the detection mechanism <NUM> may be positioned on the mounting mechanism <NUM> such that it traverses over a geographic area <NUM> before the treatment mechanism <NUM> as the farming machine <NUM> moves through the field. In another example, 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 field. 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. The detection mechanism <NUM> may be statically mounted to the mounting mechanism <NUM>, or may be removably 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 and the farming machine <NUM> may use the recorded measurement to verify or determine the extent of an implemented farming action.

To illustrate, consider an example where a farming machine <NUM> implements a farming action based on a measurement of that environment 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 extent of the farming action. For example, the verification mechanism <NUM> may record an image of the geographic region surrounding a plant 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 extent of the treatment applied to the plant.

Information recorded by the verification mechanism <NUM> can also be used to empirically determine operation parameters of the farming machine <NUM> (e.g., calibrate) that will obtain the desired effects of implemented farming actions. 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. 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). If the farming machine <NUM> determines that the farming machine 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, 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 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 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.

The farming machine <NUM> may include a treatment mechanism <NUM>. The treatment mechanism can implement farming actions in the operating environment of a farming machine. For instance, a farming machine may include a treatment mechanism <NUM> that applies a treatment to a plant, a substrate, or some other object in the operating environment. 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. That is, the treatment area <NUM> may be any portion of the operating environment.

When the treatment is a plant treatment, the treatment mechanism <NUM> applies a treatment to a plant in the field. 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 in the field. 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 include: one or more spray nozzles, one or more electromagnetic energy sources, one or more physical implements configured to manipulate plants, but other plant treatment mechanisms are also possible.

Additionally, when the treatment is a plant treatment, the effect of treating a plant with a treatment mechanism 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 can apply a treatment that dislodges a plant from the substrate, severs a plant or portion of a plant (e.g., cutting), incinerates a plant or portion of a plant, electrically stimulates a plant or portion of a plant, fertilizes or promotes growth (e.g., with a growth hormone) of a plant, waters a plant, applies light or some other radiation to a plant, and/or injects one or more working fluids into the substrate <NUM> adjacent to a plant (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 applies a treatment to some portion of the substrate in the field. The treatment mechanism <NUM> may apply treatments to identified areas of the substrate, or non-identified areas of the substrate. For example, the farming machine <NUM> may identify and treat an area of substrate in the field. Alternatively, or additionally, the farming machine <NUM> may identify some other trigger that indicates a substrate treatment and the treatment mechanism <NUM> may apply a treatment to the substrate. Some example treatment mechanisms configured for applying treatments to the substrate include: one or more spray nozzles, one or more electromagnetic energy sources, one or more physical implements configured to manipulate plants, but other plant treatment mechanisms are also possible.

Of course, the farming machine <NUM> is not limited to treatment mechanisms for plants and substrates in the field. The farming machine <NUM> may include treatment mechanisms for applying various other treatments to objects in the field. Some other example treatment mechanisms may include components for applying nitrogen to the field and harvesting plant parts from crop plants growing in the field.

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 be 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 assembly comprising an array of treatment mechanisms. In this configuration, a treatment mechanism <NUM> may be a single treatment mechanism <NUM>, a combination of treatment mechanisms <NUM>, or the treatment mechanism assembly. Thus, either a single treatment mechanism, a combination of treatment mechanisms, or the entire assembly may be selected to apply a treatment to a treatment area. 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 may align a treatment mechanism with an identified object in the operating environment. That is, the farming machine may identify an object in the operating environment and actuate the treatment mechanism 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, processes that information to identify a farming action to implement, and implements the identified farming action with system components of the farming machine.

The control system <NUM> can receive information from the detection mechanism <NUM>, the verification mechanism <NUM>, the treatment mechanism, and/or any other component or system of the farming machine <NUM>. For example, the control system may receive measurements from the detection mechanism <NUM> or verification mechanism <NUM>, or information relating to the state of a treatment mechanism or implemented farming actions from a detection 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. For instance, the control system <NUM> may be configured with 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.

The control system <NUM> can be operated by a manager operating the farming machine <NUM>, wholly or fully autonomous, operated by a manager 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 via a wireless network. In another example, the control system 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 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 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. For example, the control system <NUM> can apply a plant identification module to images acquired by the detection mechanism to determine and implement farming actions. The control system <NUM> may be coupled to the farming machine <NUM> such that an agricultural manager (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.

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

For instance, the farming machine 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 may include an array of treatment mechanisms <NUM> positioned laterally along the mounting mechanism <NUM>. In some configurations, the farming machine 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 may include a first set and a second set of coaxial wheels, or a first set and a second set of continuous treads. In 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. Typically, the locomoting mechanisms are attached to a drive mechanism that causes the locomoting mechanisms to translate the farming machine through the operating environment. For instance, the farming machine may include a drive train for rotating wheels or treads. In different configurations, the farming machine 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). Coupling mechanisms <NUM> functions to removably or statically couple various components of the farming machine. For example, a coupling mechanism <NUM> may attach a drive mechanism to a secondary component such that the secondary component is pulled behind the farming machine. In another example, a coupling mechanism <NUM> may couple one or more treatment mechanisms to the farming machine.

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> 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 useful for determining and implementing farming actions in a field. External systems 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, the operating environment, the farming machine, etc. and generate data representing those measurements. For instance, the sensors may include a rainfall sensor, a wind sensor, heat sensor, a camera, etc. The processing units may process measured data to provide additional information that may aid in determining and implementing farming actions in the field. For instance, a processing unit may access an image of a field and calculate a weed pressure from the image or may access historical weather information for a field to generate a forecast for the field. Datastores store historical information regarding the farming machine, the operating environment, the field, the area surrounding the farming machine, etc. that may be beneficial in determining and implementing farming actions in the field. For instance, the datastore may store results of previously implemented treatment plans and farming actions for a field, its surrounding field, and the general air. Further, the datastore may store results of specific farming actions in the field, or results of farming actions taken in nearby fields having similar characteristics. The datastore may also store historical weather, flooding, field use, planted crops, etc. for the field and the surrounding area. Finally, the datastores may store any information measured by other components in the system environment.

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 <NUM> 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. For example, an input controller <NUM> may receive machine commands via the network <NUM> and actuate the component in response. A sensor <NUM> generates data representing measurements of the operating environment and provides that data to other components within the system environment <NUM>. The measurements may be of the component, the farming machine <NUM>, or the operating environment. 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 (e.g., moisture, temperature, etc.), capture information representing of the operating environment (e.g., images, depth information, distance information), and generate data representing the measurement(s).

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 external systems <NUM> and the 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, for example, 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.

<FIG> relate to farming machines with forward-looking sensors and actuatable beams (e.g., mounting mechanisms <NUM>). These FIGS. also relate to methods and systems for adjusting positions of the actuatable beams.

<FIG> are front views of a farming machine <NUM> moving through different portions of a field, according to some embodiments. The farming machine <NUM> includes an actuator system <NUM> coupled to two beams 320A and 320B. In the example of <FIG>, the beams <NUM> are coupled to the front of the body <NUM>. The beams <NUM> extend away from the body <NUM> and support sensors 325A and 325B. The farming machine <NUM> includes a third sensor 325C also coupled to the actuator system <NUM>. The farming machine <NUM> may include additional, fewer, or different components than illustrated in <FIG>. For example, the beams <NUM> support treatment mechanisms <NUM> and verification mechanisms <NUM>.

A sensor <NUM> is a detection mechanism (e.g., detection mechanism <NUM>, sensor <NUM>, or array sensor <NUM>) configured to detect the height of the ground. More specifically, the sensor <NUM> generates data indicative of a distance and angles between the sensor <NUM> and a ground point in the field. The data may be referred to as measurement data or sensor data. In some embodiments, the angles are two orthogonal angles, such as (<NUM>) the polar and azimuthal angles or (<NUM>) angles that describe the vertical and horizontal positions of the ground point (e.g., from the sensor frame of reference). Thus, with the three independent position coordinates (e.g., one distance and two angle measurements), the position of a ground point may be determined. A sensor <NUM> may generate distance and angle data for multiple ground points. In some embodiments, the sensor 325A also generates measurement data indicative of the height of plants growing in the field. Said differently, the measurement data may indicate the positions of tops of the plants.

A sensor <NUM> may be oriented to generate measurement data for ground points in front of a component of the farming machine <NUM>, such as a beam <NUM>, the body <NUM>, or a locomoting mechanism <NUM>. For example, sensor 325A may be oriented forward (along the direction of travel) and downward to generate measurement data for ground points in front of beam 320A. This is further described with respect to <FIG>. In another example, sensor 325C may be oriented to detect the height of ground points in front of the locomoting mechanism <NUM>. Example sensors <NUM> include a LIDAR sensor, an image sensor (e.g., a stereo camera or a monocamera with depth identification algorithms), an ultrasonic sensor, and a radio frequency sensor. Multiple sensors <NUM> at different locations may be used together to increase the accuracy of the ground sensing. For example, farming machine <NUM> may additionally include a sensor mounted to the body <NUM> and oriented to have a sensing area in front of beam 320A and overlapping with a sensing area of sensor 325A.

In some embodiments, the farming machine <NUM> additionally includes an IMU (inertial measurement unit) sensor, a potentiometer sensor, or a GNSS (global navigation satellite system) tracker (e.g., a GPS tracker). An IMU sensor or potentiometer sensor may be used to detect (e.g., confirm) movement of the beam <NUM> or body <NUM>. A GNSS tracker may be used to generate GNSS position coordinates of the field (e.g., on a global or regional basis). The control system <NUM> may associate data from other sensors with these position coordinates.

The actuator system <NUM> includes one or more actuators to control positions of beams <NUM> relative to the body <NUM>. This may result in the height of a beam changing relative to the ground. Example actuators include hydraulic, pneumatic, and electrical actuators. The actuators may be rotational or translational actuators. In the examples of <FIG>, the actuator system <NUM> rotates the beams (indicated by the arrows), however other position adjustments are possible depending on the configuration of the actuator system. For example, the actuator system <NUM> may raise or lower the entire beam <NUM> equally. Generally, the actuator system raises and lowers the beams <NUM>. However, the actuator system <NUM> may move the beams <NUM> along other directions, such as forward or backward. Movement along these additional directions may also be used to prevent the beam <NUM> from striking the ground. The actuator system <NUM> may be characterized by its actuator authority for each beam <NUM>. The actuator authority is a measure of how quickly the system can move a beam <NUM> responsive to receiving control instructions (e.g., from the control system <NUM>). The actuator authority is based on an inertia of a beam <NUM> and any components coupled to the beam <NUM>.

The control system <NUM> (not shown in <FIG>) uses the actuator system <NUM> and data from the sensors <NUM> to adjust the position of each beam <NUM>. For example, the control system <NUM> executes a control algorithm and transmits actuator control instructions to the actuator system <NUM>. Note that adjusting the position of a beam may be considered a farming action.

Thus, the heights can be dynamically and proactively adjusted as the farming machine <NUM> moves through the field. For example, a beam <NUM> is raised to reduce the risk of the beam <NUM> (or a component coupled to the beam) striking an object in the field or striking the ground (e.g., if the ground height rapidly changes). Adjusting the beam position may provide other advantages as well. For example, a beam position is adjusted so that a treatment mechanism mounted to the beam <NUM> is at a desired height to perform farming operations, even if the ground under the farming machine <NUM> changes.

In <FIG>, the ground is relatively flat. Thus, the beams <NUM> are perpendicular to the body <NUM> and in a horizontal position. In <FIG>, the field includes obstacles <NUM> on the left and right sides of the farming machine <NUM>. As the farming machine <NUM> moves toward the obstacles <NUM>, they may be detected (e.g., using data from sensors 325A and 325B). In response, the actuator system <NUM> raises each beam <NUM> (as indicated by the dashed arrows) to prevent the beams <NUM> from striking the obstacles <NUM>. The control system <NUM> may control each beam <NUM> independently. For example, as illustrated in <FIG>, the actuator system <NUM> raises beam 320A higher than beam 320B since obstacle 340A is taller than obstacle 340B.

In <FIG>, the right locomoting mechanism <NUM> (e.g., wheel) is in a ditch <NUM>. Thus, the farming machine <NUM> is tilted to the right as it moves through the field along the ditch <NUM>. Before the farming machine <NUM> moves into the ditch <NUM>, the control system <NUM> may detect the ditch <NUM> (e.g., using data from sensor 325C) and determine that the farming machine <NUM> will tilt. In response, the actuator system <NUM> raises beam 320B and lowers beam 320A, as indicated by the dashed arrows. This prevents beam 320B from striking the ground and allows beam 320A to maintain a target beam height above the ground (e.g., so that a treatment mechanism can continue to perform farming actions in the field). If the farming machine includes an IMU sensor or potentiometer sensor, the control system <NUM> may also detect the body tilting and adjust the beams accordingly (e.g., if the control system <NUM> didn't detect the ditch <NUM> using data from sensor 325C).

<FIG> illustrates a cross-sectional view of sensor 325A and beam 320A from the farming machine <NUM>, according to an embodiment. In this example, sensor 325A is coupled to the top of beam <NUM> and is oriented along a forward and downward direction. The sensor 325A may be coupled to other portions of the beam 320A, such as the bottom. <FIG> also illustrates ground points 410A-410F. As described above, sensor 325A generates data indicative of angles and distances <NUM> to a set of ground points. Said differently, sensor 325A samples the terrain profile of the field at the ground points. Because the sensor 325A is facing forward, the ground points <NUM> are in front of the beam 320A along the direction of travel <NUM>. Sensor data may be generated for additional or fewer ground points <NUM> than those illustrated. For example, <FIG> illustrates six ground points. However, in other embodiments, the sensor data may be generated for more ground points, such as <NUM>, <NUM>, or <NUM>. Generating measurement data for a plurality of ground points (e.g., instead of just one ground point) may provide a greater understanding of the variability of the terrain. In some embodiments, sensor 325A generates data for ground points in front of other portions of beam 320A (e.g., along an axis perpendicular to the direction of travel <NUM>). For example, see <FIG> and <FIG>. In some embodiments, ground points <NUM> are in front of the beam along the entire portion of the beam. The sensing area may also be larger or smaller than illustrated. For example, sensor 325A may generate data for ground points directly below the sensor 325A.

The distances <NUM> are determined by analyzing the measurement data (e.g., extracting distances from an image or a pair of images). This analysis may be performed by the sensor 325A or the control system <NUM>. For brevity, the remaining description assumes the sensor 325A determines the distances <NUM>. If sensor 325A is a LIDAR sensor, it may determine a distance <NUM> by targeting a ground point <NUM> with a laser and measuring the time for the reflected light to return to the sensor 325A. In another example, the sensor 325A includes one or more image sensors and analyzes the captured images to determine a distance <NUM>.

Depending on the sensor type and orientation, the sensor data may indicate distances <NUM> for ground points <NUM> that are zero to five or ten (or more) meters in front of the sensor 325A. In some embodiments, one or more ground points <NUM> are at least half a meter in front of the sensor 325A, however this threshold distance may depend on the speed of the farming machine <NUM>, the latency of the control system <NUM>, and the authority of the actuator system <NUM>. Determining distances <NUM> for ground points <NUM> equal to or beyond this threshold distance allows the beam 320A to be proactively positioned to avoid obstacles and striking the ground. If all the ground points are less than this threshold distance, the control system <NUM> or actuator system <NUM> may not have enough time to safely position the beam 320A. For example, if sensors of a farming machine are oriented directly downward (e.g., they only capture distances for ground points directly below the beam), then the system may not have enough time to react (e.g., if the ground height rises or if the field includes an obstacle).

<FIG> illustrate a sample ground point pattern for a sensor <NUM> (e.g., a LIDAR sensor), in accordance with one or more example embodiments. The plot represents a ground point pattern for a sensor <NUM> at a height of two meters above the ground. The sensor has a +/-<NUM> degree vertical field of view and a +/-<NUM> degree horizontal field of view. The sensor is tilted downwards at <NUM> degrees.

Each data point represents a ground point as seen from a top view (e.g., the xz plane in the coordinate system of <FIG>). The vertical line ranging from point (<NUM>, <NUM>) to (<NUM>, -<NUM>) represents the location of a beam <NUM> (e.g., beam 320A). The x- and y-axes of the plot represent the distance (in meters) from the sensor location (the sensor is located at point (<NUM>,<NUM>)). The density of the data points is highest around point (<NUM>,<NUM>) and decreases with distance away from point (<NUM>,<NUM>). <FIG> is a zoomed in plot of <FIG> and illustrates details near a tip of the beam. As demonstrated by <FIG>, a sensor <NUM> can create measurement data for ground points in an area in front of and behind the beam <NUM> (e.g., depending on the location, orientation, and field of view of the sensor).

The control system <NUM> may use the distance and angle data to determine what the height of the beam 320A will be when it passes over the ground points <NUM> (assuming the beam position or beam height doesn't change). If the beam 320A will be below a threshold height value for a given ground point (e.g., point 410F), the control system <NUM> may adjust (via the actuator system <NUM>) the position of the beam 320A so that the beam will be above the threshold value when the beam passes over the ground point (e.g., point 410F).

In some embodiments, the control system <NUM> determines target heights for the ground points <NUM>. A target height indicates where the beam 320A should be located (e.g., within an error threshold) when the beam (or another component) passes over the corresponding ground point (e.g., to avoid a ground strike). Each target height is associated with a ground point <NUM>. The control system <NUM> may determine a target height <NUM> for each ground point <NUM>.

<FIG> illustrates example target heights 510A-510F that respectively correspond to the ground points 410A-410F in <FIG>. Target heights 510A and 510B are similar to the current beam height <NUM>. Thus, the beam position relative to the body <NUM> may stay constant as the beam <NUM> passes over ground points 410A and 410B (e.g., assuming the ground below the locomoting mechanism <NUM> is flat). To avoid a ground strike, target heights 510C-510F, may result in the actuator system <NUM> raising beam 320A before it passes over ground points 410C-410F.

A target height <NUM> may be determined based on the measurement data, a height variability of the ground (e.g., a value that indicates how frequently or intensely the height of the ground changes), the sensing distance of the sensor 325A (e.g., the range of the sensor 325A), the speed of the farming machine <NUM>, the authority of the actuator system <NUM>, the crop growing in the field, the height of the crop growing in the field, or a type of treatment mechanism <NUM> coupled to beam 320A. For example, a target height <NUM> may be determined so that a treatment mechanism <NUM> can perform farming actions on specific portions (e.g., top portions) of plants growing in the field. In another example, the control system <NUM> determines target heights <NUM> that are possible given the sensing distance, the speed of the farming machine, and the authority of the actuator system <NUM>. If the farming machine is moving quickly, the actuator system <NUM> may not be capable of making a large change to the beam position before a ground point is passed over. In this case, the control system <NUM> may determine target heights that correspond to small beam position changes.

The control system <NUM> may actuate the actuator system <NUM> based on the measurement data and a target height <NUM> so that the beam 320A has a height <NUM> equal to a target height <NUM> before it passes over the corresponding ground point. Practically, it may be difficult for the beam height <NUM> to be exactly equal to the target height <NUM>. Thus, the target height <NUM> may be a lower bound (e.g., the beam height <NUM> is equal to or greater than the target height <NUM>) or the beam height <NUM> may be equal to the target height <NUM> within an error value (e.g., <NUM>%) (the error value may be referred to as a distance threshold).

In some embodiments, the control system <NUM> actuates the actuator system <NUM> so that beam 320A has a height <NUM> equal to each target height <NUM> before another component of the farming machine passes over the corresponding ground points <NUM>. For example, referring to <FIG>, the control system <NUM> may adjust the beam position prior to the locomoting mechanism <NUM> or the body <NUM> passing over a ground point in ditch <NUM>.

To reach a target height <NUM>, the control system <NUM> may actuate the actuator system <NUM> as soon as possible. If multiple target heights <NUM> are in a queue, the control system <NUM> may begin adjusting beam 320A to the next target height <NUM> as soon as the beam 320A passes over a current ground point <NUM>. The control system <NUM> may also account for the authority of the actuator system <NUM> and the speed of the farming machine. For example, for a given speed, the control system <NUM> may begin adjusting a beam position so that the actuator system <NUM> has enough time to adjust the beam to the target height <NUM> before the beam passes over the corresponding ground point <NUM>. In some embodiments, the control system <NUM> accounts for other possible limitations, such as actuator non-linearities, transmission delays between the control system <NUM> and the actuator system <NUM>, machine modeling errors, physical stresses on the beam <NUM> and components coupled to the beam, and excitation of possible unmodelled flexibility modes.

In some cases, the ground height may change rapidly (e.g., due to rough terrain or the farming machine is moving quickly). In these cases, the control system <NUM> may not be able to prevent ground strikes. Thus, the control system <NUM> may raise one or more of the beams <NUM> to a safety position that likely avoids ground strikes (e.g., the highest position). For example, if the height variability of the ground exceeds a threshold variability value, the control system <NUM> raises a beam <NUM> to the safety position. The control system <NUM> may do this even if the position renders treatment mechanisms <NUM> on the beams <NUM> unable to perform farming actions. Additionally, or alternatively, the control system <NUM> may slow down the farming machine <NUM> or send instructions for display to a manager to slow down the farming machine <NUM>.

In some embodiments, the control system <NUM> uses a model predictive control (MPC) method to provide control instructions to the actuator system. The system model may be developed by dynamic analysis, from first principles, system identification, or machine learning. With MPC, at each step out to a prediction horizon (e.g., N time steps into the future), the control system <NUM> may solve a nonlinear optimization problem (NLP) with equality and inequality constraints. The solution to this optimization problem may provide a sequence of control actions (e.g., instructions) that are consistent with the capabilities of the actuator system <NUM> and which consider disturbances due to the terrain in the field. The NLP may be solved repeatedly at each subsequent step. This MPC method may allow the control system <NUM> to respond quickly and appropriately as new terrain comes into view. In alternate embodiments, the control system <NUM> may use a LQR (linear-quadratic regulator) to weigh a set of sampled terrain measurements (e.g., a set of measurement data).

In some embodiments, the control system <NUM> generates a terrain map of the field based on the generated distance and angle data and GNSS position coordinates. A terrain map indicates changes in ground height in the field. Generating the terrain map may include converting the coordinate frame of the distance and angle data to the coordinate frame of the field. <FIG> illustrates an example terrain map <NUM>. In this case, the terrain map <NUM> is a contour map, however other types of maps may be generated. If a terrain map was previously generated, the control system <NUM> may use the terrain map as the farming machine moves through the field. The control system <NUM> adjusts the position of the beam based on a terrain map. Additionally, the control system <NUM> may generate a crop height map that indicates the heights of plants growing in the field. A crop height may be generated using distance and angle data that indicates heights of plants in the field.

<FIG> illustrates a method <NUM> for adjusting a beam of a farming machine moving through a field. One or more steps of the method <NUM> may be performed by the control system <NUM>. The method <NUM> can include additional steps than described herein. Additionally, the steps can be performed in different order, or by different components than described herein.

A farming machine moves <NUM> through a field. The farming machine includes an actuatable beam (e.g., a mounting mechanism <NUM>) extending away from a body of the farming machine and an actuator system configured to control a position of the actuatable beam relative to the body of the farming machine. A sensor system generates <NUM> measurement data indicating distances and angles between the sensor system and ground points in the field. The ground points are at least a threshold distance in front of a component of the farming machine (e.g., the beam or a locomoting mechanism). The control system determines <NUM> a target actuatable beam height for each ground point. The control system adjusts <NUM>, via the actuator system, the position of the actuatable beam based on the measurement data and the target actuatable beam heights as the farming machine moves toward the ground points. A height of the actuatable beam relative to the ground is within a second threshold distance of a target actuatable beam height corresponding to each ground point prior to the component passing over each ground point.

<FIG> is a block diagram illustrating components of an example machine for reading and executing instructions from a machine-readable medium, in accordance with one or more example embodiments. Specifically, <FIG> shows an example diagrammatic representation of the server system <NUM> in the example form of a computer system <NUM>. <FIG> may be applicable to the control 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 client-server 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 control system, 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 an 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. 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> via the network interface device <NUM>.

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 (e.g., physically mounted within a machine <NUM>). 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 farming machine (<NUM>) configured to move through a field, the farming machine (<NUM>) comprising:
an actuatable beam (320A, 320B) extending away from a body (<NUM>) of the farming machine (<NUM>);
an actuator system (<NUM>) configured to control a position of the actuatable beam (320A, 320B) relative to the body (<NUM>) of the farming machine (<NUM>);
a sensor system (325A, 325B) configured to generate measurement data indicative of distances and angles between the sensor system (325A, 325B) and ground points in the field at least a first threshold distance in front of a component of the farming machine (<NUM>); and
a control system (<NUM>) configured to:
receive the measurement data from the sensor system (325A, 325B);
generate a terrain map of the ground around the farming machine (<NUM>) based on the measurement data from the sensor system (325A, 325B);
determine a target actuatable beam height for each ground point at the first threshold distance in front of the component of the farming machine (<NUM>) based on the terrain map; and
actuate the actuator system (<NUM>) to adjust the position of the actuatable beam (320A, 320B) based on the measurement data and the target actuatable beam heights as the farming machine (<NUM>) moves toward the ground points, wherein a height of the actuatable beam (320A, 320B) relative to the field is within a second threshold distance of the target actuatable beam height corresponding to each ground point prior to the component passing over each ground point.