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 .
Continued Examination Under 37 CFR 1.114
A request for continued examination under 37 CFR 1.114, including the fee set forth in 37 CFR 1.17(e), was filed in this application after final rejection. Since this application is eligible for continued examination under 37 CFR 1.114, and the fee set forth in 37 CFR 1.17(e) has been timely paid, the finality of the previous Office action has been withdrawn pursuant to 37 CFR 1.114. Applicant's submission filed on 04/01/2026 has been entered.
Status of the Claims
The claims 1-13, 15-16, 18-19, 21-24 and 26 are currently pending and have been examined. Applicant amended claims 1, 8, 9, and 21.
Response to Arguments/Amendments
The amendment filed April 4, 2026 has been entered. Claims 1-13, 15-16, 18-19, 21-24 and 26 are currently pending in the Application.
Applicant’s arguments with respect to claim(s) 1-13, 15-16, 18-19, 21-24 and 26 under 35 U.S.C. 103 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
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.
Claim(s) 1-6, 8-13, 18, 21, 22 and 26 is/are rejected under 35 U.S.C. 103 as being unpatentable over Wang (US 20050125150 A1) in view of Berkemeier (US 20170191244 A1) and MEILE (US 20190107378 A1).
Regarding Claim 1, Wang teaches A control device for controlling one or more actuators (See at least paragraph [0021], “In FIG. 1, there is shown a Hard Real Time Control Center (HRTCC) according to one embodiment of the present invention. As shown in FIG. 1, the Hard Real Time Control Center comprises a Core comprised of hardware, software and a real time operating system, an application Interface, a User Input Device Interface, and a Network Interface. The communications network can include a wired or wireless Internet. The Synchronisation Interface facilitates connection to devices such as a global positioning system (GPS) receiver or a differential global positioning system (DGPS) receiver. The User Input Device Interface facilitates connection to User Input Devices (with or without virtual touch/haptics) such as a reconfigurable panel, to create GUIs where either the client or server Application Hardware/Software can be controlled. The Application Interface facilitates connection to Application Hardware/Software such as remote-controlled robots or Internet computer games”, paragraph [0047], “a) The application on the transmitting side provides data to the estimator. It is noted that the data from the application is related to the operating status of the application and thus can include kinematic information, which changes with respect to time, such as an operating position”, and paragraph [0094], “User Input Device Interface: The User Input Device Interface, comprised of both hardware and software, can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form specific to the user input hardware or software such as a virtual touch device. It supports both off-the-shelf and custom User Input Devices. It also converts sensor signals from the User Input Device into a form usable by the Core. Unlike the Application Interface, the User Input Device Interface would not necessarily send/read raw signals to/from the actuators/sensors (e.g. current to a motor, encoder reading for a motor), but would send/read data directly from the User Input Device such as a conventional or virtual touch device (e.g. desired motor position, force sensed on a joystick).”), the control device further comprising a processing unit arranged to determine a first time derivative of the coordinate (See at least paragraph [0032], “FIG. 4 schematically depicts how the Kalman Filter Predictor can be broken down into an estimation stage and a prediction stage. As illustrated in FIG. 4, the Estimator generates a vector signal X(k) with elements that are estimates of x(k), {dot over (x)}(k), and {umlaut over (x)}(k) without using derivative operations, thereby avoiding the noise amplification problem faced by the Dead Reckoning methods. The Estimator is updated every T.sub.s seconds, so the discrete version of the system model defined in equation (2) can be found as follows; 2 [ x ( t ) x . ( t ) x ( t ) ] k + 1 = [ 1 T s 2 ( - T s / + T s / - 1 ) 0 1 ( 1 - - T s / ) 0 0 - T s / ] [ x ( t ) x . ( t ) x ( t ) ] k + [ n 1 n 2 n 3 ] k ( 3 ) := A e x d ( k ) + n ( k ) , y(k)=[1 0 0]x.sub.d(k)+v(k):=C.sub.ex.sub.d(k)+v(k). (4)”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, and paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk.”) and a transmitter arranged to transmit a data signal indicative of the coordinate and the first time derivative of the coordinate (See at least paragraph [0003], “According to one aspect of the present invention, there is provided a Hard Real Time Control Center (HRTCC) for real-time controlling a Application Hardware and associated software and/or a User Input Device over a communications network, a plurality of the Hard Real Time Control Centers each being able to be connected to a node of the communications network. The real time control center comprises: an Application Hardware/Software associated each of the HRTCCs; (b) a User Input Device for controlling an Application Hardware/Software and/or other User Input Devices; (c) a synchroniser for substantially synchronising clocks of the HRTCCs connected to the communications network; (d) a data transmitter for sending data from one HRTCC to another via the communications network; (e) a data receiver for receiving data from other HRTCCs; and (f) an algorithm for determining a time delay incurred during the travel of the data via the communications network, compensating from the determined time delay and providing the compensated data to an Application Hardware and/or a User Input Device, thereby substantially removing the effects of the time delay”, paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, and paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side.”) wherein a compensation of the time delay is based on a pre-determined calibration setting (See at least paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0043], “The Predictor takes the output of the Estimator, after it has been transmitted, and projects it T.sub.d seconds into the future. The following equation represents the predictor equation: 7 x p ( t ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + 1 2 T d 2 x ^ ( t - T d ) + 3 [ 1 - T d / + T d 2 / ( 2 2 ) - - T d / ] x ^ ( t 1 ) = x ^ ( t 1 ) + T d x ^ . ( t 1 ) + 1 2 T d 2 x ^ ( t 1 ) + 1 6 T d 3 x ^ ( t 1 ) + ( T d 4 ) . ( 11 )”, and paragraph [0054], “FIG. 5 illustrates the logic used to implement the Random Jerk Kalman Filter Estimator and Predictor. During the initialization on the receiving side (or client side), at step 14, the communication channel is checked to see if data has been received. If not, then the receiving side waits until data is available. During the initialization on the transmission side (at step 12), an initial estimate of the position, velocity, acceleration, and jerk (i.e. {circumflex over (x)}(0),{circumflex over ({dot over (x)})}(0),{circumflex over ({umlaut over (x)})}(0),(0)) is determined and the vector {circumflex over (X)}(0)=[{circumflex over (x)}(0) {circumflex over ({dot over (x)})}(0) {circumflex over ({umlaut over (x)})}(0) (0)].sup.T is formed. An initial estimate of the prediction error covariance matrix P(0) is also formed during the initialization. If it is not possible to analytically determine P(0), then it is possible to choose P(0)=.lambda.I where .lambda. is a scalar initial weighting constant and I is an identity matrix of appropriate dimensions.”).
Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches for controlling one or more actuators on a construction machine (See at least paragraph [0002], “The invention relates generally to a system and method for autonomous control of work vehicles, particularly skid steer and similar vehicles”, paragraph [0003], “Work vehicles, such as a skid steer loader, are increasingly being used on job sites. Skid steer loaders are typically used as general utility machines, due to their versatility and ability to operate on job sites having reduced amounts of surface area. Their short footprint and highly flexible steering are particularly attractive in such applications”, and paragraph [0022], “The operator instructions (e.g., load control and steering inputs) and data (e.g., sensor feedback) received by the controller 40 may be utilized to generate state estimates of the work vehicle 10, including but not limited to, the work vehicle position, heading angle, bias in the rate gyro, right wheels and left wheels velocity, steering angle, a pitch angle, a roll angle, a yaw angle of the work vehicle 10, or a combination thereof, as well as rates of change of any one or more of these (e.g., first and/or second derivatives). As used herein, “position” (e.g., determined position, target position, etc.) refers to a position vector, such as a one, two, or three-dimensional position vector. For example, a two-dimensional position vector may include latitude and longitude, and a three-dimensional position vector may include latitude, longitude, and altitude/elevation. As will be appreciated, the position vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems, and may be determine and manipulated in one or more dimensions. In addition, as used herein, “velocity” (e.g., determined velocity, target velocity, etc.) refers to a velocity vector, such as a one, two, or three-dimensional velocity vector. For example, a one-dimensional velocity vector may include speed and direction in one direction only (e.g., ground speed), a two-dimensional velocity vector may include speed and direction in more than one direction (e.g., ground speed) and heading within a plane (e.g., along a ground plane), and a three-dimensional velocity vector may include speed and heading within three-dimensional space. Similar to the position vector, the velocity vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems. In certain embodiments, the velocity may be represented as a unit/normalized vector, i.e., a vector having a unit magnitude. In such embodiments, the magnitude (e.g., speed) is not included in the velocity vector. For example, a two-dimensional velocity unit vector may be representative of heading within a plane (e.g., along a ground plane), and a three-dimensional velocity unit vector may be representative of heading within a three-dimensional space. Similarly, in some embodiments, speed alone in one or more directions may be determined and manipulated for one or more aspects of the control described.”), to an actuator control unit of the construction machine (See at least paragraph [0022], “The operator instructions (e.g., load control and steering inputs) and data (e.g., sensor feedback) received by the controller 40 may be utilized to generate state estimates of the work vehicle 10, including but not limited to, the work vehicle position, heading angle, bias in the rate gyro, right wheels and left wheels velocity, steering angle, a pitch angle, a roll angle, a yaw angle of the work vehicle 10, or a combination thereof, as well as rates of change of any one or more of these (e.g., first and/or second derivatives). As used herein, “position” (e.g., determined position, target position, etc.) refers to a position vector, such as a one, two, or three-dimensional position vector. For example, a two-dimensional position vector may include latitude and longitude, and a three-dimensional position vector may include latitude, longitude, and altitude/elevation. As will be appreciated, the position vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems, and may be determine and manipulated in one or more dimensions. In addition, as used herein, “velocity” (e.g., determined velocity, target velocity, etc.) refers to a velocity vector, such as a one, two, or three-dimensional velocity vector. For example, a one-dimensional velocity vector may include speed and direction in one direction only (e.g., ground speed), a two-dimensional velocity vector may include speed and direction in more than one direction (e.g., ground speed) and heading within a plane (e.g., along a ground plane), and a three-dimensional velocity vector may include speed and heading within three-dimensional space. Similar to the position vector, the velocity vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems. In certain embodiments, the velocity may be represented as a unit/normalized vector, i.e., a vector having a unit magnitude. In such embodiments, the magnitude (e.g., speed) is not included in the velocity vector. For example, a two-dimensional velocity unit vector may be representative of heading within a plane (e.g., along a ground plane), and a three-dimensional velocity unit vector may be representative of heading within a three-dimensional space. Similarly, in some embodiments, speed alone in one or more directions may be determined and manipulated for one or more aspects of the control described.” The actuator control unit is controller 40.), thereby enabling compensation for a time delay between the control device and the construction machine by the actuator control unit (See at least paragraph [0039], “FIGS. 4-5 are top views of a trajectory of the vehicle 10 and wheels 14. FIG. 4 is a top view of the pathway of the trajectory of the wheels 14 (e.g., right wheels 42, left wheels 44) of the work vehicle 10 when the work vehicle 10 travels in a curved trajectory. The controller is configured to automatically adjust the trajectory (e.g., speed, direction, steering) of the wheels 14 of the work vehicle 10 based in part on the control point. When following a curve, the controller 40 uses several variables to determine the desired curvature of the trajectory. The variables may include, but are not limited to, a vehicle position (e.g., x, y coordinates on a Cartesian coordinate frame), radius of the arc of the work vehicle path, and heading angle of the work vehicle 10. An error in trajectory tracking and a time derivative associated with the error can be calculated. The controller uses these variables, such as to calculate a desired curvature to direct the work vehicle towards the desired steering trajectory. FIG. 5 is a top view of the pathway of the trajectory of the wheels 14 of the work vehicle when the work vehicle 10 travels in a linear trajectory. The same variables described with respect to the discussion for FIG. 4 may be used to adjust the trajectory of the work vehicle if a linear trajectory is desired. An error in trajectory tracking and a time derivative associated with the error can be calculated. As the work vehicle 10 proceeds along its desired trajectory, the controller adjusts automatically the speed, direction and/or steering angle of the wheels 14 in order to move the work vehicle along the requested (e.g., curved, linear) pathway based in part on the control point. In a presently contemplated embodiment, the controller calculates proportional gains and derivative gains and automatically adjusts the trajectory of the work vehicle to keep the error values within an acceptable threshold range. In practice, such gains may include one or more of proportional gains, derivative gains, integral gains, and other gains that aid in smooth and accurate control of the trajectory despite changing dynamics caused by the presence and movement of the load.” The actuator control unit is controller 40.).
Wang and Berkemeier do not explicitly disclose, however MEILE, in the same field of endeavor, teaches and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices (See at least paragraph [0069], “Moreover a delay may be compensated by an approach according to the invention. Such temporal delay relates to a change of which drive axis (axes) may cause a (scanning) movement of a probe and thereto related delay in providing actual position information of a respective axis. In other words, a relevant point in time of movement (direction) change is to be derived to provide accurate determination of measuring coordinates over the entire measurement process”, paragraph [0070], “For that, probe head values (trigger and/or analogue forces) may be acquired while moving harmonically around the reference point (by keeping contact with the artefact). The probe-head values can be compared with machine axis values and a latency or time delay can be determined between those two kinds of measurements. Hence, latency between a machine axis vector and a force vector (or trigger values) can be determined”, and paragraph [0071], “The calibration functionality may respectively be adapted to determine such machine delay with respect to the movement of the tool head by moving at least a part of the machine structure while simultaneous contact of the touch tool with the at least two touching regions is provided, wherein a direction of movement is changed during moving. The change of direction may preferably be controlled so that a main moving axis changes, e.g. from x- to y-axis, e.g. while moving a circle. A plurality of machine axes coordinates, in particular x-, y- and z-coordinates, and a plurality of applied forces and/or position signals on side of the tool head or touch tool can be registered while moving the machine structure. The machine axes coordinates can be assigned, in particular synchronized, to or with temporally related applied forces and/or position signals.” The system determines and compensates for time delay based on system behavior and operational characteristics. Accordingly, the system adjusts delay compensation based on system characteristics through calibration, thereby accommodating different machines and devices.), and/or to a personal preference of a given operator.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier, (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 2, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang teaches wherein the processing unit is arranged to determine a second time derivative of the coordinate, and wherein the transmitter is arranged to also transmit a data signal indicative of the second time derivative of the coordinate to the actuator control unit (See at least paragraph [0029], “In embodiments where the work vehicle 10 rotates off-center, the center point motion is different from simple rotation. The second term in the x component accounts for pivoting at a point that is not at the center of the vehicle. The rotationCenterOffset, d, is the offset along the x-axis of the work vehicle 10 relative to a control point (e.g., the center of the work vehicle 10). For example, as the vehicle turns left about the pivot point 46, the center point moves. The x and y components are affected by the amount shown in equation (1). As a final step, the result is multiplied by Δt to determine the change in position, which is added to the initial velocity to produce the new estimate of the velocity. In the illustrated embodiment, a velocity of the work vehicle 10, v.sub.v is projected onto the y-axis by multiplying v.sub.v by cos θ, where θ is the heading angle of the work vehicle 10 and can be understood in an analogous manner.”).
Regarding Claim 3, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang teaches wherein the transmitter is arranged to transmit data to the actuator control unit at a transmission rate (See at least paragraph [0047], “a) The application on the transmitting side provides data to the estimator. It is noted that the data from the application is related to the operating status of the application and thus can include kinematic information, which changes with respect to time, such as an operating position”, paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side”, and paragraph [0093], “Application Interface: This can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form (Voltage, current, Pulse Width Modulation (PWM) signal, etc.) which can be used by the actuators on the Application Hardware. It also converts sensor signals from the Application Hardware (encoder readings, digital signals, analog signals, etc.) into a form usable by the Core. For example, the Application Hardware could be the graphical display for a computer game, or an automobile in an automated highway system, or a surgical robot in a telehealth application.”), wherein the control device is arranged to sample the coordinat(See at least paragraph [0032], “FIG. 4 schematically depicts how the Kalman Filter Predictor can be broken down into an estimation stage and a prediction stage. As illustrated in FIG. 4, the Estimator generates a vector signal X(k) with elements that are estimates of x(k), {dot over (x)}(k), and {umlaut over (x)}(k) without using derivative operations, thereby avoiding the noise amplification problem faced by the Dead Reckoning methods. The Estimator is updated every T.sub.s seconds, so the discrete version of the system model defined in equation (2) can be found as follows; 2 [ x ( t ) x . ( t ) x ( t ) ] k + 1 = [ 1 T s 2 ( - T s / + T s / - 1 ) 0 1 ( 1 - - T s / ) 0 0 - T s / ] [ x ( t ) x . ( t ) x ( t ) ] k + [ n 1 n 2 n 3 ] k ( 3 ) := A e x d ( k ) + n ( k ) , y(k)=[1 0 0]x.sub.d(k)+v(k):=C.sub.ex.sub.d(k)+v(k). (4)”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk”, and paragraph [0042], “Since with time varying time delay communication channels data can be out of order or lost, the output of the communication channel will seem noisier than the input to the communication channel. Hence it is better to run the Estimator on the server with the cleaner input and transmit the output of the Estimator to the client. This means that the Kalman Filter has less noise input, which results in better estimates. This configuration is schematically illustrated in FIG. 6.”), and to determine the first and/or a second time derivative based on a time difference of sampled coordinate values (See at least paragraph [0032], “FIG. 4 schematically depicts how the Kalman Filter Predictor can be broken down into an estimation stage and a prediction stage. As illustrated in FIG. 4, the Estimator generates a vector signal X(k) with elements that are estimates of x(k), {dot over (x)}(k), and {umlaut over (x)}(k) without using derivative operations, thereby avoiding the noise amplification problem faced by the Dead Reckoning methods. The Estimator is updated every T.sub.s seconds, so the discrete version of the system model defined in equation (2) can be found as follows; 2 [ x ( t ) x . ( t ) x ( t ) ] k + 1 = [ 1 T s 2 ( - T s / + T s / - 1 ) 0 1 ( 1 - - T s / ) 0 0 - T s / ] [ x ( t ) x . ( t ) x ( t ) ] k + [ n 1 n 2 n 3 ] k ( 3 ) := A e x d ( k ) + n ( k ) , y(k)=[1 0 0]x.sub.d(k)+v(k):=C.sub.ex.sub.d(k)+v(k). (4)”, paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:,” paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk,” and paragraph [0043], “The Predictor takes the output of the Estimator, after it has been transmitted, and projects it T.sub.d seconds into the future. The following equation represents the predictor equation: 7 x p ( t ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + 1 2 T d 2 x ^ ( t - T d ) + 3 [ 1 - T d / + T d 2 / ( 2 2 ) - - T d / ] x ^ ( t 1 ) = x ^ ( t 1 ) + T d x ^ . ( t 1 ) + 1 2 T d 2 x ^ ( t 1 ) + 1 6 T d 3 x ^ ( t 1 ) + ( T d 4 ) . ( 11 ).”).
Regarding Claim 4, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang teaches wherein the control input arrangement (See at least paragraph [0094], “User Input Device Interface: The User Input Device Interface, comprised of both hardware and software, can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form specific to the user input hardware or software such as a virtual touch device. It supports both off-the-shelf and custom User Input Devices. It also converts sensor signals from the User Input Device into a form usable by the Core. Unlike the Application Interface, the User Input Device Interface would not necessarily send/read raw signals to/from the actuators/sensors (e.g. current to a motor, encoder reading for a motor), but would send/read data directly from the User Input Device such as a conventional or virtual touch device (e.g. desired motor position, force sensed on a joystick).”).
Regarding Claim 5, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang teaches wherein the control device is a remote control device for controlling the construction machine over a wireless link, and wherein the transmitter is a radio frequency transmitter arranged to transmit a wireless signal to an actuator control unit on the construction machin(See at least paragraph [0021], “In FIG. 1, there is shown a Hard Real Time Control Center (HRTCC) according to one embodiment of the present invention. As shown in FIG. 1, the Hard Real Time Control Center comprises a Core comprised of hardware, software and a real time operating system, an application Interface, a User Input Device Interface, and a Network Interface. The communications network can include a wired or wireless Internet. The Synchronisation Interface facilitates connection to devices such as a global positioning system (GPS) receiver or a differential global positioning system (DGPS) receiver. The User Input Device Interface facilitates connection to User Input Devices (with or without virtual touch/haptics) such as a reconfigurable panel, to create GUIs where either the client or server Application Hardware/Software can be controlled. The Application Interface facilitates connection to Application Hardware/Software such as remote-controlled robots or Internet computer games.”).
Regarding Claim 6, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches wherein the control device is an in-cabin or an on-machine control device for controlling the construction machine over a wired communication interface (See at least paragraph [0016], “Turning now to the drawings, FIG. 1 shows a work vehicle 10 having a frame 12 that is supported and moved by a plurality of wheels 14. Alternately, a track drive or other appropriate drive system may be used. A manipulating structure 16 includes an arrangement of structural members and actuators controllable by an operator (not shown), such as by an operator control 24 (e.g., a joystick or lever), to manipulate an implement 18 to perform work. As further shown in FIG. 1, the operator control 24 for controlling the work vehicle may be located within a cab. Frame 12 structurally supports the cab to at least partially surround the operator. A door 20 may provide operator ingress/egress to work vehicle 10, including a window or opening 22 through which an operator may view a work environment exterior of the work vehicle” and paragraph [0021], “The navigation of the work vehicle 10 is controlled by the controller 40. It should be noted that while the term “controller” is used in the present discussion, in practice, the “controller” may consist of one or more independent or cooperating units, which itself or themselves comprise processing circuitry, memory circuitry, input and output components, control signal generating and output components, and so forth. For example, the controller 40 may have a processor 52 (e.g., multiple microprocessors, one or more “general-purpose” microprocessors, one or more special-purpose microprocessors, and/or one or more application specific integrated circuits (ASICs), system-on-chip (SoC) device, or some other processor configuration) and memory 50 (e.g., random access memory, read only memory, flash memory, volatile or non-volatile memory, hard drive, etc.). The controller 40 is configured to store instructions (e.g., code) in the memory 50 and to execute the instructions via the processor 52 to control operation of the work vehicle 10. In particular, the controller 40 may execute instructions to control the wheels 42, 44 to provide a stable rate of movement in one or more directions 54 (e.g., linear or rotational movement) based, for example, on a size, weight, shape, or other characteristics of the load 56, the stability of the locations (e.g., pushing through ground or various impediments), and so forth. For example, the controller 40 may communicatively couple to various sensors throughout the work vehicle 10 and use sensor data to improve the movement of the vehicle and load. As described above, the sensors 38 may include load cells, speed sensors, accelerometers, wind sensors, vibration sensors, noise or acoustic sensors, force or resistance sensors, load level sensors, load tilt or angle sensors, load weight sensors, location stability sensors (e.g., motion caused by waves), or any combination thereof. In the illustrated embodiment, the sensors 38 are disposed on the central shaft for the rotating wheels (e.g., axles 58). However, it should be appreciated the sensors 38 can be located along the pivot points 46, the rotatable arm 37, the frame 12, and so forth. The controller 40 also may include a user interface or control panel having a display (e.g., LED, LCD, or touch screen display), user inputs (e.g., buttons, keypad or keyboard, touchpad, mouse, etc.), outputs or alerts (e.g., audio or visual alarms), or any combination thereof. These may be integrated into or utilize existing operator controls.”), and wherein the transmitter is arranged to transmit a data signal to the actuator control unit of the construction machine over the wired communication interface (See at least paragraph [0015], “A system and method for automatically controlling the steering of a work vehicle and accounting for changes when the center of gravity of the work vehicle changes (e.g., as product is loaded and/or unloaded from the work vehicle) is described herein. The system and method for controlling the steering of the work vehicle include adjusting the trajectory of the work vehicle by using equations to predict the effects of several variables (e.g., x position, y position, heading angle, bias in rate gyro, right wheel speed, left wheel speed). The system and method include maintaining control of the vehicle based in part on a control point (e.g., a predetermined point on the work vehicle used to calculate a deviation of the vehicle from the desired point). The system and method for controlling the steering of the work vehicle also include taking various measurements to predict the vehicle trajectory, and to measure the actual trajectory. The error between the measured trajectory and the predicted trajectory is minimized by adjusting the steering of the wheels (e.g., right side wheels, left side wheels). In an illustrative embodiment, the system and method may include one or more controllers configured to translate a moveable arm the vehicle. The controller is configured to receive data indicative, for example, of a first position, a first acceleration, a first angular velocity, a first heading angle, and a first velocity. The controller then automatically controls the vehicle by determining a load, by identifying a center of gravity based in part on the load and the received data, and the control point. In particular, the controller may control wheels to adjust trajectory to maintain the trajectory of the work vehicle on the desired path” and paragraph [0021], “The navigation of the work vehicle 10 is controlled by the controller 40. It should be noted that while the term “controller” is used in the present discussion, in practice, the “controller” may consist of one or more independent or cooperating units, which itself or themselves comprise processing circuitry, memory circuitry, input and output components, control signal generating and output components, and so forth. For example, the controller 40 may have a processor 52 (e.g., multiple microprocessors, one or more “general-purpose” microprocessors, one or more special-purpose microprocessors, and/or one or more application specific integrated circuits (ASICs), system-on-chip (SoC) device, or some other processor configuration) and memory 50 (e.g., random access memory, read only memory, flash memory, volatile or non-volatile memory, hard drive, etc.). The controller 40 is configured to store instructions (e.g., code) in the memory 50 and to execute the instructions via the processor 52 to control operation of the work vehicle 10. In particular, the controller 40 may execute instructions to control the wheels 42, 44 to provide a stable rate of movement in one or more directions 54 (e.g., linear or rotational movement) based, for example, on a size, weight, shape, or other characteristics of the load 56, the stability of the locations (e.g., pushing through ground or various impediments), and so forth. For example, the controller 40 may communicatively couple to various sensors throughout the work vehicle 10 and use sensor data to improve the movement of the vehicle and load. As described above, the sensors 38 may include load cells, speed sensors, accelerometers, wind sensors, vibration sensors, noise or acoustic sensors, force or resistance sensors, load level sensors, load tilt or angle sensors, load weight sensors, location stability sensors (e.g., motion caused by waves), or any combination thereof. In the illustrated embodiment, the sensors 38 are disposed on the central shaft for the rotating wheels (e.g., axles 58). However, it should be appreciated the sensors 38 can be located along the pivot points 46, the rotatable arm 37, the frame 12, and so forth. The controller 40 also may include a user interface or control panel having a display (e.g., LED, LCD, or touch screen display), user inputs (e.g., buttons, keypad or keyboard, touchpad, mouse, etc.), outputs or alerts (e.g., audio or visual alarms), or any combination thereof. These may be integrated into or utilize existing operator controls.” The controller sends the signals to the actuators – functioning as a transmitter.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to utilize the control device as an in-cabin or an on-machine control device for controlling the construction machine over a wired communication interface and the transmitter is arranged to transmit a data signal to the actuator control unit of the construction machine over the wired communication interface, as taught by Berkemeier (See paragraph [0015], [0016], [0021].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 8, Wang teaches A control device for controlling one or more actuators (See at least paragraph [0021], “In FIG. 1, there is shown a Hard Real Time Control Center (HRTCC) according to one embodiment of the present invention. As shown in FIG. 1, the Hard Real Time Control Center comprises a Core comprised of hardware, software and a real time operating system, an application Interface, a User Input Device Interface, and a Network Interface. The communications network can include a wired or wireless Internet. The Synchronisation Interface facilitates connection to devices such as a global positioning system (GPS) receiver or a differential global positioning system (DGPS) receiver. The User Input Device Interface facilitates connection to User Input Devices (with or without virtual touch/haptics) such as a reconfigurable panel, to create GUIs where either the client or server Application Hardware/Software can be controlled. The Application Interface facilitates connection to Application Hardware/Software such as remote-controlled robots or Internet computer games”, paragraph [0047], “a) The application on the transmitting side provides data to the estimator. It is noted that the data from the application is related to the operating status of the application and thus can include kinematic information, which changes with respect to time, such as an operating position”, and paragraph [0094], “User Input Device Interface: The User Input Device Interface, comprised of both hardware and software, can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form specific to the user input hardware or software such as a virtual touch device. It supports both off-the-shelf and custom User Input Devices. It also converts sensor signals from the User Input Device into a form usable by the Core. Unlike the Application Interface, the User Input Device Interface would not necessarily send/read raw signals to/from the actuators/sensors (e.g. current to a motor, encoder reading for a motor), but would send/read data directly from the User Input Device such as a conventional or virtual touch device (e.g. desired motor position, force sensed on a joystick).”), a processing unit arranged to determine a first time derivative of the coordinate (See at least paragraph [0032], “FIG. 4 schematically depicts how the Kalman Filter Predictor can be broken down into an estimation stage and a prediction stage. As illustrated in FIG. 4, the Estimator generates a vector signal X(k) with elements that are estimates of x(k), {dot over (x)}(k), and {umlaut over (x)}(k) without using derivative operations, thereby avoiding the noise amplification problem faced by the Dead Reckoning methods. The Estimator is updated every T.sub.s seconds, so the discrete version of the system model defined in equation (2) can be found as follows; 2 [ x ( t ) x . ( t ) x ( t ) ] k + 1 = [ 1 T s 2 ( - T s / + T s / - 1 ) 0 1 ( 1 - - T s / ) 0 0 - T s / ] [ x ( t ) x . ( t ) x ( t ) ] k + [ n 1 n 2 n 3 ] k ( 3 ) := A e x d ( k ) + n ( k ) , y(k)=[1 0 0]x.sub.d(k)+v(k):=C.sub.ex.sub.d(k)+v(k). (4)”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, and paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk.”), and to predict a future coordinate value indicating a future manual control command based on the coordinate and on the first time derivative (See at least paragraph [0052], “f) Knowing the time delay and the kinematic data that has been received, the predictor is able to compensate for the time delay by projecting the data into the future the same amount of time that the data was delayed.”), and a transmitter arranged to transmit a data signal indicative of the future coordinate value (See at least paragraph [0052], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side.”) (See at least paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0043], “The Predictor takes the output of the Estimator, after it has been transmitted, and projects it T.sub.d seconds into the future. The following equation represents the predictor equation: 7 x p ( t ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + 1 2 T d 2 x ^ ( t - T d ) + 3 [ 1 - T d / + T d 2 / ( 2 2 ) - - T d / ] x ^ ( t 1 ) = x ^ ( t 1 ) + T d x ^ . ( t 1 ) + 1 2 T d 2 x ^ ( t 1 ) + 1 6 T d 3 x ^ ( t 1 ) + ( T d 4 ) . ( 11 )”, and paragraph [0054], “FIG. 5 illustrates the logic used to implement the Random Jerk Kalman Filter Estimator and Predictor. During the initialization on the receiving side (or client side), at step 14, the communication channel is checked to see if data has been received. If not, then the receiving side waits until data is available. During the initialization on the transmission side (at step 12), an initial estimate of the position, velocity, acceleration, and jerk (i.e. {circumflex over (x)}(0),{circumflex over ({dot over (x)})}(0),{circumflex over ({umlaut over (x)})}(0),(0)) is determined and the vector {circumflex over (X)}(0)=[{circumflex over (x)}(0) {circumflex over ({dot over (x)})}(0) {circumflex over ({umlaut over (x)})}(0) (0)].sup.T is formed. An initial estimate of the prediction error covariance matrix P(0) is also formed during the initialization. If it is not possible to analytically determine P(0), then it is possible to choose P(0)=.lambda.I where .lambda. is a scalar initial weighting constant and I is an identity matrix of appropriate dimensions.”).
Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches for controlling one or more actuators on a construction machine (See at least paragraph [0002], “The invention relates generally to a system and method for autonomous control of work vehicles, particularly skid steer and similar vehicles”, paragraph [0003], “Work vehicles, such as a skid steer loader, are increasingly being used on job sites. Skid steer loaders are typically used as general utility machines, due to their versatility and ability to operate on job sites having reduced amounts of surface area. Their short footprint and highly flexible steering are particularly attractive in such applications”, and paragraph [0022], “The operator instructions (e.g., load control and steering inputs) and data (e.g., sensor feedback) received by the controller 40 may be utilized to generate state estimates of the work vehicle 10, including but not limited to, the work vehicle position, heading angle, bias in the rate gyro, right wheels and left wheels velocity, steering angle, a pitch angle, a roll angle, a yaw angle of the work vehicle 10, or a combination thereof, as well as rates of change of any one or more of these (e.g., first and/or second derivatives). As used herein, “position” (e.g., determined position, target position, etc.) refers to a position vector, such as a one, two, or three-dimensional position vector. For example, a two-dimensional position vector may include latitude and longitude, and a three-dimensional position vector may include latitude, longitude, and altitude/elevation. As will be appreciated, the position vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems, and may be determine and manipulated in one or more dimensions. In addition, as used herein, “velocity” (e.g., determined velocity, target velocity, etc.) refers to a velocity vector, such as a one, two, or three-dimensional velocity vector. For example, a one-dimensional velocity vector may include speed and direction in one direction only (e.g., ground speed), a two-dimensional velocity vector may include speed and direction in more than one direction (e.g., ground speed) and heading within a plane (e.g., along a ground plane), and a three-dimensional velocity vector may include speed and heading within three-dimensional space. Similar to the position vector, the velocity vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems. In certain embodiments, the velocity may be represented as a unit/normalized vector, i.e., a vector having a unit magnitude. In such embodiments, the magnitude (e.g., speed) is not included in the velocity vector. For example, a two-dimensional velocity unit vector may be representative of heading within a plane (e.g., along a ground plane), and a three-dimensional velocity unit vector may be representative of heading within a three-dimensional space. Similarly, in some embodiments, speed alone in one or more directions may be determined and manipulated for one or more aspects of the control described.”), to the construction machine, thereby enabling compensation for a time delay between the control device and the construction machine (See at least paragraph [0039], “FIGS. 4-5 are top views of a trajectory of the vehicle 10 and wheels 14. FIG. 4 is a top view of the pathway of the trajectory of the wheels 14 (e.g., right wheels 42, left wheels 44) of the work vehicle 10 when the work vehicle 10 travels in a curved trajectory. The controller is configured to automatically adjust the trajectory (e.g., speed, direction, steering) of the wheels 14 of the work vehicle 10 based in part on the control point. When following a curve, the controller 40 uses several variables to determine the desired curvature of the trajectory. The variables may include, but are not limited to, a vehicle position (e.g., x, y coordinates on a Cartesian coordinate frame), radius of the arc of the work vehicle path, and heading angle of the work vehicle 10. An error in trajectory tracking and a time derivative associated with the error can be calculated. The controller uses these variables, such as to calculate a desired curvature to direct the work vehicle towards the desired steering trajectory. FIG. 5 is a top view of the pathway of the trajectory of the wheels 14 of the work vehicle when the work vehicle 10 travels in a linear trajectory. The same variables described with respect to the discussion for FIG. 4 may be used to adjust the trajectory of the work vehicle if a linear trajectory is desired. An error in trajectory tracking and a time derivative associated with the error can be calculated. As the work vehicle 10 proceeds along its desired trajectory, the controller adjusts automatically the speed, direction and/or steering angle of the wheels 14 in order to move the work vehicle along the requested (e.g., curved, linear) pathway based in part on the control point. In a presently contemplated embodiment, the controller calculates proportional gains and derivative gains and automatically adjusts the trajectory of the work vehicle to keep the error values within an acceptable threshold range. In practice, such gains may include one or more of proportional gains, derivative gains, integral gains, and other gains that aid in smooth and accurate control of the trajectory despite changing dynamics caused by the presence and movement of the load.”).
Wang and Berkemeier do not explicitly disclose, however MEILE, in the same field of endeavor, teaches and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices (See at least paragraph [0069], “Moreover a delay may be compensated by an approach according to the invention. Such temporal delay relates to a change of which drive axis (axes) may cause a (scanning) movement of a probe and thereto related delay in providing actual position information of a respective axis. In other words, a relevant point in time of movement (direction) change is to be derived to provide accurate determination of measuring coordinates over the entire measurement process”, paragraph [0070], “For that, probe head values (trigger and/or analogue forces) may be acquired while moving harmonically around the reference point (by keeping contact with the artefact). The probe-head values can be compared with machine axis values and a latency or time delay can be determined between those two kinds of measurements. Hence, latency between a machine axis vector and a force vector (or trigger values) can be determined”, and paragraph [0071], “The calibration functionality may respectively be adapted to determine such machine delay with respect to the movement of the tool head by moving at least a part of the machine structure while simultaneous contact of the touch tool with the at least two touching regions is provided, wherein a direction of movement is changed during moving. The change of direction may preferably be controlled so that a main moving axis changes, e.g. from x- to y-axis, e.g. while moving a circle. A plurality of machine axes coordinates, in particular x-, y- and z-coordinates, and a plurality of applied forces and/or position signals on side of the tool head or touch tool can be registered while moving the machine structure. The machine axes coordinates can be assigned, in particular synchronized, to or with temporally related applied forces and/or position signals.” The system determines and compensates for time delay based on system behavior and operational characteristics. Accordingly, the system adjusts delay compensation based on system characteristics through calibration, thereby accommodating different machines and devices.), and/or to a personal preference of a given operator.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 9, An actuator control unit(See at least paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, paragraph [0047], “a) The application on the transmitting side provides data to the estimator. It is noted that the data from the application is related to the operating status of the application and thus can include kinematic information, which changes with respect to time, such as an operating position”, paragraph [0048], “b) The estimator filters the data (i.e. generates estimates of velocity, acceleration, jerk) and then makes it available to the transmission logic”, paragraph [0050], “d) Data is received at the receiving side after a certain time delay.” The actuator control unit is the controller.), wherein the actuator control unit is configured to predict a coordinate value indicative of a current manual control command input by the operator based on the data signal comprising the delayed manual control command and the first time derivative (See at least paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side”, paragraph [0051], “e) Since the transmitting side and receiving side are synchronised, it is possible to determine the time delay”, and paragraph [0052], “f) Knowing the time delay and the kinematic data that has been received, the predictor is able to compensate for the time delay by projecting the data into the future the same amount of time that the data was delayed.” The actuator control unit is the controller.), and wherein the actuator control unit is configured to generate a control command for controlling the one or more actuators based on the predicted coordinate value, thereby compensating for a time delay between the control device and the actuator control unit, wherein a compensation of the time delay is based on a pre-determined calibration setting (See at least paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0043], “The Predictor takes the output of the Estimator, after it has been transmitted, and projects it T.sub.d seconds into the future. The following equation represents the predictor equation: 7 x p ( t ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + 1 2 T d 2 x ^ ( t - T d ) + 3 [ 1 - T d / + T d 2 / ( 2 2 ) - - T d / ] x ^ ( t 1 ) = x ^ ( t 1 ) + T d x ^ . ( t 1 ) + 1 2 T d 2 x ^ ( t 1 ) + 1 6 T d 3 x ^ ( t 1 ) + ( T d 4 ) . ( 11 )”, and paragraph [0054], “FIG. 5 illustrates the logic used to implement the Random Jerk Kalman Filter Estimator and Predictor. During the initialization on the receiving side (or client side), at step 14, the communication channel is checked to see if data has been received. If not, then the receiving side waits until data is available. During the initialization on the transmission side (at step 12), an initial estimate of the position, velocity, acceleration, and jerk (i.e. {circumflex over (x)}(0),{circumflex over ({dot over (x)})}(0),{circumflex over ({umlaut over (x)})}(0),(0)) is determined and the vector {circumflex over (X)}(0)=[{circumflex over (x)}(0) {circumflex over ({dot over (x)})}(0) {circumflex over ({umlaut over (x)})}(0) (0)].sup.T is formed. An initial estimate of the prediction error covariance matrix P(0) is also formed during the initialization. If it is not possible to analytically determine P(0), then it is possible to choose P(0)=.lambda.I where .lambda. is a scalar initial weighting constant and I is an identity matrix of appropriate dimensions.” The actuator control unit is the controller.).
Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches for controlling one or more actuators on a construction machine (See at least paragraph [0002], “The invention relates generally to a system and method for autonomous control of work vehicles, particularly skid steer and similar vehicles”, paragraph [0003], “Work vehicles, such as a skid steer loader, are increasingly being used on job sites. Skid steer loaders are typically used as general utility machines, due to their versatility and ability to operate on job sites having reduced amounts of surface area. Their short footprint and highly flexible steering are particularly attractive in such applications”, and paragraph [0022], “The operator instructions (e.g., load control and steering inputs) and data (e.g., sensor feedback) received by the controller 40 may be utilized to generate state estimates of the work vehicle 10, including but not limited to, the work vehicle position, heading angle, bias in the rate gyro, right wheels and left wheels velocity, steering angle, a pitch angle, a roll angle, a yaw angle of the work vehicle 10, or a combination thereof, as well as rates of change of any one or more of these (e.g., first and/or second derivatives). As used herein, “position” (e.g., determined position, target position, etc.) refers to a position vector, such as a one, two, or three-dimensional position vector. For example, a two-dimensional position vector may include latitude and longitude, and a three-dimensional position vector may include latitude, longitude, and altitude/elevation. As will be appreciated, the position vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems, and may be determine and manipulated in one or more dimensions. In addition, as used herein, “velocity” (e.g., determined velocity, target velocity, etc.) refers to a velocity vector, such as a one, two, or three-dimensional velocity vector. For example, a one-dimensional velocity vector may include speed and direction in one direction only (e.g., ground speed), a two-dimensional velocity vector may include speed and direction in more than one direction (e.g., ground speed) and heading within a plane (e.g., along a ground plane), and a three-dimensional velocity vector may include speed and heading within three-dimensional space. Similar to the position vector, the velocity vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems. In certain embodiments, the velocity may be represented as a unit/normalized vector, i.e., a vector having a unit magnitude. In such embodiments, the magnitude (e.g., speed) is not included in the velocity vector. For example, a two-dimensional velocity unit vector may be representative of heading within a plane (e.g., along a ground plane), and a three-dimensional velocity unit vector may be representative of heading within a three-dimensional space. Similarly, in some embodiments, speed alone in one or more directions may be determined and manipulated for one or more aspects of the control described.”).
Wang and Berkemeier do not explicitly disclose, however MEILE, in the same field of endeavor, teaches and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices (See at least paragraph [0069], “Moreover a delay may be compensated by an approach according to the invention. Such temporal delay relates to a change of which drive axis (axes) may cause a (scanning) movement of a probe and thereto related delay in providing actual position information of a respective axis. In other words, a relevant point in time of movement (direction) change is to be derived to provide accurate determination of measuring coordinates over the entire measurement process”, paragraph [0070], “For that, probe head values (trigger and/or analogue forces) may be acquired while moving harmonically around the reference point (by keeping contact with the artefact). The probe-head values can be compared with machine axis values and a latency or time delay can be determined between those two kinds of measurements. Hence, latency between a machine axis vector and a force vector (or trigger values) can be determined”, and paragraph [0071], “The calibration functionality may respectively be adapted to determine such machine delay with respect to the movement of the tool head by moving at least a part of the machine structure while simultaneous contact of the touch tool with the at least two touching regions is provided, wherein a direction of movement is changed during moving. The change of direction may preferably be controlled so that a main moving axis changes, e.g. from x- to y-axis, e.g. while moving a circle. A plurality of machine axes coordinates, in particular x-, y- and z-coordinates, and a plurality of applied forces and/or position signals on side of the tool head or touch tool can be registered while moving the machine structure. The machine axes coordinates can be assigned, in particular synchronized, to or with temporally related applied forces and/or position signals.” The system determines and compensates for time delay based on system behavior and operational characteristics. Accordingly, the system adjusts delay compensation based on system characteristics through calibration, thereby accommodating different machines and devices.), and/or to a personal preference of a given operator.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 10, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 9, as set forth in the obviousness rejection. Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches wherein the control unit is further arranged to receive a data signal comprising a second time derivative of the delayed manual control command, and wherein the actuator control unit is configured to predict the coordinate value indicative of the current manual control command input by the operator based also on the second time derivative of the delayed manual control command (See at least paragraph [0021], “In FIG. 1, there is shown a Hard Real Time Control Center (HRTCC) according to one embodiment of the present invention. As shown in FIG. 1, the Hard Real Time Control Center comprises a Core comprised of hardware, software and a real time operating system, an application Interface, a User Input Device Interface, and a Network Interface. The communications network can include a wired or wireless Internet. The Synchronisation Interface facilitates connection to devices such as a global positioning system (GPS) receiver or a differential global positioning system (DGPS) receiver. The User Input Device Interface facilitates connection to User Input Devices (with or without virtual touch/haptics) such as a reconfigurable panel, to create GUIs where either the client or server Application Hardware/Software can be controlled. The Application Interface facilitates connection to Application Hardware/Software such as remote-controlled robots or Internet computer games”, paragraph [0029], “In embodiments where the work vehicle 10 rotates off-center, the center point motion is different from simple rotation. The second term in the x component accounts for pivoting at a point that is not at the center of the vehicle. The rotationCenterOffset, d, is the offset along the x-axis of the work vehicle 10 relative to a control point (e.g., the center of the work vehicle 10). For example, as the vehicle turns left about the pivot point 46, the center point moves. The x and y components are affected by the amount shown in equation (1). As a final step, the result is multiplied by Δt to determine the change in position, which is added to the initial velocity to produce the new estimate of the velocity. In the illustrated embodiment, a velocity of the work vehicle 10, v.sub.v is projected onto the y-axis by multiplying v.sub.v by cos θ, where θ is the heading angle of the work vehicle 10 and can be understood in an analogous manner”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, paragraph [0038], “b) The Predictor projects the position estimate T.sub.d seconds into the future based on the estimated velocity, acceleration, and jerk”, paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, and paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side.”).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to receive a data signal comprising a second time derivative of the delayed manual control command, and the actuator control unit is configured to predict the coordinate value indicative of the current manual control command input by the operator based also on the second time derivative of the delayed manual control command, as taught by Berkemeier (See paragraph [0021], [0029], [0038], [0049].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 11, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 9, as set forth in the obviousness rejection. Wang teaches arranged to determine a prediction error by comparing the predicted coordinate value to a corresponding future coordinate value, and to adjust the delay value to be compensated for by the predicted coordinate value based on a magnitude of the prediction error, such that a small error results in a longer delay value to be compensated for compared to a larger error (See at least paragraph [0054], “FIG. 5 illustrates the logic used to implement the Random Jerk Kalman Filter Estimator and Predictor. During the initialization on the receiving side (or client side), at step 14, the communication channel is checked to see if data has been received. If not, then the receiving side waits until data is available. During the initialization on the transmission side (at step 12), an initial estimate of the position, velocity, acceleration, and jerk (i.e. {circumflex over (x)}(0),{circumflex over ({dot over (x)})}(0),{circumflex over ({umlaut over (x)})}(0),(0)) is determined and the vector {circumflex over (X)}(0)=[{circumflex over (x)}(0) {circumflex over ({dot over (x)})}(0) {circumflex over ({umlaut over (x)})}(0) (0)].sup.T is formed. An initial estimate of the prediction error covariance matrix P(0) is also formed during the initialization. If it is not possible to analytically determine P(0), then it is possible to choose P(0)=.lambda.I where .lambda. is a scalar initial weighting constant and I is an identity matrix of appropriate dimensions”, paragraph [0055], “At step 14, the transmission logic (14) determines if data should be sent to the receiving side. Depending upon the overall application, an initial update could be sent immediately, or data could be held until an update is required, as defined in the following logic. Embedded within the transmission logic and the application on the receiving side are identical models of the signal x(t). The model in the transmission logic uses a snapshot of the data (at step 13) as an input, and outputs a signal {tilde over (x)}(t). The model within the transmission logic only uses the information that is available to the receiving side application, so the signal {tilde over (x)}(t) generated in the transmission logic is identical to the {tilde over (x)}(t) generated at the receiving side application. Therefore, the transmission logic is aware of the receiving side's perceived position x(t), namely {tilde over (x)}(t), as well as the actual position x(t). It is however noted that disturbances are not modeled, so if a disturbance is introduced on the transmission side through the application (e.g. a user applies a random input), then x(t) will deviate from {tilde over (x)}(t). Therefore, when the difference between the perceived and actual positions (i.e. x(t) and {tilde over (x)}(t)) exceeds a pre-defined threshold, then a new update is required on the receiving side and data is transmitted. The data transmitted includes a time stamp, the current position, velocity, acceleration and jerk. With this new update, the embedded model within the transmission logic and the receiving side's application is reset and the process is repeated. By incorporating this transmission logic, fewer updates are required and therefore the bandwidth requirement is reduced”, paragraph [0057], “On the receiving side, once data has been received (at step 32) the time delay can be determined by subtracting the current time on the receiving side computer from the time stamp on the data packet, since the two sides are time synchronised. Given this calculated time delay T.sub.d and the delayed version of the position x(t-T.sub.d), velocity {dot over (x)}(t-T.sub.d), acceleration {umlaut over (x)}(t-T.sub.d), and jerk (t-T.sub.d), the prediction of the position x.sub.p(t) can be calculated (at step 34) using equation (11) and then passed on to the receiving side application”, paragraph [0073], “Although these are three possible predictive techniques, this invention encompasses all other similar prediction techniques. Some examples of extensions and/or simplifications for the preferred embodiment are as follows:”, and paragraph [0084], “h) The characteristics of the communication network may change over time, and an alternate embodiment of the predictor would be to adaptively change the parameters of the estimator and predictor to account for those changes. For example, the measurement covariance matrix may be different at different times of the day. Hence, it would be advantageous to choose the most appropriate matrix based on the time of day that the application is running.”).
Regarding Claim 12, Wang, Berkemeier, and MEILE teach The actuator control unit according claim 9, as set forth in the obviousness rejection. Wang teaches wherein the actuator control unit is configured to predict the coordinate value indicative of a current control command by the operator in dependence of the control command, wherein the actuator control unit is configured to associate a delay to be compensated for by the predicted coordinate value in dependence of the control command (See at least paragraph [0021], “In FIG. 1, there is shown a Hard Real Time Control Center (HRTCC) according to one embodiment of the present invention. As shown in FIG. 1, the Hard Real Time Control Center comprises a Core comprised of hardware, software and a real time operating system, an application Interface, a User Input Device Interface, and a Network Interface. The communications network can include a wired or wireless Internet. The Synchronisation Interface facilitates connection to devices such as a global positioning system (GPS) receiver or a differential global positioning system (DGPS) receiver. The User Input Device Interface facilitates connection to User Input Devices (with or without virtual touch/haptics) such as a reconfigurable panel, to create GUIs where either the client or server Application Hardware/Software can be controlled. The Application Interface facilitates connection to Application Hardware/Software such as remote-controlled robots or Internet computer games”, paragraph [0038], “b) The Predictor projects the position estimate T.sub.d seconds into the future based on the estimated velocity, acceleration, and jerk”, paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side”, paragraph [0047], “a) The application on the transmitting side provides data to the estimator. It is noted that the data from the application is related to the operating status of the application and thus can include kinematic information, which changes with respect to time, such as an operating position”, paragraph [0057], “On the receiving side, once data has been received (at step 32) the time delay can be determined by subtracting the current time on the receiving side computer from the time stamp on the data packet, since the two sides are time synchronised. Given this calculated time delay T.sub.d and the delayed version of the position x(t-T.sub.d), velocity {dot over (x)}(t-T.sub.d), acceleration {umlaut over (x)}(t-T.sub.d), and jerk (t-T.sub.d), the prediction of the position x.sub.p(t) can be calculated (at step 34) using equation (11) and then passed on to the receiving side application”, paragraph [0073], “Although these are three possible predictive techniques, this invention encompasses all other similar prediction techniques. Some examples of extensions and/or simplifications for the preferred embodiment are as follows:”, and paragraph [0084], “h) The characteristics of the communication network may change over time, and an alternate embodiment of the predictor would be to adaptively change the parameters of the estimator and predictor to account for those changes. For example, the measurement covariance matrix may be different at different times of the day. Hence, it would be advantageous to choose the most appropriate matrix based on the time of day that the application is running.”).
Regarding Claim 13, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 9, as set forth in the obviousness rejection. Wang teaches wherein the actuator control unit is configured to predict the coordinate value based on a PID regulator algorithm, or wherein the actuator control unit is configured to predict the coordinate value based on a Kalman filter algorithm or a sequential minimum mean-squared error, MMSE, algorithm (See at least paragraph [0031], “The second method is the Random Acceleration Model Kalman Filter Predictor. This technique is similar to dead reckoning but it uses a Kalman Filter to generate cleaner position, velocity and acceleration data for the predictor to use in its kinematic prediction. This predictor is based on a model of the signal that is to be transmitted, the Random Acceleration Model. In this model, the first derivative (e.g. the velocity) is assumed constant except for finite time intervals, called manoeuvring times (.tau.). During the manoeuvring time, the acceleration is bounded, but random. That is, if the signal x(t) represents the position of an object, then the Random Acceleration Model assumes that the object moves with constant speed most of the time, except for short durations where a random acceleration causes the velocity to change. With n(t) and v(t) random white noise signals, the Random Acceleration Model can be represented by the following equation: 1 t [ x ( t ) x . ( t ) x ( t ) ] = [ 0 1 0 0 0 1 0 0 - 1 / ] [ x ( t ) x . ( t ) x ( t ) ] + [ 0 0 1 ] n ( t ) , y ( t ) = [ 1 0 0 ] [ x ( t ) x . ( t ) x ( t ) ] + v ( t ) . ( 2 )”, paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk”, and paragraph [0093], “Application Interface: This can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form (Voltage, current, Pulse Width Modulation (PWM) signal, etc.) which can be used by the actuators on the Application Hardware. It also converts sensor signals from the Application Hardware (encoder readings, digital signals, analog signals, etc.) into a form usable by the Core. For example, the Application Hardware could be the graphical display for a computer game, or an automobile in an automated highway system, or a surgical robot in a telehealth application.”).
Regarding Claim 18, Wang, Berkemeier, and MEILE teach The actuator control unit according claim 9, as set forth in the obviousness rejection. Wang teaches wherein the actuator control unit is arranged to receive a data signal comprising a sequence of control command coordinates associated with a coordinate update rate, wherein the actuator control unit is configured to predict the coordinate value at a rate above the coordinate update rate, and/or to generate the control command for controlling the one or more actuators at a control update rate above the coordinate update rate (See at least paragraph [0045], “As presented to this point, data is transmitted from the server to the client every sample period. While this results in the best prediction performance, this may not be desirable from a bandwidth perspective, so a method of trading off performance for reduced bandwidth is now presented. Suppose the client's application contains a model of the user's motion at the server (i.e. given only a few inputs, the client can estimate the position of the user at the server location by using the embedded model). Then the server can send out fewer updates and the client would be responsible for estimating the position of the user at the server when new updates are not available”, paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side”, paragraph [0055], “At step 14, the transmission logic (14) determines if data should be sent to the receiving side. Depending upon the overall application, an initial update could be sent immediately, or data could be held until an update is required, as defined in the following logic. Embedded within the transmission logic and the application on the receiving side are identical models of the signal x(t). The model in the transmission logic uses a snapshot of the data (at step 13) as an input, and outputs a signal {tilde over (x)}(t). The model within the transmission logic only uses the information that is available to the receiving side application, so the signal {tilde over (x)}(t) generated in the transmission logic is identical to the {tilde over (x)}(t) generated at the receiving side application. Therefore, the transmission logic is aware of the receiving side's perceived position x(t), namely {tilde over (x)}(t), as well as the actual position x(t). It is however noted that disturbances are not modeled, so if a disturbance is introduced on the transmission side through the application (e.g. a user applies a random input), then x(t) will deviate from {tilde over (x)}(t). Therefore, when the difference between the perceived and actual positions (i.e. x(t) and {tilde over (x)}(t)) exceeds a pre-defined threshold, then a new update is required on the receiving side and data is transmitted. The data transmitted includes a time stamp, the current position, velocity, acceleration and jerk. With this new update, the embedded model within the transmission logic and the receiving side's application is reset and the process is repeated. By incorporating this transmission logic, fewer updates are required and therefore the bandwidth requirement is reduced”, and paragraph [0057], “On the receiving side, once data has been received (at step 32) the time delay can be determined by subtracting the current time on the receiving side computer from the time stamp on the data packet, since the two sides are time synchronised. Given this calculated time delay T.sub.d and the delayed version of the position x(t-T.sub.d), velocity {dot over (x)}(t-T.sub.d), acceleration {umlaut over (x)}(t-T.sub.d), and jerk (t-T.sub.d), the prediction of the position x.sub.p(t) can be calculated (at step 34) using equation (11) and then passed on to the receiving side application.”).
Regarding Claim 21, Wang teaches An actuator control unit for (See at least paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )” and paragraph [0057], “paragraph [0057], “On the receiving side, once data has been received (at step 32) the time delay can be determined by subtracting the current time on the receiving side computer from the time stamp on the data packet, since the two sides are time synchronised. Given this calculated time delay T.sub.d and the delayed version of the position x(t-T.sub.d), velocity {dot over (x)}(t-T.sub.d), acceleration {umlaut over (x)}(t-T.sub.d), and jerk (t-T.sub.d), the prediction of the position x.sub.p(t) can be calculated (at step 34) using equation (11) and then passed on to the receiving side application.” The actuator control unit is the controller.), wherein the actuator control unit is configured to predict a coordinate value indicative of a current manual control command input by the operator based on an extrapolated value of the received sequence of coordinates (See at least paragraph [0043] “The Predictor takes the output of the Estimator, after it has been transmitted, and projects it T.sub.d seconds into the future. The following equation represents the predictor equation: 7 x p ( t ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + 1 2 T d 2 x ^ ( t - T d ) + 3 [ 1 - T d / + T d 2 / ( 2 2 ) - - T d / ] x ^ ( t 1 ) = x ^ ( t 1 ) + T d x ^ . ( t 1 ) + 1 2 T d 2 x ^ ( t 1 ) + 1 6 T d 3 x ^ ( t 1 ) + ( T d 4 ) . ( 11 )” and paragraph [0054], “FIG. 5 illustrates the logic used to implement the Random Jerk Kalman Filter Estimator and Predictor. During the initialization on the receiving side (or client side), at step 14, the communication channel is checked to see if data has been received. If not, then the receiving side waits until data is available. During the initialization on the transmission side (at step 12), an initial estimate of the position, velocity, acceleration, and jerk (i.e. {circumflex over (x)}(0),{circumflex over ({dot over (x)})}(0),{circumflex over ({umlaut over (x)})}(0),(0)) is determined and the vector {circumflex over (X)}(0)=[{circumflex over (x)}(0) {circumflex over ({dot over (x)})}(0) {circumflex over ({umlaut over (x)})}(0) (0)].sup.T is formed. An initial estimate of the prediction error covariance matrix P(0) is also formed during the initialization. If it is not possible to analytically determine P(0), then it is possible to choose P(0)=.lambda.I where .lambda. is a scalar initial weighting constant and I is an identity matrix of appropriate dimensions.”), and wherein the actuator control unit is configured to generate a control command for controlling the one or more actuators based on the predicted coordinate value, thereby compensating for a time delay between the control device and the actuator control unit, wherein a compensation of the time delay is based on a pre-determined calibration setting (See at least paragraph [0046], “FIG. 5 is a flow chart of the algorithm of the preferred embodiment of the Kalman Filter based Predictor time delay compensation process and it is now applied to the Random Jerk Model Kalman Filter Estimator and Predictor Algorithm. Referring to FIG. 5, the basic steps taken by the Random Jerk Kalman Filter Predictor are described below”, paragraph [0049], “c) The transmission logic determines if an update is necessary based on performance and bandwidth criteria. If an update is necessary, then data from the estimator is transmitted to the receiving side,” paragraph [0051], “e) Since the transmitting side and receiving side are synchronised, it is possible to determine the time delay”, and paragraph [0052], “f) Knowing the time delay and the kinematic data that has been received, the predictor is able to compensate for the time delay by projecting the data into the future the same amount of time that the data was delayed.” The actuator control unit is the controller.).
Wang does not explicitly disclose, however Berkemeier, in the same field of endeavor, teaches for controlling one or more actuators on a construction machine (See at least paragraph [0002], “The invention relates generally to a system and method for autonomous control of work vehicles, particularly skid steer and similar vehicles”, paragraph [0003], “Work vehicles, such as a skid steer loader, are increasingly being used on job sites. Skid steer loaders are typically used as general utility machines, due to their versatility and ability to operate on job sites having reduced amounts of surface area. Their short footprint and highly flexible steering are particularly attractive in such applications”, and paragraph [0022], “The operator instructions (e.g., load control and steering inputs) and data (e.g., sensor feedback) received by the controller 40 may be utilized to generate state estimates of the work vehicle 10, including but not limited to, the work vehicle position, heading angle, bias in the rate gyro, right wheels and left wheels velocity, steering angle, a pitch angle, a roll angle, a yaw angle of the work vehicle 10, or a combination thereof, as well as rates of change of any one or more of these (e.g., first and/or second derivatives). As used herein, “position” (e.g., determined position, target position, etc.) refers to a position vector, such as a one, two, or three-dimensional position vector. For example, a two-dimensional position vector may include latitude and longitude, and a three-dimensional position vector may include latitude, longitude, and altitude/elevation. As will be appreciated, the position vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems, and may be determine and manipulated in one or more dimensions. In addition, as used herein, “velocity” (e.g., determined velocity, target velocity, etc.) refers to a velocity vector, such as a one, two, or three-dimensional velocity vector. For example, a one-dimensional velocity vector may include speed and direction in one direction only (e.g., ground speed), a two-dimensional velocity vector may include speed and direction in more than one direction (e.g., ground speed) and heading within a plane (e.g., along a ground plane), and a three-dimensional velocity vector may include speed and heading within three-dimensional space. Similar to the position vector, the velocity vector may be represented in a rectangular, polar, cylindrical, or spherical coordinate system, among other suitable coordinate systems. In certain embodiments, the velocity may be represented as a unit/normalized vector, i.e., a vector having a unit magnitude. In such embodiments, the magnitude (e.g., speed) is not included in the velocity vector. For example, a two-dimensional velocity unit vector may be representative of heading within a plane (e.g., along a ground plane), and a three-dimensional velocity unit vector may be representative of heading within a three-dimensional space. Similarly, in some embodiments, speed alone in one or more directions may be determined and manipulated for one or more aspects of the control described.”).
Wang and Berkemeier do not explicitly disclose, however MEILE, in the same field of endeavor, teaches and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices (See at least paragraph [0069], “Moreover a delay may be compensated by an approach according to the invention. Such temporal delay relates to a change of which drive axis (axes) may cause a (scanning) movement of a probe and thereto related delay in providing actual position information of a respective axis. In other words, a relevant point in time of movement (direction) change is to be derived to provide accurate determination of measuring coordinates over the entire measurement process”, paragraph [0070], “For that, probe head values (trigger and/or analogue forces) may be acquired while moving harmonically around the reference point (by keeping contact with the artefact). The probe-head values can be compared with machine axis values and a latency or time delay can be determined between those two kinds of measurements. Hence, latency between a machine axis vector and a force vector (or trigger values) can be determined”, and paragraph [0071], “The calibration functionality may respectively be adapted to determine such machine delay with respect to the movement of the tool head by moving at least a part of the machine structure while simultaneous contact of the touch tool with the at least two touching regions is provided, wherein a direction of movement is changed during moving. The change of direction may preferably be controlled so that a main moving axis changes, e.g. from x- to y-axis, e.g. while moving a circle. A plurality of machine axes coordinates, in particular x-, y- and z-coordinates, and a plurality of applied forces and/or position signals on side of the tool head or touch tool can be registered while moving the machine structure. The machine axes coordinates can be assigned, in particular synchronized, to or with temporally related applied forces and/or position signals.” The system determines and compensates for time delay based on system behavior and operational characteristics. Accordingly, the system adjusts delay compensation based on system characteristics through calibration, thereby accommodating different machines and devices.), and/or to a personal preference of a given operator.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing
date to combine the invention of Wang with the teachings of Berkemeier and MEILE such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].).
Regarding Claim 22, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 21, as set forth in the obviousness rejection. Wang teaches wherein the actuator control unit is configured to predict the coordinate value based on a Kalman filter algorithm or a sequential minimum mean-squared error, MMSE, algorithm (See at least paragraph [0031], “The second method is the Random Acceleration Model Kalman Filter Predictor. This technique is similar to dead reckoning but it uses a Kalman Filter to generate cleaner position, velocity and acceleration data for the predictor to use in its kinematic prediction. This predictor is based on a model of the signal that is to be transmitted, the Random Acceleration Model. In this model, the first derivative (e.g. the velocity) is assumed constant except for finite time intervals, called manoeuvring times (.tau.). During the manoeuvring time, the acceleration is bounded, but random. That is, if the signal x(t) represents the position of an object, then the Random Acceleration Model assumes that the object moves with constant speed most of the time, except for short durations where a random acceleration causes the velocity to change. With n(t) and v(t) random white noise signals, the Random Acceleration Model can be represented by the following equation: 1 t [ x ( t ) x . ( t ) x ( t ) ] = [ 0 1 0 0 0 1 0 0 - 1 / ] [ x ( t ) x . ( t ) x ( t ) ] + [ 0 0 1 ] n ( t ) , y ( t ) = [ 1 0 0 ] [ x ( t ) x . ( t ) x ( t ) ] + v ( t ) . ( 2 )”, paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 )”, paragraph [0036], “The third method is called the Random Jerk Model Kalman Filter Predictor. It is noted that the "jerk" of the signal is the fourth derivative of position with respect to time, or alternately, the time derivative of the acceleration. Like the Random Acceleration Model Kalman Filter Predictor, the Random Jerk Model Kalman Filter Predictor can be broken down into two parts:”, paragraph [0037], “a) The Estimator provides filtered versions of the position, velocity, acceleration and jerk”, and paragraph [0093], “Application Interface: This can be a microcontroller or microprocessor which takes signals from the Core and converts them into a form (Voltage, current, Pulse Width Modulation (PWM) signal, etc.) which can be used by the actuators on the Application Hardware. It also converts sensor signals from the Application Hardware (encoder readings, digital signals, analog signals, etc.) into a form usable by the Core. For example, the Application Hardware could be the graphical display for a computer game, or an automobile in an automated highway system, or a surgical robot in a telehealth application.”).
Regarding Claim 26, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 21, as set forth in the obviousness rejection. Wang teaches wherein the actuator control unit is configured to determine a first time derivative and/or a second time derivative associated with a manual control command input by the operator based on the received sequence of coordinates (See at least paragraph [0029], “In embodiments where the work vehicle 10 rotates off-center, the center point motion is different from simple rotation. The second term in the x component accounts for pivoting at a point that is not at the center of the vehicle. The rotationCenterOffset, d, is the offset along the x-axis of the work vehicle 10 relative to a control point (e.g., the center of the work vehicle 10). For example, as the vehicle turns left about the pivot point 46, the center point moves. The x and y components are affected by the amount shown in equation (1). As a final step, the result is multiplied by Δt to determine the change in position, which is added to the initial velocity to produce the new estimate of the velocity. In the illustrated embodiment, a velocity of the work vehicle 10, v.sub.v is projected onto the y-axis by multiplying v.sub.v by cos θ, where θ is the heading angle of the work vehicle 10 and can be understood in an analogous manner” and paragraph [0034], “It is noted that since the Estimator input is the time delayed data, {circumflex over (X)}(k) is a vector that contains elements that are estimates of x(.xi.), {dot over (x)}(.xi.), {umlaut over (x)}(.xi.), where .xi.:kT.sub.s-T.sub.d and k is a positive integer. The elements of {circumflex over (X)}(k) will be denoted {circumflex over (x)}(.xi.),{circumflex over ({dot over (x)})}(.xi.),{circumflex over ({umlaut over (x)})}(.xi.). The initial conditions for the algorithm are {circumflex over (X)}(0)={circumflex over (X)}.sub.0 and P(0)=P.sub.0. Moreover, these estimates are less susceptible to noise since the optimal filter gives the minimum variance estimate of the state. The Predictor can thus utilise the estimates of the higher order derivatives in generating the estimate of the true signal. The predictor equation is given by 4 x p ( t ) = [ 1 T d 2 ( - T d / + T d / - 1 ) ] X ^ ( k ) = x ^ ( t - T d ) + T d x ^ . ( t - T d ) + T d 2 2 x ^ ( t - T d ) + ( T d 3 ) . ( 6 ).”).
Claim(s) 7 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Wang (US 20050125150 A1) in view of Berkemeier (US 20170191244 A1), MEILE (US 20190107378 A1), and Nishira (US 20050267608 A1).
Regarding Claim 7, Wang, Berkemeier, and MEILE teach The control device according to claim 1, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Nishira, in the same field of endeavor, teaches wherein the control device is arranged to obtain a finite length sequence of coordinates as function of time, and also a pre-determined set of motion models indicating respective motion patterns of the control input arrangement, wherein the processing unit is arranged to select a motion model out of the set of motion models which matches the sequence of coordinates based on a pre-determined matching criterion, and wherein the transmitter is arranged to transmit data indicating the selected motion model to the actuator control unit (See at least paragraph [0060], “In general, solution of an optimization problem takes a lot of arithmetic operations. However, if an optimization problem is defined by a specific type of system model and a specific type of objective function, the optimal solution is described by a relatively simple explicit function. In such a case, the optimal solution is obtained in a short period of time, without solving a system of simultaneous first order equations by inverse calculations and iterative calculations. Accordingly, in the shown embodiment, in order to obtain an optimal solution in a short period of time, the objective function is converted from the normal objective function (the equation (E6)) to a form of function for which the optimal solution is easily found”, paragraph [0070], “FIG. 7 shows a coordinate system for mathematical modeling in the shown embodiment. In FIG. 7, host vehicle 16, two target vehicles, i.e., target vehicle A 17, and target vehicle B 18 are present or traveling on a two-lane one-way road (a four-lane road). The x-axis is defined to extend along the road, and the y-axis is defined to extend normal to the x-axis in the horizontal plane. The zero point of the x-axis may be located at any point, because the relative distances between host vehicle 16 and target vehicle A 17 and between host vehicle 16 and target vehicle B 18 are used in the actual control computation. The zero point of the y-axis is located at the lane-marking line which divides between the left lane and the right lane. The scale of the y-axis is normalized so that the y-coordinate of the center line of the left lane is 1, and the y-coordinate of the center line of the right lane is -1. Host vehicle 16, target vehicle A 17, and target vehicle B 18 are given denotations "0", "1", and "2", respectively. More specifically, the x-position, the longitudinal speed, the y-position, of each of the vehicles concerned are represented by x.sub.i, v.sub.i, and y.sub.i (i=0, 1, 2) respectively. Accordingly, when two target vehicles are detected as in the shown embodiment, the system state x is described by the following equation (E14)”, paragraph [0077], “where v.sub.i* is an estimated desired vehicle speed of target vehicle i during there is no vehicle preceding target vehicle i, v.sub.i.sup.f(R.sub.i,R.sub.i',v.sub.i) is a model function which indicates a desired vehicle speed of target vehicle i in a condition in which the relative distance and the relative speed with respect to the preceding vehicle are R.sub.i, and R.sub.i', respectively, and the vehicle speed is v.sub.i. This function may be implemented by an algorithm including the equations (2) through (8), and the tables (1) and (2), in a Published Japanese Patent Application No. 2000-135934. The entire contents of this Japanese Patent Application No. 2000-135934 are hereby incorporated by reference. x.sub.i.sup.p, and v.sub.i.sup.p are the position and speed of the preceding vehicle in the same lane as target vehicle i. In FIG. 7, the preceding vehicle for target vehicle A 17 is target vehicle B 18. Accordingly, x.sub.i.sup.p=x.sub.2, and v.sub.i.sup.p=v.sub.2. Host vehicle 16 and target vehicle B 18 both have no preceding vehicle, so that the variables x.sub.i.sup.p, and v.sub.i.sup.p for them are not defined”, and paragraph [0078], “System behavior prediction section 10b is configured to predict a future time series state of the target vehicle as part of the future time series system state in accordance with the time series measured system state. Desired lane position u.sub.i.sup.y is set to -1 or 1 in accordance with prediction about whether target vehicle i (i.e. target vehicle A 17 or target vehicle B 18) keeps traveling in its current lane or is going to shift to the adjacent lane. The prediction is based on a past time series of lane position y.sub.i. FIGS. 8A and 8B illustrate how the model predictive control apparatus predicts the dynamic behaviors of target vehicles around the host vehicle. When lane position y.sub.i tends to increase as shown in FIG. 8A, it is determined that target vehicle i has intention of lane change to the left driving lane. Accordingly, the desired lane position u.sub.i.sup.y is switched from -1 to 1.” The actuator control unit is the vehicle behavior prediction section and associated processing logic.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Nishira such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and the control device is arranged to obtain a finite length sequence of coordinates as function of time, and also a pre-determined set of motion models indicating respective motion patterns of the control input arrangement, wherein the processing unit is arranged to select a motion model out of the set of motion models which matches the sequence of coordinates based on a pre-determined matching criterion, and wherein the transmitter is arranged to transmit data indicating the selected motion model to the actuator control unit, as taught by Nishira (See paragraph [0060], [0070], [0077], [0078].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing response time to change in the environment, as taught by Nishira (See paragraph [0006].).
Regarding Claim 19, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 9, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Nishira, in the same field of endeavor, teaches arranged to obtain a finite length sequence of coordinates as function of time, and also a pre-determined set of motion models indicating respective motion patterns of the control input arrangement, wherein the actuator control unit is arranged to select a motion model out of the set of motion models which matches the sequence of coordinates based on a pre-determined matching criterion, and to predict the coordinate value indicative of the current manual control command based on the selected motion model (See at least paragraph [0060], “In general, solution of an optimization problem takes a lot of arithmetic operations. However, if an optimization problem is defined by a specific type of system model and a specific type of objective function, the optimal solution is described by a relatively simple explicit function. In such a case, the optimal solution is obtained in a short period of time, without solving a system of simultaneous first order equations by inverse calculations and iterative calculations. Accordingly, in the shown embodiment, in order to obtain an optimal solution in a short period of time, the objective function is converted from the normal objective function (the equation (E6)) to a form of function for which the optimal solution is easily found”, paragraph [0070], “FIG. 7 shows a coordinate system for mathematical modeling in the shown embodiment. In FIG. 7, host vehicle 16, two target vehicles, i.e., target vehicle A 17, and target vehicle B 18 are present or traveling on a two-lane one-way road (a four-lane road). The x-axis is defined to extend along the road, and the y-axis is defined to extend normal to the x-axis in the horizontal plane. The zero point of the x-axis may be located at any point, because the relative distances between host vehicle 16 and target vehicle A 17 and between host vehicle 16 and target vehicle B 18 are used in the actual control computation. The zero point of the y-axis is located at the lane-marking line which divides between the left lane and the right lane. The scale of the y-axis is normalized so that the y-coordinate of the center line of the left lane is 1, and the y-coordinate of the center line of the right lane is -1. Host vehicle 16, target vehicle A 17, and target vehicle B 18 are given denotations "0", "1", and "2", respectively. More specifically, the x-position, the longitudinal speed, the y-position, of each of the vehicles concerned are represented by x.sub.i, v.sub.i, and y.sub.i (i=0, 1, 2) respectively. Accordingly, when two target vehicles are detected as in the shown embodiment, the system state x is described by the following equation (E14), paragraph [0077], “where v.sub.i* is an estimated desired vehicle speed of target vehicle i during there is no vehicle preceding target vehicle i, v.sub.i.sup.f(R.sub.i,R.sub.i',v.sub.i) is a model function which indicates a desired vehicle speed of target vehicle i in a condition in which the relative distance and the relative speed with respect to the preceding vehicle are R.sub.i, and R.sub.i', respectively, and the vehicle speed is v.sub.i. This function may be implemented by an algorithm including the equations (2) through (8), and the tables (1) and (2), in a Published Japanese Patent Application No. 2000-135934. The entire contents of this Japanese Patent Application No. 2000-135934 are hereby incorporated by reference. x.sub.i.sup.p, and v.sub.i.sup.p are the position and speed of the preceding vehicle in the same lane as target vehicle i. In FIG. 7, the preceding vehicle for target vehicle A 17 is target vehicle B 18. Accordingly, x.sub.i.sup.p=x.sub.2, and v.sub.i.sup.p=v.sub.2. Host vehicle 16 and target vehicle B 18 both have no preceding vehicle, so that the variables x.sub.i.sup.p, and v.sub.i.sup.p for them are not defined”, and paragraph [0078], “System behavior prediction section 10b is configured to predict a future time series state of the target vehicle as part of the future time series system state in accordance with the time series measured system state. Desired lane position u.sub.i.sup.y is set to -1 or 1 in accordance with prediction about whether target vehicle i (i.e. target vehicle A 17 or target vehicle B 18) keeps traveling in its current lane or is going to shift to the adjacent lane. The prediction is based on a past time series of lane position y.sub.i. FIGS. 8A and 8B illustrate how the model predictive control apparatus predicts the dynamic behaviors of target vehicles around the host vehicle. When lane position y.sub.i tends to increase as shown in FIG. 8A, it is determined that target vehicle i has intention of lane change to the left driving lane. Accordingly, the desired lane position u.sub.i.sup.y is switched from -1 to 1.” The actuator control unit is the vehicle behavior prediction section and associated processing logic.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Nishira such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and obtain a finite length sequence of coordinates as function of time, and also a pre-determined set of motion models indicating respective motion patterns of the control input arrangement, wherein the actuator control unit is arranged to select a motion model out of the set of motion models which matches the sequence of coordinates based on a pre-determined matching criterion, and to predict the coordinate value indicative of the current manual control command based on the selected motion model, as taught by Nishira (See paragraph [0060], [0070], [0077], [0078].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing response time to change in the environment, as taught by Nishira (See paragraph [0006].).
Claim(s) 15, 16, 23 and 24 is/are rejected under 35 U.S.C. 103 as being unpatentable over Wang (US 20050125150 A1) in view of Berkemeier (US 20170191244 A1), MEILE (US 20190107378 A1), and Ascari (US 20150178620 A1).
Regarding Claim 15, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 9, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Ascari, in the same field of endeavor, teaches wherein the actuator control unit is configured to predict the coordinate value based on a neural network trained on training data comprising a first and a second sequence of coordinate values wherein the second sequence of coordinate values is a delayed version of the first sequence, and wherein the delay corresponds to the time delay between a control device and the actuator control unit (See at least paragraph [0192], “The System Control Unit 260 is the coordinating module of the system. Its main duty is to run the other modules in order to achieve the desired function of unit 260. For instance it receives commands from the User Control I/O Layer 270, like a request for prediction or a request of specific event classification, and it exploits Time Master 230, Context Check 240 and Supervised Gating 250 modules to control the Enhanced hierarchical Memory 220. This module supervises also the eventual training of the Enhanced hierarchical Memory 220 upon specific external request”, paragraph [0464], “With respect to already published material about NG algorithms and their temporal variants, the invention in particular adds support for the following features enabling integration of temporal NG algorithms inside spatiotemporal clustering nodes, feature such as (1) temporal graph/model learning (in addition to the topological graph already accounted for), based on the Hebbian Competitive Rule (HCR), while training the gas, (2) enhanced training which exploits both the topological and temporal graphs to build an Homogeneous Generalized Semi-Markov Model of the input source. This effectively permits to learn/model also the timing between input patterns (also called inter-arrival times of events), (3) Enhanced (or Hybrid) Grouping to isolate temporal events which exploits the temporal graph structures as well as, at the same time, temporal statistics about each neuron's receptive fields (e.g. TQE and TQE for future inputs), (4) Inference Process based on Neural Gas data structures, (5) Graph-based prediction”, paragraph [0465], “Concerning Temporal Graph Learning, a new graph structure composed by temporal edges has been added to the classical data structures used by NG algorithms (e.g. the topological graph structure used to represent topological relations among centroids/neurons induced by the input space). HCR is used to create and delete temporal edges among neurons (in a way very similar to the one used to manage temporal edges) during the training process in order to keep track of neurons' activation trajectories. From a different point of view, the neurons developed by the training process might be seen as internal state of a state machine modeling the input signal. This new temporal graph somehow represents the state transition function of this state machine”, paragraph [0466], “The main aim of this temporal graph is to aid the inference, grouping, and prediction processes associated to a spatiotemporal clustering node”, and paragraph [0467], “Concerning enhanced learning, to enable a spatiotemporal clustering node to learn the timing between `different` input patterns, we have extended the data structure associated with neurons to also comprise an estimation for the permanence on the previous state/neuron (which in the simplest case represents the estimated Gaussian distribution of the time spent on the previous neuron before moving on to the next one). In other words, knowing the current internal state, it is possible to extract the possible next states together with the time to wait on the current state before jumping to a next one (jumps to different states can be associated to different waiting times on the current state). These permanence estimations, together with the position of the neurons (input patterns) and the temporal graph edges (and related traversal counters), actually permit to learn a Homogeneous Generalized Semi-Markov Model over the input space. This means that our Enhanced Neural Gas (ENG) is able to model the input signal as a Homogeneous Generalized Semi-Markov Process learning all its characterizing parameters. This model serves as a good base for the inference and prediction processes.” The actuator control unit is the system control unit.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Ascari such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and the actuator control unit is configured to predict the coordinate value based on a neural network trained on training data comprising a first and a second sequence of coordinate values wherein the second sequence of coordinate values is a delayed version of the first sequence, and the delay corresponds to the time delay between a control device and the actuator control unit, as taught by Ascari (See paragraph [0464], [0465], [0466], [0467].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing monitoring interaction during machine operation in a changing environment, as taught by Ascari (See paragraph [0005].).
Regarding Claim 16, Wang, Berkemeier, MEILE, and Ascari teach The actuator control unit according to claim 15, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Ascari, in the same field of endeavor, teaches wherein the neural network is configured to be trained for a given operator or group of operators (See at least paragraph [0175], “Generalization abilities make the system tolerant to minor differences in operator performance patterns allowing for finite memory usage and hence tackling the impossibility of storing inside the system memory all possible situations which might be encountered during every operation of the tool. Concrete examples of situations where generalization capability is expected to win (against analytical approaches) includes coping with different operators (inter-operator) having different operational styles or characteristics as well as coping with different intentions of the same operator (intra-operator), and with different plans and times all of which cannot be foreseen a priori during the design of the system. In fact, a human operator scenario is extremely challenging because of the variability and adaptability of human operators, so that the number of situations in which an operator might be involved is virtually unlimited and hence impossible to memorize in an exhaustive manner.”), or wherein the neural network comprises a long short-term memory, LSTM, artificial recurrent neural network architecture.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Ascari such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and the neural network is configured to be trained for a given operator or group of operators, as taught by Ascari (See paragraph [0175].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing monitoring interaction during machine operation in a changing environment, as taught by Ascari (See paragraph [0005].).
Regarding Claim 23, Wang, Berkemeier, and MEILE teach The actuator control unit according to claim 21, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Ascari, in the same field of endeavor, teaches wherein the actuator control unit is configured to predict the coordinate value based on a neural network trained on training data comprising a first and a second sequence of coordinate values where the second sequence of coordinate values is a delayed version of the first sequence, and where the delay corresponds to the time delay between a control device and the actuator control unit (See at least paragraph [0192], “The System Control Unit 260 is the coordinating module of the system. Its main duty is to run the other modules in order to achieve the desired function of unit 260. For instance it receives commands from the User Control I/O Layer 270, like a request for prediction or a request of specific event classification, and it exploits Time Master 230, Context Check 240 and Supervised Gating 250 modules to control the Enhanced hierarchical Memory 220. This module supervises also the eventual training of the Enhanced hierarchical Memory 220 upon specific external request”, paragraph [0464], “With respect to already published material about NG algorithms and their temporal variants, the invention in particular adds support for the following features enabling integration of temporal NG algorithms inside spatiotemporal clustering nodes, feature such as (1) temporal graph/model learning (in addition to the topological graph already accounted for), based on the Hebbian Competitive Rule (HCR), while training the gas, (2) enhanced training which exploits both the topological and temporal graphs to build an Homogeneous Generalized Semi-Markov Model of the input source. This effectively permits to learn/model also the timing between input patterns (also called inter-arrival times of events), (3) Enhanced (or Hybrid) Grouping to isolate temporal events which exploits the temporal graph structures as well as, at the same time, temporal statistics about each neuron's receptive fields (e.g. TQE and TQE for future inputs), (4) Inference Process based on Neural Gas data structures, (5) Graph-based prediction”, paragraph [0465], “Concerning Temporal Graph Learning, a new graph structure composed by temporal edges has been added to the classical data structures used by NG algorithms (e.g. the topological graph structure used to represent topological relations among centroids/neurons induced by the input space). HCR is used to create and delete temporal edges among neurons (in a way very similar to the one used to manage temporal edges) during the training process in order to keep track of neurons' activation trajectories. From a different point of view, the neurons developed by the training process might be seen as internal state of a state machine modeling the input signal. This new temporal graph somehow represents the state transition function of this state machine”, paragraph [0466], “The main aim of this temporal graph is to aid the inference, grouping, and prediction processes associated to a spatiotemporal clustering node”, and paragraph [0467], “Concerning enhanced learning, to enable a spatiotemporal clustering node to learn the timing between `different` input patterns, we have extended the data structure associated with neurons to also comprise an estimation for the permanence on the previous state/neuron (which in the simplest case represents the estimated Gaussian distribution of the time spent on the previous neuron before moving on to the next one). In other words, knowing the current internal state, it is possible to extract the possible next states together with the time to wait on the current state before jumping to a next one (jumps to different states can be associated to different waiting times on the current state). These permanence estimations, together with the position of the neurons (input patterns) and the temporal graph edges (and related traversal counters), actually permit to learn a Homogeneous Generalized Semi-Markov Model over the input space. This means that our Enhanced Neural Gas (ENG) is able to model the input signal as a Homogeneous Generalized Semi-Markov Process learning all its characterizing parameters. This model serves as a good base for the inference and prediction processes.” The actuator control unit is the system control unit.).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Ascari such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and the actuator control unit is configured to predict the coordinate value based on a neural network trained on training data comprising a first and a second sequence of coordinate values where the second sequence of coordinate values is a delayed version of the first sequence, and where the delay corresponds to the time delay between a control device and the actuator control unit, as taught by Ascari (See paragraph [0464], [0465], [0466], [0467].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing monitoring interaction during machine operation in a changing environment, as taught by Ascari (See paragraph [0005].).
Regarding Claim 24, Wang, Berkemeier, MEILE, and Ascari teach The actuator control unit according to claim 23, as set forth in the obviousness rejection. Wang, Berkemeier, and MEILE do not explicitly disclose, however Ascari, in the same field of endeavor, teaches wherein the neural network is configured to be trained for a given operator or group of operators (See at least paragraph [0175], “Generalization abilities make the system tolerant to minor differences in operator performance patterns allowing for finite memory usage and hence tackling the impossibility of storing inside the system memory all possible situations which might be encountered during every operation of the tool. Concrete examples of situations where generalization capability is expected to win (against analytical approaches) includes coping with different operators (inter-operator) having different operational styles or characteristics as well as coping with different intentions of the same operator (intra-operator), and with different plans and times all of which cannot be foreseen a priori during the design of the system. In fact, a human operator scenario is extremely challenging because of the variability and adaptability of human operators, so that the number of situations in which an operator might be involved is virtually unlimited and hence impossible to memorize in an exhaustive manner.”), or wherein the neural network comprises a long short-term memory, LSTM, artificial recurrent neural network architecture.
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date to combine the invention of Wang with the teachings of Berkemeier, MEILE, and Ascari such that the Hard Real Time Control Center of Wang is further configured to control actuators on a construction machine and thereby enable compensation for a time delay between the control device and the construction machine by the actuator control unit, as taught by Berkemeier (See paragraph [0003], [0022], [0039].), and wherein the pre-determined calibration setting is used to adjust the compensation of the time delay to different types of machines with different delays, to different types of devices, as taught by MEILE, (See paragraph [0069]-[0071].), and the neural network is configured to be trained for a given operator or group of operators, as taught by Ascari (See paragraph [0175].), with a reasonable expectation of success. The motivation for doing so would be regulating driving to maintain the trajectory, as taught by Berkemeier (See paragraph [0008].). The motivation for doing so would be improving the accuracy of system behavior by utilizing calibration parameters to update and refine the system model, as taught by MEILE (See paragraph [0011].). The motivation for doing so would be increasing monitoring interaction during machine operation in a changing environment, as taught by Ascari (See paragraph [0005].).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JEWEL ASHLEY KUNTZ whose telephone number is (571)270-5542. The examiner can normally be reached M-F 8:30am-5:30pm.
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, Anne Antonucci can be reached at (313) 446-6519. 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.
/JEWEL A KUNTZ/Examiner, Art Unit 3666
/ANNE MARIE ANTONUCCI/Supervisory Patent Examiner, Art Unit 3666