Abstract:
Data about vehicle movement at a stoplight are collected. A stoplight cycle time is predicted with a probability model. The data are compared to the predicted stoplight cycle time. A noise function is applied to the data to generate noise-applied data. The probability model for the predicted stoplight cycle time is updated by scaling the probability model with the noise-applied data to generate a new probability model. A recommended vehicle operation is provided via a network to at least one vehicle computer based on the predicted stoplight cycle time determined by the new probability model.

Description:
BACKGROUND 
       [0001]    In urban driving, stop signs and traffic lights can increase a vehicle&#39;s fuel usage. When vehicles are stationary, and/or stop and reaccelerate to a cruising speed, fuel efficiency generally decreases. Unfortunately, roadways generally are not presently configured to allow non-stop traffic flow, or even traffic flow at a generally consistent speed. Therefore, present vehicles are unable to obtain advantages that would flow from fewer stops and starts and/or more consistent cruising speeds. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0002]      FIG. 1  is a block diagram of a system for estimating and retrieving traffic parameters. 
           [0003]      FIG. 2  is a process flow diagram of a process for estimating traffic parameters. 
           [0004]      FIG. 3  is a process flow diagram of a process for estimating a stoplight cycle time. 
           [0005]      FIG. 4  is an exemplary diagram of the stoplight cycle time, a duty cycle, and an offset. 
           [0006]      FIG. 5  is an exemplary chart showing several stoplight cycles from one set of measurements. 
           [0007]      FIG. 6  is an exemplary chart of a noise function for determining the stoplight cycle time. 
       
    
    
     DETAILED DESCRIPTION 
       [0008]      FIG. 1  illustrates a system  100  for efficiently and accurately determining traffic light parameters. Vehicles  101  operated according to such determinations may enjoy benefits including decreased wear and tear, and increased fuel efficiency. In particular, determination of traffic light parameters as disclosed herein, including a stoplight cycle time, can lead to better route construction and better fuel economy by reducing a number of times the vehicle has to stop. 
         [0009]    A vehicle  101  includes a computing device  105  having a data store  102  and a data collector  103 . The computing device  105  includes a processor and a memory, the memory including one or more forms of computer-readable media, e.g., volatile and/or non-volatile storage as are known, the memory storing instructions executable by the processor for performing various operations, including as disclosed herein. Further, the computing device  105  may include more than one computing device, e.g., controllers or the like included in the vehicle  101  for monitoring and/or controlling various vehicle components, e.g., an engine control unit (ECU), transmission control unit (TCU), etc. The computing device  105  is generally configured for communications on an in-vehicle network and/or communications bus such as a controller area network (CAN) bus or the like. The computing device  105  may also have a connection to an onboard diagnostics connector (OBD-II). Via the CAN bus, OBD-II, and/or other wired or wireless mechanisms, the computer  105  may transmit messages to various devices in a vehicle and/or receive messages from the various devices, e.g., controllers, actuators, sensors, etc., including data collectors  103 . Alternatively or additionally, in cases where the computer  105  actually comprises multiple devices, the CAN bus or the like may be used for communications between devices represented as the computing device  105  in this disclosure. 
         [0010]    In addition, the computing device  105  may be configured, e.g., include programming and/or hardware such as is known, for communicating with a network  110 , which, as described below, may include various wired and/or wireless networking technologies, e.g., cellular, Bluetooth, wired and/or wireless packet networks, etc. Further, the computing device  105  generally includes instructions for receiving data, e.g., from one or more data collectors  103  and/or a human machine interface (HMI), such as an interactive voice response (IVR) system, a graphical user interface (GUI) including a touchscreen or the like, etc. 
         [0011]    Using data received in the computing device  105 , e.g., from data collectors  105 , data included as stored parameters, the server, etc., the computing device  105  may control various vehicle  101  components and/or operations. For example, the computing device  105  may be used to regulate vehicle  101  speed, acceleration, deceleration, steering, etc. 
         [0012]    Data collectors  103  may include a variety of devices. One data collector  103  is shown in  FIG. 1  for ease of illustration, but, as will be understood from this disclosure, a vehicle  101  likely will include multiple data collectors  103 . For example, various controllers in a vehicle may operate as data collectors  103  to provide data via the CAN bus, e.g., data relating to vehicle speed, acceleration, etc. Further, sensors or the like, global positioning system (GPS) equipment, etc., could be included in a vehicle and configured as data collectors  103  to provide data directly to the computing device  105 , e.g., via a wired or wireless connection. Data collectors  103  could also include sensors or the like for detecting conditions outside the vehicle  101 , e.g., medium-range and long-range sensors. For example, sensor data collectors  103  could include mechanisms such as radar, lidar, sonar, cameras or other image capture devices, that could be deployed to measure a distance between the vehicle  101  and other vehicles or objects, to detect other vehicles or objects, and/or to detect road conditions, such as curves, potholes, dips, bumps, changes in grade, etc. In addition, data collectors  103  may include sensors internal to the vehicle  101 , such as accelerometers, temperature sensors, motion detectors, etc. to detect motion or other conditions of the vehicle  101 . 
         [0013]    A memory of the computing device  105  generally stores collected data  104 . Collected data  104  may include a variety of data collected in a vehicle  101  from data collectors  103 . Examples of collected data  104  are provided above, and, moreover, data may additionally include data calculated therefrom in the computing device  105 . In general, collected data  104  may include any data that may be gathered by the data collectors  103  and/or computed from such data. Accordingly, collected data  104  could include a variety of data related to vehicle  101  operations and/or performance, as well as data related to in particular relating to motion of the vehicle  101 . For example, collected data could include data concerning a vehicle  101  speed, acceleration, longitudinal motion, lateral motion, pitch, yaw, roll, braking, etc. 
         [0014]    A memory of the computing device  105  may further store one or more control parameters. A control parameter generally governs use of collected data  104 . For example, a parameter may provide a threshold to which calculated collected data may be compared to determine whether an adjustment should be made to the component. Similarly, a parameter could provide a threshold below which an item of collected data, e.g., a datum from an accelerometer, should be disregarded. 
         [0015]    The system  100  includes the network  110 . The network  110  represents one or more mechanisms by which the computing device  105  may communicate with a user device  125  and/or a traffic parameter server  130 . Accordingly, the network  110  may be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and/or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth, IEEE 802.11, etc.), local area networks (LAN) and/or wide area networks (WAN), including the Internet, providing data communication services. 
         [0016]    One or more user devices  125  (a single device  125  being shown in  FIG. 1  for ease of illustration) may be connected to the network  110 . The user devices  125  may include commonly-carried devices such as one or more of cellular telephones, tablet devices, laptop computers, etc. 
         [0017]    The system  100  includes the traffic parameter server  130  having a data store  135 . The traffic parameter server  130  collects traffic light parameter data, e.g., collected data  104  from a vehicle  101 , a data collector  115 , etc., sent over the network  110 . The traffic parameter server  130  and the data store  135  may be of any suitable type, e.g., hard disk drives, solid-state drives, or any other volatile or non-volatile media. The data store  135  stores the traffic light parameter data collected by the traffic parameter server  130 . 
         [0018]    The system  100  includes the data collector  115 . The data collector  115  may be placed at an intersection and/or on a traffic light. The data collector  115  measures the start of motion time (SOMT) for a vehicle  101  at an intersection. The SOMT may be used to generate an SOMT data set at the server  130 . As shown in  FIG. 5 , the SOMT data set may include one or more stoplight cycles, e.g., green-yellow-red-green. 
         [0019]      FIG. 2  illustrates a process  200  for using the system  100 . The process  200  begins in a block  205 , in which the data collectors  103 ,  115  collect SOMT data for vehicles  101 . Specifically, the data collectors  103 ,  115  detect a status change of an ith vehicle: when the vehicle comes to a stop, this time is recorded, denoted herein as t r (i). When the vehicle starts moving again, a re-start time is recorded, denoted herein as t g (i). A traffic light passing time is collected, denoted herein by t p (i) and a heading, e.g., direction of travel, of the vehicle, is recorded, denoted herein as h(i). 
         [0020]    Next, in a block  210 , the data collectors  103 ,  115  send the SOMT data to the traffic parameter server  130 . By using data collectors on both traffic lights and in vehicles  101 , a greater volume of useful data than would otherwise be possible may be collected and sent to the traffic parameter server  130 . The SOMT data may be clustered by heading directions of vehicles from which it was collected (e.g., data from south-bound vehicles may be stored together, data from north bound vehicles may be stored together, etc.), and may be arranged chronologically. 
         [0021]    Next, in a block  220 , the traffic parameter server  130  applies the Stoplight Cycle Time Model, described in process  300  of  FIG. 3 , to the data and generates an estimated stoplight cycle time. 
         [0022]    Next, in a block  225 , the traffic parameter server  130  calculates a duty cycle and an offset based on the estimated stoplight cycle time of the block  220  (and the process  300 ). The offset ρ of the stoplight is the difference in time between the end of one set of stoplight cycle times and another set of stoplight cycle times, and is determined with a modulus operation applied on green light time over total cycle time: 
         [0000]      ρ( k )=mod(min( t   g,u   l,o ), x ( k ))
 
         [0000]    A result of the foregoing equation may be prone to error; therefore, a linear drift term γ is iteratively calculated: 
         [0000]      γ l,o =mod(min( t   g,u   l,o ),(α+1) p *)−mod(min( t   g,w   l,o ),α p *)
 
         [0000]    where p* is the estimated stoplight cycle time. The duty cycle λ, which is the ratio of the amount of time spent at green light to the entire stoplight cycle time, may then be calculated: 
         [0000]    
       
         
           
             
               λ 
                
               
                 ( 
                 k 
                 ) 
               
             
             = 
             
               
                 Δ 
                  
                 
                     
                 
                  
                 
                   T 
                   g 
                 
               
               
                 
                   Δ 
                    
                   
                       
                   
                    
                   
                     T 
                     g 
                   
                 
                 + 
                 
                   Δ 
                    
                   
                       
                   
                    
                   
                     T 
                     r 
                   
                 
               
             
           
         
       
     
         [0023]    where ΔT g  is the maximum time difference between the recorded t p  times and the last green light on time that can be calculated with estimated values of ρ, p, and ΔT r  the maximum time difference between the stopping time t r  of the incoming vehicles and the next green light on time. The total green and red times may be approximated by: 
         [0000]      Δ T   g   ≈Δ T     g =max(mod( t   p ( i )−ρ, p )) for  i= 1 . . .  N   p  
 
         [0000]      Δ T   r   ≈Δ T     r   =p −min(mod( t   r ( i )−ρ, p )) for  i= 1 . . .  N   r  
 
         [0024]    where N p  and N r  correspond to respective numbers of t p  and t r  measurements, described above. 
         [0025]    Next, in a block  230 , the traffic parameter server  130  stores the estimated period in the data store  135 , producing a fleet data set. 
         [0026]    Next, in a block  235 , when a user requests stoplight cycle time data from the traffic parameter server  130 , the traffic parameter server  130  produces recommendations for adjustment of the user&#39;s vehicle profile based on the location of the user&#39;s vehicle and the stoplight cycle time data. The recommendations may include changing the vehicle&#39;s operating speed, route to a destination, or acceleration based on an upcoming traffic light. 
         [0027]    Next, in a block  240 , the traffic parameter server  130  sends the recommendations to the user, and the process  200  ends. 
         [0028]      FIG. 3  illustrates a process  300  describing the Stoplight Cycle Time Model of block  220  of  FIG. 2 . The process  300  starts in a block  305 , in which a SOMT datum k is collected and provided to the server  130 . 
         [0029]    Next, in a block  310 , the server  130  retrieves a period probability model for a first time duration: 
         [0000]        x   i ( k )= f   z   i ( x   i ( k− 1)= x   i ( k− 1) 
         [0030]    where x i (k) is the current period probability model for the current SOMT datum k retrieved in block  305 , and f x   i (x i (k−1)) is the probability density function for the period of the previous datum k−1 given data up to datum k−1, and i is the current time duration index. 
         [0031]    Next, in a block  315 , the server  130  compares the datum k to the period estimation x i (k). The period estimation x i (k) produces a most likely estimation of the stoplight cycle time based on the current time duration index. If the measurement is not within a threshold of the most likely estimation of the stoplight cycle time, the process  300  moves to block  320 . 
         [0032]    Next, in the block  320 , the server  130  checks to see if there are any more time duration indexes i. If there are more time duration indexes, the process  300  moves to a block  325 . 
         [0033]    Next, in the block  325 , the server  130  retrieves the period probability model for the next time duration index i+1 and returns to block  315 . 
         [0034]    Referring back to block  320 , if there are no more time duration indexes, the process  300  moves to a block  330 . In the block  330 , the server  130  creates a time duration index and initializes the new time duration index with an initial period probability model. The process  300  then moves to a block  335 . 
         [0035]    Referring back to block  315 , if the datum k is within the threshold for the period probability for the current Markovian state, the process  300  moves to the block  335 . 
         [0036]    In the block  335 , the server  130  stores the measurement and applies a noise function w(k) to the stored measurements. The noise function is a mixture of Gaussian noise applied to the measurement such that 
         [0000]        z ( k )= x ( k )+ w ( k ) 
         [0037]    where z(k) is the noise-adjusted period probability model. By applying the noise function to the measurement, the period x(k) can be estimated with fewer total measurements k. The probability density function of the noise function, shown in  FIG. 6 , is defined by 
         [0000]    
       
         
           
             
               
                 f 
                 w 
               
                
               
                 ( 
                 w 
                 ) 
               
             
             = 
             
               
                 1 
                 
                   
                     2 
                      
                     
                       πσ 
                       2 
                     
                   
                 
               
                
               
                 ( 
                 
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                      
                     
                       
                          
                         
                           - 
                           ai 
                         
                       
                       · 
                       
                          
                          
                         
                           ( 
                           
                             
                               - 
                               
                                 1 
                                 2 
                               
                             
                             · 
                             
                               
                                 
                                   w 
                                    
                                   
                                     ( 
                                     k 
                                     ) 
                                   
                                 
                                 - 
                                 ip 
                               
                               
                                 σ 
                                 2 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                   
                     
                       ∑ 
                       
                         j 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                      
                     
                        
                       
                         - 
                         aj 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0038]    where σ is the standard deviation, a is the decaying coefficient of the Gaussian mixture, and N is the number of Gaussian Noises whose significance is decaying with increasing multiple of the period. 
         [0039]    Next, in a block  340 , the server  130  updates the period probability model. At this point, the probability model can be written as 
         [0000]    
       
         
           
             
               
                 f 
                 x 
               
                
               
                 ( 
                 
                   
                     x 
                      
                     
                       ( 
                       k 
                       ) 
                     
                   
                   | 
                   
                     z 
                      
                     
                       ( 
                       
                         
                           1 
                            
                           
                             : 
                           
                            
                           k 
                         
                         - 
                         1 
                       
                       ) 
                     
                   
                 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   
                     x 
                      
                     
                       ( 
                       
                         k 
                         - 
                         1 
                       
                       ) 
                     
                   
                   ∈ 
                    
                 
               
                
               
                 
                   
                     f 
                     x 
                   
                    
                   
                     ( 
                     
                       
                         x 
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                       | 
                       
                         x 
                          
                         
                           ( 
                           
                             k 
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     ) 
                   
                 
                 · 
                 
                   
                     f 
                     x 
                   
                    
                   
                     ( 
                     
                       
                         x 
                          
                         
                           ( 
                           
                             k 
                             - 
                             1 
                           
                           ) 
                         
                       
                       | 
                       
                         z 
                          
                         
                           ( 
                           
                             
                               1 
                                
                               
                                 : 
                               
                                
                               k 
                             
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    from here, the new datum k is incorporated to update the period probability density function, 
         [0000]    
       
         
           
             
               
                 f 
                 x 
               
                
               
                 ( 
                 
                   
                     x 
                      
                     
                       ( 
                       k 
                       ) 
                     
                   
                   | 
                   
                     z 
                      
                     
                       ( 
                       
                         1 
                          
                         
                           : 
                         
                          
                         k 
                       
                       ) 
                     
                   
                 
                 ) 
               
             
             = 
             
               
                 
                   
                     f 
                     z 
                   
                    
                   
                     ( 
                     
                       
                         z 
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                       | 
                       
                         x 
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                     
                     ) 
                   
                 
                 · 
                 
                   
                     f 
                     x 
                   
                    
                   
                     ( 
                     
                       
                         x 
                          
                         
                           ( 
                           k 
                           ) 
                         
                       
                       | 
                       
                         z 
                          
                         
                           ( 
                           
                             
                               1 
                                
                               
                                 : 
                               
                                
                               k 
                             
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   Σ 
                   
                     
                       x 
                        
                       
                         ( 
                         k 
                         ) 
                       
                     
                     ∈ 
                      
                   
                 
                  
                 
                   
                     
                       f 
                       z 
                     
                      
                     
                       ( 
                       
                         
                           z 
                            
                           
                             ( 
                             k 
                             ) 
                           
                         
                         | 
                         
                           x 
                            
                           
                             ( 
                             k 
                             ) 
                           
                         
                       
                       ) 
                     
                   
                   · 
                   
                     
                       f 
                       x 
                     
                      
                     
                       ( 
                       
                         
                           x 
                            
                           
                             ( 
                             k 
                             ) 
                           
                         
                         | 
                         
                           z 
                            
                           
                             ( 
                             
                               
                                 1 
                                  
                                 
                                   : 
                                 
                                  
                                 k 
                               
                               - 
                               1 
                             
                             ) 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
           
         
       
     
         [0000]    where f x (x(k)|z(1: k)) denotes the probability density function of the estimated state at datum k given the measurements until k, f x (x(k)|z(1:k−1)) is the output of the prior update stage and f z (z(k)|x(k)) is the probability density function of the stochastic measurement model z(k). 
         [0040]    Next, in a block  342 , the server  130  checks if the time duration has changed, e.g., from the block  325  or the block  330 . If the time duration has not changed, the process  300  ends. If the time duration has changed, the process  300  moves to a block  345 . 
         [0041]    Next, in the block  345 , the server updates the time duration index matrix, which stores the length d i  of each time duration index and the process  300  ends. 
         [0042]    Computing devices such as those discussed herein generally each include instructions executable by one or more computing devices such as those identified above, and for carrying out blocks or steps of processes described 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, HTML, 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 file in a computing device is generally a collection of data stored on a computer readable medium, such as a storage medium, a random access memory, etc. 
         [0043]    A computer-readable medium includes any medium that participates in providing data (e.g., instructions), which may be read by a computer. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media, etc. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes a main memory. 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. 
         [0044]    With regard to the media, processes, systems, methods, 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 systems and/or processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the disclosed subject matter. 
         [0045]    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 to those of skill in the art upon reading the above description. The scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to claims appended hereto and/or included in a non-provisional patent application based hereon, 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 arts discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the disclosed subject matter is capable of modification and variation.