Patent Publication Number: US-9421979-B2

Title: Road characteristic prediction

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is related to U.S. patent application Ser. No. 14/056,773 filed Oct. 17, 2013 entitled “Road Characteristic Prediction”, the complete contents of which is hereby incorporated herein by reference in its entirety. 
     BACKGROUND 
     Some vehicles operate in different modes depending on various circumstances. For example, traction control systems may operate differently on dry, relatively flat roads than on wet, hilly roads. Some vehicles can automatically make adjustments in response to a change in road conditions. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an exemplary vehicle system for predicting changes in road characteristics. 
         FIGS. 2A-2C  illustrate example road characteristics that may be predicted by the vehicle system. 
         FIG. 3  is a flowchart of one exemplary process that may be implemented by the vehicle system. 
         FIG. 4  is a flowchart of another exemplary process that may be implemented by the vehicle system. 
     
    
    
     DETAILED DESCRIPTION 
     An exemplary vehicle system includes at least one sensor that collects infrastructure information in real time and outputs sensor signals representing the collected infrastructure information. A processing device processes the sensor signals, predicts a future road characteristic based on the infrastructure information, and controls at least one vehicle subsystem in accordance with the predicted future road characteristic. In some implementations, the processing device evaluates a prediction error and adjusts a prediction horizon until the prediction error is within a predetermined accuracy range. 
       FIG. 1  illustrates an exemplary vehicle system  100  for predicting road characteristics. The system may take many different forms and include multiple and/or alternate components and facilities. While an exemplary system is shown, the exemplary components illustrated are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used. 
     As illustrated in  FIG. 1 , the system  100  includes sensors (collectively,  105 ), including infrastructure sensors  105 A and environmental sensors  105 B, vehicle subsystems  110 , and a processing device  115 . The system  100  may be incorporated into any passenger or commercial vehicle  120  such as a car, a truck, sport-utility vehicle, a bus, train, a boat, or an airplane. 
     The sensors  105  may include any number of devices configured to generate and output signals that help operate the vehicle  120  according to different road characteristics. For example, the infrastructure sensors  105 A may collect infrastructure information and the environmental sensors  105 B may collect environmental information. The sensors  105  may be configured to collect infrastructure information and/or environmental information in real time and output signals, also in real time, representing the information collected. Examples of infrastructure sensors  105 A may include a radar sensor, a lidar sensor, a camera, an altimeter, a compass, a gyroscope, or the like. Therefore, infrastructure information may include road roughness, road curvature, and road grade. In some possible implementations, the infrastructure information may be received wirelessly from a remote server. Accordingly, another type of infrastructure sensor  105 A may include a wireless communication module. Example infrastructure information that may be received through the communication module may include, e.g., road construction guidelines. Examples of environmental sensors  105 B may include a sunlight sensor, a rain sensor, a temperature sensor, etc. Environmental information, therefore, may include geological information, climate information, and weather information. One or more of the environmental sensors  105 B may include a wireless communication module configured to receive environmental information wirelessly from a remote server. Some sensors  105  may be configured to provide both infrastructure information and environmental information in real time. For example, a Global Positioning System (GPS) sensor may output signals representing, e.g., the altitude of the vehicle  120  as well as geographical information. 
     The processing device  115  may be configured to process the sensor  105  signals, predict a future road characteristic based on, e.g., the infrastructure information, the environmental information, or both, and control at least one subsystem  110  in accordance with the predicted future road characteristic. Examples of subsystems  110  that can be controlled by the processing device  115  may include a power steering subsystem, a powertrain subsystem, an active noise control subsystem, a traction control subsystem, a stability control subsystem, etc. For example, the processing device  115  may cause, among others, the traction control subsystem and the stability control subsystem to operate differently on flat, dry roads than on hilly, wet roads. 
     As discussed in greater detail below, the processing device  115  may project future road characteristics by observing road characteristics over a predetermined period of time and counting the frequency of each observed characteristic. The processing device  115  may further apply a weight to each observed characteristic. More recent characteristics may be given a greater weight. That is, the processing device  115  may apply a greater weight to a current road characteristic and a lower weight to a previous road characteristic. In other words, over the predetermined period of time, the first-measured characteristic will be given the lowest weight while the current characteristic (i.e., the characteristic most recently measured) will be given the greatest weight. Counting the frequency of each observed characteristic may include counting the number of times the observed characteristic changes over the predetermined period of time. In this example approach, the processing device  115  may predict future road characteristics based on the number of times the observed characteristic changes over the predetermined period of time. 
     This implementation may use probabilistic online learning, e.g., Markov models to continuously update information about the future road conditions ahead of the vehicle  120  based on previously measured conditions. The Markov Models of transition probabilities may vary significantly for different drivers, vehicles, and road conditions. In order to guarantee that the Markov Models adequately describe the stochastic process being modeled for a wide range of conditions, drivers, and modes of operation, an on-board estimation of the transition probabilities is described below. 
     In the conventional Markov chain model the transitional probabilities p ij =P(w j =w(t+1)|w i =w(t)), where w i , w j W, are defined through the frequencies, i.e., p ij =N ij /N i  where N ij  is the number of cases with w(t)=w i  and w(t+1)=w j  and N i  is the number of cases with w(t)=w i  and w(t+1) belonging to any of the finite number of states J. For a given total number of observations N the transition probabilities can be formally expressed through the average frequencies, i.e., p ij =(N ij /N)/(N i /N). In the on-line learning version of the Markov chain these average frequencies are replaced by their exponentially weighted counterparts that have higher weights assigned to the most recent observations. Numerically, the process of generating a weighted average alternative to (N ij /N) with exponentially decreasing weights can be accomplished by applying a low pass filter implementing the exponential smoothing algorithm in the time domain:
 
 F   ij,new   (1)
 
where the constant learning rate 0&lt;α≦1 controls the rate of updating the F ij  by assigning a set of exponentially decreasing weights to the older observations. For a constant learning rate α expression (1) recursively generates a vector of positive weights:
 
 W =[(1−α) k α(1−α) k-1 α(1−α) k-2  . . . α]  (2)
 
with a unit sum. Vector W delineates a weighted average type aggregating operator with exponentially decreasing weights that are parameterized by the learning rate α. Learning rate α defines the memory depth (i.e., the length of the moving window) of the weighted averaging aggregating operator. The memory depth K is approximately reciprocal to the learning rate, i.e., K≈1/α. Therefore, F ij  in (1) represents the weighted average of the individual observations over the weights W. Alternatively, for the weighted version of (N i /N):
 
 F   i,new =(1−α) F   i,old +α, if  w ( t )= w   i   (3)
 
as representation of the of the weighted average of all the cases with w(t)=w i  and w(t+1) belonging to any of the finite number of states J.
 
     The weighted averages may be calculated over the events belonging to the soft interval {t−K+1, t] where symbol “{” indicates a soft lower interval limit which includes values with lower indexes than (t−K that have relatively low contribution. Consequently, the exponentially weighted transitional probabilities are obtained from the exponentially weighted averages
 
 p   ij   =F   ij   /F   i .  (4)
 
     The definition of the transition probabilities by Equation (4) allows for the continuous adaptation to the changing vehicle  120 , road, and traffic conditions, and style of driving. Moreover, by using a vectorized learning, the processing device  115  can fine-tune the process of updating the transition probabilities that are associated with different Markov states. The present and one step-ahead state probability vectors x and x+ are linked through transition probabilities as
 
( x   + ) T   =x   T   P.   (5)
 
For t&gt;1 steps ahead, the Chapman-Kolmogorov equation yields
 
( x   +t ) T   =x   T   P   t .  (6)
 
     In another possible approach, the processing device  115  may make predictions of future road characteristics subject to a prediction error. In this implementation, the processing device  115  may evaluate the prediction error and adjust a prediction horizon until the prediction error is within a predetermined accuracy range. The prediction horizon may include predictions of road characteristics at a number of consecutive locations in the most-likely path of the vehicle  120 . Adjusting the prediction horizon may include, iteratively, increasing the prediction horizon (i.e., the number of future road predictions at different locations) until the prediction error exceeds the maximum threshold value and reducing the prediction horizon until the prediction error is below a minimum threshold value. Therefore, increasing the number of locations increases the prediction horizon and reducing the number of locations reduces the prediction horizon. The maximum threshold value and the minimum threshold value may define the predetermined accuracy range. As with the previous approach, the processing device  115  may control one or more vehicle subsystems  110  in accordance with the predicted future road characteristic. 
     In this approach, let γ(k)ε  be a surrogate for either road curvature, grade, or roughness measurement at time k depending on the problem to be solved, and assume that the surrogate can be modeled as a finite sum of sinusoids, that is 
                     γ   ⁡     (   k   )       =       ∑     i   =   1     e     ⁢     [         A   i     ⁢     sin   ⁡     (         ω   i     ⁢   k     +     ϕ   i       )         +       B   i     ⁢     cos   ⁡     (         ω   i     ⁢   k     +     ϕ   i       )           ]               (   7   )               
where A i , B i , ω i , φ i  are unknown. Then the surrogate propagates by
 
γ( k+ 1)=θ( k )φ( k )  (8)
 
where θ( k )ε   1×n  is a vector of model parameters, and
 
                     ϕ   ⁡     (   k   )       =       [           γ   ⁡     (   k   )               ⋮             γ   ⁡     (     k   -   n   +   1     )             ]     ∈     ℝ   n               (   9   )               
is a vector of present and past data. Next, let r, a positive integer, be the width of the surrogate prediction horizon. Then the surrogate γ(k+r), is obtained by writing Equation (7) in the state space form
 
                     [           γ   ⁡     (     k   +   1     )               ⋮             γ   ⁡     (     k   -   n   +   2     )             ]     =       A   ⁡     (   k   )       ⁡     [           γ   ⁡     (   k   )               ⋮             γ   ⁡     (     k   -   n   +   1     )             ]               (   10   )                   γ   ⁡     (   k   )       =       [         1       0       …       0         ]     ⁡     [           γ   ⁡     (   k   )               ⋮             γ   ⁡     (     k   -   n   +   1     )             ]         ⁢     
     ⁢   where           (   11   )                 A   ⁡     (   k   )       =       [           θ   ⁡     (   k   )                 A   12           ]     ∈     ℝ     n   ×   n                 (   12   )               
are the surrogate dynamics, and
 
                     A   12     =       [         1       0       …       0           0       ⋱       ⋱       ⋮           0       0       1       0         ]     ∈       ℝ       (     n   -   1     )     ×   n       .               (   13   )               
It follows from Equations (10)-(11) that the surrogate at k+r is
 
                     γ   ⁡     (     k   +   r     )       =       [         1       0       …       0         ]     ⁢       ∏     i   =   1     r     ⁢         A   ⁡     (     k   +   i   -   1     )       ⁡     [           γ   ⁡     (   k   )               ⋮             γ   ⁡     (     k   -   n   +   1     )             ]       .                 (   14   )               
Next, assume that A(k) evolves slowly over time such that for i=1, . . . , r,
 
 A ( k+i )≈ A ( k )  (15)
 
and Equation (14) can be rewritten as
 
     
       
         
           
             
               
                 
                   
                     γ 
                     ⁡ 
                     
                       ( 
                       
                         k 
                         + 
                         r 
                       
                       ) 
                     
                   
                   ≈ 
                   
                     
                       [ 
                       
                         
                           
                             1 
                           
                           
                             0 
                           
                           
                             … 
                           
                           
                             0 
                           
                         
                       
                       ] 
                     
                     ⁢ 
                     
                       
                         
                           
                             A 
                             r 
                           
                           ⁡ 
                           
                             ( 
                             k 
                             ) 
                           
                         
                         ⁡ 
                         
                           [ 
                           
                             
                               
                                 
                                   γ 
                                   ⁡ 
                                   
                                     ( 
                                     k 
                                     ) 
                                   
                                 
                               
                             
                             
                               
                                 ⋮ 
                               
                             
                             
                               
                                 
                                   γ 
                                   ⁡ 
                                   
                                     ( 
                                     
                                       k 
                                       - 
                                       n 
                                       + 
                                       1 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           ] 
                         
                       
                       . 
                     
                   
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
           
         
       
     
     Next, since A(k) is unknown, an estimate of A(k) called Â(k) is used to estimate the surrogate r-steps into the future such that 
                         γ   ^     ⁡     (     k   +   r     )       =       [         1       0       …       0         ]     ⁢           A   ^     r     ⁡     (   k   )       ⁡     [           γ   ⁡     (   k   )               ⋮             γ   ⁡     (     k   -   n   +   1     )             ]           ,     
     ⁢   where           (   17   )                   A   ^     ⁡     (   k   )       =       [             θ   ^     ⁡     (   k   )                 A   12           ]     ∈     ℝ     n   ×   n                 (   18   )               
and {circumflex over (θ)}(k)ε   1×n  is an estimate of θ(k).
 
     The function {circumflex over (θ)}(k) can be computed by formulating the recursive least squares cost function 
                       J   ⁡     (       θ   ^     ⁡     (   k   )       )       ⁢   ⁢       ∑     i   =     r   +   1       k     ⁢       λ     k   -   i       ⁢                  θ   ^     ⁡     (   k   )       ⁢     ϕ   ⁡     (   i   )         -     γ   ⁡     (   i   )              2           +       λ   k     ⁢     Tr   ⁡     (         θ   ^     ⁡     (   k   )       -       θ   ^     ⁡     (   0   )         )       ⁢       P     -   1       ⁡     (   0   )       ⁢       (         θ   ^     ⁡     (   k   )       -       θ   ^     ⁡     (   0   )         )     T               (   19   )               
where P(0)ε   n×n  is positive definite and λε(0, 1] is the forgetting factor. The minimizer of Equation (19) is
 
{circumflex over (θ)}( k ) {circumflex over (θ)}( k− 1)+β( k )[{circumflex over (θ)}( k− 1)φ( k− 1)−γ( k− 1)][φ T ( k −1) P ( k− 1)φ( k− 1)+λ] −1   (20)
 
where β(k) is either 0 or 1. When β(k)=1, the model is updated, whereas, when β(k)=0, the model is fixed. P(k) is updated by
 
 P ( k ) λ −1   P ( k− 1)−β( k )λ −1   P ( k− 1)φ( k− 1)[φ T ( k− 1) P ( k− 1)+λ] −1 φ T ( k− 1) P ( k− 1)  (21)
 
P(0) is initialized to αI, where α&gt;0.
 
     The processing device  115  may be further configured to implement reinforcement learning. Reinforcement learning attempts to solve the problem of choosing a set of state transitions, such that some predefined performance metric is maximized, that is a reward function. 
     In the context of surrogate prediction, let r(k)=0, . . . , m which is the prediction horizon as a function of time k, be the set of allowable states, where m is the maximum allowable horizon size. In some instances, a horizon is chosen so that r is as large as possible. However, as mentioned above, prediction accuracy decreases as r increases. Therefore the reward function may be 
                       J   ⁡     (   k   )       =       ∑     i   =   k       k   +   h       ⁢       γ   ⁡     (   k   )       ⁢     R   ⁡     (       r   ⁡     (   k   )       ,     r   ⁡     (     k   +   1     )       ,     e   ⁡     (   k   )       ,     e   ⁡     (     k   +   1     )         )             ,           (   22   )               
where 0≦γ(k)&lt;1, is a discount factor, and R(•) is a function of the horizon r and prediction error e, and is user defined to provide the desired balance between horizon size and prediction accuracy. Next, reinforcement learning is used to maximize J(k), and therefore determine the horizon r(k), which results in the desired balance between horizon size and required accuracy.
 
     In general, computing systems and/or devices, such as the processing device  115 , may employ any of a number of computer operating systems, including, but by no means limited to, versions and/or varieties of the Ford SYNC® operating system, the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation of Redwood Shores, Calif.), the AIX UNIX operating system distributed by International Business Machines of Armonk, N.Y., the Linux operating system, the Mac OS X and iOS operating systems distributed by Apple Inc. of Cupertino, Calif., and the Android operating system developed by the Open Handset Alliance. Examples of computing devices include, without limitation, a vehicle computer or control unit, a computer workstation, a server, a desktop, notebook, laptop, or handheld computer, or some other computing system and/or device. 
     Computing devices generally include computer-executable instructions, where the instructions may be executable by one or more computing devices such as those listed above. Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media. 
     A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (DRAM), which typically constitutes a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read. 
     Databases, data repositories or other data stores described herein may include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and are accessed via a network in any one or more of a variety of manners. A file system may be accessible from a computer operating system, and may include files stored in various formats. An RDBMS generally employs the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures, such as the PL/SQL language mentioned above. 
     In some examples, system elements may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), stored on computer readable media associated therewith (e.g., disks, memories, etc.). A computer program product may comprise such instructions stored on computer readable media for carrying out the functions described herein. 
       FIGS. 2A-2C  illustrate exemplary road characteristics that may be evaluated by the processing device  115 . In these FIGS., the processing device  115  collects infrastructure information at a number of locations or road segments to predict future road characteristics. While only five segments are shown for purposes of clarity and simplicity, the processing device  115  may collect infrastructure information at any number of segments. 
     As shown in  FIG. 2A , the processing device  115  may collect road curvature information. The processing device  115  may determine that the curvature is relatively low at segments 1, 3, and 5 and relatively high at segments 2 and 4. Thus, the processing device  115  made predict the road curvature to continue to alternate between high and low curvatures in the path of the vehicle  120  and adjust a mode of operation of one or more subsystems  110  at various times and locations accordingly. The processing device  115  may note the length of each segment (i.e., a distance between locations) to predict where the road curvature is most likely to change. The processing device  115  may further consider the speed of the vehicle  120  to predict when the vehicle  120  will reach the next segment. In implementations where a weight is applied to the road characteristics collected at each segment, and assuming the vehicle  120  is traveling from segment 1 to segment 5, a greater weight may be applied to the characteristic collected at segment 5 (the most recently collected characteristic) and a lower weight may be applied to the characteristic collected at segment 1 (the “oldest” characteristic collected). Intermediate weights (i.e., weights between those applied to segments 1 and 5) may be applied to the characteristics associated with segments 2, 3, and 4. 
     Referring now to  FIG. 2B , the processing device  115  may collect road roughness information. The processing device  115  may determine that the roughness is relatively low at segments 1, 3, and 5 and relatively high at segments 2 and 4. Thus, the processing device  115  made predict the road roughness to continue to alternate between high and low roughness factors in the path of the vehicle  120  and adjust a mode of operation of one or more subsystems  110  at various times and locations accordingly. As discussed above, the processing device  115  may note the length of each segment (i.e., a distance between locations) to predict where the road roughness is most likely to change. The processing device  115  may further consider the speed of the vehicle  120  to predict when the vehicle  120  will reach the next segment. In implementations where a weight is applied to the road characteristics collected at each segment, and assuming the vehicle  120  is traveling from segment 1 to segment 5, a greater weight may be applied to the roughness factor collected at segment 5 (the most recently collected characteristic) and a lower weight may be applied to the roughness factor collected at segment 1 (the “oldest” characteristic collected). Intermediate weights (i.e., weights between those applied to segments 1 and 5) may be applied to the roughness factors associated with segments 2, 3, and 4. 
     A similar analysis may apply to road grade as shown in  FIG. 2C . That is, the processing device  115  may determine that the grade factor is relatively low at segments 1, 3, and 5 and relatively high at segments 2 and 4. Thus, the processing device  115  made predict that the road grade will continue to alternate between high and low grade factors in the path of the vehicle  120  and adjust a mode of operation of one or more subsystems  110  at various times and locations accordingly. As discussed above, the processing device  115  may note the length of each segment (i.e., a distance between locations) to predict where the road grade is most likely to change. The processing device  115  may further consider topography information, which may be available via a GPS sensor or other environmental sensor  105 A, when making such predictions. The processing device  115  may consider the speed of the vehicle  120  to predict when the vehicle  120  will reach the next segment. In implementations where a weight is applied to the road characteristics collected at each segment, and assuming the vehicle  120  is traveling from segment 1 to segment 5, a greater weight may be applied to the grade factor collected at segment 5 (the most recently collected characteristic) and a lower weight may be applied to the grade factor collected at segment 1 (the “oldest” characteristic collected). Intermediate weights (i.e., weights between those applied to segments 1 and 5) may be applied to the grade factors associated with segments 2, 3, and 4. 
     In some instances, the segments may be different lengths. The processing device  115 , therefore, may further predict the length of the next segment and control the operation of one or more subsystems  110  accordingly. Moreover, a segment may be so short that the processing device  115  may decide to operate one or more subsystems  110  according to the current characteristics instead of the future or predicted road characteristic. For example, on a road with long segments with high curvature followed by a short, relatively straight segments, the processing device  115  may determine that the best course of action is to keep the subsystems  110  operating in the mode associated with high curvature even while travelling through the segments with relatively low curvature. In other words, the processing device  115  may be configured to ignore certain predictions when controlling the mode of operation of one or more subsystems  110 . 
       FIG. 3  is a flowchart of one exemplary process  300  that may be implemented by the processing device  115  to, e.g., predict future road characteristics. 
     At block  305 , the processing device  115  may receive infrastructure information, environmental information, or both, collected in real time by one or more sensors  105 . Infrastructure information may include one or more of road roughness, road curvature, road grade, and road construction guidelines. Examples of environmental information may include geological information, climate information, and weather information. 
     At block  310 , the processing device  115  may process the infrastructure information and/or environmental information received at block  305 . Processing the infrastructure information and/or environmental information may include decoding signals received from the infrastructure sensors  105 A and/or the environmental sensors  105 B, respectively. 
     At block  315 , the processing device  115  may predict future road characteristics based on the infrastructure information and/or the environmental information. In one possible implementation, predicting future road characteristics may include observing at least one of a plurality of road characteristics over predetermined period of time and counting the frequency of each observed characteristic. Counting the frequency of the observed characteristic may include counting the number of times the observed characteristic changes over the predetermined period of time. Accordingly, the future road characteristic may be predicted based on the number of times the observed characteristic changes over the predetermined period of time. Moreover, the processing device  115  may apply different weights to each observed characteristic when making predictions of future road characteristics. As discussed above, a greater weight may be applied to the current road characteristic and a relatively lower weight may be applied to previous road characteristics. 
     At block  320 , the processing device  115  may control at least one subsystem  110  in accordance with the predicted future road characteristic, including ignoring the predicted future road characteristic if the processing device  115  determines that the predicted future road characteristic will only exist for relatively short period of time. The process  300  may return to block  305  after block  320 . 
       FIG. 4  is a flowchart of another exemplary process  400  that may be implemented by the processing device  115  to, e.g., predict future road characteristics. 
     At block  405 , the processing device  115  may receive infrastructure information, environmental information, or both, collected in real time by one or more sensors  105 . Infrastructure information may include one or more of road roughness, road curvature, road grade, and road construction guidelines. Examples of environmental information may include geological information, climate information, and weather information. 
     At block  410 , the processing device  115  may process the infrastructure information and/or environmental information received a block  405 . Processing the infrastructure information and/or environmental information may include decoding signals received from the infrastructure sensors  105 A and/or the environmental sensors  105 B, respectively. 
     At block  415 , the processing device  115  may predict future road characteristics based on the infrastructure information and/or the environmental information. The prediction at block  415  may be based on a prediction horizon relative to prediction error. The prediction horizon may include a number of predictions of road characteristics at consecutive locations in the most likely path of the vehicle  120 . 
     At block  420 , the processing device  115  may evaluate the prediction error. One way to evaluate the prediction error may include determining the accuracy of previously made predictions. For example, the processing device  115  may compare predicted road characteristics for particular locations to the actual road characteristics at those locations. The prediction error may be different for each location, and the prediction error may increase as the location from the vehicle  120  increases. Accordingly, the processing device  115  may determine the prediction error from the least accurate prediction (i.e., the prediction of the road characteristics at the location farthest from the vehicle  120 ). 
     At decision block  425 , the processing device  115  may determine whether the prediction exceeds a threshold value. If so, the process  400  and continue at block  430 . If the prediction error does not exceed the threshold value, the process  400  may continue at block  435 . 
     At block  430 , the processing device  115  may reduce the prediction horizon. One way to reduce the prediction horizon is to reduce the number of predictions made by the processing device  115 . For example, the processing device  115  may stop making predictions of the road characteristics at the location or locations farthest from the vehicle  120  since those predictions are most likely to have the highest prediction error. The process  400  may return to block  405  after the prediction horizon is reduced. 
     At decision block  435 , the processing device  115  may determine whether the prediction error is below a minimum value. If the prediction error falls below a minimum value, the process  400  may continue at block  440 . If, however, the prediction error is not below the minimum value, the process  400  may continue at block  445 . 
     At block  440 , the processing device  115  may increase the prediction horizon. Increasing the prediction horizon may include increasing the number of predictions made by the processing device  115 . For example, to increase the prediction horizon the processing device  115  may make predictions of the road characteristics at farther locations than current predictions. The process  400  may return to block  405  after the prediction horizon is increased. 
     At block  445 , the processing device  115  may control at least one subsystem  110  in accordance with the predicted future road characteristic, including ignoring the predicted future road characteristic if the processing device  115  determines that the predicted future road characteristic will only exist for relatively short period of time. The process  400  may return to block  405  after block  445 . 
     With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims. 
     Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation. 
     All terms used in the claims are intended to be given their broadest reasonable constructions and their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary. 
     The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.