Patent ID: 12233897

DETAILED DESCRIPTION

Overview

The present disclosure describes a vehicle driving assistance system that may provide driving assistance to a user. The user may drive a vehicle that may be a manually operated vehicle or configured to operate in one or more partial autonomy modes (e.g., Level 1 to 4 autonomy mode). The system may provide customized driving assistance to the user based on user's driving behavior on a trip and road information of a road segment on which the user may drive the vehicle. In some aspects, the road segment may be divided/segregated into a plurality of geographical zones, and the user may travel through one or more geographical zones while driving the vehicle on the trip. The system may be configured to obtain a plurality of vehicle information, e.g., vehicle Global Navigation Satellite System (GNSS) location, speed, heading, etc., when the user drives the vehicle. Based on the vehicle information, the system may calculate a user driving index, which may indicate the user's driving behavior. In addition, the system may obtain road information associated with each geographical zone that may include a count of historical adverse instances that may have occurred in the geographical zone and an average count of vehicles driven over a time period. Based on the road information, the system may calculate a zone index for each geographical zone. The system may further correlate the user driving index and the zone index for each geographical zone, and calculate a driver assistance index for each geographical zone. The system may further perform a control action when a calculated driver assistance index for a geographical zone is greater than a predetermined threshold.

In some aspects, the control action may include generation of an alert notification for the user. For example, the system may generate the alert notification for the user when the user drives through or approaches a geographical zone with a driver assistance index greater than the predetermined threshold. In this case, the system may transmit the alert notification to a vehicle Human-Machine Interface (HMI) and/or a user device and indicate to the user that the user should drive cautiously in the geographical zone.

In other aspects, the control action may include automatic adjustment of one or more vehicle settings or parameters, specifically if the vehicle is configured to operate in partial autonomy modes. For example, the system may automatically adjust vehicle distance gap setting in adaptive cruise control or increase vehicle's displacement from pedestrian walkways when the user drives through or approaches the geographical zone with the driver assistance index greater than the predetermined threshold.

In further aspects, the control action may include recommendation of a route for the trip having geographical zones with corresponding driver assistance indexes less than the predetermined threshold. For example, the system may determine and recommend a route for the user's trip that may include geographical zones with driver assistance indexes less than the predetermined threshold. In some aspects, the system may display the recommended route on the vehicle HMI and/or the user device and may further provide navigation instructions to the user.

The present disclosure discloses a system that provides customized driving assistance to a user, based on user's driving behavior and road information of a road segment on which the user may drive a vehicle. Specifically, the system automatically adjusts vehicle settings/parameters when the vehicles passes through a geographical zone with a high driver assistance index, thus alleviating a need for human intervention. Further, the system provides driving assistance to the user based on dynamic road information that updates over time and does not rely on static road information/statistics. Therefore, the system provides relevant and useful driving assistance to the user.

These and other advantages of the present disclosure are provided in detail herein.

Illustrative Embodiments

The disclosure will be described more fully hereinafter with reference to the accompanying drawings, in which example embodiments of the disclosure are shown, and not intended to be limiting.

FIG.1depicts an example system100in which techniques and structures for providing the systems and methods disclosed herein may be implemented. The system100may include a vehicle102, a server104and a road information database106, communicatively connected with each other via one or more networks108(or a network108). The system100may further include a driving assistance system110that may communicatively couple with the vehicle102, the server104and the road information database106via the network108. In some aspects, the driving assistance system110may be located inside the vehicle102or the server104.

In some aspects, the vehicle102may take the form of any passenger or commercial vehicle such as, for example, an off-road vehicle, a car, a crossover vehicle, a van, a minivan, a bus, a truck, etc. Further, the vehicle102may include any powertrain such as, for example, a gasoline engine, one or more electrically-actuated motor(s), a hybrid system, etc. Furthermore, the vehicle102may be a manually driven vehicle and/or be configured and/or programmed to operate in a fully autonomous (e.g., driverless) mode (e.g., Level-5 autonomy) or in one or more partial autonomy modes which may include driver assist technologies. Examples of partial autonomy (or driver assist) modes are widely understood in the art as autonomy Levels 1 through 4.

A vehicle having a Level-0 autonomous automation may not include autonomous driving features. A vehicle having Level-1 autonomy may include a single automated driver assistance feature, such as steering or gas pedal assistance. Adaptive cruise control is one such example of a Level-1 autonomous system that includes aspects of both gas pedal and steering.

Level-2 autonomy in vehicles may provide driver assist technologies such as partial automation of steering and gas pedal functionality, where the automated system(s) are supervised by a human driver that performs non-automated operations such as braking and other controls. In some aspects, with Level-2 autonomous features and greater, a primary user may control the vehicle while the user is inside the vehicle, or in some example embodiments, from a location remote from the vehicle but within a control zone extending up to several meters from the vehicle while it is in remote operation.

Level-3 autonomy in a vehicle can provide conditional automation and control of driving features. For example, Level-3 vehicle autonomy may include “environmental detection” capabilities, where the autonomous vehicle (AV) can make informed decisions independently from a present driver, such as speeding past a slow-moving vehicle, while the present driver remains ready to retake vehicle control if the system is unable to execute the task.

Level-4 AVs can operate independently from a human driver, but may still include human controls for override operation. Level-4 automation may also enable a self-driving mode to intervene responsive to a predefined conditional trigger, such as a road adverse condition. Level-5 AVs may include fully autonomous vehicle systems that require no human input for operation, and may not include human operational driving controls.

In some aspects, the vehicle102may include a Vehicle Control Unit (VCU)112and a vehicle memory114(that may be part of an on-board vehicle computer, not shown). The VCU112may include a plurality of units including, but not limited to, a Driver Assistance Technologies (DAT) controller116, a navigation receiver118, a vehicle transceiver120, a plurality of electronic control units (ECUs, not shown) and the like. In some aspects, the vehicle transceiver120may be outside the VCU112. The VCU112may be configured and/or programmed to coordinate data within vehicle102units, connected servers (e.g., the server104), other vehicles (not shown inFIG.1) operating as part of a vehicle fleet and the driving assistance system110.

In some aspects, the DAT controller116may provide Level-1 through Level-4 automated driving and driver assistance functionality to a vehicle user. The navigation receiver118may include one or more global positioning system (GPS) receivers, and/or other related satellite navigation systems such as the global navigation satellite system (GLNSS), Galileo, or other similar systems known in the art of autonomous vehicle operation. The navigation receiver118may be configured to obtain vehicle GPS/GNSS position. Further, the VCU112may be configured to determine vehicle telemetry information, e.g., vehicle speed, heading, etc.

The vehicle transceiver120may be configured to transmit vehicle data, e.g., the vehicle GPS/GNSS position, the vehicle telemetry information and/or the like, to the driving assistance system110and/or the server104via the network108.

The vehicle memory114may store programs in code and/or store data for performing various vehicle operations in accordance with the present disclosure. The vehicle memory114can include any one or a combination of volatile memory elements (e.g., dynamic random-access memory (DRAM), synchronous dynamic random-access memory (SDRAM), etc.) and can include any one or more nonvolatile memory elements (e.g., erasable programmable read-only memory (EPROM), flash memory, electronically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), etc. In some aspects, the vehicle memory114may store the vehicle GPS/GNSS position that may be determined by the navigation receiver118and the vehicle telemetry information that may be determined by the VCU112.

A person ordinarily skilled in the art may appreciate that the vehicle architecture shown inFIG.1may omit certain vehicle units and/or vehicle computing modules. It should be readily understood that the environment depicted inFIG.1is an example of a possible implementation according to the present disclosure, and thus, it should not be considered limiting or exclusive.

The network108illustrates an example communication infrastructure in which the connected devices discussed in various embodiments of this disclosure may communicate. The network(s)108may be and/or include the Internet, a private network, public network or other configuration that operates using any one or more known communication protocols such as, for example, transmission control protocol/Internet protocol (TCP/IP), Bluetooth®, Bluetooth® Low Energy, Wi-Fi based on the Institute of Electrical and Electronics Engineers (IEEE) standard 802.11, UWB, and cellular technologies such as Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), High-Speed Packet Access (HSPDA), Long-Term Evolution (LTE), Global System for Mobile Communications (GSM), and Fifth Generation (5G), to name a few examples.

In some aspects, the server104may be part of a cloud-based computing infrastructure and may be associated with and/or include a Telematics Service Delivery Network (SDN) that provides digital data services to the vehicle102and other vehicles (not shown inFIG.1) that may be part of a vehicle fleet.

Further, the road information database106may be an online database that stores road condition information (or road information) The road information may include information associated with road geometry for a plurality of road segments on which the vehicle user may drive the vehicle102, historical adverse instances that may have occurred on the road segment(s) (e.g., historical vehicle adverse interactions that occurred on the road segment(s)), average count of vehicles driven on the road segment(s) and/or the like. In some aspects, the road geometry information may include information associated with a plurality of geographical zones included in the road segment(s). Specifically, the road segment(s) may be divided into a plurality of geographical zones, and the road information database106may L. In some aspects, the historical adverse instances may be vehicle accidents that may have occurred in each geographical zone. Further, the road information database106may be a database that stores traffic reports or accident information for each geographical zone that may be recorded by state or city government.

In addition, the road information database106may store an average count of vehicles driven through each geographical zone. The details of the plurality of geographical zones may be understood in conjunction withFIGS.2and3. In some aspects, the road information database106may be configured to provide the road information to the driving assistance system110via the network108.

As described above, the driving assistance system110may receive the road information from the road information database106and the vehicle GPS/GNSS position and telemetry information from the vehicle transceiver120. In some aspects, the driving assistance system110may be configured to determine vehicle user's driving behavior (e.g., when the vehicle102is a manually operated vehicle or a Level 1 to 4 AV) based on the received vehicle GPS/GNSS position and telemetry information. Responsive to determining the vehicle user's driving behavior, the driving assistance system110may correlate the vehicle user's driving behavior with the road information received from the road information database106, and provide customized driving assistance to the vehicle user. The process of providing customized driving assistance to the vehicle user may be understood in conjunction withFIG.2.

FIG.2depicts an example vehicle driving assistance system200in accordance with the present disclosure. While explainingFIG.2, references may be made toFIGS.3,4,5A and5B.

The system200may be same as the driving assistance system110. In some aspects, the system200may be located inside the vehicle102and communicatively connected to the server104and the road information database106via the network108. In other aspects, the system200may be located inside the server104and communicatively connected to the vehicle102and the road information database106via the network108.

The system200may include a system transceiver202, one or more system processors204(or a system processor204) and a system memory206. The system transceiver202may be configured to transmit and receive information to and from the vehicle102, the server104and the road information database106via the network108.

The system processor204may be disposed in communication with one or more memory devices, e.g., the system memory206and/or one or more external databases (not shown inFIG.2). The system processor204may utilize the system memory206to store programs in code and/or to store data for performing system operations in accordance with the disclosure. The system memory206may be a non-transitory computer-readable memory storing a vehicle driving assistance program code. The system memory206can include any one or a combination of volatile memory elements (e.g., dynamic random-access memory (DRAM), synchronous dynamic random-access memory (SDRAM), etc.) and can include any one or more nonvolatile memory elements (e.g., erasable programmable read-only memory (EPROM), flash memory, electronically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), etc.

In some aspects, the system memory206may include a plurality of modules and databases including, but not limited to, a navigation module208, a driver index module210, a zone index module212, a driver assistance index module214, a control action module216, a user database218, a system road information database220and a vehicle information database222. The modules, as described herein, may be stored in the form of computer-executable instructions, and the system processor204may be configured and/or programmed to execute the stored computer-executable instructions for performing vehicle driving assistance system functions in accordance with the present disclosure.

In operation, the system200may be configured to provide driving assistance to a vehicle operator (“user” or “vehicle user”) when the user drives the vehicle102. Specifically, in an exemplary aspect, the user may input a source location and a destination location associated with a user trip on a vehicle Human-Machine Interface (HMI), a vehicle navigation system interface or a user device (e.g., a mobile phone, a tablet, laptop, etc.) coupled to the vehicle102. Responsive to receiving the source location and the destination location, the vehicle102(e.g., vehicle's navigation system) or the user device may transmit the source location and the destination location to a navigation server (which may be the server104, or a separate dedicated navigation server), and the navigation server may recommend a first route for the user trip to the user. Responsive to receiving the recommended first route, the user may commence the trip along the recommended first route (or any other route different from the recommended first route, based on user's preference).

In some aspects, the vehicle102(e.g., the vehicle's navigation system) may additionally transmit, via the vehicle transceiver120, the source location and the destination location to the system transceiver202. In other aspects, the user device may transmit the source location and the destination location to the system transceiver202. The system transceiver202may receive the source and destination locations and transmit the locations to the user database218for storage purpose. In addition, the system transceiver202may send the received source and destination locations to the system processor204. In alternative aspects, the system processor204may fetch/obtain the source and destination locations from the user database218.

Responsive to obtaining the source and destination locations associated with the user trip, the system processor204may send a request, via the system transceiver202, to the road information database106to obtain road information for a geographical area including the source and destination locations. Responsive to receiving the request from the system processor204, the road information database106may send the road information to the system transceiver202, which may send the received road information to the system road information database220for storage purpose. In addition, the system transceiver202may send the road information to the system processor204for processing. Alternatively, the system processor204may fetch the road information from the system road information database220.

In some aspects, the road information may include road geometry of the geographical area including the source and destination locations. Specifically, the geographical area may be divided/segregated into a plurality of geographical zones that form the geographical area road geometry. In some aspects, each geographical zone may be of same shape and dimensions. For example, each geographical zone may be square shaped with dimensions in a range of 0.5 to 1 mile. Alternatively, each geographical zone may be rectangular shaped.

An example illustration of geographical zones is depicted inFIG.3. Specifically,FIG.3depicts an example snapshot of a plurality of geographical zones of a geographical area300, in accordance with the present disclosure. In some aspects, the geographical area300may include a source location302and a destination location304associated with the user trip that may be input by the user on the vehicle HMI, the vehicle navigation system or the user device (as described above). As shown inFIG.3, the geographical area300may be divided into geographical zones306a,306b,306n(collectively referred to as geographical zones306) that may be rectangular shaped. In some aspects, the geometry of the geographical zones306may be stored in the road information database106, and the system processor204may fetch the geographical zones306(or the geographical zone geometry) when the user inputs the source location302and the destination location304associated with the user trip.

In some aspects, the road information (that the road information database106may provide to the system processor204) may further include a count of historical adverse instances for each geographical zone306that may have occurred over a first predefined time period. For example, the road information database106may provide a count of historical adverse instances that may have occurred over a period of one month, a quarter, six months, or a year. As described above, the historical adverse instances may be vehicle accidents that may have occurred in each geographical zone306. In addition, the road information may include an average count of vehicles driven through each geographical zone306over a second predefined time period, for example, one day, one week and the like.

A person ordinarily skilled in the art may appreciate that since the road information includes an average count of vehicles driven through each geographical zone306over a time period, the road information that the system processor204receives from the road information database106is dynamic. Stated another way, the road information database106updates the road information based on variations in the average count of vehicles that may be driven through a geographical zone306over time. Similarly, the road information database106may update the road information based on variations in the count of adverse instances for each geographical zone306over time.

Responsive to obtaining the road information from the road information database106, the system processor204may execute the instructions stored in the zone index module212and calculate a zone index for each geographical zone306. In some aspects, the system processor204may calculate the zone index by calculating a ratio of the count of historical adverse instances that may have occurred over the first predefined time period and the average count of vehicles driven through each geographical zone306over the second predefined time period. In further aspects, the system processor204may calculate the zone index by calculating a logarithm (Log) of the ratio and mapping the log of the ratio with a predefined scale of zone indexes. As an example, if the count of historical adverse instances in a zone is 20 over a period of one year and the average count of driven vehicles in a day is 9628, the system processor204may calculate the log of the ratio as Log(20/(9628*365)=minus 5.2.

Responsive to calculating the log of the ratio, the system processor204may determine the zone index for each geographical zone306by mapping the calculated log of the ratio to the predefined scale of zone indexes, which may range from 0 to 10. For example, a log ratio of minus 7 may have a mapped zone index of 1, and a log ratio of minus 5 may have a mapped zone index of 8. In some aspects, the mapping of the log of the ratios with zone indexes may be pre-stored in the system memory206, and the system processor204may fetch the mapping from the system memory206and determine the zone index for each geographical zone306based on the calculated log of the ratio.

In additional aspects, the system processor204may calculate the zone index for each geographical zone306based on a time of the day. For example, the system processor204may obtain, from the road information database106, the count of historical adverse instances and the average count of driven vehicles for each geographical zone306for different time intervals. In an exemplary aspect, the system processor204may obtain the count of historical adverse instances and the average count of driven vehicles for time intervals of 7 AM-10 AM, 10 AM-1 PM, 1 PM-4 PM, 4 PM-7 PM and the like. Responsive to receiving the counts for different time intervals, the system processor204may calculate zone indexes for each geographical zone306during different time intervals, in the manner described above. In this case, each geographical zone306may have different zone indexes for different time intervals.

In some aspects, a zone index for a geographical zone may indicate a likelihood of a vehicle adverse instance occurring in the particular zone. For example, a zone with a higher zone index (e.g., greater than 6 or 7) may indicate that the likelihood of a vehicle adverse instance is high in the zone. Similarly, a zone with a low zone index (e.g., less than 2) may indicate that the likelihood of a vehicle adverse instance is low in the zone. A comparison of zones with different zone indexes is shown in shown inFIG.3. Specifically, as an example illustration, zones with different zone indexes are shown with different shades inFIG.3. As an example, the zone306amay have a high zone index, the zone306nmay have a low zone index and the zone306bmay have a zone index that may be between the zone indexes associated with the zones306aand306n.

A close-up view of a zone is depicted inFIG.4. Specifically,FIG.4depicts an example snapshot of a geographical zone402representing a plurality of historical adverse instances404, in accordance with the present disclosure. In some aspects, the geographical zone402may be associated with a road crossing or a road intersection area of a road segment406. The road segment406may be divided into a plurality of geographical zones (not shown inFIG.4). As depicted inFIG.4, a count of historical adverse instances in the geographical zone402may be higher than a count of historical adverse instances in other geographical zones associated with the road segment406. Consequently, the geographical zone402zone index may be higher than the zone indexes associated with the other zones in the road segment406(assuming that the average count of driven vehicles is same or equivalent).

Responsive to calculating the zone indexes of each geographical zone306, the system processor204may send the calculated zone indexes to the system road information database220for storage purpose. In some aspects, the system road information database220may store the zone indexes for each geographical zone306corresponding to different times of the day, as described above.

In further aspects, the system processor204may send a request, via the system transceiver202, to the vehicle transceiver120to obtain vehicle user's driving information. Specifically, the system processor204may send the request to obtain the vehicle GNSS position and the vehicle telemetry information (e.g., the vehicle speed and heading) for the vehicle102that the vehicle user may be driving. Responsive to receiving the request from the system processor204, the vehicle transceiver120may obtain the vehicle GNSS position from the navigation receiver118and the vehicle telemetry information from the VCU112(or the plurality of ECUs). The vehicle transceiver120may then transmit the vehicle GNSS position and the vehicle telemetry information to the system transceiver202. Responsive to receiving the vehicle GNSS position and the vehicle telemetry information, the system transceiver202may send the received position and telemetry information to the vehicle information database222for storage purpose and to the system processor204for processing. In alternative aspects, the system processor204may fetch/obtain the vehicle GNSS position and the vehicle telemetry information from the vehicle information database222.

In some aspects, the system processor204may obtain the vehicle GNSS position and the vehicle telemetry information at a predefined frequency. For example, the system processor204may obtain the vehicle GNSS position and the vehicle telemetry information every 25 milliseconds (ms), 50 ms or 100 ms.

Responsive to obtaining the vehicle GNSS position, the system processor204may determine a vehicle102current position. As an example, the system processor204may determine vehicle's GNSS position at time, t=0 (e.g., vehicle's current position), by obtaining the vehicle GNSS position at t=0. Further, the system processor204may execute the instructions stored in the driver index module210and determine an estimated vehicle position after a predefined time interval, e.g., at time, t=t′ seconds, based on the obtained vehicle telemetry information. Specifically, the system processor204may use the vehicle speed and heading information included in the vehicle telemetry information, and determine the estimated vehicle position at t=t′, based on the vehicle's GNSS position at t=0. An example illustration of vehicle's current position at t=0 and vehicle estimated position at t=t′ is shown inFIG.5A. Specifically,FIG.5Adepicts an example snapshot illustrating a vehicle's current position502(at t=0) and a vehicle's estimated position504(at t=t′), in accordance with the present disclosure.

Responsive to determining the vehicle's estimated position504, the system processor204may determine vehicle's actual position506at t=t′, by obtaining vehicle's GNSS position from navigation receiver118at t=t′. Specifically, the system processor204may send a request, via the system transceiver202, to the navigation receiver118at t=t′ to obtain the vehicle's actual position506. Responsive to receiving the request from the system processor204, the navigation receiver118may send the vehicle's GNSS position (i.e., the vehicle's actual position506) to the system processor204.

Responsive to determining the vehicle's actual position506, the system processor204may execute the instructions stored in the driver index module210and calculate a displacement offset or a tracking error508for the vehicle102. Hereinafter, the tracking error508is referred to as the displacement offset508. In some aspects, the displacement offset508may be a difference between the vehicle's actual position506and the vehicle's estimated position504, at t=t′. A person ordinarily skilled in the art may appreciate that the displacement offset508may be created as a result of vehicle speed variation (e.g., when the vehicle user frequently uses vehicle gas or brake pedals) or vehicle's directional displacement (e.g., when the vehicle user moves vehicle steering wheel in right or left direction). For example, as shown inFIG.5A, the displacement offset508may be created when the vehicle user starts to swerve the vehicle102.

In some aspects, the system processor204may calculate displacement offsets at a predefined frequency, e.g., every 50 ms or 100 ms, as the vehicle user drives the vehicle102from the source location302to the destination location304. For example, the system processor204may determine vehicle's estimated positions every 100 ms and compare the vehicle's estimated positions with vehicle's actual positions. Based on the comparison, the system processor204may calculate displacement offsets every 100 ms. An example of calculated displacement offsets is shown inFIG.5B.

Specifically,FIG.5Bdepicts a graph510illustrating an accumulated displacement offset512(in Y-axis), in accordance with the present disclosure. Specifically, the graph510depicts the accumulated displacement offset512(measured in meters) over a time interval (in X-axis) of 2 seconds. The system processor204may calculate displacement offsets every 100 ms and add displacement offsets over a time period of 2 seconds and calculate an accumulated or cumulative displacement offset512, as shown inFIG.5B. For example, in the graph510, the accumulated displacement offset512is shown as approximately 1.3 meters over the time period of 2 seconds.

A person ordinarily skilled in the art may appreciate that the time interval of 2 seconds, as shown inFIG.5B, is used as an example to illustrate the graph510. The time interval of 2 seconds should not be construed as limiting the present disclosure scope. In alternative aspects, the accumulated displacement offset may be calculated over longer (or shorter) time periods, e.g., 5 seconds, 10 seconds, etc.

In some aspects, the accumulated displacement offset512over a predefined time interval (e.g., 2 seconds) may be associated with a user driving index of the vehicle user. The system processor204may calculate the accumulated displacement offset512regularly, at a predefined frequency (e.g., every 2 seconds or 5 seconds or 10 seconds), as the vehicle user drives the vehicle102from the source location302to the destination location304. The system processor204may determine the user's driving index by mapping the accumulated displacement offset512to a predefined scale of user driving indexes, which may range from 0 to 10. For example, an accumulated displacement offset of 0.5 meters may have a mapped user driving index of 1, an accumulated displacement offset of 1.5 meters may have a mapped user driving index of 4, and an accumulated displacement offset of 4.5 meters may have a mapped user driving index of 7. In some aspects, the mapping of accumulated displacement offsets with user driving indexes may be pre-stored in the system memory206, and the system processor204may fetch the mapping from the system memory206and determine the user drying index of the vehicle user based on the calculated accumulated displacement offset512.

In additional aspects, the system processor204may update the user's driving index (that may be calculated regularly at the predefined frequency), by averaging the calculated past/historical accumulated displacement offsets. In some aspects, the system processor204may update the user's driving index by performing moving average analysis, posterior probability analysis (e.g., by using Bayes' theorem), etc., for the calculated past accumulated displacement offsets.

In some aspects, the user driving index may indicate a vehicle user's driving behavior. For example, a high user driving index may denote a high accumulated displacement offset512, which in turn may indicate that the vehicle user has deviated substantially from the vehicle's estimated positions. In an exemplary aspect, an accumulated displacement offset of 0.5 m over a 2-second time interval may denote a low user driving index (e.g., a user driving index of 1), indicating acceptable driving behavior. Further, an accumulated displacement offset of 4 or 7 m may denote average or high user driving index (e.g., user driving indexes of 7 or more), respectively.

Responsive to calculating the accumulated displacement offset512/user's driving index, the system processor204may send the user's driving index to the user database218for storage purpose.

Furthermore, responsive to calculating the zone indexes for each geographical zone306and the user's driving index as described above, the system processor204may execute instructions stored in the driver assistance index module214and calculate a driver assistance index for each geographical zone306. Specifically, the system processor204may correlate or fuse the calculated zone indexes for each geographical zone306with the user's driving index and then calculate the driver assistance index for each geographical zone306. For example, the system processor204may assign weights to the zone indexes and the user's driving index, when the system processor204performs the correlation. Further, the system processor204may calculate a weighted (or linear sum) of the zone index for each geographical zone306and the user's driving index, and calculate the driver assistance index for each geographical zone306.

In some aspects, the system processor204may normalize the calculated driver assistance index on a scale of 0 to 10, when the system processor204calculates the weighted (or linear sum) of the zone index for each geographical zone306and the user's driving index.

In an exemplary aspect, a high zone index for a particular zone, summed with a high user's driving index, may result in a high driver assistance index for the particular zone. For example, a zone index of 8 summed with a user driving index of 7 may result in a high driver assistance index, which may be, for example, 7.5 (i.e., a linear average of the user driving index and the zone index). As another example, a zone index of 8 summed with a user driving index of 1 may result in a medium driving assistance index (e.g.,4.5, if the system processor204calculates a linear average of the zone index and the user driving index). The latter example illustrates that if the vehicle driver is driving the vehicle102cautiously (i.e., with less accumulated displacement offset), the driver assistance index may be medium, even if the vehicle user drives through a geographical zone with a high zone index. Similarly, a zone index of 5 summed with a user driving index of 1 may result in a low driving assistance index (e.g., 3, if the system processor204calculates a linear average of the zone index and the user driving index).

A person ordinarily skilled in the art may appreciate that although the example above mentions a linear average (and hence a linear sum) of the zone index and the user driving index, the system processor204may perform similar calculations for weighted sum of the zone index and the user driving index, and normalize the weighted sum on a scale of 0 to 10 to calculate the driving assistance index.

In some aspects, a high driver assistance index may indicate that the vehicle user may need a higher level of additional driving assistance in the particular zone. Similarly, a low zone index for a particular zone, summed with a low or an average user's driving index, may result in a low or an average driver assistance index for the particular zone. A low or an average driver assistance index may indicate that the vehicle user may need low or minimal additional driving assistance in the particular zone.

The system processor204may calculate the driver assistance index for each geographical zone306in the geographical area300, in the manner described above. Responsive to calculating the driver assistance indexes for the geographical zones306, the system processor204may send the calculated driver assistance indexes to the system road information database220for storage purpose.

A person ordinarily skilled in the art may appreciate that since the zone indexes of each geographical zone306may be different for different times of the day, the calculated driver assistance indexes for each geographical zone306may also be different for the different times. Therefore, the system road information database220may store different driver assistance indexes for each geographical zone306corresponding to different time intervals.

Responsive to calculating driver assistance index(es) for each geographical zone306, the system processor204may execute instructions stored in the control action module216and perform one or more control actions, when the calculated driver assistance index for a particular geographical zone306exceeds a predefined threshold. For example, if the calculated driver assistance index for the geographical zone306ais higher than the predefined threshold (e.g., at a specific time of the day), the system processor204may perform one or more control actions when the vehicle102passes through or approaches the geographical zone306a(e.g., at the specific time).

In some aspects, the one or more control actions may include generation of an alert notification that may be transmitted to the vehicle HMI (or the user device coupled to the vehicle102), which may inform the vehicle user that the vehicle user may be entering a zone with a high driver assistance index. For example, the system processor204may generate an alert notification and may transmit, via the system transceiver202, the alert notification to the vehicle transceiver120(or the user device), when the vehicle102passes through or approaches the geographical zone306a. Responsive to receiving the alert notification, the system transceiver202may send the alert notification to the vehicle HMI, which may output (visually or audibly) the alert notification. In some aspects, the alert notification may indicate to the vehicle user that the vehicle user should be cautious while driving the vehicle102through the geographical zone306a. In an exemplary aspect, the system processor204may generate the alert notification when the vehicle102is a manually operated/driven vehicle or when the vehicle user is driving the vehicle102.

In some aspects, the system processor204may adjust the alert notification based on the driver assistance index. For example, the system processor204may adjust audio intensity and/or notification content, based on whether the driver assistance index is low, average or high.

In further aspects, the one or more control actions may include automatic adjustment of vehicle settings/parameters, when the vehicle102is configured to operate in one or more partial autonomy modes (e.g., when the vehicle102is Level 1 to 4 AV). Specifically, the system processor204may automatically adjust one or more vehicle settings, e.g., via the DAT controller116, when the vehicle102is a Level 1 to 4 AV and when the vehicle102passes through or approaches the geographical zone306a. For example, the system processor204may transmit, via the system transceiver202, instructions to the DAT controller116and automatically adjust vehicle distance gap setting (e.g., increase vehicle distance gap setting between the vehicle102and other vehicles/walkers) in adaptive cruise control, when the vehicle102passes through or approaches the geographical zone306a. As another example, the system processor204may increase vehicle's displacement from pedestrian walkways, when the vehicle102passes through the geographical zone306a.

The system processor204may cause the vehicle settings/parameters to change or revert to an original state, when the vehicle102enters a geographical zone with a driver assistance index lower than the geographical zone306adriver assistance index. For example, the system processor204may lower the vehicle distance gap setting in adaptive cruise control and/or the vehicle's displacement from pedestrian walkways, when the vehicle102enters a geographical zone with a low driver assistance index.

In further aspects, the one or more control actions may include recommendation of an alternative route (e.g., a second route between the source location302and the destination location304) for the user trip to the vehicle user. Specifically, the system processor204may execute instructions stored in the navigation module208and determine an alternative route for the user trip between the source location302and the destination location304. In some aspects, the alternative route may include no or lesser number of geographical zones with high driver assistance indexes (e.g., higher than the predefined threshold) than the first route that the vehicle user may be following for the user trip.

In additional aspects, the system processor204may transmit, via the system transceiver202, a request to the navigation server and fetch real-time traffic information from the navigation server. The system processor204may determine the alternative route for the user trip based on the real-time traffic information and the driver assistance indexes of each geographical zone306. In this case, the alternative route may include those geographical zones that may have less traffic (e.g., less than a predefined traffic threshold) and have corresponding driver assistance indexes less than the predefined threshold.

Responsive to determining the alternative route, the system processor204may recommend the alternative route to the vehicle user. In some aspects, the system processor204may recommend the alternative route by displaying the alternative route on a geographical area300map (e.g., as shown inFIG.3) on the vehicle HMI or the user device. Specifically, the system processor204may transmit, via the system transceiver202, the geographical area300map (as shown inFIG.3) to the vehicle HMI or the user device, which may enable the vehicle user to view the recommended alternative route. In some aspects, the transmitted geographical area300map may include the recommended alternative route augmented on the map. In additional aspects, the system processor204may provide navigation instructions for the recommended alternative route that may be displayed (or output as audible instructions) on the vehicle HMI.

In additional aspects, the system processor204may recommend alternative routes to a plurality of vehicles based on the driver assistance indexes for the geographical zones306, in the manner described above, and may thus assist in management of a vehicle fleet.

Although the description above describes three control action examples for the vehicle102that the system processor204may perform (based on the calculated driver assistance indexes for each geographical zone306), a person ordinarily skilled in the art may appreciate that the system processor204may perform additional vehicle control actions as well, without departing from the present disclosure scope. The examples described above should not be construed as limiting the present disclosure scope.

FIG.6depicts a flow diagram of an example vehicle driving assistance method600, in accordance with the present disclosure.FIG.6may be described with continued reference to prior figures. The following process is exemplary and not confined to the steps described hereafter. Moreover, alternative embodiments may include more or less steps that are shown or described herein and may include these steps in a different order than the order described in the following example embodiments.

Referring toFIG.6, at step602, the method600may commence. At step604, the method600may include obtaining, by the system processor204, a first input associated with the source location and the destination location for the user trip. As described above, the system processor204may obtain the user's trip source and destination locations from the vehicle HMI, the vehicle navigation system or the user device. At step606, the method600may include obtaining, by the system processor204, a second input associated with the user driving information. As described above, the system processor204may obtain the user driving information, i.e., the vehicle GNSS position and the vehicle telemetry information, from the vehicle102.

At step608, the method600may include obtaining, by the system processor204, a third input associated with the road information for the plurality of geographical zones306between the source location and the destination location. The system processor204may receive the road information from the road information database106. Further, as described above, the road information may include, for each geographical zone, the count of historical adverse instances in the first predefined time interval and the average count of driven vehicles in the second predefined time interval.

Responsive to obtaining the first input, the second input and the third input, the system processor204may calculate the user driving index at step610. As described above, the system processor204may calculate the user driving index based on the second input, specifically based on the obtained vehicle GNSS position and the vehicle telemetry information. The detailed process of calculating the user driving index is described above in conjunction withFIG.2.

At step612, the method600may include calculating, by the system processor204, the zone index for each geographical zone306based on the third input (i.e., the road information for each geographical zone306). As described above, the system processor204may calculate the zone index for the geographical zone306based on the ratio of the count of historical adverse instances (over the first predefined time interval) and the average count of driven vehicles (over the second predefined time interval) in the geographical zone306. Specifically, the system processor204may calculate a log of the ratio and then map the log to a predefined scale of zone indexes, which may range from 0 to 10, to determine the zone index for the geographical zone306. The process of determining the zone index is described above in conjunction withFIG.2.

At step614, the method600may include correlating, by the system processor204, the calculated user driving index and the zone index. At step616, the method600may include calculating, by the system processor204, the driver assistance index for each geographical zone306based on the correlation. As described above, the system processor204may calculate a weighted or linear sum of the zone index for each geographical zone306and the user's driving index, and calculate the driver assistance index for each geographical zone306. In some aspects, the system processor204may normalize the weighted or linear sum of the zone index for each geographical zone306and the user's driving index on a scale of 0 to 10, to calculate the driver assistance index, as described above.

At step618, the method600may include performing, by the system processor204, a control action when the driver assistance index is greater than the predetermined threshold. Examples of control actions are already described above in conjunction withFIG.2.

At step620, the method600may include determining, by the system processor204, whether the user trip has ended. In some aspects, the system processor204may determine whether the user trip has ended by determining whether the vehicle is in motion. In particular, the system processor204may determine whether the vehicle is in motion based on the vehicle GNSS position and/or the vehicle telemetry information (e.g., the vehicle speed and heading) received from the vehicle102(specifically, the vehicle transceiver120). For example, the system processor204may determine that the vehicle102may not be in motion when the vehicle102reaches the destination location, as determined from the vehicle GNSS position, and/or the vehicle speed is zero. In other aspects, the system processor204may determine that the vehicle102may be in motion when the vehicle speed is not zero.

Responsive to determining that the user trip has ended at the step620, the method600may return to step606. Stated another way, the system processor204may perform the steps606,608,610,612,614,616and618iteratively, till the user trip ends.

Responsive to determining that the user trip has ended at the step620, the method600may stop at step622.

In the above disclosure, reference has been made to the accompanying drawings, which form a part hereof, which illustrate specific implementations in which the present disclosure may be practiced. It is understood that other implementations may be utilized, and structural changes may be made without departing from the scope of the present disclosure. References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a feature, structure, or characteristic is described in connection with an embodiment, one skilled in the art will recognize such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

Further, where appropriate, the functions described herein can be performed in one or more of hardware, software, firmware, digital components, or analog components. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein. Certain terms are used throughout the description and claims refer to particular system components. As one skilled in the art will appreciate, components may be referred to by different names. This document does not intend to distinguish between components that differ in name, but not function.

It should also be understood that the word “example” as used herein is intended to be non-exclusionary and non-limiting in nature. More particularly, the word “example” as used herein indicates one among several examples, and it should be understood that no undue emphasis or preference is being directed to the particular example being described.

A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Computing devices may include computer-executable instructions, where the instructions may be executable by one or more computing devices such as those listed above and stored on a computer-readable medium.

With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating various embodiments and should in no way be construed so as to limit the claims.

Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation.

All terms used in the claims are intended to be given their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary is made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary. Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments could include, while other embodiments may not include, certain features, elements, and/or steps. Thus, such conditional language is not generally intended to imply that features, elements, and/or steps are in any way required for one or more embodiments.