Abstract:
A lane centering fusion system including a primary controller determining whether a vehicle is centered within a lane of travel. The primary controller includes a primary lane fusion unit for fusing lane sensed data for identifying a lane center position. A secondary controller determines whether a vehicle is centered within a lane of travel. The secondary controller includes a secondary lane fusion unit for fusing lane sensed data for identifying the lane center position. The primary controller and secondary controller are asynchronous controllers. A lane centering control unit maintains the vehicle centered within the lane of travel. The lane centering control unit utilizes fusion data output from the primary controller for maintaining lane centering control. The lane centering control unit utilizes fusion data output from the secondary controller in response to a detection of a fault with respect to the primary controller.

Description:
BACKGROUND OF INVENTION 
     An embodiment relates to lane fusion systems. 
     Lane centering systems identifies a position of the vehicle within a lane of travel and may either provide that information to other systems to details of when the vehicle is departing a lane or may be utilized as part of a lane centering control system. Lane centering control systems utilize the lane centering information, such as lane geometry, to control the steering wheel so that the vehicle can maintain a position in the center of the lane. Typically a system utilizes a lane sensing system controller for obtaining data from one or more sources and providing an output to a lane centering control system or other vehicle system. If a fault occurs with the controller, then the lane centering system would need to be disabled due to inaccurate information or lack of information. While some systems could utilize a dual duplex design having a backup system that is symmetric, the backup up system would be susceptible to the same faults. Moreover, the dual duplex system would basically double the cost since the backup system would be identical to the primary system. 
     SUMMARY OF INVENTION 
     An advantage of an embodiment is a support infrastructure services utilizing an asymmetric architecture of a lane fusion sensing system utilizing two controllers for fusing lane sensing data from a plurality of sensing device and subsystems. The system utilizes a high performance system and a high assurance system which maintains a robust and accurate diagnostic information from at least one of the fusion systems. Should a fault be detected with respect to a primary controller, the secondary controller provides lane fusion data to a lane centering control system to assure that supporting and accurate data flow is maintained to the lane centering control system. The asymmetric architecture provides pattern-based fault monitoring, configurable data buffer size, and an automatic synchronized mode switch protocol between the controllers. The secondary controller utilizes a light weight lane fusion technique in comparison to the primary controller utilizing stored data from the primary controller for estimation. The asymmetric architectures allow for reduced complexity in the secondary controller, cost reduction, and assurance that the secondary controller does not carry the faults of the primary controller since a dual duplex controller design is not utilized. 
     An embodiment contemplates a lane centering fusion system including a primary controller determining whether a vehicle is centered within a lane of travel. The primary controller includes a primary lane fusion unit for fusing lane sensed data for identifying a lane center position. A secondary controller determines whether a vehicle is centered within a lane of travel. The secondary controller includes a secondary lane fusion unit for fusing lane sensed data for identifying the lane center position. The primary controller and secondary controller are asynchronous controllers. A lane centering control unit maintains the vehicle centered within the lane of travel. The lane centering control unit utilizes fusion data output from the primary controller for maintaining lane centering control. The lane centering control unit utilizes fusion data output from the secondary controller in response to a detection of a fault with respect to the primary controller. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a block diagram for a lane fusion system. 
         FIG. 2  is a block diagram illustrating asynchronous controllers in the lane fusion system. 
         FIG. 3  illustrates a pattern fit comparator graph for detecting error in the sensed data. 
         FIG. 4  is a flow diagram illustrating a light weight futons technique performed by the secondary controller. 
         FIG. 5  is an illustration identifying parameters used by the Kalman filter. 
         FIG. 6  is an illustration of the circular buffer. 
         FIG. 7  is a state diagram for the read function of the buffer. 
         FIG. 8  is a state diagram for the write function of the buffer. 
         FIG. 9  is a state diagram for enabling/disabling the primary controller. 
         FIG. 10  is a state diagram for enabling/disabling the secondary controller. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is a block diagram for a lane fusion system  10 . The lane fusion system  10  includes a plurality of lane sensing subsystems  11  in which lane sensing data is obtained and cooperatively fused for enhanced lane tracking. The plurality of lane sensing systems include, but is not limited to, forward lane sensing systems  12 , rear lane sensing systems  14 , a digital map processor  16 , and leading vehicle trajectories  18 . Forward lane sensing systems  12  include systems that detect and track lane centering forward of the vehicle. Rear lane sensing systems  14  include systems that detect and track lane centering rearward of the vehicle. Digital map processors  16  perform GPS map matching, and lead vehicle trajectories  18  track the trajectories of the lead vehicle for comparison with a host vehicle path of travel. 
     The plurality of lane sensing systems transmits the data over a communication bus  20  to a lane fusion unit  22 . The lane fusion unit  22  fuses the various results from the plurality of lane sensing systems  11 . Lane fusion is a single point failure component for a lane centering control system and is typically computationally intensive. The fused results are then output to a lane centering control unit  23  which utilizes the result to maintain the vehicle within the lane of travel. 
       FIG. 2  illustrates a block diagram of an embodiment of the invention utilizing a primary controller  24  and a secondary controller  26 . The primary controller  24  operates as a performance controller having a computational intensive processor. The primary controller  24  includes a primary lane fusion module  28  that utilizes the information obtained from the plurality of lane sensing subsystems  11  for identifying an enhanced position within the lane of travel. It should be understood that the primary controller  24  is not limited to obtaining information from the lane sensing subsystems  11  as described above, but may utilize additional information from other lane sensing systems. 
     The primary controller  24  further includes a monitoring module  30  for monitoring the operation and integrity of the primary controller  24  and the algorithms run by the primary fusion module  28 . Examples of the monitoring module  30  may include but is not limited to Probability Integrity and Security Module and a Main Processor Monitoring Module. The primary objective of the monitoring module  30  is to identify functional integrity check results and determine whether the primary controller  24  and associated algorithm is operating without fault. If the primary controller  24  is operating without fault, then the lane centering control unit  23  will utilize data only from the primary controller  24 . 
     The secondary controller  26  includes a light weight lane fusion module  32  operating as a high assurance system. The term lightweight as used herein refers to a system that is less computationally intensive in contrast to the primary controller  24 . Moreover, the secondary controller  26  maintains increased assurance of data integrity and accuracy based on the data utilized in making its determinations. The secondary controller  26  includes a buffer  34  for storing outputs of the primary controller  26  over a predefined duration of time (e.g., 5 seconds). The buffer  34  is preferably a circular buffer which will be described in detail later. 
     The secondary controller  26  further includes a monitoring module  35  for monitoring the operation, functionality, and integrity of the primary controller  24 . The monitoring module  35  performs functional integrity check results for determining whether the primary controller  24  is operating without fault. The monitoring module  35  may utilize existing vehicle modules such as probability integrity and security module and a main processor monitoring module. If the primary controller  24  is operating without fault, then the lane centering control unit  23  will utilize data only from the primary controller  24 . If the secondary controller  26  is in the active state, then the output from the secondary controller  26  takes precedent over the output from the primary controller  24 . The monitoring module  35  further monitors functionality of the primary controller  26  to maintain synchronization with the primary controller  24 , so that both controllers are identifying the same lane characteristics (e.g., road shape, length, curvature, geometry), and in the event a fault occurs with respect to the primary controller  24 , the secondary controller  26  can immediately be enabled for identifying and analyzing the exact location of the vehicle within the lane of travel when the fault is detected with the primary controller  24 . As a result, the secondary controller will be able to seamlessly continue lane centering functionality for the vehicle. 
     It should be understood that the primary controller  24  and the secondary controller  26  may be part of a single controller having a multi-core structure where the controller runs different processes and one core of the controller does not affect the other core. 
     The primary controller  24  and the secondary controller  26  have asymmetric architectures so that each can run independently of one another and not carry the same faults. When the primary controller  24  is detected as faulty, the secondary controller  26 , which is running in passive mode, switches to active mode and starts transmitting data to the lane centering control unit  23 . The secondary controller  26  utilizes buffered data from the primary controller  24  and also data from the plurality of lane sensing subsystems for generating lane centering information for the lane centering control unit  23 . If the primary controller  24  resets and is operating with no faults, then the secondary controller  26  will reenter a passive mode of operation and will terminate transmitting data to the lane centering control unit  23 . The primary controller  24  thereafter transmits data to the lane centering control unit  23 , which in turn, will make adjustments to the vehicle steering or other vehicle controls, if needed. 
     To enable switching between the primary controller and the secondary controller, a functional integrity check is performed to determine whether the primary function of the primary controller has failed. This can be performed utilizing a pattern fit comparator. The pattern fit comparator compares current sense data with historical data to predict a correct value range. Typically, values do not change abruptly beyond a respective range, and therefore a functional failure can be inferred by abrupt changes in the pattern. In  FIG. 3 , the line represented by  36  represents an expected pattern. The respective data points  38  are computed values. As shown in  FIG. 3 , a set of values deviate beyond a range of the expected pattern, and therefore, are considered faulty values. As a result, a primary function failure is identified utilizing the functional integrity check when the pattern fit comparator identifies values that exceed a range of the expected pattern. 
     An advantage of the asymmetric architecture is lower processing costs in contrast to a dual duplex design. In addition, duplicate software design faults are not present since the implementation is asymmetric and the secondary controller  26  will not carry forward the host software design faults of the primary controller  26 . 
     Faults that may be detected in the controller include functional integrity faults. This includes faults relating to functionality where the system can analyze the data and determine by arbitration whether a functional fault is present. The other types of faults are controller faults or processor faults. This may be determined by monitoring health messages within the system. Typically, nodes of the system communicate with one another by supplying heartbeat messages that provide status information relating to a node. In the event a node that typically transmits a message at a predetermined rate is no longer transmitting a message, then a determination is made that no data is being transmitted and a controller fault or processor fault is present. 
       FIG. 4  is a block diagram illustrating a light weight lane fusion technique performed by the secondary controller. A lane curvature estimation processor module  40  receives lane curvature input from various sources that include, but are not limited to, visual lane sensing devices  42 , map lane geometry devices  44 , radar trail of the leading car  46 , and buffered data  48 . 
     The visual lane sensing devices  42  provide data such as curvature data, heading data, and distance data. The map lane geometry devices  44  provide curvature data from existing map information. The radar trail data  46  provides curvature data and heading data based on the tracking of the leading car. Buffered data  48  is obtained from the primary controller and includes curvature data, heading data, and distance data. 
     The input data received from each of the data sources are input to the lane curvature estimation processor module  40  and are weighted. Weighting factors are applied to each respective set of input data from the various input sources. The weighting factors are predetermined. This allows the system to provide greater emphasis on those respective input sources that should be relied on during lane fusion. A formula representing the fused lane curvature c 0  is represented as follows:
 
 c   0   =αc   V   +βc   M   +γc   R   +δC   B  
 
where c V  is the curvature based on vision lane sensing data, c M  is the curvature based on the map lane geometry data, c R  is the curvature based on radar trail data, c B  is the curvature based on buffered data, and α, β, γ, δ are weight factors.
 
     The weighted lane curvature is output where the weighted average is determined for the fused lane curvature of the input sources and is applied to a Kalman filter tracker  50 . The Kalman filter tracker  50  utilizes a series of measurements that are observed over time. The state variables are the vehicle&#39;s ground location and velocity, in addition to the leading vehicle&#39;s location and velocity. As a result, the location, the moving direction, and the trajectory of the vehicle is updated using the Kalman filtering. This technique also attempts to “anticipate” the vehicle&#39;s intention to travel in a respective lane of travel. 
     After applying the Kalman filter  50  to the fused lane curvature data, the adjusted output is then provided to the lane centering control unit  23 . The adjusted output includes the fused lane curvature c 0 , an angle offset from the center of the lane φ, and the distance offset from the center of the lane γ. The distance offset may include a left offset from the center and a right offset from the center. 
     The lane centering control unit  23  receives the adjusted output from the Kalman filter  50  and enables vehicle operating controls  52  (e.g., steering controls) for maintaining the vehicle in the center of the lane. In addition, vehicular speed ν H , and yaw rate ω H  are fed back to the Kalman filter  50  for adjusting the fused lane curvature c 0  generated by the lane curvature estimation processor module  40 . 
     In addition, an anchor lane selection unit  54 , which is buffered from the primary controller, may be input to the Kalman filter tracker  50 . Data from the anchor lane selection unit  44  may be utilized in instances where an exit ramp is present and the lane markings of the exit ramp deviate from the current road of travel. In this scenario, the lane markings of the current road of travel will not be parallel to the lane markings of the exit ramp. Under such circumstances, a respective lane marker is identified as the anchor for lane centering so that the routine makes the proper decision to follow the identified lane marker. 
       FIG. 5  illustrates an example of parameters utilized by the Kalman filtering process for lateral state tracking. The vehicle&#39;s lateral state is estimated by modeling the vehicle&#39;s motion with respect to the lane center  56 . Buffered anchor data from the anchor lane selection unit  54  temporarily stored from the primary controller is used as the system transitions lane fusion from the primary controller to the secondary controller. Buffered anchor data includes the latest estimated state variables (i.e., the fused curvature c 0 , angle offset between the center of the lane and a heading direction of the vehicle φ, lateral offset between a longitudinal centerline of the vehicle and the center of the lane γ) from the lane tracker from primary controller. These signals are typically added. Upon transitioning to the secondary controller, the Kalman filter tracker is enabled. The Kalman filter tracker utilizes the following state equations:
 
 γ′=γ+νφΔT+ν   Hγ   ΔT  
 
φ′=φ+( c   νeh   −c   0 )νΔ T  
 
where γ is a lateral offset between a longitudinal centerline of the vehicle and the center of the lane, ν Hγ  is a host lateral speed estimated from vehicle dynamic data, φ is an angle offset between the center of the lane and a heading direction of the vehicle, c 0  is the fused lane curvature, and c νeh  is a curvature of the predicted vehicle path determined as a function of both vehicular speed ν H  and yaw rate ω H  and is represented by the following equation:
 
 c   νeh =ω H /ν H .
 
     A measurement equation can then be applied utilizing anchor lane information. The following conditions are utilized when determining the anchor lane parameters: 
     
       
         
           
             
               y 
               v 
             
             = 
             
               { 
               
                 
                   
                     
                       
                         
                           
                             y 
                             L 
                           
                           - 
                           
                             y 
                             R 
                           
                         
                         2 
                       
                       ⁢ 
                       
                           
                       
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       parallel 
                     
                   
                 
                 
                   
                     
                       
                         
                           y 
                           L 
                         
                         - 
                         
                           1.8 
                           ⁢ 
                           m 
                         
                       
                       ⁢ 
                       
                           
                       
                     
                   
                   
                     
                       left 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       as 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       Anchor 
                     
                   
                 
                 
                   
                     
                       
                         
                           y 
                           R 
                         
                         + 
                         
                           1.8 
                           ⁢ 
                           m 
                         
                       
                       ⁢ 
                       
                           
                       
                     
                   
                   
                     
                       right 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       as 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       Anchor 
                     
                   
                 
               
               } 
             
           
         
       
       
         
           
             
               y 
               v 
             
             = 
             y 
           
         
       
       
         
           
             
               φ 
               v 
             
             = 
             φ 
           
         
       
     
       FIG. 6  illustrates the data buffering infrastructure service. A data buffer  34  temporarily stores historical data for the vehicle state estimation technique. Preferably, the data buffer  34  utilizes a circular buffer to minimize memory cost and data consumption. As shown in  FIG. 6 , the data buffer  34  includes a single writer and multiple readers. The size of the buffer is pre-determined at the design stages based on the functionality required of the buffer. The functionality may include the number of parameters, the frequency of the writing, and the duration of time desired to maintain the historical data, as well as the number of readers if there is more than one reader. Maintaining the number of readers is to track when and how to update the read index. This will not affect an advance read and write index since an index is overwritten when full. The data buffer  34  utilizes two indices to indicate the data locations. The indices are as follows:
 
(Rindex+1) mod B=Windex→no new message; and
 
(Windex+1) mod B=Rindex→buffer full.
 
When the read function catches up to the write function, then the data buffer  34  is determined to be empty. When the write function catches up to the read function, then the data buffer  34  is determined to be full. In response to the data buffer  34  being full, the write function will start overwriting indices.
 
       FIGS. 7 and 8  illustrate state diagrams and flow diagrams for the read/write functions. Referring to  FIGS. 7 , the read function is started at block  61 . The routine advances to block  62  where a current index is identified. 
     In block  63 , a determination is made as to whether the respective buffer location associated with the current index is empty. If the current index is not empty, the routine advances to block  64 ; otherwise, the routine advances to block  65 . 
     In block  64 , data is read at the current index, and the index is updated to the next index. 
     In block  65 , a return is made to block  62 . 
       FIG. 8  illustrates the write function which is initiated at block  70 . In block  71 , a current index is identified to write data therein. 
     In block  72 , a determination is made whether the respective buffer location associated with the current index is full. If the respective location is not full, the routine proceeds to block  73 ; otherwise, the routine proceeds to step  75 . 
     In block  73 , in response to a determination that the index location is not full, data is written to the current index. 
     In block  74 , the write index is incremented. The routine advances to block  77  and a return is made to step  71  to identify the next index for writing. 
     Referring again to block  72 , in response to the determination that the index is full, the routine proceeds to block  75 . In block  75 , data is written to the current index. The routine proceeds to block  76 . 
     In block  76 , both the read index and the write index are advanced. The routine advances to block  77  and a return is made to step  71  to identify the next index for writing. 
       FIGS. 9 and 10  illustrate state diagrams for a mode switch protocol for switching between the primary controller and the secondary controller. The primary function is to identify the current state of the primary controller and initiate a mode switch if the primary controller does not function correctly, and to return to a normal state if the primary controller resets successfully. 
       FIG. 9  illustrates the state diagram for the primary controller. In state  80 , integrity function checks are performed. If the determination is made that the integrity function checks are normal, then the system broadcasts messages that the system is operating in a normal state and continues to perform functional integrity checks at predetermined instances of time. 
     At state  81 , a fault state is entered when there is any of a functional integration fault, a data failure fault, a software failure fault, a hardware fault. In response to a detected fault, an error code is transmitted. Under a failed state, an error message is transmitted to the secondary controller, which will begin transmitting its lane fusion information to the lane centering control unit. 
     At state  82 , the secondary controller performs a reset operation. After the reset operation, if the system successfully returns to normal, then the primary controller will transmit the message identifying that it is operating in a normal state. If the reset operation is unsuccessful such that the error in the primary controller still exists, then the system maintains the failed state and enters a shutdown state  83 . 
       FIG. 10  illustrates a state flow diagram for the secondary controller. In state  90 , while the primary controller is operating in a normal state, and in response to transmitting messages to the secondary controller that it is operating in a normal state, the secondary controller operates in a passive state. While operating in the passive state, the secondary controller constantly obtains data and performs lane fusion, but does not transmit its output to the lane change control unit. 
     In response to receiving an error/timeout message from the primary controller, the secondary controller enters an active state  91 . Examples of faults that may occur with the primary controller that would trigger an error/timeout message would include, but are not limited to, faults in the error code, data corruption, infrastructure service fail, and functional integrity failure. While in an active state, the secondary controller transmits lane fusion output data to the lane center control module. Should the primary controller attempt to transmit data while the secondary controller is transmitting data, ongoing transmissions from the secondary controller preempts data transmitted by the primary controller. 
     The secondary controller maintains an active state so long as an error state message is being received regarding the primary controller. If a normal state message is received from the primary controller, the secondary controller returns to a passive state  90 . 
     If the primary controller does not recover after a timeout, the function that is being executed by both the primary and secondary controllers is terminated at state  92 . Failures detected using a timeout include controller and network failures. 
     While certain embodiments of the present invention have been described in detail, those familiar with the art to which this invention relates will recognize various alternative designs and embodiments for practicing the invention as defined by the following claims.