eclipse-sumo / sumo

Eclipse SUMO is an open source, highly portable, microscopic and continuous traffic simulation package designed to handle large networks. It allows for intermodal simulation including pedestrians and comes with a large set of tools for scenario creation.
https://eclipse.dev/sumo
Eclipse Public License 2.0
2.48k stars 1.4k forks source link

What's the difference between the CACC and the CACC in CC ? #8260

Closed warm2018 closed 3 years ago

warm2018 commented 3 years ago

As I found in the source code, there exist two CACC car-following models in SUMO. 1)the CACC model in src/microsim/cfmodles/MSCFModel_CACC.cpp. MSCFmodel_CACC class 2)and the CACC model in src/microsim/cfmodels/MSCFModel_CC.cpp. MSCFmodel_CC _cacc function.

So, I wonder if that the difference between them ? like: 1. the ways to use them ?

  1. the difference in the control algorithm?

The CACC in CC is a controller that can form coorperative platoons(>= 2 vehicles). But the CACC just can form only 2 vehicles' platoon(Because it just define the ego and pred vehicles' behavior ). Is that right?

Besides the CACC, ACC has the same questions ^_^ Thank you in advance!

namdre commented 3 years ago

Sumo collects models by different authors and sometimes their names suggest a generality that is misleading.

MSCFModel_CC.cpp is used mainly in the context of Plexe: https://plexe.car2x.org/ with frequent traci calls to setParameter/getParameter to influence the model behavior.

The CACC, ACC models are meant to run without traci control. They can (implicitly) form larger platoons as well under the assumption that it is sufficient to look at the immediate leader even in a larger platoon. Note, that they are less general than other available car following model in their applicability since the authors mostly developed them for sub-second simulation on motorways.

warm2018 commented 3 years ago

Thanks, I think I have a better understanding about them. But several questions still exsit:

The CC-CACC platoon can only form platoons manualy using traci or other control ways. We can set the leaders and platoon memmbers and this is easy to understand.

But the CACC platoon forming process is difficult to understand: How did the leaders are choosed in CACC ? (it seems this controller just consider the gap to preceding vehicles, don't consider the leader's information, is there any difference compared with ACC )

If the preceding vehicle is a Kruass model driving vehicle, not a CACC vehicle, and which kind of behavior will the following CACC vehicle become ? 1) Still CACC? 2) ACC?

namdre commented 3 years ago

the CACC model checks for the carFollowModel of the preceeding vehicle, if the leader is not CACC it switches to ACC behavior.

warm2018 commented 3 years ago

Thank you! I am trying to implement the CACC model and the CC-CACC model in the simulation. I guess that the car-following behavior of them will be very different.