The Algorithms

The idea

The inspiration behind CoDrive’s algorithm emerged from the world of rally racing, where the “navigator” (or “co-pilot”) assists the driver in two phases:

  • Firstly (the day before the race), taking notes (we call them “pace notes”) on all the curves of the track.

  • Then, during the race, using those notes to give precise real-time instructions on how to approach each section.

CoDrive replicates all of this digitally, acting as an intelligent driving assistant capable of automatically creating these “pace notes”. Thus, it communicates in advance, as each corner approaches, its category, which identifies its characteristics, including the level of difficulty. This helps the driver use the correct steering angle, braking level, and acceleration point to tackle it optimally.

Our Algorithms

Codrive incorporates three distinct patented algorithms, developed in collaboration with the Perceptive Robotics Laboratory of the Scuola Superiore Sant’Anna di Pisa, which are absolutely unique in the industry.

Tested over 500,000 km worldwide

These algorithms were fine-tuned by professional rally driver Paolo Andreucci (multiple rally champion) and federal driving instructor. He perfected the algorithm after testing it over 500,000 km worldwide and encoding the same information that a real rally "navigator" would provide. The algorithm is able to automatically classify each corner of each route and then verify in real time whether the driver is approaching the corners in a manner appropriate for the corresponding category.

They adapt thanks to Artificial Intelligence techniques.

With the support of technology partners with expertise in the field, the algorithms have been implemented using sophisticated Artificial Intelligence techniques that facilitate the automatic classification of corners.

First Algorithm

The Core of CoDrive: Automatic Pace Note Calculation

The “core” algorithm, patented in 2021, is able to break down each route and categorize each corner automatically, according to a complex system of characteristics carefully identified thanks to the extensive experience of rally champion Paolo Andreucci, who has worked for years, together with a team of software experts, to encode all his knowledge digitally.

Second Algorithm

Notification of alerts

During driving, the “notes” on the upcoming corners are communicated to the driver with the right anticipation so that they can prepare to face them in the best possible way.

The parameters detected in real time, such as driving speed and acceleration, are constantly compared with the expected values (the correct range of expected values) for that specific corner; in case of excessive differences, an alert sound is immediately sent to warn the driver.

Second Algorithm

Notification of alerts

During driving, the “notes” on the upcoming corners are communicated to the driver with the right anticipation so that they can prepare to face them in the best possible way.

The parameters detected in real time, such as driving speed and acceleration, are constantly compared with the expected values (the correct range of expected values) for that specific corner; in case of excessive differences, an alert sound is immediately sent to warn the driver.

Third Algorithm

Driving behavior analysis

Once the journey is complete, the driving style classification algorithm assigns a “score” to the performance just performed, taking into account how well or poorly the various corners were taken.

The “trip replay” option allows the driver to review their trip and see how their performance compared to the correct way to approach each corner, giving them the opportunity to see where mistakes were made and thus allowing them to understand how to improve their driving style.

Evaluated Parameters and Risk Factors

The driving style evaluation engine uses the described parameters to assign “scores” not only to the way each section is driven, but also to the entire route being evaluated.

Cornering speed

Average speed

Hard accelerations

Corner curvature

Sharp or abnormal braking

Driving distractions

Sudden maneuvers

The parameter given the most weight is the speed at which each individual corner is taken, which is compared to the range of values considered correct for the corresponding category to which the corner belongs: if the detected value falls outside this range, the corner is assigned a negative score, the greater the difference between the detected value and the exceeded threshold. If the intention is to reward not only safety but also fuel consumption, during the configuration phase it can be decided to give slightly negative scores even to deviations below the lower threshold, because a speed that is too low leads to an incorrect subsequent acceleration mode at the exit of the corner, which penalizes fuel consumption.

The detections on the individual corner are then grouped into error classes, reported as columns of the specific route report (indicating these classes with different colors, ranging from green, which indicates correct corners, to black, which indicates corners with very serious errors). Each row corresponds to a different category of corner: the value at the intersection of a specific row and column indicates the number of corners, for that category, whose error fell within the corresponding class (e.g., in the example report the number “1” reported in position (1,1) shows that only 1 hairpin bend was taken correctly).

The scores are then combined, when calculating the “route” score, by giving different weights to the types of error related to different categories: for example, exceeding the upper threshold by more than 20kmh is more serious for a hairpin bend than for a much less dangerous “7” category corner. External conditions also influence everything (amplifying the penalties in case of poor conditions).

Other parameters taken into consideration are violent accelerations and sudden braking, which are assigned a score inversely proportional to the detected excess.

Finally, another important element for evaluating driving safety is the number of “distractions” intended as the number of “mobile phone events” detected by the same as “processed manually” (e.g.: call made without hands-free, which assumes that the driver was holding the phone).