A better understanding of the present invention will be had upon reference to the following detailed description when read in conjunction with the accompanying drawing, wherein like reference characters refer to like parts throughout the several views, and in which:
With reference first to
The traffic light 20 includes associated circuitry 28 which iteratively sends a wireless message msg as follows:
The data msg transmitted by the traffic light 20 thus contains three different types of information. Specifically, the data redDuration, yellowDuration and greenDuration all relate to the operation of the particular traffic light 20. Different traffic lights will, of course, include durations for the red, yellow and green signals of different times.
Next, the data msg transmitted by the traffic light 20 contains information relating to the state of the traffic light at a particular time. This information includes the data currentPhase, timeToNextPhase and txTime for the traffic light transmitted data msg.
Lastly, the traffic light 20 generates the data message msg which contains information relating to the geographic area of the intersection 10. This information is included in the data intersection area of the transmitted message msg. Preferably, the data intersection area includes the longitudinal and lateral coordinates of the four corners 12, 14, 16 and 18 of the intersection 10. However, other types of data may be transmitted by the traffic light 20 to achieve the same purpose. For example, the longitude and latitude of one of the corners 12-18 of the intersection 10 may be transmitted along with data specifying the distance from that corner to the other corners of the intersection in order to define the geographic area of the intersection.
Still referring to
With reference now to
With reference now to
At step 104, the system initializes the array redTimeIntervals to zero. The red time interval array will ultimately contain the time periods of red traffic signals about to be encountered by the vehicle 40. Step 104 then proceeds to step 106.
At step 106, a determination is made as to the current phase, at the time of transmission of the traffic light data, of the traffic light from the data msg.currentPhase. If the currentPhase is red, step 106 branches to step 108 and sets a variable a equal to msg.txTime, i.e. the time that the signal sent by from the traffic light. Step 108 then proceeds to step 110 and sets the variable b equal to a+msg.timeToNextPhase. Consequently, the variable a equals the time of the initiation of a red signal interval, in this case equal to the time the data was sent by the traffic light while b equals the time relative to the transmission time msg.txTime until the light changes to its next phase, i.e. green. Step 110 then branches to step 122.
Conversely, if the current phase of the stop light is yellow, step 106 instead branches to step 114 where the variable a, i.e. the initiation time of a red signal interval, is equal to the transmission time msg.txTime plus the time to the next phase msg.timeToNextPhase, i.e. a red light phase. Step 114 then proceeds to step 116 where the variable b, i.e. the termination time of the red signal interval, is set to the variable a plus the duration of the red light msg.redDuration. Step 116 then proceeds to step 122.
Lastly, if the current phase of the traffic light is green, step 106 instead branches to step 118 where the variable a is equal to the current time at the transmission from the traffic light msg.txTime plus the time to the next phase msg.timeToNextPhase plus the time of the yellow duration msg.yellowDuration. Thus the variable a equals the time of the initiation of a red signal interval. Step 118 then proceeds to step 120 where the variable b, i.e. the termination of the red signal, is set to the variable a plus the duration of the red light msg.redDuration. Step 120 then proceeds to step 122.
As a practical matter, only red lights occurring within a relatively short time period, e.g. ten seconds, from the transmission time msg.txTime are of interest to the vehicle. Consequently, at step 122 the variable a, i.e. the initiation time of the red signal interval, is compared to the transmission time msg.txTime plus a predetermined constant deltaT. If the initiation time of the red signal is greater than the transmission time plus the variable deltaT, indicative that the red light is not of interest to the vehicle, step 122 proceeds to step 124. Otherwise, step 122 proceeds to step 126.
At step 126, the variable b, i.e. the termination time of the red signal interval, is compared to the transmission time plus deltaT. If the termination time of the red signal interval is greater than the transmission time plus deltaT, step 126 branches to step 128 where the termination time of the red signal interval, b, is truncated to the transmission time msg.txTime plus deltaT. Step 128 is provided for convenience since events occurring later than the transmission time plus deltaT are not of interest to the vehicle. Step 128 then proceeds to step 130 in which the variables a and b, i.e. the initiation and termination times of the red signal interval, are stored in an array redTimeIntervals [ ] and step 130 proceeds to step 124.
In some situations it is possible that the signal will change to red more than once within the time of interest. In this case, the variable b, i.e. the termination time of the red signal interval, will be less than the transmission time plus deltaT and step 126 will branch to step 132. At step 132, the values a and b representing the initiation and termination times of the red signal interval are stored in the array redTimeIntervals and step 132 proceeds to step 134.
At step 134, the variable a is set to the next sequential activation of the red light by setting a equal to the previously determined variable b plus the duration of the green signal msg.greenDuration plus the duration of the yellow signal msg.yellowDuration. Step 134 then proceeds to step 136 where b is set to the now updated value for a plus the duration of the red light msg.redDuration. Step 136 then proceeds back to step 122 where the above process is repeated.
From the foregoing, it can be seen that steps 122-124 form an away redTimeIntervals [ ] of values where each element of the array contains the variable a equal to the time of the initiation of a red signal interval and the variable b equal to the termination time of the red signal interval. The array, however, will only contain information relating to the traffic signals that are of interest within a predetermined time period deltaT from the transmission time msg.txTime, e.g. ten seconds.
Step 124 then proceeds to step 140 where the position of the vehicle is projected or predicted at the time deltaT, i.e. the time interval of interest. Such a prediction would normally entail a smart vehicle having speed sensors, acceleration sensors, steering wheel angle sensors and a GPS system to identify the position of the vehicle. Additionally, any conventional mathematical routine may be utilized to predict the position of the vehicle at time deltaT from the current time such as by Kalman Prediction or through numerical integration of differential equation models. However, preferably the position of the vehicle is predicted at step 140 using numerical integration as described in U.S. patent application Ser. No. ______ entitled “Method and System for Predicting a Future Position of a Vehicle Using Numerical Integration” and naming Derek Caveney as the inventor which is herein incorporated by reference.
After the position of the vehicle is predicted at step 140, step 140 proceeds to step 142 where an array iteration tool iter for the red time interval array redTimeIntervals [ ] formed in steps 122-124 is established. Step 142 then proceeds to step 144 where it is determined if the array redTimeIntervals [ ] is empty, i.e. each red time interval contained in the array has been examined. If so, step 144 branches to step 146 and exits from the algorithm.
Conversely, assuming that the array redTimeIntervals [ ] contains at least one entry, step 144 instead branches to step 148 where the variables a and b, i.e. the initiation and termination times of the red signal interval, are retrieved from the array redTimeIntervals [ ]. Step 148 then proceeds to step 150 where a time variable t is set to a, i.e. the initiation time of the red signal interval. Step 150 then proceeds to step 152.
At step 152, the future time t is compared to the variable b, i.e. the termination of the red light signal. If the future time t is greater than the variable b, indicative that the red light has changed to a green light, step 152 branches back to step 144 and the above process is repeated. In this fashion, steps 144-152 continuously iterate through the entire array redTimeIntervals [ ].
Conversely, if the future time t is less than the termination of the red signal, step 152 instead branches to step 154 where the position p of the vehicle at the future time t is extracted from the prediction in step 140. Step 154 then proceeds to step 156 where the algorithm determines if the future position p is within the intersection area received from the traffic light. If so, step 156 branches to step 162 where a suitable output signal is provided to the alert device 52 (
Conversely, if the position of the vehicle is not within the intersection during a red time interval at future time t, step 156 instead branches to step 160 where the future time t is incremented by a small time interval dT, e.g. a tenth of a second. Step 160 then branches back to step 152 where the above process is repeated until the future time t exceeds the variable b, i.e. the termination time of the red signal interval. Furthermore, it should be remembered that the time of the termination of the red signal b has a maximum value of the transmission time plus deltaT as set in step 128 where deltaT equals the time period of interest, e.g. ten seconds.
For example, assuming a time increment of dT equals one-tenth of a second and a time interval of interest for the warning system where deltaT equals ten seconds, the algorithm will iterate steps 152 to 160 a maximum of one hundred times, i.e. ten times per second for each of ten seconds.
From the foregoing, it can be seen that the present invention provides an effective traffic light warning system for a smart vehicle in which the system, after receiving the wireless communication from the traffic light, calculates and predicts whether or not the vehicle will be at the intersection during a red light time interval. If so, the appropriate warning device is activated to warn the driver to take the appropriate action, e.g. braking the vehicle.
Having described my invention, however, many modifications thereto will become apparent to those skilled in the art to which it pertains without deviation from the spirit of the invention as defined by the scope of the appended claims.