Patent Description:
Road safety is an important concern for many cities across the world, some of which have shown, or are showing, an increased commitment to reducing the number of road-related accidents and injuries. However, some cities may not have adequate resources to address safety concerns at every location within their cities. In particular, it may be difficult for some cities to identify the areas of higher risk to traffic accidents (for example, so as to reduce the risk of future accidents in that location). Reducing death and serious injury on roads remains both difficult to achieve and a high priority for many areas. <CIT> discloses vehicular traffic alerts for avoidance of abnormal traffic conditions.

Identifying the areas in a city of high accident risk may be beneficial towards reducing the number of injuries and fatalities in that city. Some of examples of the disclosure presented herein relate to monitoring a performance parameter of a vehicle in a given location, and, when it is determined that the performance parameter is greater than, or less than, an acceptable threshold, an alert may be issued to give warning that an accident is likely. Consequentially, the alert may indicate that the given location is more susceptible to accidents.

A controller is defined by claim <NUM>. The controller is configured to receive data relating to a first performance parameter of a first vehicle at a given location to determine a driving behaviour of the first vehicle, and data relating to a second performance parameter of a second vehicle at the given location to determine a driving behaviour of the second vehicle. The controller is also configured to receive data relating to a geography at the given location. If the controller determines that the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within a predetermined first threshold, and the controller determines that the geography at the given location increases the risk of accident, then the controller is configured to issue an alert.

In this way, the behaviour of two drivers is monitored at a given location (for example approaching an intersection). If the two drivers are behaving similarly then geographical data are examined to determine whether there is a probable cause of the similar driver behaviour. For example, an obstacle in the local geography of the location may indicate a potential accident risk. Alternatively, if there is nothing in the road geography that would suggest an accident then it may be concluded that the two drivers' similar behaviour is isolated and/or coincidental and an alert may not be issued in this case. In this latter example, this data may indicate that the two vehicles are driving normally (albeit similarly) through a safe location.

For geographical data this may comprise road layout information (e.g. whether there are any kerbs, signage, markings, etc.) and/or information on the wider environment (including trees, buildings etc.) and/or broader location information (including gradients, sight lines, orientation to sun, road lighting) etc. Whereas a normal flow of traffic at a given time may provide an explanation for the driver behaviour that may be temporary for example due to a broken down vehicle, geographical data may provide a "local" and more permanent reason for the driver behaviour, such as poor sight lines, lighting, or sun exposure etc.).

The controller may be configured to receive data relating to accidents that have occurred within a predetermined threshold (e.g. a second threshold) of the given location. The controller may be configured to determine whether an accident has occurred within the predetermined (second) threshold. In these examples, the threshold may be a distance, for example a radius from the given location (or a centre thereof). In this example the data may relate to all accidents that have occurred within a predetermined radius of the given location. In another example the threshold may be a temporal threshold. In this example the data may relate to all accidents that have occurred within a maximum travel time (e.g. <NUM> mins away at the local speed limit(s)) from the given location. In these examples, the controller is configured to take into account whether there have been any known accidents in the area and to issue an alert on this basis. In these examples, the accident data may allow an understanding of where, when, and/or under what conditions accidents have occurred in the past which can aid in an understanding of where they are likely to occur in the future.

Accordingly, the accident data may comprise metadata describing the position (e.g. by GPS coordinates) and the time, date etc. of the accident that has occurred.

The controller may be configured to issue the alert to at least one of: a local authority, a fleet manager (e.g. of the first and/or second vehicle), a driver of a vehicle (e.g. the first and/or second vehicle).

The controller may be configured to issue the alert based on whether an accident has occurred within the predetermined threshold. For example, if the controller determines that an accident has not occurred within the predetermined threshold then the controller may be configured to issue the alert. In this example, the alert may be issued to a local authority as this may represent the instance where a local authority is unaware of the given location being a potential accident hotspot (as there is no historical accident data associated with that location) and so the alert essentially flags to the local authority that the given location should be investigated. Alternatively, if the controller determines that an accident has occurred within the predetermined threshold then the controller is configured to issue the alert. In this example, the alert may be issued to a driver (e.g. a driver of the first and/or the second vehicle) as this may represent the first and/or second drivers heading towards a potentially dangerous location.

The alert may comprise metadata describing the accident that has occurred within the predetermined threshold. This may allow the driver and/or local authority to make an informed decision as to whether to further investigate the given location etc..

At least one (or both) of the first and second performance parameters comprises brake pedal pressure or rate of change of steering wheel angle. In other words, at least one of these parameters may be monitored to determine the first and second driving behaviours of the first and second vehicles. In one example the parameters may be the same, for example rate of change of steering wheel angle may be monitored for both vehicles and it may be determined form this parameter that both vehicles are swerving (and therefore may be swerving to avoid a potential cause of accident). In another example the parameters may be different, for example the rate of change of steering wheel angle of the first vehicle may be monitored and the brake pedal pressure of the second vehicle may be monitored. The rate of change of steering wheel angle may indicate that the first vehicle is swerving and the brake pedal pressure may indicate that the second vehicle is braking harshly (and therefore may be indicating that both drivers are behaving to avoid a potential cause of accident). The controller may therefore comprise a vehicle sensor (e.g. a sensor configured to sense a vehicle parameter) of may be configured to receive data from a vehicle sensor.

Therefore, in some examples, to determine whether the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within the predetermined threshold, the controller may be configured to compute a measure of difference between the first and second performance parameters and to determine that the first and second driving behaviours are the same, or similar within the predetermined threshold, if the measure of difference is zero, or less than a predetermined threshold (e.g. a third threshold). For example, the accelerator pedal rate of change of input of each vehicle may be monitored and determined and a measure of difference of this parameter for each vehicle may be determined. If this measure of difference is less than the predetermined (third) threshold then it may be determined that the driving behaviour is the same. In these examples it may also be determined whether the first and second parameters fall below, or exceed, a predetermined threshold.

In other examples, to determine whether the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within the predetermined threshold, the controller may be configured to compute a measure of difference between the first performance parameter and a predetermined threshold (e.g. a fourth threshold), and to compute a measure of difference between the second performance parameter and a predetermined threshold (e.g. a fifth threshold), and the determination that the first and second driving behaviours are the same, or similar within the predetermined threshold, is based on each measure of difference. In this example the two performance parameters may be different, and it may be determined that the driving behaviours are the same or similar when the first performance parameter falls below a predetermined acceptable threshold and the second performance parameter exceeds a predetermined acceptable threshold. In another example, the two performance parameters may be different and it may be determined that the driving behaviours are the same or similar when the both performance parameters fall below, or exceed, a predetermined acceptable threshold.

To compute a measure of difference, the controller may be configured to determine the difference between the value of the first and second performance parameters.

According to some examples herein, however not according to the claimed invention, the controller is configured to receive data relating to the flow of traffic and to determine whether the flow of traffic departs from a normal traffic flow. The controller may be configured to receive data describing a normal traffic flow through the given location. The controller may be configured to determine a normal traffic flow through the given location. The controller may be configured to receive data (e.g. data relating to a flow of traffic at the given location) from a smart device (e.g. from a smart camera or smartphone).

The controller may be configured to determine a measure of difference between the flow of traffic and the normal flow of traffic and the controller is to determine that the flow of traffic departs from the normal flow of traffic when the measure of difference is above a predetermined threshold (e.g. a sixth predetermined threshold). In this way, a departure from the normal traffic flow is determined when the (current) flow of traffic is sufficiently different from a normal traffic flow. The normal traffic flow may represent an average traffic flow, e.g. over an historical time interval.

The data relating to the flow of traffic at the given location comprises a virtual representation of the given location, the virtual representation comprising a plurality of virtual traffic paths, each virtual traffic path representing the historical movement of a vehicle through the given location. The normal traffic flow may comprise an average flow path, e.g. over a historical time interval. The controller may be configured to average at least a portion of the plurality of virtual traffic flow paths to determine a normal traffic flow through the given location being the average of the virtual traffic flow paths. In this way, the traffic flow may be visualised as a road network comprising a number of paths in a virtual location, with each path representing the real-time flow of traffic through the given location corresponding to the virtual location.

The virtual representation may comprise a <NUM>-dimensional grid and wherein the virtual traffic paths are lines on the <NUM>-dimensional grid. In this way, the virtual representation may comprise a <NUM>-d visualisation of traffic flow through the given location, e.g. represented in terms of a top, plan, or birds-eye view looking down on the given location, with each flow path being represented by a curve in <NUM>-d space. In other examples, the virtual representation may comprise a <NUM>-dimensional grid, or volume. This may be suited for examples where the vehicle comprises a marine vessel, or an aircraft, etc. In these examples, the virtual representation may comprise a <NUM>-d visualisation of traffic flow through a <NUM>-dimensional volume (corresponding to the given location). In some examples, the <NUM>-d visualisation may be viewable in a virtual environment (e.g. via a virtual reality headset). Accordingly, the controller may be configured to receive the traffic flow data form at least one remotely mounted smart camera. For example, a remotely mounted smart camera may use image recognition software and/or machine learning to identify and classify objects (e.g. pedestrian, car, cycle, van, etc.) and may construct, e.g. through image analysis, the virtual representation being a reconstruction of the area of road space at the given location comprising the temporal and geospatial movement and behaviour of certain objects (e.g. car, pedestrian, etc.) through the area of road space. This data may be sent to the controller and the controller may be configured to determine normal traffic flow. Alternatively, the smart camera may determine a normal traffic flow and send this data to the controller.

The data relating to a geography at the given location comprises data describing an obstacle within a predetermined distance of the given location. For example, the predetermined distance may comprise a predetermined radius from the given location (e.g. a centre thereof). The data may therefore describe an obstacle (for example, a plurality of obstacles) that are within a predetermined radius of the given location (e.g. a centre thereof). The obstacle may comprise at least one of: a parked vehicle, roadworks, a sign, a tree, a building, a kerb, a road marking, a road gradient, a sight line, a position of the sun, lighting on the road, dustbin, bollard, lamppost, or bush etc..

The controller is configured to determine that the geography at the given location increases the risk of accident if there is an obstacle within the predetermined distance (or radius) of the given location. For example, if it is determined that a street sign and/or tree is within the predetermined distance, which may be configured so as to be proximate the first and/or second vehicles, then it may be determined that the street sign and/or tree may pose a risk of accident. The controller may be configured to receive data (e.g. data relating to a flow of traffic at the given location from a smart device (e.g. from a smart camera or smartphone).

Issuing the alert may comprise causing an alarm to sound. In other words, if the controller determines that the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are within the predetermined first threshold and the controller determines that the flow of traffic at the given location departs from a normal traffic flow and/or the geography at the given location increases the risk of accident, then the controller is configured to cause an alarm to sound.

The alarm may comprise an audio alarm, visual alarm and/or sending signal to another entity. For example, the alarm may comprise a warning sound, warning light (e.g. on a dash panel of the vehicle) or sending a signal to another vehicle, e.g. that causes an alarm of that other vehicle to sound.

The alert may comprise metadata describing the deviation from the normal traffic flow and/or how the geography increases the risk of accident (e.g. whether an obstacle is present, the type and/or position of an obstacle etc.).

The controller may be configured to issue the alert to all vehicles within a predetermined threshold (e.g. a seventh threshold, e.g. a predetermined radius) of the given location and/or all vehicles travelling towards the given location. The alert issued to another vehicle may comprise instructions that, when executed by the other vehicle, cause an alarm to sound in the third vehicle. As above, the alarm may comprise an audio and/or a visual alarm (e.g. a warning sound or light).

The controller may be configured to issue an alert to a third vehicle, and the alert may comprise machine-readable instructions that, when executed by the third vehicle (e.g. a controller and/or processor thereof) cause the third vehicle to drive away from the given location under autonomous control and/or mimic the driving behaviour of at least one of the first and second vehicle. In another example, the controller may be configured to issue an alert to a third vehicle, and the alert may comprise machine-readable instructions that, when executed by the third vehicle (e.g. a controller and/or processor thereof) cause the third vehicle to deviate from the driving behaviour of at least one of the first and second vehicles. In this latter example, the first and second vehicles may be swerving, but the third vehicle (which may comprise a police vehicle) may deviate from this behaviour by stopping (e.g. to divert traffic).

The controller may be configured to issue an alert to a vehicle route guidance system, and the alert may comprise machine-readable instructions that, when executed by the route guidance system, cause the route guidance system to recalculate a route to a target destination that avoids the given location.

According to one example, there may be provided a vehicle comprising the controller as described above. In this example, the controller is provided on a vehicle and is capable of issuing an alert (or warning) to the driver of the vehicle and/or to a location remote from the vehicle (such as a local authority). In other examples, the controller may be provided remote from a vehicle, for example may be provided proximate an area of road. The vehicle (comprising the controller) may be the first vehicle and/or the second vehicle. In these examples, the controller may be configured to monitor the performance parameter of the vehicle at, on, or in which it is disposed and one other vehicle.

The method may comprise receiving data relating to accidents that have occurred within a predetermined threshold of the given location (e.g. a predetermined second threshold). The method may comprise determining whether an accident has occurred within the predetermined threshold.

The alert may be issued based on whether an accident has occurred within the predetermined threshold. If it is determined that an accident has not occurred within the predetermined threshold then the method may comprise issuing the alert. If it is determined that an accident has occurred within the predetermined threshold then the method may comprise issuing the alert. The alert may comprise metadata describing the accident that has occurred within the predetermined threshold.

At least one, or both, of the first and second performance parameters may comprise brake pedal pressure or rate of change of steering wheel angle.

Determining whether the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within the predetermined threshold, may comprise computing a measure of difference between the first and second performance parameters, and determining that the first and second driving behaviours are the same, or similar within the predetermined threshold, may comprise determining that the measure of difference is zero, or less than a predetermined threshold (e.g. a predetermined third threshold).

Determining whether the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within the predetermined threshold, may comprise computing a measure of difference between the first performance parameter and a predetermined threshold (e.g. a fourth threshold), and computing a measure of difference between the second performance parameter and a predetermined threshold (e.g. a fifth threshold), and determining that the first and second driving behaviours are the same, or similar within the predetermined threshold, may be based on each measure of difference. Computing the measure of difference may comprise determining the difference between the value of the first and second performance parameters.

The method may comprise, not according to the claimed invention, receiving data describing a normal traffic flow through the given location. The method may comprise determining a normal traffic flow through the given location. The method may comprise determining a measure of difference between the flow of traffic and the normal flow of traffic, and determine that the flow of traffic departs from the normal flow of traffic when the measure of difference is above a predetermined threshold (e.g. a predetermined sixth threshold).

The data relating to the flow of traffic at the given location may comprise a virtual representation of the given location, the virtual representation comprising a plurality of virtual traffic paths, each virtual traffic path representing the historical movement of a vehicle through the given location. The virtual representation may comprise a <NUM>-dimensional grid and wherein the virtual traffic paths are lines on the <NUM>-dimensional grid.

The method may comprise averaging at least a portion of the plurality of virtual traffic flow paths to determine a normal traffic flow through the given location being the average of the virtual traffic flow paths.

The data relating to a geography at the given location comprises data describing an obstacle within a predetermined distance of the given location.

The method comprises determining that the geography at the given location increases the risk of accident if there is an obstacle within the predetermined distance of the given location. The obstacle may comprise at least one of: a parked vehicle, roadworks, a sign, a tree, a building, a kerb, a road marking, a road gradient, a sight line, a position of the sun, lighting on the road, dustbin, bollard, lamppost, or bush etc..

Receiving data (e.g. data relating to a flow of traffic at the given location and/or a geography at the given location) may comprise receiving data from a smart device (e.g. from a smart camera or smartphone).

Issuing the alert may comprise issuing the alert to at least one of: a local authority, a fleet manager (e.g. of the first and/or second vehicle), a driver of a vehicle (e.g. the first and/or second vehicle). Issuing the alert may comprise causing an alarm to sound.

Issuing the alert may comprise issuing the alert to all vehicles within a predetermined threshold (e.g. a seventh predetermined threshold, e.g. a predetermined radius) of the given location and/or all vehicles travelling towards the given location.

Issuing the alert may comprise issuing an alert to a third vehicle, and wherein the alert comprises machine-readable instructions that, when executed by the third vehicle (e.g. a controller and/or processor thereof) cause the third vehicle to drive away from the given location under autonomous control and/or mimic (or, in other examples, deviate) the driving behaviour of at least one of the first and second vehicle.

Issuing the alert may comprise issuing the alert to a vehicle route guidance system, and wherein the alert comprises machine-readable instructions that, when executed by the route guidance system, cause the route guidance system to recalculate a route to a target destination that avoids the given location.

A non-transitory machine-readable medium is defined by claim <NUM>.

For a better understanding of the present disclosure, and to illustrate how it may be put into effect, examples will now be described with reference to the accompanying drawings in which:.

The present disclosure relates to a controller for a vehicle, such as a motor vehicle (e.g. car, van, truck, motorcycle etc.), industrial or agricultural vehicles (e.g. tractor, forklift, bulldozer, excavator etc), marine vessel, aircraft or any other type of vehicle.

<FIG> shows an example method <NUM>. The method <NUM> may be a method for assessing the road safety risk at a given location. The method <NUM> may be a method of determining a risk factor at a given location. More generally, the method <NUM> may be a method of determining road safety.

At block <NUM>, the method <NUM> comprises selecting a first location from a set of locations. Block <NUM>, in some examples, may comprise a user manually selecting a location, for example a location in a city selected from a city map or user directory. In other examples, block <NUM> may be performed automatically, e.g. by a processor, a location from the set of locations based on at least one criteria to be explained with reference to another example below.

At block <NUM>, the method <NUM> comprises analysing, by a processor, data collected from a first vehicle located within a first distance of the first location. The data may, in some examples, be streamed from the vehicle. In one example, the vehicle may transmit data to a remote storage device, such as a cloud device, and the stored data may be received by a device comprising the processor for analysis. In other examples, a device on or in the vehicle itself, such as a plug-in device, may transmit data to another location, such as a server device (e.g. via a cellular network). In one example, a "plug-in device" on the vehicle or embedded modem may constantly monitor a controller area network (CAN) device of the vehicle to collect the required data from the CAN device (such as a bus) and transmit at least a part of the data to another location for analysis, e.g. via a cellular network.

At block <NUM>, the method <NUM> comprises generating values representative of respective performance parameters of the first vehicle. For example, block <NUM> may comprise generating a first value representative of a first performance parameter of the first vehicle and generating a second value representative of a second performance value of the first vehicle. The performance parameters may be at least one of: the brake pedal pressure of the first vehicle, the speed of the first vehicle, the speed of the first vehicle engine, the steering wheel angle of the first vehicle, the rate of change of steering wheel angle of the first vehicle, the accelerator pressure of the first vehicle, the state of at least one indicator of the first vehicle, the gear of the first vehicle, and the first vehicle type.

Therefore, block <NUM> may comprise generating values representative of the behaviour of the vehicle, for example how the vehicle is being operated. As will explained below, in subsequent steps, these may be assessed to determine if the vehicle is being operated "at-risk" and therefore may be used to determine a risk of accident at the first location.

At block <NUM>, the method <NUM> comprises comparing at least one value with a first threshold; and at block <NUM>, it is determined whether this value is greater than (in some example, less than) the first threshold. If it is determined at block <NUM> that the first value is greater than or less than the first threshold then the method <NUM> proceeds to block <NUM> at which an alert is issued, e.g. a safety alert.

For example, at block <NUM> the method <NUM> may comprise generating a value representative of the brake pedal pressure of the first vehicle. At block <NUM> this value may be compared with a threshold brake pedal pressure which may indicate a minimum brake pedal pressure which should be applied for the vehicle to be considered to be operated safely. Accordingly, at block <NUM> if it is determined that the brake pedal pressure value is less than the threshold an alert may be issued at block <NUM> which may indicate that the vehicle is being operated at risk (e.g. to other vehicles or pedestrians) or that there is a heightened risk of accident. For example, the first location may represent a roundabout or a corner or T-intersection and so a minimal amount of brake pressure may be expected to be applied by a user of the vehicle so as to decelerate the vehicle to a speed appropriate for entering the roundabout or for taking corners, etc. Accordingly, the applied brake pedal pressure being below the minimum threshold (as determined at block <NUM>) at the first location may cause the alert to be issued at block <NUM> as this may, in this example, indicate that the vehicle is heading toward the first location too fast.

Alternatively, the brake pedal threshold may be a maximum threshold as higher braking pressure than expected may suggest that the driver is emergency braking, and this may cause the alert to be issued at block <NUM>.

By way of another example, at block <NUM> the method <NUM> may comprise generating a value representative of the gear of the first vehicle. At block <NUM> this value may be compared to a threshold gear number which may indicate a minimum gear, or a maximum gear, at which the vehicle would be considered to be operated safely. For example, if the first location were on, and in the middle of, a freeway then the threshold gear may be fourth of fifth, indicating a minimum range of speeds that are considered safe. If the vehicle's gear were below this threshold then this may indicate that the vehicle is being operated at too low a gear (and therefore too slowly) for its location (the first location being on a freeway where the speed limit may be comparatively high). Alternatively, the first location could be at, or near, a school zone and the threshold gear may be, for example, third gear, and if the operated gear is above this threshold then this may indicate that the vehicle's speed is too fast for the school zone. In each of these examples, an alert may be issued to alert someone (for example, the driver or a remote party) of the risk.

By way of a further example, if the value is representative of the vehicle speed then the threshold may be a maximum threshold (such as the local speed limit at the first location). When the vehicle speed value is above this threshold then it is determined that the vehicle is being operated above the local speed limit and hence the alert is issued at block <NUM>.

Hence, the method <NUM>, at block <NUM>, comprises comparing the value to a threshold and issuing an alert when the value is greater (in some examples) or less (in other examples) than the threshold since whether there is a risk may depend on the type of parameter being monitored.

As will now be explained with reference to <FIG>, multiple values may be used, and the alert may be issued when a combination of values is above, or below, the threshold.

<FIG> shows a method <NUM> in which comprises generating a plurality of values, each value of the plurality being representative of a parameter of the first vehicle, and wherein the first value is one of the plurality, then comparing each one of the plurality of values to a respective threshold value. As for the example of <FIG>, depending on whether each one of the values is greater than (in some examples, less than) its respective threshold, an alert may be issued.

The method <NUM> of <FIG> may be a method for assessing the road safety risk at a given location. The method <NUM> may be a method of determining a risk factor at a given location. More generally, the method <NUM> may be a method of determining road safety.

At block <NUM> the method <NUM> comprises selecting a location from a set of locations. As for the method <NUM>, block <NUM>, in some examples, may comprise a user manually selecting a location, for example a location in a city selected from a city map or user directory. In other examples, block <NUM> may be performed automatically, e.g. by a processor, a location from the set of locations based on at least one criteria to be explained with reference to another example below.

At block <NUM> the method <NUM> setting a counter i = <NUM>. In this example, N values are to be generated and so the counter i will count from <NUM> to N. In this example, N values are to be generated with each one of the N values representing a parameter (in one example, a different parameter) of the first vehicle. The parameter(s) may be at least one of: the brake pedal pressure of the first vehicle, the speed of the first vehicle, the speed of the first vehicle engine, the steering wheel angle of the first vehicle, the accelerator pressure of the first vehicle, the state of at least one indicator of the first vehicle, the gear of the first vehicle, and the first vehicle type.

At block <NUM>, the method <NUM> comprises generating a first (the ith) value, this value being representative of a first (ith) parameter of the first vehicle. At block <NUM> this value is compared with a threshold Ti, and at block <NUM> the method comprises determining whether the ith value is greater than, or less than, its respective threshold Ti. If not, the method <NUM> advances to block <NUM> where it ends. As will be appreciated, whether the ith value is greater than or less than its respective threshold may depend on at least one of the first location and the type of value that is being measured (e.g. gear or engine speed, etc.).

If, at block <NUM> it is determined that the ith generated value is greater than, or less than, its respective threshold then the method advances to block <NUM> at which it is determined whether the counter i has reached N. If the counter i has not reached N then the method proceeds to block <NUM> in which the counter is incremented by <NUM> and the method returns back to block <NUM>, and the next value is generated (e.g. a value corresponding to the next parameter). The method <NUM> then comprises performing blocks <NUM> and <NUM> for the subsequent value.

Having generated the required number of values, and if all of those values were determined (at block <NUM>) to be greater than, or less than, their respective thresholds, then the method <NUM>, at block <NUM> comprises issuing an alert. Therefore, the example of <FIG> comprises generating a plurality of values, each representing a parameter, and comparing these values to individual thresholds. An alert is issued if each value is determined to be too low, or too high, relative to their respective threshold. Thus, the example of <FIG> may be used in example situations where an individual measured performance parameter is not enough to make a risk assessment, which is instead one on the basis of two or more parameters. For example, a vehicle being operated at too high a gear (e.g. the determined gear is assessed to be above a maximum gear threshold) may not on its own be enough for one example method to determine that there is a risk, but in combination with, for example, accelerator pedal pressure being above a maximum threshold pressure may indicate that the vehicle is being operated at a high speed with no signs of the driver slowing, and in this example an alert may be issued to alert the driver of the vehicle (or a remote source) of a risk of accident.

Once example of <FIG> (where N=<NUM>, and where each value represents a specific and different parameter) is depicted in <FIG> and will now be described.

<FIG> shows an example method <NUM>, which may be an example of the method <NUM> of <FIG>. At block <NUM> the method <NUM> comprises selecting a location from a set of locations. At block <NUM>, the method <NUM> comprises analysing, by a processor, data collected from a first vehicle located within a first distance of the first location.

At block <NUM> the method comprises generating a brake pedal pressure value and at block <NUM> the method comprises comparing this generated value to a brake pedal pressure threshold. At block <NUM> it is determined whether the generated brake pedal pressure value is lower than a brake pedal pressure threshold and if it is the method proceeds to block <NUM> at which a vehicle speed value is generated. At block <NUM> the generated vehicle speed value is compared to a vehicle speed threshold and, if at block <NUM> it is determined that this value exceeds the vehicle speed threshold then at block <NUM> an engine speed value is generated and, at block <NUM>, is compared to an engine speed threshold. If the engine speed value is greater than the threshold (determined at block <NUM>) then at block <NUM> an alert is issued. The vehicle speed threshold may, for example, be the local speed limit. Therefore, in the example of <FIG> an accident probability, or risk, is determined when the vehicle is being operated at too low a break pressure, with too high a vehicle and engine speed. This may represent the vehicle being operated too fast (e.g. for the first location) with no signs of slowing. An alert may not be issued if, for example, the brake pedal pressure is over a minimum brake pedal pressure threshold as this example may represent the driver attempting to slow the vehicle even though its speed may exceed the local speed limit.

Alternatively, the brake pedal pressure threshold may be a maximum threshold and, at block <NUM>, it may be determined that the brake pedal pressure value is above the threshold and, if it is, the method <NUM> may proceed to block <NUM>.

It will be appreciated that the order in which these steps are depicted in, and described with reference to, <FIG> is for illustrative purposes only.

<FIG> shows an example method <NUM> for selecting a first location from a set of locations. The method <NUM> of <FIG> may be utilised in any of blocks <NUM>, <NUM>, or <NUM> of the example methods of <FIG>, <FIG>, and <FIG>, respectively. Alternatively, the method may be a stand-alone method and may not be used in conjunction with any of the methods of the examples of <FIG>, <FIG>, or <FIG>.

The method <NUM> comprises, at block <NUM>, analysing, by a processor, location data collected from a monitoring service of a computing system, the location data comprising a set of location data points. In one example, the location data comprises a set of location data points within a distance (e.g. a radius) of a vehicle (e.g. the first vehicle).

At block <NUM>, the method <NUM> comprises generating, for each location data point in the location data, a location value representative of a first location parameter of the location data. The first location parameter may be any of, e.g. at least one of, the number of traffic accidents that have occurred at each location data point, the average severity of the traffic accidents that have occurred at that location data point, the traffic data at that location data point, the weather at that location data point, the time of day, the road surface at that location data point.

At block <NUM>, the method <NUM> comprises comparing each location value with a first location threshold to determine the set of location data points that have a location value greater than, or less than, the first location threshold.

At block <NUM>, the method <NUM> comprises selecting one of the location data points that has a location value greater than, or less than, the first location threshold as the first location.

For example, if the location value generated at block <NUM> is representative of the number of traffic accidents, then at block <NUM> this may be compared to a maximum number of traffic accidents, and if it is determined that the value is over this maximum threshold then it may be determined that this location is dangerous, or at risk of accident, and so it may be selected as the first location.

In one example, block <NUM> may comprise generating a plurality of location values, and at block <NUM> each one of the plurality of location values may be compared to a respective threshold. For example, block <NUM> may comprise a value representing the traffic data, and the weather at a given location. If the traffic data, when compared to a traffic data threshold, is above a maximum threshold indicating the presence of heavy traffic and if the weather data is above a weather data threshold indicating bad weather (e.g. heavy rain and/or wind) then this location may be selected as the first location, as this may indicate that this location is susceptible to traffic accidents, due to the traffic and weather thresholds being exceeded.

<FIG> shows a processing apparatus <NUM>. The processing apparatus <NUM> comprises a location module <NUM> configured to select a first location from a set of locations, and a processor <NUM> configured to analyse data collected from a first vehicle located within a first distance of the first location, and an analytics module <NUM> configured to generate a first value representative of a first parameter of the first vehicle, and configured to comparing the first value with a first threshold; and configured to issue an alert depending on whether the first value is greater than (in some examples, less than) the first threshold.

The processing apparatus <NUM> may be configured to perform the method according to any one of the examples of <FIG>.

<FIG> is an example of a tangible (and non-transitory) machine readable medium <NUM> in association with a processor <NUM>. The tangible machine readable medium <NUM> comprises instructions <NUM> which, when executed by the processor <NUM>, cause the processor <NUM> to carry out a plurality of tasks. For examples, the instructions <NUM> may comprise instructions to cause the processor <NUM> to perform the method according to any one of the examples of <FIG>.

<FIG> shows a vehicle <NUM> and a controller <NUM> for the vehicle <NUM>. The controller <NUM> is configured to receive data relating to a first performance parameter of a first vehicle (not shown) at a given location to determine a driving behaviour of the first vehicle, and to receive data relating to a second performance parameter of a second vehicle (not shown) at the given location to determine a driving behaviour of the second vehicle. The controller is further configured to receive data relating to a flow of traffic at the given location and/or a geography at the given location, and, if the controller determines that the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within a predetermined first threshold, and the controller determines that the flow of traffic at the given location departs from a normal traffic flow and/or the geography at the given location increases the risk of accident, then the controller is configured to issue an alert.

In the example of <FIG> the controller <NUM> is remote from the vehicle <NUM> but in other examples the vehicle <NUM> may comprise the controller <NUM>.

<FIG> schematically shows a given location <NUM>. At the given location are a first vehicle <NUM> and second vehicle <NUM>. The given location <NUM> in the <FIG> example comprises a <NUM>-way crossing, or intersection, but it will be understood that this is for purely exemplary purposes to illustrate some of the principles of this disclosure and that other given locations are within the scope of the examples described herein. <FIG> schematically shows a controller <NUM>. The controller <NUM> is for a vehicle which may be the first vehicle <NUM>, the second vehicle <NUM> or a (not shown) other vehicle. The controller <NUM> may comprise the controller <NUM> as described with reference to <FIG>.

Accordingly, the controller <NUM> is configured to receive data relating to a first performance parameter of the first vehicle <NUM> to determine a driving behaviour of the first vehicle <NUM>, and to receive data relating to a second performance parameter of a second vehicle <NUM> at to determine a driving behaviour of the second vehicle <NUM>. The first vehicle <NUM> is moving in the direction of travel indicated by arrow 801a and the second vehicle <NUM> is moving in the direction of travel indicated by arrow 802a. Both vehicles are therefore moving towards the intersection. The performance parameter may comprise at least one of: brake pedal pressure, speed, engine speed, the steering wheel angle, rate of change of input to the accelerator pedal, rate of change of position of the accelerator pedal, rate of change of steering wheel angle, the gear of the vehicle, the temporal and/or geospatial movement of the vehicle, accelerometer data, driver controls, vehicle functional status, vehicle operational status.

These performance parameters may be monitored in order to determine whether the two vehicles <NUM>, <NUM> are behaving similarly in order to look at further data to determine whether there is a cause of the vehicles behaving similarly (in that their drivers are exhibiting similar driving styles). Accordingly, if the first and second driving behaviours are similar it may be determined that the vehicles are behaving similarly and the controller <NUM> may look at traffic flow data and/or geographic data to determine whether there may be a cause of the vehicle's behaviour, which may need to be investigated.

This is schematically shown in <FIG> and <FIG>.

<FIG> shows a location <NUM> which comprises an intersection in which the north-south road is a boulevard, or similar, in that it comprises a nature strip <NUM>, <NUM> between the lanes of the road. In the middle of the intersection is another nature strip <NUM> which has a tree 920a and the nature strips <NUM>, <NUM> between the lanes of the north-south road also comprise trees 921a, 921b, 922a, 922b. The location <NUM> also comprises two stop signs <NUM> and <NUM> which are respectively provided on the corners joining the west-north and south-east roads of the intersection. A building <NUM> is on the corner of the west-south road of the intersection. For the sake of clarity the first and second vehicles are not shown in <FIG>.

A controller <NUM>, which may comprise the controllers <NUM> or <NUM> of the <FIG> examples, is configured to receive data relating to first and second performance parameters of the (not shown) first and second vehicles to determine whether their driving behaviour is the same or similar. The controller is also configured to receive data relating to the geography at the location <NUM>. For example, for the location <NUM> the geographical data received by the controller may include at least one of (and in one example, all of) the position (e.g. spatial arrangement, for example coordinates) of the natures trips <NUM>, <NUM>, <NUM>, trees 920a, 921a, 921b, 922a, 922b, signs <NUM>, <NUM>, and building <NUM> - these may be referred to as "obstacles".

As will be described below, similar driving behaviour of the first and second vehicles may indicate a fault with one of the obstacles and/or that the obstacle needs investigation. For example, similar driving behaviour proximate one of the trees and/or stop signs (e.g. a rate of change of steering wheel angle) may suggest that the drivers of the first and second vehicles are swerving to avoid something, which may indicate that the tree and/or stop sign has fallen and is now blocking or obstructing part of the road. In another example, similar driving behaviour proximate the building <NUM> may suggest that the drivers (e.g. travelling east on the west road) are veering to the north side of the west road so as to check for oncoming traffic on the south road, which may suggest that the building is posing a sight-line, or visibility, problem.

As explained above, the controller is also configured to receive traffic flow data.

<FIG> shows a location <NUM> which comprises an intersection and which may comprise the location <NUM> or <NUM>. For simplicity, only a basic road layout is shown in the location <NUM> of the <FIG> example. It will be appreciated that, over time, there will be movement of vehicles into and through the intersection <NUM>. This may enable the creation of a visual road-map, or virtual representation of the location <NUM> showing the movement of a plurality of vehicles through the location <NUM> by way of lines or paths through a virtual location corresponding to the physical location <NUM>. This is shown in <FIG> as the virtual location <NUM>. The virtual location <NUM> is a virtual representation of the real-world location <NUM> and comprises a plurality of paths <NUM>, with each path <NUM> representing the real-life movement of a vehicle through the location <NUM>, the virtual path <NUM> corresponding to the path the vehicle took in the real world. In this way a <NUM>-dimensional representation of the location <NUM> is produced comprising a number of <NUM>-dimensional lines, or curves, that characterise the traffic flow through the location <NUM> during a real-world time interval. The controller (e.g. the controller of <FIG>, and/or <NUM>, may be configured to receive the data in the same or similar format as shown in <FIG> (e.g. the <NUM>-dimensional representation <NUM>) or may be configured to receive an average traffic flow.

<FIG> shows such an average traffic flow representation <NUM> which may be transmitted to the controller, or alternatively the controller may be configured to determine the average traffic flow. As <FIG> shows, the plurality of traffic flow paths of the representation <NUM> have been averaged to produce an average traffic flow as indicated by the lines <NUM> and this may be interpreted as a "normal" traffic flow through the location <NUM> virtually represented by the representation <NUM>. As stated above, the controller may be configured to receive data in the same or similar format to <NUM>, or may receive data in the same or similar format to the representation <NUM> and may be configured to determine or produce the normal traffic flow <NUM> from the received data. Remotely mounted smart cameras (e.g. mounted at or around the location <NUM>) may monitor the area to determine the traffic flow and produce the representation <NUM> for transmitting to the controller. Alternatively, the controller may be configured to receive data from a remotely mounted smart camera to build the representation <NUM>. The remotely mounted smart cameras may also be configured to produce the representation <NUM> and transmit this to the controller. In another example the remotely mounted smart cameras may transmit data to a remote control unit, the control unit being configured to build the representation <NUM> and/or <NUM> and transmit this to the controller, the controller thereby being configured to receive the traffic flow data from the control unit.

As explained above, similar driving behaviour of the first and second vehicles may indicate that there is a potential cause of accident that needs investigating and for this purposes the controller may examine, not according to the claimed invention, traffic flow data. For example, traffic flow data may indicate that the flow of traffic at the location <NUM> is departing from normal (the normal being indicated by the average traffic flow <NUM>). <FIG>, <FIG> indicate traffic flow data that deviate from the normal traffic flow as indicated in <FIG>.

<FIG> shows unusual traffic data (unusual in the sense that it is different to the normal traffic flow data as indicated by <NUM> in <FIG>) in that each driver appears to be U-turning when approaching, or at, the intersection. The similar behaviour of the first and second vehicles may comprise both vehicles prematurely slowing, or braking, (e.g. by monitoring the parameter of speed and/or brake pedal pressure) when approaching the junction and/or monitoring the rate of change of steering wheel angle may indicate the vehicles turning more sharply than usual (potentially indicating a U-turn). The traffic flow data of <FIG> suggests that drivers are U-turning at or approaching the intersection, suggesting that there is a potential accident risk in the middle of the intersection. In the example where the received traffic flow data comprises the data as in <FIG>, the controller is configured to issue an alert.

<FIG> shows another example of the traffic data deviating from normal. If the first and second vehicles are behaving similarly, as described above, and the received traffic data indicates a traffic flow similar to <FIG>, then this suggests that drivers are avoiding turning left from the south road to the west road, suggesting that there is a potential accident risk on the corner of the south and west roads. In the example where the received traffic flow data comprises the data as in <FIG>, the controller is configured to issue an alert.

<FIG> shows another example of the traffic data deviating from normal. If the first and second vehicles are behaving similarly, as described above, and the received traffic data indicated a traffic flow similar to <FIG>, then this suggests that drivers are avoiding the west road. In the example where the received traffic flow data comprises the data as in <FIG>, the controller is configured to issue an alert.

In another example where the driving behaviour of the first and second vehicles are similar but the traffic flow data indicates a normal flow (e.g. the traffic flow data received is similar to that shown in <FIG>) and/or the road geography indicates that no obstacle is present proximate the first and second vehicles, then no alert may be issued as it may be effectively concluded that there is no risk of accident.

In each example the determination that the traffic flow patterns, e.g. those shown in <FIG>, <FIG>, differ from the normal traffic flow pattern, e.g. that shown in <FIG>, may be done by computing a measure of difference between the flow patterns (of <FIG>) and the normal flow pattern <NUM>. For example the measure of difference may comprise treating the normal flow curve <NUM> as a regression line and computing the residuals between the values of the curve of the traffic flow pattern (e.g. those shown in <FIG>), e.g. at a plurality of points along an axis (e.g. an assigned 'x'-axis being parallel to one of the roads in the virtual road map), and then summing up the absolute value of each residual. The measure of difference may be said to be below a threshold when the sum of the absolute value of each residual is below the threshold. In this way it may be determined that the lower the sum of the absolute value of each residual, the more the traffic flow curve is identical to the normal traffic flow curve <NUM>.

Although the traffic flow, and the traffic flow data, schematically depicted in the examples of <FIG> it is to be understood that this is for exemplary purposes only. It is to be understood that in other examples the virtual representation of traffic flow may comprise a <NUM>-dimensioanl grid, or volume, and the flow paths may comprise <NUM>-dimensional curves in the <NUM>-dimensiaonl volume. Whilst a <NUM>-dimensional representation may be suitable for representing plan view of a road space, in examples when the vehicle comprises an aircraft or marine vessel the <NUM>-dimensional representation may comprise a volume that is a visual representation of the sky, or ocean, with the paths of the vehicles in these examples extending in three dimensions.

Although the controller is configured to issue the alert when the first and second vehicle are behaving similarly and the traffic flow data indicates a departure from normal and/or the geographic data indicates the presence of an obstacle proximate the first and second vehicles, in some examples the controller will not issue an alert. In some examples, the issuance of an alert will depend on historical data relating to whether any accidents have occurred in, around, on, or proximate to the given location.

For example, the controller (e.g. the controller <NUM>, <NUM>, or <NUM>) is configured to receive historical accident-related data to determine whether an accident has occurred at the given location. If an accident has occurred at the given location (as determined by the presence of historical accident data) then, in some examples, the controller may not send an alert as the accident data indicates that the given location being an accident risk is known, e.g. to a local authority.

The controller <NUM>, <NUM>, <NUM> may also be configured to instruct a vehicle (for example a vehicle remote from the controller or a vehicle comprising the controller) approaching the intersection to driver away under autonomous control (e.g. to avoid the potential accident risk), or to instruct a route guidance system to re-program the vehicle's destination to avoid the given location. The controller may be configured to issue an alert comprising instructions which, when executed by a vehicle, cause the vehicle to change its autonomous driving style and/or parameters, and/or to change the route guidance of the vehicle.

This is shown in <FIG>. In <FIG>, a first vehicle <NUM> and a second vehicle <NUM> have exhibited the same driving behaviour due to the presence of an accident risk indicated schematically at <NUM>. Due to either traffic flow data (such as that indicated in Figure 11c) and/or geographic data (such as indicated by the tree 920a in <FIG>), a controller <NUM> (that may comprise the controller <NUM>, <NUM>, <NUM>) issues an alert, comprising the signal <NUM>, to a third vehicle <NUM> approaching the given location <NUM>. At the time of determining the risk of a presence of an accident in the given location <NUM> (indicated schematically by the dotted circle) the first and second vehicles <NUM>, <NUM> were approaching, or were inside of the given location <NUM>, travelling north on the south road, but at the current time frame (snapshotted in the schematic of <FIG>) each driver has taken a course of action in view of the accident risk <NUM>. For example, the driver of vehicle <NUM> has turned left on to the west road and the driver of vehicle <NUM> has U-turned to travel south on the south road. The third vehicle <NUM> has, as its end destination, the point indicated by the star <NUM>. Under normal traffic conditions, the vehicle <NUM> would be able to travel north on the south road, cross the intersection that is at the centre of the given location <NUM>. However, the alert <NUM> being transmitted by the controller <NUM> to the vehicle <NUM> takes into account the driving behaviour of the first and second vehicles <NUM>, <NUM> and that they were exhibiting this driving behaviour in order to avoid an accident at <NUM>, and comprises instructions that, when executed by the vehicle <NUM> (e.g. a processor or controller thereof), cause the vehicle <NUM> to either drive to the end destination <NUM>, under autonomous control, taking a route that avoids the location <NUM>, or cause a route guidance system of the vehicle <NUM> to reprogram its route to the destination <NUM> that avoids the location <NUM>. This new route is indicated by the dotted arrows <NUM>. In this example, in view of the vehicle <NUM> being unable to travel on a usual route to <NUM>, the vehicle <NUM> takes, or a driver of the vehicle <NUM> is instructed to take, the new route <NUM> to the destination <NUM> that avoids the accident-risk location <NUM>.

In another example, the first and/or second vehicles behaviour may be used to instruct the vehicle <NUM>. For example, in <FIG> each of the first and second vehicles have taken a different course of action to avoid the location <NUM> and vehicle <NUM> takes a further different course of action, in turning right before it is at the given location <NUM>. However in another example the vehicle <NUM> may be instructed to mimic, or substantially mimic, the actions taken by the first and/or second vehicles. For example, the vehicle <NUM> (or the driver thereof) may be instructed to enter the intersection but turn left, following vehicle <NUM>, or U-turn, following vehicle <NUM>, to avoid the location <NUM>. In other examples, the vehicle <NUM> may be instructed to deviate from the actions taken by the first and/or second vehicles.

It will be appreciated that where the controller <NUM> is disposed on a vehicle then each of the vehicles <NUM>, <NUM>, <NUM> may comprise its own controller that can effectively build up a network of vehicle-to-vehicle communication where each controller of each vehicle can send a signal that instructs a controller of another vehicle, e.g. in the manner described with reference to <FIG>.

<FIG> shows an example method <NUM> which may be a computer-implemented method. Any one of the controllers <NUM>, <NUM>, <NUM>, and <NUM> may be configured to perform the method <NUM> of <FIG>.

At block <NUM> the method comprises receiving data relating to a first performance parameter of a first vehicle at a given location to determine a driving behaviour of the first vehicle. At block <NUM> the method comprises receiving data relating to a second performance parameter of a second vehicle at the given location to determine a driving behaviour of the second vehicle. Block <NUM> comprises receiving data relating to a flow of traffic at the given location, and block <NUM> comprises receiving data relating to a geography at the given location. As indicated by the doted box, blocks <NUM> and <NUM> may be performed alternatively, or in addition to one another. Block <NUM> comprises determining whether the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within a predetermined first threshold and, if so, blocks <NUM> and <NUM>, respectively comprise determining whether the flow of traffic at the given location departs from a normal traffic flow, and determining whether the geography at the given location increases the risk of accident. The dotted box indicates that blocks <NUM> and <NUM> may be performed alternatively, or in addition to one another. If yes, block <NUM> comprises issuing an alert.

The method <NUM> may comprise receiving data relating to accidents that have occurred within a predetermined threshold of the given location. The method <NUM> may comprise receiving data relating to, or describing, a normal traffic flow through the given location (for example as described above in relation to <FIG> and <FIG>). The method <NUM> may comprise determining a normal traffic flow through the given location (for example as described above in relation to <FIG>). The method <NUM> may comprise determining a measure of difference between the flow of traffic (e.g. the current flow of traffic, or the flow of traffic within a certain time of the current time) at the given location and determining whether flow departs from normal may be based on the measure of difference (e.g. whether the measure of difference is above a predetermined threshold).

Claim 1:
A controller (<NUM>) configured to receive:
(<NUM>) data relating to a first performance parameter of a first vehicle (<NUM>) at a given location (<NUM>) to determine a driving behaviour of the first vehicle, wherein the first performance parameter comprises a rate of change of steering wheel angle or a brake pedal pressure, and the driving behaviour comprises whether the first vehicle is swerving or braking harshly; and
(<NUM>) data relating to a second performance parameter of a second vehicle (<NUM>) at the given location to determine a driving behaviour of the second vehicle, wherein the second performance parameter comprises a rate of change of steering wheel angle or a brake pedal pressure, and the driving behaviour comprises whether the second vehicle is swerving or braking harshly,
wherein the controller is configured to receive data relating to:
(<NUM>) a geography at the given location, wherein the data relating to the geography at the given location comprises data describing an obstacle within a predetermined distance of the given location;
and,
to determine if the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within a predetermined first threshold:
if the first and second performance parameters are the same, the controller determines whether a difference between the values of the first and second performance parameters is zero or less than a predetermined threshold, and
if the first and second performance parameters are different, the controller determines whether the first performance parameter exceeds a predetermined threshold and determines whether the second performance parameter exceeds a predetermined threshold,
and if the controller determines (<NUM>) that the driving behaviour of the first vehicle and the driving behaviour of the second vehicle are the same, or similar within a predetermined first threshold, then the geographical data are examined to determine whether there is a probable cause of the same or similar driving behaviour,
and if the controller determines that:
(<NUM>) the geography at the given location increases the risk of accident due to the presence of an obstacle within the predetermined distance of the given location,
then the controller is configured to issue an alert (<NUM>).