Eclipse SUMO - Simulation of Urban MObility
CC_Const.h
Go to the documentation of this file.
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3
// Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4
// This program and the accompanying materials
5
// are made available under the terms of the Eclipse Public License v2.0
6
// which accompanies this distribution, and is available at
7
// http://www.eclipse.org/legal/epl-v20.html
8
// SPDX-License-Identifier: EPL-2.0
9
/****************************************************************************/
14
// File defining constants, structs, and enums for cruise controllers
15
/****************************************************************************/
16
#ifndef CC_CONST_H
17
#define CC_CONST_H
18
19
#include <string>
20
#include <sstream>
21
22
namespace
Plexe
{
23
27
enum
PLATOONING_LANE_CHANGE_ACTION
{
28
DRIVER_CHOICE
= 0,
//the platooning management is not active, so just let the driver choose the lane
29
STAY_IN_CURRENT_LANE
= 3,
//the car is part of a platoon, so it has to stay on the dedicated platooning lane
30
MOVE_TO_FIXED_LANE
= 4
//move the car to a specific lane
31
};
32
36
#define FIX_LC 0b1000000000
37
#define DEFAULT_NOTRACI_LC 0b1010101010
38
44
enum
ACTIVE_CONTROLLER
45
{
DRIVER
= 0,
ACC
= 1,
CACC
= 2,
FAKED_CACC
= 3,
PLOEG
= 4,
CONSENSUS
= 5,
FLATBED
= 6};
46
51
struct
CCDataHeader
{
52
int
type
;
//type of message. indicates what comes after the header
53
int
size
;
//size of message. indicates how many bytes comes after the header
54
};
55
59
struct
VEHICLE_DATA
{
60
int
index
;
//position in the platoon (0 = first)
61
double
speed
;
//vehicle speed
62
double
acceleration
;
//vehicle acceleration
63
double
positionX
;
//position of the vehicle in the simulation
64
double
positionY
;
//position of the vehicle in the simulation
65
double
time
;
//time at which such information was read from vehicle's sensors
66
double
length
;
//vehicle length
67
double
u
;
//controller acceleration
68
double
speedX
;
//vehicle speed on the X axis
69
double
speedY
;
//vehicle speed on the Y axis
70
double
angle
;
//vehicle angle in radians
71
};
72
73
#define MAX_N_CARS 8
74
75
#define CC_ENGINE_MODEL_FOLM 0x00 //first order lag model
76
#define CC_ENGINE_MODEL_REALISTIC 0x01 //the detailed and realistic engine model
77
78
//parameter names for engine models
79
#define FOLM_PAR_TAU "tau_s"
80
#define FOLM_PAR_DT "dt_s"
81
82
#define ENGINE_PAR_VEHICLE "vehicle"
83
#define ENGINE_PAR_XMLFILE "xmlFile"
84
#define ENGINE_PAR_DT "dt_s"
85
86
#define CC_PAR_VEHICLE_DATA "ccvd" //data about a vehicle, like position, speed, acceleration, etc
87
#define CC_PAR_VEHICLE_POSITION "ccvp" //position of the vehicle in the platoon (0 based)
88
#define CC_PAR_PLATOON_SIZE "ccps" //number of cars in the platoon
89
90
//set of controller-related constants
91
#define CC_PAR_CACC_XI "ccxi" //xi
92
#define CC_PAR_CACC_OMEGA_N "ccon" //omega_n
93
#define CC_PAR_CACC_C1 "ccc1" //C1
94
#define CC_PAR_ENGINE_TAU "cctau" //engine time constant
95
96
#define CC_PAR_UMIN "ccumin" //lower saturation for u
97
#define CC_PAR_UMAX "ccumax" //upper saturation for u
98
99
#define CC_PAR_PLOEG_H "ccph" //time headway of ploeg's CACC
100
#define CC_PAR_PLOEG_KP "ccpkp" //kp parameter of ploeg's CACC
101
#define CC_PAR_PLOEG_KD "ccpkd" //kd parameter of ploeg's CACC
102
103
#define CC_PAR_FLATBED_KA "ccfka" //ka parameter of flatbed CACC
104
#define CC_PAR_FLATBED_KV "ccfkv" //kv parameter of flatbed CACC
105
#define CC_PAR_FLATBED_KP "ccfkp" //kp parameter of flatbed CACC
106
#define CC_PAR_FLATBED_H "ccfh" //h parameter of flatbed CACC
107
#define CC_PAR_FLATBED_D "ccfd" //distance parameter of flatbed CACC
108
109
#define CC_PAR_VEHICLE_ENGINE_MODEL "ccem" //set the engine model for a vehicle
110
111
#define CC_PAR_VEHICLE_MODEL "ccvm" //set the vehicle model, i.e., engine characteristics
112
#define CC_PAR_VEHICLES_FILE "ccvf" //set the location of the vehicle parameters file
113
114
// set CACC constant spacing
115
#define PAR_CACC_SPACING "ccsp"
116
117
// get ACC computed acceleration when faked CACC controller is enabled
118
#define PAR_ACC_ACCELERATION "ccacc"
119
120
// determine whether a vehicle has crashed or not
121
#define PAR_CRASHED "cccr"
122
123
// set a fixed acceleration to a vehicle controlled by CC/ACC/CACC
124
#define PAR_FIXED_ACCELERATION "ccfa"
125
126
// get vehicle speed and acceleration, needed for example by the platoon leader (get: vehicle)
127
#define PAR_SPEED_AND_ACCELERATION "ccsa"
128
129
// set speed and acceleration of the platoon leader
130
#define PAR_LEADER_SPEED_AND_ACCELERATION "cclsa"
131
132
// set whether CACCs should use real or controller acceleration
133
#define PAR_USE_CONTROLLER_ACCELERATION "ccca"
134
135
// get lane count for the street the vehicle is currently traveling
136
#define PAR_LANES_COUNT "cclc"
137
138
// set the cruise control desired speed
139
#define PAR_CC_DESIRED_SPEED "ccds"
140
141
// set the currently active vehicle controller which can be either the driver, or the ACC or the CACC
142
#define PAR_ACTIVE_CONTROLLER "ccac"
143
144
// get radar data from the car
145
#define PAR_RADAR_DATA "ccrd"
146
147
// communicate with the cruise control to give him fake indications. this can be useful when you want
148
// to advance a vehicle to a certain position, for example, for joining a platoon. clearly the ACC
149
// must always take into consideration both fake and real data
150
#define PAR_LEADER_FAKE_DATA "cclfd"
151
#define PAR_FRONT_FAKE_DATA "ccffd"
152
153
// get the distance that a car has to travel until it reaches the end of its route
154
#define PAR_DISTANCE_TO_END "ccdte"
155
156
// get the distance from the beginning of the route
157
#define PAR_DISTANCE_FROM_BEGIN "ccdfb"
158
159
// set speed and acceleration of preceding vehicle
160
#define PAR_PRECEDING_SPEED_AND_ACCELERATION "ccpsa"
161
162
// set ACC headway time
163
#define PAR_ACC_HEADWAY_TIME "ccaht"
164
165
// return engine information (for the realistic engine model)
166
#define PAR_ENGINE_DATA "cced"
167
168
// enabling/disabling auto feeding
169
#define PAR_USE_AUTO_FEEDING "ccaf"
170
171
// enabling/disabling data prediction
172
#define PAR_USE_PREDICTION "ccup"
173
174
// add/remove members from own platoon
175
#define PAR_ADD_MEMBER "ccam"
176
#define PAR_REMOVE_MEMBER "ccrm"
177
178
// let the leader automatically change lane for the whole platoon if there is a speed advantage
179
#define PAR_ENABLE_AUTO_LANE_CHANGE "ccalc"
180
181
}
182
183
#endif
/* CC_CONST_H */
Plexe::VEHICLE_DATA::speedY
double speedY
Definition:
CC_Const.h:69
Plexe::MOVE_TO_FIXED_LANE
@ MOVE_TO_FIXED_LANE
Definition:
CC_Const.h:30
Plexe
Definition:
CC_Const.h:22
Plexe::VEHICLE_DATA::positionY
double positionY
Definition:
CC_Const.h:64
Plexe::VEHICLE_DATA::index
int index
Definition:
CC_Const.h:60
Plexe::FLATBED
@ FLATBED
Definition:
CC_Const.h:45
Plexe::PLOEG
@ PLOEG
Definition:
CC_Const.h:45
Plexe::VEHICLE_DATA::time
double time
Definition:
CC_Const.h:65
Plexe::CACC
@ CACC
Definition:
CC_Const.h:45
Plexe::CCDataHeader::type
int type
Definition:
CC_Const.h:52
Plexe::CCDataHeader::size
int size
Definition:
CC_Const.h:53
Plexe::VEHICLE_DATA::speed
double speed
Definition:
CC_Const.h:61
Plexe::VEHICLE_DATA
Definition:
CC_Const.h:59
Plexe::DRIVER_CHOICE
@ DRIVER_CHOICE
Definition:
CC_Const.h:28
Plexe::PLATOONING_LANE_CHANGE_ACTION
PLATOONING_LANE_CHANGE_ACTION
action that might be requested by the platooning management
Definition:
CC_Const.h:27
Plexe::ACC
@ ACC
Definition:
CC_Const.h:45
Plexe::FAKED_CACC
@ FAKED_CACC
Definition:
CC_Const.h:45
Plexe::CCDataHeader
struct used as header for generic data passing to this model through traci
Definition:
CC_Const.h:51
Plexe::VEHICLE_DATA::acceleration
double acceleration
Definition:
CC_Const.h:62
Plexe::VEHICLE_DATA::speedX
double speedX
Definition:
CC_Const.h:68
Plexe::ACTIVE_CONTROLLER
ACTIVE_CONTROLLER
Determines the currently active controller, i.e., ACC, CACC, or the driver. In future we might need t...
Definition:
CC_Const.h:44
Plexe::VEHICLE_DATA::positionX
double positionX
Definition:
CC_Const.h:63
Plexe::STAY_IN_CURRENT_LANE
@ STAY_IN_CURRENT_LANE
Definition:
CC_Const.h:29
Plexe::CONSENSUS
@ CONSENSUS
Definition:
CC_Const.h:45
Plexe::VEHICLE_DATA::length
double length
Definition:
CC_Const.h:66
Plexe::VEHICLE_DATA::u
double u
Definition:
CC_Const.h:67
Plexe::DRIVER
@ DRIVER
Definition:
CC_Const.h:45
Plexe::VEHICLE_DATA::angle
double angle
Definition:
CC_Const.h:70
src
microsim
cfmodels
CC_Const.h
Generated on Sun Jun 21 2020 23:18:41 for Eclipse SUMO - Simulation of Urban MObility by
1.8.17