Patent Description:
A farming machine may include a vehicle coupled to an implement, and the vehicle pushes or pulls the implement to perform various farming operations (e.g., tilling, planting seeds, treating plants). Typically, the farming vehicle has a location sensor (e.g., global positioning system sensor) that determines the location of the farming vehicle. As the farming vehicle moves, the location sensor collects location data and a heading (e.g., an orientation of the farming machine) of the farming vehicle is calculated based on changes in location data corresponding to the motion of the farming vehicle. The farming vehicle turns around after completing a row in an area referred to as a headland. It is typically undesirable for the implement to be in contact with the ground in the headland, so the farming vehicle raises the implement when entering the headland and lowers the implement when exiting the headland. Raising and lowering the implement is not an instantaneous process. If the farming vehicle raises the implement too early prior to entering the headland, a portion of the field may not be operated on by the implement. If the farming vehicle raises the implement too late, the implement may unnecessarily operate on the ground in a portion of the headland, which may result in unnecessary cost, time, or damage to the implement or headland.

<CIT> describes an agricultural harvester automatically raising the header when reaching a headland and lowering the header when re-entering the field based on the respective location of the harvester. <CIT> describes a similar system, however changing the positions or timings of the headland sequence in case that the actual speed should change.

Methods are disclosed herein that address the above-described problems related to automatically raising and lowering an implement for a farming vehicle. The farming vehicle determines an amount of time required to lower the implement. The farming vehicle measures the amount of time it takes to lower the implement during a calibration period or during the first time the farming vehicle lowers the implement to operate on a field. When entering the headland to turn around between passes, the farming vehicle raises the implement after determining that the entire implement is located within the headland. Based on the determined amount of time to lower the implement, the farming vehicle begins lowering the implement with sufficient time such that the implement is fully lowered just prior to exiting the headland and returning onto the field. Determining the duration comprises measuring a time based on a flow of oil through a selective control valve.

The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below.

Figure (<FIG> illustrates a block diagram of a system environment <NUM> for a farming machine management system, according to an embodiment. The system environment <NUM> includes a client device <NUM>, a network <NUM>, a farming machine <NUM>, and a farming machine management system <NUM>. The system environment <NUM> may have alternative configurations than shown in <FIG> and include different, fewer, or additional components.

The client device <NUM> is a device used by a user to operate the farming machine <NUM>. For example, the user may be an employee associated with the farming management system <NUM>, a third party individual, or an individual associated with a field where the farming machine <NUM> is being used (e.g., a farmer that owns the field). The farming machine <NUM> may be controlled remotely based on inputs from the client device <NUM> or operate semi-autonomously based on inputs describing the tasks to be performed by the farming machine <NUM> such as types of tasks, time at which the tasks are to be performed, portions of the field in which the tasks are to be performed, and other information for operating the farming machine <NUM>. In other embodiments, the farming machine <NUM> may be autonomous and operate without input from the user. The client device <NUM> is configured to communicate with the farming machine <NUM> and/or the farming machine management system <NUM> via the network <NUM>, for example using a native application executed by the computing device and provides functionality of the farming machine management system <NUM>, or through an application programming interface (API) running on a native operating system of the computing device, such as IOS® or ANDROID™. The client device <NUM> may be a conventional computer system, such as a desktop or a laptop computer. Alternatively, the client device <NUM> may be a device having computer functionality, such as a personal digital assistant (PDA), a mobile telephone, a smartphone, or another suitable device. The client device <NUM> may be integrated with the farming machine <NUM> (e.g., a console within the farming machine <NUM>). The client device <NUM> include the hardware and software needed to input and output sound (e.g., speakers and microphone) and images, connect to the network <NUM> (e.g., via Wifi and/or <NUM> or other wireless telecommunication standards), determine the current geographic location of the client device <NUM> (e.g., a Global Positioning System (GPS) unit), and/or detect motion of the client device <NUM> (e.g., via motion sensors such as accelerometers and gyroscopes).

The client device <NUM> is configured to communicate via the network <NUM>, which may comprise any combination of local area and/or wide area networks, using both wired and/or wireless communication systems. In one embodiment, the network <NUM> uses standard communications technologies and/or protocols. For example, the network <NUM> includes communication links using technologies such as a control area network (CAN), Ethernet, <NUM>, worldwide interoperability for microwave access (WiMAX), <NUM>, <NUM>, code division multiple access (CDMA), digital subscriber line (DSL), etc. Examples of networking protocols used for communicating via the network <NUM> include multiprotocol label switching (MPLS), transmission control protocol/Internet protocol (TCP/IP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP). Data exchanged over the network <NUM> may be represented using any suitable format, such as hypertext markup language (HTML) or extensible markup language (XML). In some embodiments, all or some of the communication links of the network <NUM> may be encrypted using any suitable technique or techniques.

The farming machine <NUM> performs farming tasks in a farming area. The farming area may include leveled surfaces. The farming machine <NUM> receives instructions for performing the farming tasks from the farming machine management system <NUM> and generates control instructions for controlling components of the farming machine <NUM> to perform the farming tasks. An example farming machine <NUM> is described herein with respect to <FIG>. The example farming machine <NUM> of <FIG> includes a vehicle <NUM> that is removably or statically coupled to an implement <NUM> via a hitch <NUM>. The vehicle <NUM> may be remotely controlled, semi-autonomous, or autonomous and include a driving mechanism (e.g., a motor and drivetrain coupled to wheels) for traversing through the farming area. The implement <NUM> is coupled to the rear of the vehicle <NUM> such that the implement <NUM> is dragged behind the vehicle <NUM>. In alternative embodiments, a different type of implement <NUM> may be coupled to the front of the vehicle <NUM> or to the side of the vehicle <NUM>, for example an implement may be a header on a combine, or any other type of implement suitable for use with a farming vehicle.

When the hitch <NUM> is a fixed hitch, the implement <NUM> is coupled to the vehicle <NUM> at one position (e.g., straight behind the vehicle) such that the heading of the vehicle <NUM> and the heading of the implement <NUM> are aligned. However, when the hitch <NUM> is a pivot hitch, the implement <NUM> may pivot side-to-side about the hitch <NUM>, such that the heading of the vehicle <NUM> and the heading of the implement <NUM> are different. The term "heading" is used to refer to the orientation of the vehicle <NUM> or the implement <NUM> indicative of the future direction of motion. The heading of the vehicle <NUM> is represented by a first vector <NUM> that passes through a pivot point (e.g., where the hitch <NUM> connects the vehicle <NUM> and the implement <NUM>) and a center of the vehicle (e.g., geometric center of the vehicle). The heading of the implement <NUM> is represented by a second vector <NUM> that passes through the center of the implement <NUM> (e.g., geometric center of the implement <NUM>) and the pivot point, and the second vector <NUM> is at an angle θ from the first vector <NUM>.

The vehicle <NUM> includes a first location sensor <NUM> and the implement <NUM> includes a second location sensor <NUM> that each continuously collects geolocation and time information corresponding to the motion of the vehicle <NUM> and the implement <NUM>, respectively. In some embodiments the implement <NUM> may not include a position sensor, and the position of the implement <NUM> may be determined using a kinematic model. The first location sensor <NUM> and the second location sensor <NUM> may be integrated with inertial measurement units (IMU) that detects acceleration and rotational rate along pitch, roll, and yaw axes. The first location sensor <NUM> and the second location sensor <NUM> provides the collected information to the farming machine management system <NUM>. The first location sensor <NUM> is positioned at a first position on the vehicle <NUM> that is offset from a center line through the vehicle <NUM> by L1 along a first lateral axis X1 and offset by S1 relative to the hitch <NUM> along a first vertical axis Y1. The second location sensor <NUM> is positioned at a second position on the implement <NUM> that is offset from a center line through the implement <NUM> by L2 along a second lateral axis X2 and offset vertically by S2 relative to the hitch <NUM> along a second vertical axis. The first location sensor <NUM> and the second location sensor <NUM> are at a distance D apart that can vary according to the angle θ. The distances S1, S2, L1, and L2 are fixed and may be measured by personnel associated with the farming machine management system <NUM> before the farming machine <NUM> is deployed (e.g., manufacturer of the farming machine <NUM>, test operator of farming machine management system <NUM>) or may be measured by a user of the farming machine (e.g., farmer) and input to the farming machine management system <NUM> after being deployed.

The vehicle <NUM> includes a camera <NUM> attached to the back of the vehicle <NUM> and directed to capture images of the implement <NUM> that follows behind the vehicle <NUM>. The captured images may be provided to the farming machine management system <NUM> that determines the angle θ between the center line of the vehicle <NUM> and the center line of the implement <NUM>. In some embodiments, the camera <NUM> is installed to be aligned with the center line of the vehicle <NUM>. In other embodiments, the camera <NUM> is installed elsewhere on the vehicle <NUM>. The camera <NUM> is calibrated to determine intrinsic parameters such as local length, skew, distortion, and image center and extrinsic parameters such as position and orientation of the camera <NUM> relative to the vehicle <NUM>. In an alternative embodiment, the camera <NUM> may be replaced with a potentiometer or other sensors that generates signals according to the angle θ.

When guiding the farming machine <NUM> through a field, the farming machine management system <NUM> needs to determine the heading of the vehicle <NUM> and the heading of implement <NUM> as well as the position of the farming machine <NUM> within the field to predict the motion of the farming machine <NUM>. In some embodiments, a GPS receiver may accurately determine the heading. One method of determining the heading is to compare the information collected by location sensors at different points in time and use the change in the positions over time to calculate the heading. This method for determining the heading can be effective when the farming machine <NUM> is moving at a speed above a threshold speed. However, when the farming machine <NUM> is moving a speed below the threshold speed, the heading determined may be inaccurate due to limits in the accuracy of location sensors, and when the farming machine <NUM> is stationary, the method cannot be used since there is no change in positions. Operating the farming machine <NUM> without accurate headings for the vehicle <NUM> and the implement <NUM> can lead to damage or dangerous situations. For example, if the vehicle <NUM> is stationary at a first location near a second location where another farming machine, building, or personnel is located, and the calculated heading of the vehicle <NUM> indicates that the vehicle <NUM> is pointed away from the second location, the farming machine management system <NUM> may cause the farming machine <NUM> to start moving according to the calculated heading. However, if the heading of the farming machine is actually pointed toward second location, when the farming machine <NUM> begins to move, the vehicle <NUM> can unexpectedly end up at the second location and lead to an accident.

To determine accurate headings for the vehicle <NUM> and the implement <NUM>, the farming machine management system <NUM> receives location information from the first location sensor <NUM> and the second location sensor <NUM>, and uses images of the implement captured by the camera <NUM> to determined where the pivot point of the hitch <NUM> is located. Based on the determined pivot point, the farming machine management system <NUM> determines the headings of the farming machine <NUM> (e.g., heading of the vehicle <NUM>, heading of the implement <NUM>). The farming machine management system <NUM> may generate instructions for operating the farming machine <NUM>. For example, the farming machine management system <NUM> may generate and transmit paths for the farming machine <NUM> to take or instructions to adjust the headings of the farming machine <NUM>. The farming machine management system <NUM> may use the determined location of the implement <NUM> to determine when to raise the implement when entering a headland adjacent to a field, as well as when to lower the implement when entering the field from the headland. Details on the farming machine management system <NUM> are further described below with respect to <FIG>.

<FIG> illustrates a block diagram of modules and databases used by a farming machine management system, according to an embodiment. The farming machine management system <NUM> includes an angle determination module <NUM>, an intersection point determination module <NUM>, a heading determination module <NUM>, an operation module <NUM>, a machine learning model database <NUM>, and a training data database <NUM>. The modules and databases depicted in <FIG> are merely exemplary; more of fewer modules and/or databases may be used by the action recommendation system <NUM> in order to achieve the functionality described herein. Moreover, these modules and/or databases may be located in a single server, or may be distributed across multiple servers. Some functionalities of the farming machine management system <NUM> may be performed by the farming machine <NUM>.

The angle determination module <NUM> processes an image of the implement <NUM> captured by the camera <NUM> to determine the angle θ between the vehicle <NUM> and the implement <NUM>. In some embodiments, the angle determination module <NUM> may also modify the image (e.g., resizing, delayering, cropping, value normalization and adjusting image qualities such as contrast, brightness, exposure, temperature). The angle determination module <NUM> receives the image from the camera <NUM> and applies a machine learning model <NUM> to performing image recognition to identify the portion of the image including pixels that represent the implement <NUM> and determine the angle θ between the center line of the vehicle <NUM> and the center line of the implement <NUM>. In some embodiments, the machine learning model <NUM> is a supervised model that is trained to output the angle θ for an input image. The machine learning model <NUM> may be a neural network, decision tree, or other type of computer model, and any combination thereof. Training data <NUM> for the machine learning model <NUM> may include training images of historical implements captured by cameras <NUM> installed on various historical farming machines <NUM>. Each training image may be labeled to include a bounding box around at least a portion of the historical implement <NUM>. The bounding box may be drawn by a human annotator to include the portion of the image including the historical implement <NUM>. In some embodiments, there may be one or more fiducial markers at known locations on each historical implement <NUM> (e.g., along the center line of the implement <NUM>), and a human annotator may place a bounding box around the fiducial marker.

For each training image, the intrinsic parameters such as local length, skew, distortion, and image center and extrinsic parameters such as position and orientation of the camera <NUM> that captured the training image are known. Based on these camera parameters and the position of the bounding box within the training image, the direction of the historical implement <NUM> and the angle θ can be determined. In one example, the camera <NUM> may be calibrated such that the center of the training image corresponds to the center line of the vehicle <NUM>. In this example, the implement <NUM> is determined to be positioned to the right of the vehicle <NUM> if the bounding box lies to the right of the image center and determined to be positioned to the left if the bounding box lies to the left of the image center. The angle θ can be calculated between the image center and a centerline of the implement <NUM> in the bounding box. The angle θ associated with the training image are also included for training the machine learning model <NUM>. Each training image may be associated with additional information and the additional information are provided along with the training image. The additional information include the dimensions of the historical vehicle <NUM> and/or the historical implement <NUM>, intrinsic and/or extrinsic parameters of the corresponding camera <NUM>, and other relevant features regarding the configuration of the historical farming machine <NUM>. Dimensions of the historical vehicle <NUM> may include length, width, height of the historical vehicle <NUM>, a distance between the first location sensor and the center line of the historical vehicle <NUM> (e.g., L1 in feet. ), a distance between the first location sensor and the hitch <NUM> (e.g., S1 in feet), and dimensions of the implement <NUM> may include length, width, height of the historical vehicle <NUM>, a distance between the second location sensor and the center line of the implement <NUM> (e.g., S2 in feet), and a distance between the second location sensor and the hitch <NUM> (e.g., L2 in feet).

In an alternative embodiment, instead of the camera <NUM>, a potentiometer or another type of sensor is installed at the hitch <NUM> to determine the angle θ between the vehicle <NUM> and the implement <NUM>. The potentiometer generates a voltage value according to the angle θ. The relationship between voltage values and the angle θ between the vehicle <NUM> and the implement <NUM> may be predetermined such that voltage value generated by the potentiometer can be mapped to an angle θ.

The intersection point determination module <NUM> determines the pivot point where the hitch <NUM> is located. As illustrated in <FIG> showing top views of a farming machine <NUM>, when the first location sensor <NUM> reads a first set of coordinates (Xc1, Yc1) and the second location sensor <NUM> reads a second set of coordinates (Xc2, Yc2), there can be two possible headings for the vehicle <NUM> and the implement <NUM>. Coordinates may be represented in geocentric coordinates, map coordinates, or spherical coordinate system. The intersection point determination module <NUM> identifies one or more intersection points between a first circle <NUM> centered at the first location sensor <NUM> and a second circle <NUM> centered at the second location sensor <NUM>. The first circle <NUM> has a first radius R1 that corresponds to a distance between a position of the first location sensor <NUM> and the hitch <NUM>, and the second circle <NUM> has a second radius R2 that corresponds to a distance between a position of the second location sensor <NUM> and the hitch <NUM>.

Depending on where the first set of coordinates (Xc1, Yc1) and the second set of coordinates (Xc2, Yc2) are, there can be one intersection point or two possible intersection points between the first circle <NUM> and the second circle <NUM>. For the first set of coordinates (Xc1, Yc1) and the second set of coordinates (Xc2, Yc2) in <FIG>, there are two possible intersection points. In the first configuration shown in <FIG>, the hitch <NUM> is at a first intersection point 430A, and in the second configuration shown in <FIG>, the hitch <NUM> is at a second intersection point 430B. Coordinates of the first intersection point 430A and the second intersection point 430B can be calculated using the following equations: <MAT> <MAT> <MAT> <MAT>.

The values of (Xc1, Yc1) and (Xc2, Yc2) are provided by the first location sensor <NUM> and the second location sensor <NUM>, respectively. S1, L1, S2, and L2 are known distances. Using equations <NUM>-<NUM>, up to two possible solutions for X and Y can be calculated. Therefore, the coordinates of the first intersection point 430A and the second intersection point 430B represented by (X, Y) can be determined.

After determining the coordinates of the first intersection point 430A and the second intersection point 430B, the intersection point determination module <NUM> selects one of the first intersection point 430A and the second intersection point 430B based on the angle of the implement <NUM> determined by the angle determination module <NUM>. The intersection point determination module <NUM> identifies a threshold angle θth associated with the farming machine <NUM> given its dimensions. As illustrated in <FIG>, the threshold angle θth corresponds to the angle between the center line of the vehicle <NUM> and the center line of the implement <NUM> when the farming machine <NUM> is oriented such that the first circle <NUM> and the second circle <NUM> have exactly one intersection point 430C. The threshold angle θth of a farming machine <NUM> depends on offsets L1, L2, S1, and S2. The intersection point determination module <NUM> compares the angle θ determined by the angle determination module <NUM> to the threshold angle θth. For example, when the angle θ is less than the threshold angle θth, the intersection point determination module <NUM> determines that the hitch <NUM> is at the first intersection point 430A. When the angle θ is greater than the threshold angle θth, the intersection point determination module <NUM> determines that the hitch <NUM> is at the second intersection point 430B. When the angle θ is equal to the threshold angle θth, the intersection point determination module <NUM> determines that the hitch <NUM> is at the third intersection point 430C.

The heading determination module <NUM> determines the heading of the vehicle <NUM> and the heading of the implement <NUM> based on the intersection point. The heading determination module <NUM> determines the first vector <NUM> between the center point of the vehicle <NUM> and the intersection point representing the heading of the vehicle <NUM> and the first location sensor <NUM> and determines the second vector <NUM> between the second location sensor <NUM> and the intersection point representing the heading of the implement <NUM>.

In some embodiments, the headings of the farming machine <NUM> are determined using the intersection point whenever the first location sensor <NUM> and the second location sensor <NUM> receive new location data (e.g., set of coordinates). In some embodiments, when the farming machine <NUM> is moving at a speed greater than a threshold speed, the headings of the farming machine <NUM> can accurately be determined using just location data collected by the first location sensor <NUM> and the second location sensor <NUM> over time, so the headings of the farming machine <NUM> may not be determined using the intersection point to save computational resources. In some embodiments, the headings of the farming machine <NUM> are determined using both methods and the results of the two methods are compared. If the results are different by more than a threshold amount, the farming machine management system <NUM> may generate and send a notification to the client device <NUM> associated with the farming machine <NUM> indicating that the farming machine <NUM> require examination. For example, the camera <NUM>, the first location sensor <NUM>, or the second location sensor <NUM> may not be functioning properly, the camera <NUM> may require recalibration, or the dimensions of the farming machine <NUM> (e.g., L1, L2, S1, S2) may need to be remeasured.

The operation module <NUM> generates instructions for operating the farming machine <NUM> based on the location and heading of the vehicle <NUM> and the location and heading of the implement <NUM>. The operation module <NUM> generates the instructions to cause the farming machine <NUM> to perform an action. In some embodiments, the farming machine <NUM> may be semi-autonomous or autonomous. The operation module <NUM> may determine a path for the farming machine <NUM> to take based on the headings of the farming machine <NUM> and cause the farming machine <NUM> to move along the path. In other embodiments, the farming machine <NUM> may be remotely controlled based on input from a human operator (e.g., farmer) via the client device <NUM>. The farming machine management system <NUM> may generate and present a user interface that includes a map of a field including a graphical element representing the farming machine <NUM> to the human operator. The graphical element may be positioned according to the heading of the vehicle <NUM> and the heading of the implement <NUM> such that the human operator may operate the farming machine <NUM> accurately and safely.

The operation module <NUM> generates instructions to cause the farming machine <NUM> to raise or lower the implement <NUM>. The operation module <NUM> determines a lowering duration that it takes to lower the implement <NUM> from a raised position to a lowered position. While the farming machine <NUM> is operating on the field, it may be desirable for the implement <NUM> to be in the lowered position. However, while the farming machine <NUM> is located in the headland where the farming machine <NUM> turns around, it may be desirable for the implement <NUM> to be in the raised position. As the farming machine <NUM> enters the headland, the operation module <NUM> determines that the entirety of the implement <NUM> is located within the headland, and the operation module <NUM> instructs the farming machine <NUM> to begin raising the implement <NUM>. The operation module <NUM> instructs the farming machine <NUM> to begin lowering the implement <NUM> based on the determined lowering duration such that the implement is fully lowered prior to any portion of the implement leaving the headland.

<FIG> illustrates a flowchart of a method for determining heading of a farming vehicle and an implement. Process <NUM> begins with the farming machine management system <NUM> receiving <NUM> a first set of coordinates from a first location sensor (e.g., first location sensor <NUM>) coupled to a vehicle (e.g., vehicle <NUM> of farming machine <NUM>) at a first point. The farming machine management system <NUM> also receives <NUM> a second set of coordinates from a second location sensor (e.g., second location sensor <NUM>) coupled to an implement (e.g., implement <NUM>) at a second point. The implement is coupled to the vehicle at a pivot point and configured to move about the pivot point such that a first heading of the vehicle and a second heading of the implement may be different. The farming machine management system <NUM> identifies <NUM> one or more intersection points (e.g., intersection points 430A, 430B, 430C) between a first circle (e.g., first circle <NUM>) centered at the first point and a second circle (e.g., second circle <NUM>) centered at the second point. The first circle has a first radius corresponding to a distance between the first point where the first location sensor is and the pivot point, and the second circle has a second radius corresponding to a distance between a second point where the second location sensor is and the pivot point. The farming machine management system <NUM> selects <NUM> one intersection point from the one or more intersection points based on a relative angle between the vehicle and the implement based on the selected intersection point. The farming machine management system <NUM> generates instructions based on the first heading and the second heading to cause the vehicle to perform an action.

<FIG> illustrates a top view of a farming vehicle <NUM> and an implement <NUM> entering a headland <NUM>. The location of the headland <NUM> may be determined in various ways. For example, the headland <NUM> may be determined by a coverage map that has been generated based on the farming vehicle <NUM> working the headland <NUM> prior to working the field <NUM>. In some embodiments, the headland <NUM> may be determined based on an offset from the field boundary, and the farming vehicle <NUM> may work the headland <NUM> after working the field <NUM>. The farming vehicle <NUM> is traveling in the positive y-direction as shown. The implement <NUM> is operating on the field <NUM>. For example, the implement <NUM> may be tilling, planting seeds, treating plants, or performing any other suitable operation of the field <NUM>. The implement <NUM> is showed crossing into the headland <NUM>. Different portions of the implement <NUM> may enter the headland <NUM> at different times. For example, in the illustrated embodiment, the farming vehicle <NUM> and implement <NUM> enter the headland <NUM> at a non-perpendicular angle relative to the border between the headland <NUM> and the field <NUM>. In other embodiments, the border may be curved or at any other angle relative to the path of the implement <NUM>. The farming vehicle <NUM> determines the position of the implement <NUM> with respect to the border between the headland <NUM> and the field <NUM>. Once the farming vehicle <NUM> determines that the implement <NUM> is fully within the headland <NUM>, the farming vehicle <NUM> automatically raises the implement <NUM> above the ground. The farming vehicle <NUM> turns around in the headland and return into the field <NUM> to operate on the field <NUM> in the negative y-direction, as described with reference to <FIG>.

<FIG> illustrates a top view of the farming vehicle <NUM> and the implement <NUM> exiting the headland <NUM>. The farming vehicle <NUM> determines an amount of time it will take to lower the implement <NUM> to begin operating on the field <NUM>. The farming vehicle <NUM> also determines an amount of time until the implement <NUM> will begin to cross the border between the headland <NUM> and the field <NUM>. For example, based on a programmed route, a current position of the farming vehicle <NUM> and implement <NUM>, and a current speed of the farming vehicle, the farming vehicle <NUM> calculates the amount of time until the implement <NUM> will begin to enter the field <NUM>. The farming vehicle <NUM> begins lowering the implement <NUM> at a time such that the implement <NUM> begins operating on the field <NUM> once a portion of the implement <NUM> crosses the border between the headland <NUM> and the field <NUM>. For example, the farming vehicle <NUM> may determine that it will take two seconds to lower the implement <NUM>, and the farming vehicle <NUM> may begin lowering the implement <NUM> two seconds prior to a predicted time that any portion of the implement <NUM> enters the field <NUM>.

<FIG> illustrates a screenshot of a control interface <NUM> for offset calibration <NUM>. The control interface <NUM> may comprise a field map <NUM> that displays the field, the headland, and the position of the farming vehicle <NUM>. The control interface <NUM> permits a user to adjust when the farming vehicle <NUM> begins to raise or lower the implement <NUM>. For example, the farming vehicle <NUM> may be traversing the field in rows going from top to bottom across the field map <NUM>. The user may determine that the implement is being lowered too late by approximately <NUM> (twenty feet) when entering the field from the headland. The control interface <NUM> may comprise a top offset field <NUM> where the user may input an offset from the border between the headland and the field such that the farming vehicle <NUM> lowers the implement <NUM> (twenty feet) sooner. Similarly, the control interface <NUM> may comprise a bottom offset field <NUM> to calibrate the bottom offset. The control interface <NUM> may further comprise a heading angle <NUM> field to allow a user to calibrate the heading angle followed by the farming vehicle <NUM>.

<FIG> illustrates a flowchart of a method <NUM> for automatically raising and lowering an implement for a farming vehicle. A farming vehicle determines <NUM> an operating path for the farming vehicle on a field. In some embodiments, the farming vehicle may automatically determine the operating path based on known dimensions of the field. In some embodiments, a user may input an operating path into a control interface for the farming vehicle. The operating path may cover all or a portion of the field. The operating path may additionally cover a portion of a headland where the farming vehicle may turn around.

The farming vehicle determines <NUM> a lowering duration to lower an implement. The farming vehicle lowers the implement from a raised position to a lowered position. The farming vehicle measures the time it took to lower the implement to the lowered position. The farming vehicle monitors the duration of oil flowing through a selective control valve (SCV) that controls the height of the implement. In some embodiments, the farming vehicle may time the duration to lower the implement the first time as the farming vehicle begins the operating path. The farming vehicle may lower the implement and proceed on the operating path.

The farming vehicle raises <NUM> the implement once the implement is fully located within the headland for the field. The farming vehicle determines the position of the implement with respect to the border between the headland and the field. In some embodiments, the farming vehicle may cross the border at an angle non-perpendicular to the border. In such cases, different portions of the implement may enter the headland at different times. The farming vehicle determines that the entire implement has entered the headland. Once the farming vehicle determines that the implement is fully within the headland, the farming vehicle automatically raises the implement above the ground. The farming vehicle turns around in the headland and return into the field to continue on the operating path.

The farming vehicle calculates <NUM> a time at which a portion of the implement will exit the headland and enter the field. Based on the operating path, a current position of the farming vehicle and implement, and a current speed of the farming vehicle, the farming vehicle calculates the amount of time until the implement begins to enter the field. In some embodiments, the farming vehicle may continuously calculate the amount of time until the implement begins to enter the field. The farming vehicle may recalculate the time in response to a change in any parameters. For example, in response to the user adjusting the speed of the farming vehicle or the flow rate of oil through the SCV, the farming vehicle may recalculate the time until the implement begins to enter the field. In some embodiments, if the farming vehicle detects a change in speed of the farming vehicle after beginning to lower the implement, the farming vehicle may adjust the flow rate to the SCV to compensate for the difference in speed of the farming vehicle.

In some embodiments, the farming vehicle may calculate the time at with the implement will enter the field based on a prescribed speed. For example, the farming vehicle may traverse the field at a first speed, and the farming vehicle may turn in the headland at a second speed which may be different than the first speed. The path and the speed of the farming vehicle may be preplanned. The farming vehicle may calculate the time at which the implement will enter the field based on the distance to be traveled in the headland and the prescribed second speed. In response to the operator varying the speed of the farming vehicle from the prescribed speed, the farming vehicle may recalculate the time to raise or lower the implement based on the current speed. In embodiments where the operator is driving or turning manually, the farming vehicle may calculate estimated times by assuming that the path across the field and through the turn may be adjacent to the previous path and turn conducted by the farming vehicle.

The farming vehicle lowers <NUM> the implement prior to entering the field. Based on the previously calculated lowering duration, the farming vehicle may determine that it will take two seconds to lower the implement, and the farming vehicle may begin lowering the implement two seconds prior to the predicted time that any portion of the implement enters the field. The farming vehicle lowers the implement when the calculated time is equal to or within a threshold time of the determined lowering duration. For example, if the threshold time is <NUM> seconds and the lowering duration is two seconds, the farming vehicle begins lowering the implement <NUM> seconds prior to time at which the implement is predicted to enter the field. The farming vehicle may track the point at which the implement is fully lowered to document areas of the field that have been operated on by the implement. The farming vehicle may proceed on the operating path.

The farming vehicle may adjust <NUM> the offset for the implement based on user input. In some embodiments, the user may choose not to adjust the offset. In some embodiments, the user may determine that the farming vehicle is raising or lowering the implement too early or too late, and the user may adjust the offset such that the farming vehicle raises or lowers the implement earlier or later based on the user's input. For example, the user may instruct the farming vehicle to begin lowering the implement <NUM> (twenty feet) earlier than the farming vehicle did on previous turns. In some embodiments, the farming vehicle may adjust the offset, recalculate the lowering duration, or adjust any other suitable parameter in response to a change in conditions, such as a change in operating condition of the vehicle or a change in weather conditions which affects the timing or speed of the farming vehicle in any relevant manner.

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 scope of the appended claims.

One or more embodiments have been described above, examples of which are illustrated in the accompanying figures. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the scope of the appended claims.

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).

Claim 1:
A method comprising:
determining an operating path for a farming vehicle (<NUM>) on a field;
determining a lowering duration to lower an implement (<NUM>) of the farming vehicle (<NUM>);
raising the implement (<NUM>) in response to the implement (<NUM>) being fully located within a headland (<NUM>) for the field;
characterized in that the method is also comprises calculating a time at which the implement (<NUM>) will exit the headland (<NUM>) and enter the field based on the determined operating path for the farming vehicle (<NUM>); and
when the calculated time is equal to or within a threshold time of the determined lowering duration, lowering the implement (<NUM>) prior to entering the field;
wherein determining the lowering duration comprises measuring a time based on a flow of oil through a selective control valve.