# Cruise control adattivo cooperativo

Il cruise control adattivo cooperativo (CACC) è definito come un'estensione del cruise control adattivo anche indicato con ACC, acronimo dell'inglese Adaptive Cruise Control, in cui i veicoli sono equipaggiati con la tecnologia di comunicazione "veicolo-a-veicolo" (in inglese Vehicle - to - Vehicle) indicata anche con V2V.
Esso fa parte dei sistemi avanzati di guida assistita anche noti con la sigla ADAS (acronimo dell'inglese Advanced Driver Assistance Systems), i quali permettono di assistere il guidatore modificando il comportamento del veicolo.

## Obiettivi
### Sistemi di aiuto alla guida avanzati (ADAS)

I sistemi di aiuto alla guida avanzati (ADAS) consistono in un gruppo di tecnologie elettroniche che aiutano il guidatore durante la fase di guida e di parcheggio di un veicolo. Tra le maggiori cause di incidenti stradali fatali, l'errore umano è la predominante, con circa 1.3 milioni di incidenti l'anno causati da distrazioni, eccesso di velocità o guida in stato di ebbrezza. La ricerca scientifica e le maggiori aziende automobilistiche in questi anni si stanno concentrando sullo sviluppo di sistemi di aiuto alla guida, cercando di eliminare la maggior parte degli errori umani e, quindi, aumentare la capacità di traffico stradale. Inoltre, l'evoluzione dei sistemi ADAS si sta progressivamente spostando verso la guida "connessa", in cui tecnologie di comunicazione V2V e veicolo-a-infrastruttura (in inglese vehicle-to-infrastructure, anche chiamate V2I) permettono di aumentare la quantità di dati disponibili e quindi di definire logiche di controllo più accurate.

### Sistema CACC

Sistemi come il cruise control adattivo sono stati introdotti per aumentare il comfort di guida e la sicurezza stradale, specialmente durante il transito autostradale. L'evoluzione in un sistema CACC garantisce un miglior comportamento del veicolo in situazioni di potenziale pericolo e una riduzione della congestione stradale mantenendo un alto numero di veicoli transitanti per ora.

## Limiti del sistema ACC

Il seguente scenario rappresentato in figura mostra il principio di funzionamento del sistema CACC. Nel caso A sono presenti due veicoli in fila in cui il veicolo giallo è equipaggiato con un sistema ACC convenzionale, in grado di monitorare il veicolo "P" tramite sensori montati a bordo del veicolo (generalmente radar, telecamera e Lidar). Nel caso in cui il veicolo P decida di effettuare una frenata di emergenza, si possono verificare due situazioni:
* Nel caso in cui l'ACC sia funzionante, il veicolo giallo seguirà il veicolo P modificando la sua velocità e adattando la sua distanza in base all'accelerazione del veicolo precedente, grazie alle informazioni ricevute dai sensori.
* Nel caso in cui l'ACC non sia funzionante, il tempo di risposta del veicolo alla frenata del veicolo P dipenderà esclusivamente dalle abilità e dalla attenzione del guidatore. Inoltre, il guidatore non è in grado di determinare il corretto valore di decelerazione da fornire.
Nel caso B, invece, il veicolo giallo è preceduto da due veicoli (indicati con "P" e "L"). In questo caso, né il guidatore né i sensori riescono ad individuare il veicolo Leader (indicato con "L" in figura). Quindi, assumendo che il sistema ACC del veicolo giallo sia sempre attivo, si distinguono due situazioni:
* In caso di frenata di emergenza del veicolo L, la risposta del veicolo giallo dipenderà dalla prontezza di reazione del guidatore del veicolo P.
* In caso di congestione stradale, il veicolo giallo seguirà il veicolo P (l'unico in grado di essere riconosciuto dall'ACC) indipendentemente dal comportamento degli altri veicoli della stringa. Questo può determinare un'amplificazione non necessaria del movimento del veicolo giallo che può successivamente portare ad un discomfort nei passeggeri e ad un aumento della congestione stradale.

## Principio di funzionamento del sistema CACC

La connettività tra veicoli ed infrastruttura permette di creare una rete di informazioni in modo tale che ogni veicolo possa monitorare gli stati (ad esempio: posizione, velocità ed accelerazione) di tutti gli altri.
Nel caso raffigurato nella precedente figura, in cui l'ultimo veicolo è equipaggiato con un sistema CACC, esso è in grado di ricevere informazioni non solo dal veicolo immediatamente precedente, come nel caso dei sistemi ACC, ma anche dagli altri veicoli presenti nella fila. Quindi, il sistema di controllo sarà in grado di gestire l'azione di controllo tenendo conto dell'azione del veicolo L contribuendo a:
* Evitare situazione di eventuale pericolo, anticipando, ad esempio, una manovra di frenata di emergenza;
* Migliorare il comfort di guida fornendo il corretto valore di decelerazione al veicolo controllato;
* Ridurre la congestione stradale aumentando il numero di veicoli transitanti per ora.

## Architettura di controllo

Il CACC si definisce a partire dalla scelta di una logica di spaziatura (spacing policy, in inglese), ossia la logica di controllo responsabile di mantenere la distanza desiderata tra due veicoli successivi. La scelta di una appropriata logica di spaziatura rappresenta un compromesso tra due parametri fondamentali nei sistemi ADAS: da un lato uno spazio maggiore tra veicoli promuove la sicurezza e quindi lo spazio di frenata; dall'altro una distanza minore tra veicoli potrebbe portare ad un aumento considerevole del numero di veicoli per ora in grado di percorrere una determinata strada, riducendo la congestione stradale.
In generale, l'architettura di controllo per CACC si sviluppa estendendo le funzionalità di un sistema ACC aggiungendo una parte di comunicazione tra veicoli. La comunicazione può avvenire considerando solo i veicoli più vicini o tutti i veicoli della stringa: in entrambi i casi, i limiti del sistema convenzionale riescono ad essere superati introducendo un sistema di comunicazione tra veicoli. Il sistema è caratterizzato da un sistema gerarchico di controllo longitudinale composto da un controllo di alto e basso livello.
Il controllo di alto livello riceve in ingresso gli stati dei veicoli presenti nella stringa (grazie ai sensori a bordo veicolo e al modulo di comunicazione) e restituisce come output i valori di accelerazione desiderata. Questo valore di accelerazione può essere positivo, nel caso di veicoli sufficientemente lontani o negativo, nel caso di richiesta di decelerazione. Il controllo di basso livello invece riceve come input l'accelerazione desiderata e attraverso la ECU del veicolo attua la risposta, agendo sui freni o sul comando dell'acceleratore.

### Controllore di alto livello

Il controllore di alto livello è responsabile sia del controllo di velocità (tipico dei sistemi cruise control) che del controllo di spaziatura. Il controllo di velocità è in grado di mantenere costante la velocità del veicolo e convenzionalmente è rappresentato da un logica di controllo di tipo Proporzionale-Integrativo (PI), in cui l'output della logica è proporzionale all'errore tra la velocità di riferimento e l'attuale velocità del veicolo che al suo integrale. Nel momento in cui il veicolo successivo è sufficientemente vicino al veicolo controllato, si ha la transizione tra un controllo di velocità e un controllo di spaziatura, in cui al veicolo è richiesta o di mantenere una distanza desiderata del veicolo successivo. nel caso di un sistema ACC, la logica di spaziatura dipende esclusivamente dallo stato del veicolo immediatamente successivo. Nel CACC, invece, la spaziatura tra veicoli tiene conto anche del comportamento degli altri veicoli nella stringa, modificando i parametri della logica. Le informazioni degli altri veicoli dipendono, quindi, dal tipo di comunicazione scelta tra veicoli: oltre i metodi di comunicazione a corto-raggio (DSRC), anche la tecnologia 5G può essere utilizzata per la sua bassa latenza nei sistemi ADAS. Le informazioni dei veicoli della stringa possono essere inclusi in un parametro definito "Tempo-di-Collisione" (in inglese Time-to-Collision), che rappresenta il tempo richiesto per la collisione di due veicoli che mantengono la stessa velocità e stesso percorso.
Inoltre, i parametri della logica di controllo possono essere modificati considerando dei sensori innovativi, come le smart tyres, che permettono di inserire all'interno del calcolo dell'azione di controllo l'informazione della stima del coefficiente di attrito stradale: in questo modo, in caso di pioggia o ghiaccio, il sistema di controllo può fornire comandi di accelerazioni più bassi evitando di innescare uno slittamento degli pneumatici.

### Tipologia di scambio di informazioni

Lo scambio di informazioni tra diversi veicoli nella stringa può avvenire in diversi modi. Le varie tipologie si differenziano in base al numero di veicoli considerati dall'architettura di controllo e a quali informazioni vengono scambiate.
Si possono distinguere:
* Predecessor Following: in questo caso, le informazioni sono trasmesse a cascata partendo dal Leader della stringa fino ad arrivare all'ultimo veicolo. Questo scambio di informazioni è tipico dei sistemi ACC, in cui il radar rappresenta l'unico mezzo per ottenere informazioni relative ai veicoli successivi;
* Predecessor-Leader Following: oltre alle informazioni trasmesse dal radar, ogni veicolo ha a disposizione le informazioni del veicolo Leader;
* Bidirectional: ogni veicolo è equipaggiato con due radar (montati sia sul paraurti anteriore che posteriore). In questo modo, la logica riceve informazioni sia dal veicolo successivo che dal veicolo che segue;
* Bidirectional-Leader: rappresenta un'estensione del tipo Bidirectional con l'aggiunta di una comunicazione V2V tra veicolo Leader e tutti i veicoli che seguono;
* Two predecessors following: permette la trasmissione delle informazioni tra tutti i veicoli della stringa. Questo tipo di scambio di informazioni deriva dai recenti sviluppi nelle tecnologie di comunicazione V2V.

## Stabilità di stringa

Il sistema ACC può essere caratterizzato dal fenomeno di instabilità di stringa. Ciò significa che, considerando una stringa di veicoli, le oscillazioni introdotte dalle manovre dei veicoli (ad esempio a causa di continue accelerazioni e decelerazioni indotte dal traffico autostradale) possono essere amplificate lungo la stringa. Questo può comportare una serie di problemi:
* Nascita del cosiddetto ingorgo stradale "fantasma";
* Collisioni tra veicoli (nel peggiore dei casi), in cui l'amplificazione dell'oscillazione del movimento dei veicoli può essere così elevata da causare situazioni di pericolo.
In letteratura, è stato dimostrato come un sistema ACC caratterizzato da una logica di spaziatura costante non sia in grado di esibire stabilità di stringa nel caso in cui non sia presente comunicazione tra veicoli. Al contrario, un sistema ACC caratterizzato da una logica di spaziatura a "time gap" (definito come il tempo che un veicolo impiega a coprire la distanza con il veicolo successivo procedendo a velocità costante) costante è in grado di esibire stabilità di stringa se la seguente condizione risulti soddisfatta:
    $h>2\tau$
dove h rappresenta il time gap e τ la costante di tempo della logica di controllo (tipicamente τ è circa 0.5s). Quindi, questa condizione rappresenta un limite dal punto di vista della massimizzazione della capacità stradale per i sistemi ACC che sono costretti a mantenere una distanza maggiore tra veicoli per soddisfare i requisiti di stabilità di stringa.
Nei sistemi CACC, invece, il valore di time gap può essere ridotto notevolmente (fino a valori di circa 0.6s), mostrando comunque stabilità di stringa e garantendo, quindi, una maggiore sicurezza e un incremento del numero di veicoli transitanti per ora.

## Implementazioni su veicolo

Nel 2009-2010, all'interno del progetto Dutch Connected & Drive, un sistema CACC è stato implementato su sette Toyota Prius e su quattro Infiniti M56s equipaggiate con 5.9-GHz DSRC per la comunicazione wireless. Nel progetto sono stati analizzati diversi scenari urbani, tra cui l'analisi del comportamento del sistema CACC quando il veicolo Leader insegue un profilo di velocità predefinito.
La Grand Cooperative Driving Challenge è una competizione in cui diverse università sono state chiamate a competere tra di loro implementando su veicolo una logica CACC e a validarla con degli scenari predefiniti. La prima edizione si è svolta nel 2011, mentre la seconda si è svolta nel 2016. Il modulo di comunicazione era basato su CALM FAST, utilizzando il sistema IEEE 802.11p nel range di 5.9 GHz.
Lo scopo della competizione è quello di valutare la fattibilità pratica di un sistema di aiuto alla guida cooperativo, insieme ai suoi benefici, all'interno di scenari urbani. I criteri di valutazione sulle performance del CACC comprendevano: lunghezza della stringa di veicoli; capacità di smorzamento delle oscillazioni durante sostenute accelerazioni o decelerazioni; tempo di percorrenza e capacità di flessibilità alla variazione delle dimensioni della stringa.