Map matching algorithms are well known in the industry and used extensively for the land vehicle positioning/navigation systems. First, maps were generated, mainly using aerial images, and commercial navigation system started with GPS accuracy below 100 meter. Then, GPS accuracy became better to below 10 meter, and the map accuracy also increased (in most of road classes) to around 5 meter for absolute accuracy and 1 meter for relative accuracy. In all cases, the resulted map matched position has better lateral accuracy than the stand-alone GPS accuracy.
Now, with the differential correction like the Wide Area Augmentation System (WAAS), the GPS accuracy can go below 1.5 meter. Most of the V2X (vehicle to infrastructure plus vehicle) safety (especially urban road intersection safety) and mobility application requires lane level position accuracy. Automated vehicle in most of its levels requires lane level position accuracy. Therefore, accurate road representation map is very critical in making automated vehicle reality, and getting the maximum benefit from the V2X technology. Thus, matching the vehicle position to the true lane is a key step. However, GPS accuracy can be severely degraded in urban areas especially with tall building and green areas with significant tree existence. In addition, road geometry can be complex and ambiguous, such as road branching. Finally, vehicle dynamics such as lane change and turning can also complicate the map matching problem.
Below, we present a system and method that is capable of dealing with lane level matching problem, and provide different methods of estimating position corrections, position and map matched confidence, and self-correcting map matching (i.e., Map Matching Algorithm (at lane-level)).
One aspect of the present invention relates to or combines with a system that uses the Vehicle to Vehicle (V2V) and/or the Vehicle to infrastructure communication for safety and mobility applications. The invention provides methods and systems to make the V2X realized and effectively used in any intelligent transportation system toward automated vehicle system. This can be used for more safety and/or more automation.
The safety, health, and cost of accidents (on both humans and properties) are major concerns for all citizens, local and Federal governments, cities, insurance companies (both for vehicles and humans), health organizations, and the Congress (especially due to the budget cuts, in every level). People inherently make a lot of mistakes during driving (and cause accidents), due to the lack of sleep, various distractions, talking to others in the vehicle, fast driving, long driving, heavy traffic, rain, snow, fog, ice, or too much drinking. If we can make the driving more automated by implementing different scale of safety applications and even controlling the motion of the vehicle for longer period of driving, that saves many lives and potentially billions of dollars each year, in US and other countries. We introduce here an automated vehicle infrastructure and control systems and methods, and its related technologies.
The following invention/embodiments present a system and method that is capable of dealing with lane level matching problem, and provide different methods of estimating position corrections, position and map matched confidence, and self-correcting map matching (i.e., Map Matching Algorithm (at lane-level)).
On the top of the described algorithms, the V2V data, when available, can be used to help the entire discussed algorithm steps. If the relative GPS accuracy between the host vehicle and the remote vehicles in the proximity of the host vehicle is enough to separate vehicle in lane, and there are enough vehicles to exist in all lanes of interest, then it becomes an easier job to determine which lane the host vehicle is in, and this can reflect very positively on all the above algorithm steps.
Here, we describe an embodiment of the invention, using an example: (referring to
Pre-Processing:
Using/setting the initial conditions:
Conf-position=High (confidence on position)
Or CP=High
Cnt=0 (time counter)
Correction=0
Conf-match=Low (confidence on match)
Or CM=Low
Now, we have step 1 as:
Select all possible travel lanes in the area, as shown in
On coming lanes must be filtered out.
For step 2:
We have middle lanes lines, as shown in
Referring to
We calculate ψL for the heading or direction of the lane.
Then, we have heading of the vehicle (or direction or vector), with respect to North direction, denoted by ψh.
We match the vehicle position to the lane that has:
Min{|dif1|,|dif2|, . . . ,|difn|}
and has:
|ψh−ψL|<G degrees
Wherein G is configurable.
For example, G is 5 degrees.
Now, referring to
y=m×+b
with m denoting the slope.
So, we have:
x
0=(my1+x1−mb)/(m2+1)
y
0=(m2y1+mx1+b)/(m2+1)
dif=|y1−mx1−b|/✓(m2+1)
wherein ✓( . . . ) denotes the square root of a value.
Or:
dif=|Ax1+By1+C|/✓(A2+B2)
for line equation of:
Ax+By+C=0
Step 3:
Determine if the matched lane is Right Most Lane (RML) or Left Most Lane (LML) or Inner Lane (IL). (referring to
If RML and difi to the right and |difi|>E
Or
LML and difi to the left and |difi|>E
Wherein E=1 m, as an example.
Then:
CM=MED
CP=LOW
Else:
Note that, instead of LOW, MED, and HIGH, we can replace them by numbers, e.g., integers, e.g., 1, 2, and 3, respectively (or, e.g., 100, 200, and 300, respectively).
In the last J (e.g., 3 sec) period, if we have for (L≦), or e.g., (70%≦), or (at least 70 percent of the time), the confidence level CM is MED,
Then:
CM becomes HIGH
Or
CM=HIGH
Correction=AVERAGE(dif—tk)|when CM=MED
Wherein tk extends from 3 sec prior till the current time. The 3 sec is configurable. (referring to
Step 4:
Lane change event flag:
We calculate the vehicle heading angle with respect to the lane ψ. (referring to
ψ=ψh−ψL
ψL is either given or can be calculated from the surrounding two shape points.
Given the vehicle speed Vh lower the past tPast period (e.g., tPast=2.5 sec, which is a configurable parameter), and the calculated ψ over the past tPast period, then the following is performed:
(a) for each ψi, the following operation is executed:
If ψi≦gthreshold
(e.g., gthreshold=0.5 deg)
Then
ψi=0
Else set
ψi=ψi−0.5,if ψi>0.5
ψi=ψi+0.5,if ψi<−0.5
Please note that the values above are in degrees. If one works in radians, then they all should be converted, accordingly.
(b) calculate
d
L=ΣtψiVhi(0.1 sec)
wherein (0.1 sec) is a configurable parameter and depends on the data update rate.
wherein −2.5<t<0 sec.
wherein −2.5 sec is a configurable parameter.
if |dL|>dthreshold (c)
wherein dthreshold is configurable, e.g. equal to 1 m.
AND
Max(|ψi|)<1.5 degrees
Wherein 1.5 degree is a configurable parameter.
Then
LaneChangeFlag (or LCF)=HIGH=1
Step 5:
Turn or branching flag:
Branching is defined when there is more than one likely driving path for the vehicle. (See
Within the 40 m (daa, configurable parameter, distance, e.g., before the intersection or split or branching, e.g., in meter), determine if multiple paths are possible based on the current position of the vehicle.
Classify them as Straight (S), Right (R), and Left (L). If the classification does not exist in the map data, use the rule below, or similar rules:
If one path, then it is always Straight (S).
If more than one path, then multiple possibilities:
(a) For two paths: (from
If min (|AC1|, |AC2|)<10°
Then: This min. corresponds to the straight path.
In this case, e.g., it is SCS1.
Then, SCS2 will be R or L, depending on its location from SCS1.
But if min (|AC1|, |AC2|)>100
Then: if both Angles have the same sign, then the smallest |Angle| corresponds to the S, and the other one corresponds to R or L.
But, if the Angles signs are different, then the right one is R and the left one is L.
(b) For three paths: (See
When all 3 have same sign, then min |Ang| is S.
Next Ang is R or L.
Third Ang: Ignore.
When different signs: (See
Then:
Max (Right) is R,
Max (Left) is L,
Min is S.
Now, calculate the distance to the branching point:
When db<10 m
(10 m, or dbb, which is a threshold parameter, configurable, e.g., in meter, for distance) (See
Compare the vehicle heading ψS2 with the heading of the current segment, and the heading of the segments after branching. (See
If Vh is closer to ψR or ψL, than to ψS and ψC, then:
Vehicle-is-Turning=1
If LaneChangeFlag=1 and
VehicleIsTurning=1, then:
We clear the LaneChangeFlag to zero (set to zero).
Note that: So far, we have established methods for:
Now, we use these data, in addition to the current and previous GPS positions, to determine if a changing lane or road assignment is required.
Step 6:
Changing Lane Assignment:
Lane assignment will change based on the following rules, as an example:
Wherein tcc is a configurable parameter, e.g., 4 sec.
Then: any current or previous assignment was wrong;
& now, it is correct after the lane change.
Thus: (refer to
NewCurrentAssignment=PreviousCurrentAssignment (RML, or LML)
Correction=AVG (dif_tk)
CM=high
CP=low
Then: (refer to
No change in the lane assignment
CP=low
If the new position stays in the new locations with high |dif| for tdd or more time period (wherein tdd is configurable time period, e.g., 3 sec), then:
CM=high
CP=low
Then: (refer to
If |difi|<dee (for the new lane)
Wherein dee is configurable distance, e.g., 1.5 m
Then:
NewLaneAssignment=New Lane
CM=high
A new lane assignment will happen only if (|difi|<1.5 m) stays for tff
Wherein tff is configurable time period, e.g., 3 sec
Then: (refer to
CM=low
CP=low
After this tff period, a new timer starts from zero, and rules in step 3 (described above) apply (repeat step 3)
A new lane assignment happens only if (|difi|<1.5 m) stays for tgg
Wherein tgg is configurable time period, e.g., 0.7 sec
Then (keep the same):
CM=CM
CP=CP
After this tgg, a new timer starts from zero, and rules in step 3 (described above) apply (repeat step 3)
Note:
Jump is detected as follows:
If (|difc−difp|>dhh)
Wherein dhh is configurable distance, e.g., 0.5 m
Wherein difc and difp correspond to middle of new lane and middle of previous lane, respectively. (See
Then:
Jump is detected.
Time difference between difc & difp is close to tii.
Wherein tii is a configurable time period, e.g., 0.1 sec (note: due to, e.g., the 10 Hz update).
Step 7:
Changing road assignment:
If Turn=yes (high)
|difnew|<dkk
Else (Turn=no)
|difnew|<dkk
Any time we have new lane assignment or new road assignment, we reset the timer and repeat step 3, as explained above.
In addition to the above algorithm, the V2V data, when available, can be used to help the entire discussed algorithm steps. If the relative GPS accuracy between the host vehicle and the remote vehicles in the proximity of the host vehicle is enough to separate vehicle in lane, and there are enough vehicles to exist in all lanes of interest, then it becomes an easier job to determine which lane the host vehicle is in, and this can reflect very positively on all the above algorithm steps.
Clustering and lane determination methods are discussed in our prior parent application, which is incorporated here, by reference, with more details follow below, from our prior application.
Now, let's look at the general system and other related embodiments:
In one embodiment, we have the following technical components for the system: vehicle, roadway, communications, architecture, cybersecurity, safety reliability, human factors, and operations. In one embodiment, we have the following non-technical analysis for the system: public policy, market evolution, legal/liability, consumer acceptance, cost-benefit analysis, human factors, certification, and licensing.
In one embodiment, we have the following requirements for AV (automated vehicles) system:
In one embodiment, we have the following primary technologies for our system:
In one embodiment, we have the following building blocks for AVs:
i. Advanced Driver Assistance (ADAS) integration
ii. Map Integration, Lane Control
iii. Radio communications support
iv. Vehicle Controller Unit to do actuation
i. Integration with Infrastructure Providers
Here are some of the modules, components, or objects used or monitored in our system: V2V (vehicle to vehicle), GPS (Global Positioning System), V2I (vehicle to infrastructure), HV (host vehicle), RV (remote vehicle, other vehicle, or 3rd party), and active and passive safety controls.
wherein K is a positive integer (as 1, 2, 3, 4, . . . ). Even with 2 lanes, we have 2 clusters, and one Dcc value. Thus, we can get the value for W (with K=1). The more lanes and more clusters (and cars), the more accurate the value for W.
Here, we describe a method, as one embodiment, for Lane Boundary Estimation:
The lane boundary estimation method uses fused data from nodes (vehicles) current positions, positions history (path history), host vehicle position and path history, host vehicle dynamics (speed, yaw rate, and for some embodiments, acceleration), map database geometrical shape points and attributes, and the dynamic of the vectors that connect the host vehicle with other remote vehicles. (See
To estimate the lane boundaries locations (virtual boundaries), it is required to estimate the road shape, lane width, and a placement technique. To do that, let us look at
V1V2 cos α
wherein α is the angle between the 2 vectors (V1 and V2). Note that for perfectly aligned vectors, we have α equal to zero, or (cos α=1) (or at maximum value).
1—Calculate lateral distance (perpendicular to the road tangent) between host lane cluster and all other lane clusters, and between all lane clusters. For example, in
2—Let us assume, as an example, that distance_ML=3 meter, distance_MR=4 meter, and distance_LR=7.2 meter. Then, an average lane width is between 3 and 4 meter. Therefore, distance_ML corresponds to one lane width, distance_MR corresponds to one lane width, and distance_LR correspond to two lane width. Therefore, an estimated lane width can be calculated: ((3+4+(7.2/2))/3)=3.53 meter. (See
3—Now, we would like to establish where the virtual boundaries are located. The middle of the host lane is estimated (as one example) as the line that is located at the average between the line that is generated from left-shifting the right cluster line by one lane width and the line that is generated from the right-shifting the left cluster line by one lane width. (See
4—Other lanes are distributed, by shifting this middle host lane by one lane width. (See
5—Once middle line is established and the lane width is estimated, the virtual lane boundary locations are estimated/found (see
6—The number of lanes map database attributes can also be used in the above calculations, as one embodiment. For example, using the number of lanes limits or determines the width of the whole road, the location of the shoulders, and expectation of locations of the cars in different lanes. (See
Next, let us look at the Host Vehicle Position and Orientation within the host lane:
Now, the left and right host vehicle virtual boundaries and host vehicle middle lane are estimated. The host vehicle position is known. Therefore, the vehicle position with respect to the middle line and/or to the left and right boundaries can be easily calculated from the above values (see
The heading angle of the road at the vehicle position can be calculated from the road geometry estimation. Also, the vehicle heading angle is obtained from the GPS data. Therefore, the heading angle with respect to the lane can be calculated easily by differencing the two values. These two parameters (position and heading angle with respect to the host lane) can be used to design an LDW system, as an example.
Another method to do the estimating of these two parameters is using modeling and estimation. All of the above measurements, in addition to the vector representation that connect the host vehicle with other vehicles and the host vehicle yaw rate, can be fused together (in a state model), to estimate these two main parameters (position and heading with respect to the lane). For example, we have:
dD/dt=sin(Heading)*HostSpeed
dHeading/dt=RoadCurvature−(HostSpeed*YawRate)
dRoadCurvature/dt=0
wherein D is the distance from the middle of the host lane, Heading is the heading or direction or angle with respect to the road, RoadCurvature is the curvature of the road, “t” is the time, HostSpeed is the speed of the host vehicle, YawRate is the rate of yaw (e.g., related to vehicle's angular velocity, or e.g., which can be measured with accelerometers, in the vertical axis), and (d( )/dt) denotes the derivative of a function or a variable with respect to variable “t”.
Other models of curvature can also be used, such as the Clothoid model. For the Clothoid, e.g., as one embodiment, the curvature varies linearly with respect to the parameter t. It is one of the simplest examples of a curve that can be constructed from its curvature. There are also Clothoids whose curvature varies as the n-th power of the parameter t, as another embodiment.
The measurements for the above state model can be the following parameters or set, as one example: {vector between the host vehicle and other vehicles (range and angle), curvature, heading difference, difference in position}.
Now, let us look at the advantages (comparison):
As shown above, the advantages of our methods are very clear over what the current state-of-the-art is, e.g. using vision systems.
In this disclosure, any computing device, such as processor, microprocessor(s), computer, PC, pad, laptop, server, server farm, multi-cores, telephone, mobile device, smart glass, smart phone, computing system, tablet, or PDA can be used. The communication can be done by or using sound, laser, optical, magnetic, electromagnetic, wireless, wired, antenna, pulsed, encrypted, encoded, or combination of the above. The vehicles can be car, sedan, truck, bus, pickup truck, SUV, tractor, agricultural machinery, entertainment vehicles, motorcycle, bike, bicycle, hybrid, or the like. The roads can be one-lane county road, divided highway, boulevard, multi-lane road, one-way road, two-way road, or city street. Any variations of the above teachings are also intended to be covered by this patent application.
This application is a CIP of two other co-pending US utility applications, namely, Ser. No. 13/907,864, titled “System and method for lane boundary estimation and host vehicle position and orientation”, filed 1 Jun. 2013, and Ser. No. 13/907,862, titled “System and method for node adaptive filtering and congestion control for safety and mobility applications toward automated vehicles system”, filed 1 Jun. 2013. The teachings of the above applications are incorporated herein, by reference. The current application claims the priority date of the above applications.
Number | Date | Country | |
---|---|---|---|
Parent | 13907864 | Jun 2013 | US |
Child | 14047157 | US | |
Parent | 13907862 | Jun 2013 | US |
Child | 13907864 | US |