DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 08/06/2024 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Status of Claims
Claims 1-20 filed on 08/06/2024 are presently examined.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-7, 9-14, and 16-19 are rejected under 35 U.S.C. 103 as being unpatentable over Rust et al. (US 12372961 B2) in view of Ellaboudy et al. (US 11778934 B2), hereinafter referred to as Rust and Ellaboudy, respectively.
Regarding claim 1, Rust discloses An agricultural vehicle, comprising: one or more sensors disposed on the agricultural vehicle, the one or more sensors configured to collect data associated with the agricultural vehicle ([abstract] “autonomous vehicle control system includes one or more sensors configured for coupling with an agricultural vehicle, the one or more sensors configured to determine kinematics of the agricultural vehicle relative to a crop row.”);
a first controller comprising one or more first memory devices storing first instructions thereon that, when executed by one or more first processors, cause the one or more first processors ([column 19, lines 46-50] “The instructions 1624 can also reside, completely or at least partially, within any of registers of the processor 1602, the main memory 1604, the static memory 1606, or the mass storage 1608 during execution thereof by the machine 1600.”) to:
receive, from the one or more sensors, first data to indicate a speed of the agricultural vehicle ([column 21, lines 27-30] “kinematics include one or more of yaw rate or velocity of the agricultural vehicle, and the one or more sensors are configured to determine one or more of the yaw rate or velocity.”), an orientation of a tractive element of the agricultural vehicle ([column 12, lines 50-57] “heading error θ.sub.H … determined using a respective mounting angle θ.sub.m of the noncontact sensors mounted to the wheels … wheel angle sensor readings θ.sub.was.”), and a position of a crop row relative to the agricultural vehicle ([column 7, lines 55-62] “include one or more radar, ultrasound, light detection and ranging (LIDAR) sensor, other time of flight sensors, or any camera or camera type sensor … determine vehicle position relative to a crop or crop row”);
determine, based on the first data using a nonlinear model, a difference between a heading of the agricultural vehicle and a path to take along the crop row ([column 14, lines 8-9] “a cross track error (XTE), a heading error (TKE)” [column 14, lines 12-22] “XTE may be determined by taking the difference between the middle of the closest row and the vehicle position in the row. In various embodiments, TKE may be determined by taking the difference between the heading (angle) of the closest row and the vehicle heading in the row … curvature error may be determined by taking the difference between the vehicle curvature (which may be determined from wheel angle and wheel base (distance between the front and rear axles), yaw rate and speed, or a combination of the two) and the determined crop row curvature C.” Curving paths are non-linear. The calculation of curving paths and curvature error would therefore be non-linear. Nonlinear model is generically recited in claims and also Applicant’s specification. Rust also discloses the failure of conventional systems that do not take into account curvature and rely on straight paths in [column 2, lines 18-39]);
generate, responsive to determination of the difference, a prediction of an adjustment to the heading of the agricultural vehicle to align the agricultural vehicle with the path to take along the crop row; transmit, responsive to generation of the prediction, one or more signals to control the agricultural vehicle to cause the agricultural vehicle to align with the path ([column 14, lines 54-57] “the steering controller 706 may determine a steering controller output equal to the difference between the calculated target vehicle curvature and a measured vehicle curvature fed back from the steering actuator 710.”); and
a second controller comprising one or more second memory devices storing second instructions ([column 5, lines 26-43] “one or more control systems or vehicle controllers that are configured to guide the vehicle as it performs a task in a field … the present disclosure ascribes operations, features, modules, or components, to a particular controller, this is done for case of discussion and such operations, features, modules, or components are, in various examples, performed by, or is incorporated in, one or more of the controllers or control systems described herein.”) thereon that, when executed by one or more second processors, cause the one or more second processors to:
Rust discloses the use of a wireless interface and communications over a network ([column 7, lines 14-18] “components of the agricultural vehicle monitoring system 200 can communicate or exchange data over a communication fabric 220, such as a controller area network bus (CAN bus) or other wired or wireless vehicle communication infrastructure.” [column 8, lines 38-42] “noncontact sensor 240 can relay data that is indicative of sensor measurements and sensor confidence to the comparative vehicle monitor 210, such as by way of wired connection at the power and data port 250 or a wireless interface coupled at the power and data port.” [column 20, lines 17-18] “The instructions 1624 can be further transmitted or received over a communications network.”).
Rust fails to explicitly disclose store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row; and retrieve, from the database, at least a portion of the second data; and generate, based on the at least a portion of the second data, a second path for the agricultural vehicle to take along the crop row at one or more subsequent points in time.
However, Ellaboudy teaches store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row; and retrieve, from the database, at least a portion of the second data; and generate, based on the at least a portion of the second data, a second path for the agricultural vehicle to take along the crop row at one or more subsequent points in time ([column 11, lines 48-50] “An output odometry may be recorded into a system database as a waypoint of a path data structure to be used for later vehicle navigation.” [column 11 lines 55-56] “instead of manual driving and steering the vehicle, the path may be recorded”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Rust with Ellaboudy’s teaching of outputting path data to a system database for later navigation. One would be motivated, with reasonable expectation of success, to store the path travel data of the vehicle in order to use it for subsequent navigation (Ellaboudy [column 11, lines 49-50] “path data structure to be used for later vehicle navigation.”).
Regarding claim 2, Rust discloses The agricultural vehicle of claim 1, wherein the first controller is configured to implement a feedback loop based on the first data ([FIG. 7] boxes 710 (measured vehicle curvature) and 708 (vehicle kinematics) feed into the steering controller in an iterative loop. This is feeding back the “first” data.), and wherein the second controller is configured to implement a feedforward loop based on the at least a portion of the second data ([column 3, lines 6-11] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature instead of reactive changes to steering of the vehicle as the row curvature is encountered” [column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes. This feeds forward past curvature and predicted curvature for subsequent accurate navigation.).
Regarding claim 3, Rust discloses The agricultural vehicle of claim 1, wherein the first instructions cause the one or more first processors to:
receive, from the one or more sensors, responsive to second movement of the agricultural vehicle subsequent to generation of the second path, third data to indicate a second speed of the agricultural vehicle, a second orientation of the tractive element, and a second position of the crop row relative to the agricultural vehicle; and update, based on at least a portion of the third data, the second path to adjust third movement of the agricultural vehicle to align the agricultural vehicle with the second path ([FIG. 7] box 708 vehicle kinematics informs navigation controller of the vehicle’s current data on the path, box 702 inputs XTE, TKE, and crop row curvature to the navigation controller as well. Target curvature is generated. The target curvature is compared to the measured curvature in the steering controller 706. This process continues iteratively, resulting in a number of paths taken and revised based on sensor-based information about the vehicle’s current path.).
Regarding claim 4, Rust discloses The agricultural vehicle of claim 1, wherein the first instructions cause the one or more first processors to:
receive, from the one or more sensors, third data to indicate second movement of the agricultural vehicle relative to the crop row (Rust discloses a cyclical process of capturing vehicle data, row curvature, predicted change, and error adjustment. Rust would capture a “third” data which is a second movement of the vehicle relative to the row.); detect, responsive to a comparison of the at least a portion of the second data and at least a portion of the third data, a deviation from at least one path of the plurality of paths taken by the agricultural vehicle along the crop row; and transmit, responsive to detection of the deviation, one or more second signals to control third movement of the agricultural vehicle relative to the crop row ([column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes.).
Regarding claim 5, Rust discloses The agricultural vehicle of claim 1, wherein:
the first instructions cause the one or more first processors to: monitor, responsive to transmission of the one or more signals, second movement of the agricultural vehicle to detect the movement of the agricultural vehicle; and determine, responsive to detection of the movement of the agricultural vehicle, the plurality of paths taken by the agricultural vehicle along the crop row; and the second instructions cause the one or more second processors to: generate, based on the plurality of paths and the path, a second prediction of one or more differences between the plurality of paths and the path ([column 16, lines 2-10] “the continuous TKE calibration is performed by: a) predicting the current XTE based on previous state (XTE/TKE/row curvature/vehicle curvature); b) measuring the current XTE; c) computing the instantaneous TKE measurement error [TKE_error=(XTE_measured−XTE_predicted)/distance_change]; d) performing a low-pass filter for the TKE error (filter gain is distance-based and can be tuned); and e) subtracting the filtered TKE error from the final TKE value” which is then used for control of the vehicle.).
Regarding claim 6, Rust discloses The agricultural vehicle of claim 1, wherein the second instructions cause the one or more second processors to:
generate, based on the at least a portion of the second data, a second prediction of a curvature of the crop row; receive, from the one or more sensors responsive to second movement of the agricultural vehicle, third data to indicate the second movement of the agricultural vehicle; and generate, based at least one the second prediction and at least a portion of the third data, a third prediction of a change to the curvature of the crop row ([column 2, lines 6-8] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature” [column 15 lines 34-37] “steering input based on the estimated curvature is applied at the correct time when transitioning through a dynamically changing crop row curvature.”).
Regarding claim 7, Rust discloses The agricultural vehicle of claim 6, wherein the second instructions cause the one or more second processors to:
transmit, responsive to generation of the third prediction, one or more second signals to control the agricultural vehicle to cause the agricultural vehicle to move in accordance with the change to the curvature of the crop row ([column 2, lines 6-8] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature” [column 15 lines 34-37] “steering input based on the estimated curvature is applied at the correct time when transitioning through a dynamically changing crop row curvature.”).
Regarding claim 9, Rust discloses An agricultural vehicle, comprising:
a controller comprising one or more memory devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to: receive, from one or more sensors, first data to indicate a speed of the agricultural vehicle, an orientation of a tractive element of the agricultural vehicle, and a position of a crop row relative to the agricultural vehicle ([abstract] “autonomous vehicle control system includes one or more sensors configured for coupling with an agricultural vehicle, the one or more sensors configured to determine kinematics of the agricultural vehicle relative to a crop row.” column 21, lines 27-30] “kinematics include one or more of yaw rate or velocity of the agricultural vehicle, and the one or more sensors are configured to determine one or more of the yaw rate or velocity.” [column 12, lines 50-57] “heading error θ.sub.H … determined using a respective mounting angle θ.sub.m of the noncontact sensors mounted to the wheels … wheel angle sensor readings θ.sub.was.” [column 7, lines 55-62] “include one or more radar, ultrasound, light detection and ranging (LIDAR) sensor, other time of flight sensors, or any camera or camera type sensor … determine vehicle position relative to a crop or crop row”);
determine, based on the first data using a nonlinear model, a difference between a heading of the agricultural vehicle and a path to take along the crop row ([column 14, lines 8-9] “a cross track error (XTE), a heading error (TKE)” [column 14, lines 12-22] “XTE may be determined by taking the difference between the middle of the closest row and the vehicle position in the row. In various embodiments, TKE may be determined by taking the difference between the heading (angle) of the closest row and the vehicle heading in the row … curvature error may be determined by taking the difference between the vehicle curvature (which may be determined from wheel angle and wheel base (distance between the front and rear axles), yaw rate and speed, or a combination of the two) and the determined crop row curvature C.” Curving paths are non-linear. The calculation of curving paths and curvature error would therefore be non-linear. Nonlinear model is generically recited in claims and also Applicant’s specification. Rust also discloses the failure of conventional systems that do not take into account curvature and rely on straight paths in [column 2, lines 18-39]);
generate, responsive to determination of the difference, a prediction of an adjustment to the heading of the agricultural vehicle to align the agricultural vehicle with the path to take along the crop row; transmit, responsive to generation of the prediction, one or more signals to control the agricultural vehicle to cause the agricultural vehicle to align with the path ([column 14, lines 54-57] “the steering controller 706 may determine a steering controller output equal to the difference between the calculated target vehicle curvature and a measured vehicle curvature fed back from the steering actuator 710.”);
wherein the controller is configured to implement a feedback loop based on the first data ([FIG. 7] boxes 710 (measured vehicle curvature) and 708 (vehicle kinematics) feed into the steering controller in an iterative loop. This is feeding back the “first” data.).
Rust discloses the use of a wireless interface and communications over a network ([column 7, lines 14-18] “components of the agricultural vehicle monitoring system 200 can communicate or exchange data over a communication fabric 220, such as a controller area network bus (CAN bus) or other wired or wireless vehicle communication infrastructure.” [column 8, lines 38-42] “noncontact sensor 240 can relay data that is indicative of sensor measurements and sensor confidence to the comparative vehicle monitor 210, such as by way of wired connection at the power and data port 250 or a wireless interface coupled at the power and data port.” [column 20, lines 17-18] “The instructions 1624 can be further transmitted or received over a communications network.”).
Rust fails to explicitly disclose store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row
However, Ellaboudy teaches store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row ([column 11, lines 48-50] “An output odometry may be recorded into a system database as a waypoint of a path data structure to be used for later vehicle navigation.” [column 11 lines 55-56] “instead of manual driving and steering the vehicle, the path may be recorded”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Rust with Ellaboudy’s teaching of outputting path data to a system database for later navigation. One would be motivated, with reasonable expectation of success, to store the path travel data of the vehicle in order to use it for subsequent navigation (Ellaboudy [column 11, lines 49-50] “path data structure to be used for later vehicle navigation.”).
Regarding claim 10, Rust discloses The agricultural vehicle of claim 9, comprising: the second controller is configured to implement a feedforward loop based on the at least a portion of the second data ([column 3, lines 6-11] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature instead of reactive changes to steering of the vehicle as the row curvature is encountered” [column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes. This feeds forward past curvature and predicted curvature for subsequent accurate navigation.).
Rust fails to explicitly disclose retrieve, from the database, at least a portion of the second data; and generate, based on the at least a portion of the second data, a second path for the agricultural vehicle to take along the crop row at one or more subsequent points in time.
However, Ellaboudy teaches retrieve, from the database, at least a portion of the second data; and generate, based on the at least a portion of the second data, a second path for the agricultural vehicle to take along the crop row at one or more subsequent points in time ([column 11, lines 48-50] “An output odometry may be recorded into a system database as a waypoint of a path data structure to be used for later vehicle navigation.” [column 11 lines 55-56] “instead of manual driving and steering the vehicle, the path may be recorded”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Rust with Ellaboudy’s teaching of outputting path data to a system database for later navigation. One would be motivated, with reasonable expectation of success, to store the path travel data of the vehicle in order to use it for subsequent navigation (Ellaboudy [column 11, lines 49-50] “path data structure to be used for later vehicle navigation.”).
Regarding claim 11, Rust discloses The agricultural vehicle of claim 10, wherein the instructions cause the one or more processors to:
receive, from the one or more sensors, responsive to second movement of the agricultural vehicle subsequent to generation of the second path, third data to indicate a second speed of the agricultural vehicle, a second orientation of the tractive element, and a second position of the crop row relative to the agricultural vehicle; and update, based on at least a portion of the third data, the second path to adjust third movement of the agricultural vehicle to align the agricultural vehicle with the second path ([FIG. 7] box 708 vehicle kinematics informs navigation controller of the vehicle’s current data on the path, box 702 inputs XTE, TKE, and crop row curvature to the navigation controller as well. Target curvature is generated. The target curvature is compared to the measured curvature in the steering controller 706. This process continues iteratively, resulting in a number of paths taken and revised based on sensor-based information about the vehicle’s current path.).
Regarding claim 12, Rust discloses The agricultural vehicle of claim 9, wherein the instructions cause the one or more processors to:
receive, from the one or more sensors, third data to indicate second movement of the agricultural vehicle relative to the crop row (Rust discloses a cyclical process of capturing vehicle data, row curvature, predicted change, and error adjustment. Rust would capture a “third” data which is a second movement of the vehicle relative to the row.); detect, responsive to a comparison of the at least a portion of the second data and at least a portion of the third data, a deviation from at least one path of the plurality of paths taken by the agricultural vehicle along the crop row; and transmit, responsive to detection of the deviation, one or more second signals to control third movement of the agricultural vehicle relative to the crop row ([column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes.).
Regarding claim 13, Rust discloses The agricultural vehicle of claim 9, comprising:
a second controller comprising one or more second memory devices storing second instructions thereon that, when executed by one or more second processors, cause the one or more second processors to: generate, based on the at least a portion of the second data, a second prediction of a curvature of the crop row; receive, from the one or more sensors responsive to second movement of the agricultural vehicle, third data to indicate the second movement of the agricultural vehicle; and generate, based at least one the second prediction and at least a portion of the third data, a third prediction of a change to the curvature of the crop row ([column 2, lines 6-8] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature” [column 15 lines 34-37] “steering input based on the estimated curvature is applied at the correct time when transitioning through a dynamically changing crop row curvature.”).
Regarding claim 14, Rust discloses The agricultural vehicle of claim 13, wherein the second instructions cause the one or more second processors to:
transmit, responsive to generation of the third prediction, one or more second signals to control the agricultural vehicle to cause the agricultural vehicle to move in accordance with the change to the curvature of the crop row ([column 2, lines 6-8] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature” [column 15 lines 34-37] “steering input based on the estimated curvature is applied at the correct time when transitioning through a dynamically changing crop row curvature.”).
Regarding claim 16, Rust discloses Rust discloses An agricultural vehicle, comprising:
a first controller comprising one or more memory devices storing instructions thereon that, when executed by one or more processors, cause the one or more processors to: receive, from one or more sensors, first data to indicate a speed of the agricultural vehicle, an orientation of a tractive element of the agricultural vehicle, and a position of a crop row relative to the agricultural vehicle ([abstract] “autonomous vehicle control system includes one or more sensors configured for coupling with an agricultural vehicle, the one or more sensors configured to determine kinematics of the agricultural vehicle relative to a crop row.” column 21, lines 27-30] “kinematics include one or more of yaw rate or velocity of the agricultural vehicle, and the one or more sensors are configured to determine one or more of the yaw rate or velocity.” [column 12, lines 50-57] “heading error θ.sub.H … determined using a respective mounting angle θ.sub.m of the noncontact sensors mounted to the wheels … wheel angle sensor readings θ.sub.was.” [column 7, lines 55-62] “include one or more radar, ultrasound, light detection and ranging (LIDAR) sensor, other time of flight sensors, or any camera or camera type sensor … determine vehicle position relative to a crop or crop row”);
determine, based on the first data using a nonlinear model, a difference between a heading of the agricultural vehicle and a path to take along the crop row ([column 14, lines 8-9] “a cross track error (XTE), a heading error (TKE)” [column 14, lines 12-22] “XTE may be determined by taking the difference between the middle of the closest row and the vehicle position in the row. In various embodiments, TKE may be determined by taking the difference between the heading (angle) of the closest row and the vehicle heading in the row … curvature error may be determined by taking the difference between the vehicle curvature (which may be determined from wheel angle and wheel base (distance between the front and rear axles), yaw rate and speed, or a combination of the two) and the determined crop row curvature C.” Curving paths are non-linear. The calculation of curving paths and curvature error would therefore be non-linear. Nonlinear model is generically recited in claims and also Applicant’s specification. Rust also discloses the failure of conventional systems that do not take into account curvature and rely on straight paths in [column 2, lines 18-39]);
generate, responsive to determination of the difference, a prediction of an adjustment to the heading of the agricultural vehicle to align the agricultural vehicle with the path to take along the crop row; transmit, responsive to generation of the prediction, one or more signals to control the agricultural vehicle to cause the agricultural vehicle to align with the path ([column 14, lines 54-57] “the steering controller 706 may determine a steering controller output equal to the difference between the calculated target vehicle curvature and a measured vehicle curvature fed back from the steering actuator 710.”);
a second controller configured to implement a feedforward loop based on at least a portion of the second data. ([column 3, lines 6-11] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature instead of reactive changes to steering of the vehicle as the row curvature is encountered” [column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes. This feeds forward past curvature and predicted curvature for subsequent accurate navigation.).
Rust discloses the use of a wireless interface and communications over a network ([column 7, lines 14-18] “components of the agricultural vehicle monitoring system 200 can communicate or exchange data over a communication fabric 220, such as a controller area network bus (CAN bus) or other wired or wireless vehicle communication infrastructure.” [column 8, lines 38-42] “noncontact sensor 240 can relay data that is indicative of sensor measurements and sensor confidence to the comparative vehicle monitor 210, such as by way of wired connection at the power and data port 250 or a wireless interface coupled at the power and data port.” [column 20, lines 17-18] “The instructions 1624 can be further transmitted or received over a communications network.”).
Rust fails to explicitly disclose store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row
However, Ellaboudy teaches store, responsive to monitoring movement of the agricultural vehicle, in a database, second data to indicate a plurality of paths taken by the agricultural vehicle along the crop row ([column 11, lines 48-50] “An output odometry may be recorded into a system database as a waypoint of a path data structure to be used for later vehicle navigation.” [column 11 lines 55-56] “instead of manual driving and steering the vehicle, the path may be recorded”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Rust with Ellaboudy’s teaching of outputting path data to a system database for later navigation. One would be motivated, with reasonable expectation of success, to store the path travel data of the vehicle in order to use it for subsequent navigation (Ellaboudy [column 11, lines 49-50] “path data structure to be used for later vehicle navigation.”).
Regarding claim 17, Rust discloses The agricultural vehicle of claim 16, wherein the instructions cause the one or more processors to:
receive, from the one or more sensors, responsive to second movement of the agricultural vehicle subsequent to generation of the second path, third data to indicate a second speed of the agricultural vehicle, a second orientation of the tractive element, and a second position of the crop row relative to the agricultural vehicle; and update, based on at least a portion of the third data, the second path to adjust third movement of the agricultural vehicle to align the agricultural vehicle with the second path ([FIG. 7] box 708 vehicle kinematics informs navigation controller of the vehicle’s current data on the path, box 702 inputs XTE, TKE, and crop row curvature to the navigation controller as well. Target curvature is generated. The target curvature is compared to the measured curvature in the steering controller 706. This process continues iteratively, resulting in a number of paths taken and revised based on sensor-based information about the vehicle’s current path.).
Regarding claim 18, Rust discloses The agricultural vehicle of claim 16, wherein the instructions cause the one or more processors to:
receive, from the one or more sensors, third data to indicate second movement of the agricultural vehicle relative to the crop row (Rust discloses a cyclical process of capturing vehicle data, row curvature, predicted change, and error adjustment. Rust would capture a “third” data which is a second movement of the vehicle relative to the row.); detect, responsive to a comparison of the at least a portion of the second data and at least a portion of the third data, a deviation from at least one path of the plurality of paths taken by the agricultural vehicle along the crop row; and transmit, responsive to detection of the deviation, one or more second signals to control third movement of the agricultural vehicle relative to the crop row ([column 3, lines 47-56] “The disclosed guidance controller is configured to detect row curvature and correct measured TKE and XTE so that the corrected TKE and XTE more accurately represent where the vehicle should be steered in a row. In various embodiments, a curvature offset (or curvature error) is used in the projection of XTE and TKE, and the curvature offset, XTE and TKE are then used by a navigation controller (e.g., a state space controller), along with the current vehicle dynamics, to calculate a target curvature for use in vehicle guidance.” The previous driving curvatures are used to determine whether corrections are needed for predicted curvature changes.).
Regarding claim 19, Rust discloses The agricultural vehicle of claim 16, comprising: the second controller comprising one or more second memory devices storing second instructions thereon that, when executed by one or more second processors, cause the one or more second processors to:
generate, based on the at least a portion of the second data, a second prediction of a curvature of the crop row; receive, from the one or more sensors responsive to second movement of the agricultural vehicle, third data to indicate the second movement of the agricultural vehicle; and generate, based at least one the second prediction and at least a portion of the third data, a third prediction of a change to the curvature of the crop row ([column 2, lines 6-8] “Using the crop row curvature allows the system to make predictive changes based on upcoming crop row curvature” [column 15 lines 34-37] “steering input based on the estimated curvature is applied at the correct time when transitioning through a dynamically changing crop row curvature.”).
Claims 8, 15, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Rust in view of Ellaboudy, further in view of Eglington (US 20060178823 A1), hereinafter referred to as Eglington.
Regarding claims 8, 15, and 20, Rust fails to explicitly disclose The agricultural vehicle of claim 6, wherein the second instructions cause the one or more second processors to: provide, via a prompt on a user interface, a first indication of the third prediction of the change to the curvature of the crop row; and receive, via an input provided from the user interface, a second indication to control third movement of the agricultural vehicle in accordance with the second prediction of the curvature of the crop row. ([column 7, lines 35-43] “The operator interface 205 can include one or more input or output devices, such as touchscreens, wireless device, smart phones, or any other computer interface that is configured to received or transmit instructions. In an example, the operator interface 205 provides steering cues or automated guidance directions based on a vehicle position determined by the agricultural vehicle monitoring system 200.”)
However, Eglington teaches provide, via a prompt on a user interface, a first indication of the third prediction of the change to the curvature of the crop row; and receive, via an input provided from the user interface, a second indication to control third movement of the agricultural vehicle in accordance with the second prediction of the curvature of the crop row ([abstract] “the system may propose alternative paths and the user can intervene by steering the vehicle or using a graphical user interface to select among the alternative paths.” [0012] “alternative paths of varying curvature along at least part of their length to be selected by the operator by steering the vehicle or by selecting through an independent user interface.”).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify Rust with Eglington’s teaching of using a user interface for the operator to choose the upcoming paths that have varying curvatures ([FIGs 9]). One would be motivated, with reasonable expectation of success, to provide such a user interface to enhance the operator’s intentions with the vehicle (Eglington [0119] “If the operator moves the vehicle to a different position or changes its heading, then the vehicle may be closer to the path which the operator actually wishes to propagate, and the system will propose an appropriate subsequent path. This method of input works well in most cases and is often a natural extension of the operator's intentions.”).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MARK R HEIM whose telephone number is (571)270-0120. The examiner can normally be reached M-F 9-6 EST.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Fadey Jabr can be reached on 571-272-1516. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/M.R.H./Examiner, Art Unit 3668
/Fadey S. Jabr/Supervisory Patent Examiner, Art Unit 3668