CARLA
Loading...
Searching...
No Matches
Parameters.cpp
Go to the documentation of this file.
1// Copyright (c) 2026 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
9
10namespace carla {
11namespace traffic_manager {
12
14
15 /// Set default synchronous mode time out.
16 synchronous_time_out = std::chrono::duration<int, std::milli>(10);
17}
18
20
21//////////////////////////////////// SETTERS //////////////////////////////////
22
23void Parameters::SetHybridPhysicsMode(const bool mode_switch) {
24
25 hybrid_physics_mode.store(mode_switch);
26}
27
28void Parameters::SetRespawnDormantVehicles(const bool mode_switch) {
29
30 respawn_dormant_vehicles.store(mode_switch);
31}
32
33void Parameters::SetMaxBoundaries(const float lower, const float upper) {
34 min_lower_bound = lower;
35 max_upper_bound = upper;
36}
37
38void Parameters::SetBoundariesRespawnDormantVehicles(const float lower_bound, const float upper_bound) {
39 respawn_lower_bound = min_lower_bound > lower_bound ? min_lower_bound : lower_bound;
40 respawn_upper_bound = max_upper_bound < upper_bound ? max_upper_bound : upper_bound;
41}
42
43void Parameters::SetPercentageSpeedDifference(const ActorPtr &actor, const float percentage) {
44
45 float new_percentage = std::min(100.0f, percentage);
46 percentage_difference_from_speed_limit.AddEntry({actor->GetId(), new_percentage});
47 if (exact_desired_speed.Contains(actor->GetId())) {
48 exact_desired_speed.RemoveEntry(actor->GetId());
49 }
50}
51
52void Parameters::SetLaneOffset(const ActorPtr &actor, const float offset) {
53 const auto entry = std::make_pair(actor->GetId(), offset);
54 lane_offset.AddEntry(entry);
55}
56
57void Parameters::SetDesiredSpeed(const ActorPtr &actor, const float value) {
58
59 float new_value = std::max(0.0f, value);
60 exact_desired_speed.AddEntry({actor->GetId(), new_value});
63 }
64}
65
67 float new_percentage = std::min(100.0f, percentage);
69}
70
71void Parameters::SetGlobalLaneOffset(const float offset) {
72 global_lane_offset = offset;
73}
74
75void Parameters::SetLargeVehicleWideTurn(const ActorPtr &actor, const bool enable) {
76 const auto entry = std::make_pair(actor->GetId(), enable);
78}
79
83
84void Parameters::SetCollisionDetection(const ActorPtr &reference_actor, const ActorPtr &other_actor, const bool detect_collision) {
85 const ActorId reference_id = reference_actor->GetId();
86 const ActorId other_id = other_actor->GetId();
87
88 if (detect_collision) {
89 if (ignore_collision.Contains(reference_id)) {
90 std::shared_ptr<AtomicActorSet> actor_set = ignore_collision.GetValue(reference_id);
91 if (actor_set->Contains(other_id)) {
92 actor_set->Remove({other_id});
93 }
94 }
95 } else {
96 if (ignore_collision.Contains(reference_id)) {
97 std::shared_ptr<AtomicActorSet> actor_set = ignore_collision.GetValue(reference_id);
98 if (!actor_set->Contains(other_id)) {
99 actor_set->Insert({other_actor});
100 }
101 } else {
102 std::shared_ptr<AtomicActorSet> actor_set = std::make_shared<AtomicActorSet>();
103 actor_set->Insert({other_actor});
104 auto entry = std::make_pair(reference_id, actor_set);
105 ignore_collision.AddEntry(entry);
106 }
107 }
108}
109
110void Parameters::SetForceLaneChange(const ActorPtr &actor, const bool direction) {
111
112 const ChangeLaneInfo lane_change_info = {true, direction};
113 const auto entry = std::make_pair(actor->GetId(), lane_change_info);
114 force_lane_change.AddEntry(entry);
115}
116
117void Parameters::SetKeepSlowLanePercentage(const ActorPtr &actor, const float percentage) {
118
119 const auto entry = std::make_pair(actor->GetId(), percentage);
121}
122
123
124void Parameters::SetRandomLeftLaneChangePercentage(const ActorPtr &actor, const float percentage) {
125
126 const auto entry = std::make_pair(actor->GetId(), percentage);
128}
129
130void Parameters::SetRandomRightLaneChangePercentage(const ActorPtr &actor, const float percentage) {
131
132 const auto entry = std::make_pair(actor->GetId(), percentage);
134
135}
136
137void Parameters::SetUpdateVehicleLights(const ActorPtr &actor, const bool do_update) {
138
139 const auto entry = std::make_pair(actor->GetId(), do_update);
141}
142
143void Parameters::SetAutoLaneChange(const ActorPtr &actor, const bool enable) {
144
145 const auto entry = std::make_pair(actor->GetId(), enable);
147}
148
150
151 float new_distance = std::max(0.0f, distance);
152 const auto entry = std::make_pair(actor->GetId(), new_distance);
154}
155
156void Parameters::SetSynchronousMode(const bool mode_switch) {
157 synchronous_mode.store(mode_switch);
158}
159
161 synchronous_time_out = std::chrono::duration<double, std::milli>(time);
162}
163
165
166 distance_margin.store(dist);
167}
168
169void Parameters::SetPercentageRunningLight(const ActorPtr &actor, const float perc) {
170
171 float new_perc = cg::Math::Clamp(perc, 0.0f, 100.0f);
172 const auto entry = std::make_pair(actor->GetId(), new_perc);
174}
175
176void Parameters::SetPercentageRunningSign(const ActorPtr &actor, const float perc) {
177
178 float new_perc = cg::Math::Clamp(perc, 0.0f, 100.0f);
179 const auto entry = std::make_pair(actor->GetId(), new_perc);
181}
182
183void Parameters::SetPercentageIgnoreVehicles(const ActorPtr &actor, const float perc) {
184
185 float new_perc = cg::Math::Clamp(perc, 0.0f, 100.0f);
186 const auto entry = std::make_pair(actor->GetId(), new_perc);
188}
189
190void Parameters::SetPercentageIgnoreWalkers(const ActorPtr &actor, const float perc) {
191
192 float new_perc = cg::Math::Clamp(perc,0.0f,100.0f);
193 const auto entry = std::make_pair(actor->GetId(), new_perc);
195}
196
197void Parameters::SetHybridPhysicsRadius(const float radius) {
198 float new_radius = std::max(radius, 0.0f);
199 hybrid_physics_radius.store(new_radius);
200}
201
202void Parameters::SetOSMMode(const bool mode_switch) {
203 osm_mode.store(mode_switch);
204}
205
206void Parameters::SetCustomPath(const ActorPtr &actor, const Path path, const bool empty_buffer) {
207 const auto entry = std::make_pair(actor->GetId(), path);
208 custom_path.AddEntry(entry);
209 const auto entry2 = std::make_pair(actor->GetId(), empty_buffer);
210 upload_path.AddEntry(entry2);
211}
212
213void Parameters::RemoveUploadPath(const ActorId &actor_id, const bool remove_path) {
214 if (!remove_path) {
215 upload_path.RemoveEntry(actor_id);
216 } else {
217 custom_path.RemoveEntry(actor_id);
218 }
219}
220
221void Parameters::UpdateUploadPath(const ActorId &actor_id, const Path path) {
222 custom_path.RemoveEntry(actor_id);
223 const auto entry = std::make_pair(actor_id, path);
224 custom_path.AddEntry(entry);
225}
226
227void Parameters::SetImportedRoute(const ActorPtr &actor, const Route route, const bool empty_buffer) {
228 const auto entry = std::make_pair(actor->GetId(), route);
229 custom_route.AddEntry(entry);
230 const auto entry2 = std::make_pair(actor->GetId(), empty_buffer);
231 upload_route.AddEntry(entry2);
232}
233
234void Parameters::RemoveImportedRoute(const ActorId &actor_id, const bool remove_path) {
235 if (!remove_path) {
236 upload_route.RemoveEntry(actor_id);
237 } else {
238 custom_route.RemoveEntry(actor_id);
239 }
240}
241
242void Parameters::UpdateImportedRoute(const ActorId &actor_id, const Route route) {
243 custom_route.RemoveEntry(actor_id);
244 const auto entry = std::make_pair(actor_id, route);
245 custom_route.AddEntry(entry);
246}
247
248//////////////////////////////////// GETTERS //////////////////////////////////
249
251
252 return hybrid_physics_radius.load();
253}
254
256 return synchronous_mode.load();
257}
258
262
263float Parameters::GetVehicleTargetVelocity(const ActorId &actor_id, const float speed_limit) const {
264
265 float percentage_difference = global_percentage_difference_from_limit;
266
268 percentage_difference = percentage_difference_from_speed_limit.GetValue(actor_id);
269 } else if (exact_desired_speed.Contains(actor_id)) {
270 return exact_desired_speed.GetValue(actor_id);
271 }
272
273 return speed_limit * (1.0f - percentage_difference / 100.0f);
274}
275
276float Parameters::GetLaneOffset(const ActorId &actor_id) const {
277 float offset = global_lane_offset;
278
279 if (lane_offset.Contains(actor_id)) {
280 offset = lane_offset.GetValue(actor_id);
281 }
282
283 return offset;
284}
285
286bool Parameters::GetLargeVehicleWideTurn(const ActorId &actor_id) const {
287 bool enable = global_large_vehicle_wide_turn;
288
289 if (large_vehicle_wide_turn.Contains(actor_id)) {
290 enable = large_vehicle_wide_turn.GetValue(actor_id);
291 }
292
293 return enable;
294}
295
296bool Parameters::GetCollisionDetection(const ActorId &reference_actor_id, const ActorId &other_actor_id) const {
297
298 bool avoid_collision = true;
299
300 if (ignore_collision.Contains(reference_actor_id) &&
301 ignore_collision.GetValue(reference_actor_id)->Contains(other_actor_id)) {
302 avoid_collision = false;
303 }
304
305 return avoid_collision;
306}
307
309
310 ChangeLaneInfo change_lane_info {false, false};
311
312 if (force_lane_change.Contains(actor_id)) {
313 change_lane_info = force_lane_change.GetValue(actor_id);
314 }
315
316 force_lane_change.RemoveEntry(actor_id);
317
318 return change_lane_info;
319}
320
322
323 float percentage = -1.0f;
324
325 if (perc_keep_slow_lane.Contains(actor_id)) {
326 percentage = perc_keep_slow_lane.GetValue(actor_id);
327 }
328
329 return percentage;
330}
331
333
334 float percentage = -1.0f;
335
336 if (perc_random_left.Contains(actor_id)) {
337 percentage = perc_random_left.GetValue(actor_id);
338 }
339
340 return percentage;
341}
342
344
345 float percentage = -1.0f;
346
347 if (perc_random_right.Contains(actor_id)) {
348 percentage = perc_random_right.GetValue(actor_id);
349 }
350
351 return percentage;
352}
353
354bool Parameters::GetAutoLaneChange(const ActorId &actor_id) const {
355
356 bool auto_lane_change_policy = true;
357
358 if (auto_lane_change.Contains(actor_id)) {
359 auto_lane_change_policy = auto_lane_change.GetValue(actor_id);
360 }
361
362 return auto_lane_change_policy;
363}
364
366
367 float specific_distance_margin = 0.0f;
369 specific_distance_margin = distance_to_leading_vehicle.GetValue(actor_id);
370 } else {
371 specific_distance_margin = distance_margin;
372 }
373
374 return specific_distance_margin;
375}
376
377float Parameters::GetPercentageRunningLight(const ActorId &actor_id) const {
378
379 float percentage = 0.0f;
380
381 if (perc_run_traffic_light.Contains(actor_id)) {
382 percentage = perc_run_traffic_light.GetValue(actor_id);
383 }
384
385 return percentage;
386}
387
388float Parameters::GetPercentageRunningSign(const ActorId &actor_id) const {
389
390 float percentage = 0.0f;
391
392 if (perc_run_traffic_sign.Contains(actor_id)) {
393 percentage = perc_run_traffic_sign.GetValue(actor_id);
394 }
395
396 return percentage;
397}
398
400
401 float percentage = 0.0f;
402
403 if (perc_ignore_walkers.Contains(actor_id)) {
404 percentage = perc_ignore_walkers.GetValue(actor_id);
405 }
406
407 return percentage;
408}
409
410bool Parameters::GetUpdateVehicleLights(const ActorId &actor_id) const {
411 bool do_update = false;
412
413 if (auto_update_vehicle_lights.Contains(actor_id)) {
414 do_update = auto_update_vehicle_lights.GetValue(actor_id);
415 }
416
417 return do_update;
418}
419
421
422 float percentage = 0.0f;
423
424 if (perc_ignore_vehicles.Contains(actor_id)) {
425 percentage = perc_ignore_vehicles.GetValue(actor_id);
426 }
427
428 return percentage;
429}
430
432
433 return hybrid_physics_mode.load();
434}
435
437
438 return respawn_dormant_vehicles.load();
439}
440
445
450
451
453
454 return osm_mode.load();
455}
456
457bool Parameters::GetUploadPath(const ActorId &actor_id) const {
458
459 bool custom_path_bool = false;
460
461 if (upload_path.Contains(actor_id)) {
462 custom_path_bool = upload_path.GetValue(actor_id);
463 }
464
465 return custom_path_bool;
466}
467
468Path Parameters::GetCustomPath(const ActorId &actor_id) const {
469
470 Path custom_path_import;
471
472 if (custom_path.Contains(actor_id)) {
473 custom_path_import = custom_path.GetValue(actor_id);
474 }
475
476 return custom_path_import;
477}
478
479
480bool Parameters::GetUploadRoute(const ActorId &actor_id) const {
481
482 bool custom_route_bool = false;
483
484 if (upload_route.Contains(actor_id)) {
485 custom_route_bool = upload_route.GetValue(actor_id);
486 }
487
488 return custom_route_bool;
489}
490
492
493 Route custom_route_import;
494
495 if (custom_route.Contains(actor_id)) {
496 custom_route_import = custom_route.GetValue(actor_id);
497 }
498
499 return custom_route_import;
500}
501
502
503} // namespace traffic_manager
504} // namespace carla
float distance
void RemoveEntry(const Key &key)
Definition AtomicMap.h:50
const Value & GetValue(const Key &key) const
Definition AtomicMap.h:44
bool Contains(const Key &key) const
Definition AtomicMap.h:38
void AddEntry(const std::pair< Key, Value > &entry)
Definition AtomicMap.h:27
float GetRandomLeftLaneChangePercentage(const ActorId &actor_id)
Method to query percentage probability of a random right lane change for a vehicle.
void SetGlobalLargeVehicleWideTurn(const bool enable)
Method to enable/disable the wide-turn manoeuvre globally for all large vehicles.
std::atomic< float > respawn_lower_bound
Minimum distance to respawn vehicles with respect to the hero vehicle.
Definition Parameters.h:87
float GetPercentageIgnoreWalkers(const ActorId &actor_id) const
Method to get % to ignore any walker.
AtomicMap< ActorId, ChangeLaneInfo > force_lane_change
Map containing force lane change commands.
Definition Parameters.h:59
ChangeLaneInfo GetForceLaneChange(const ActorId &actor_id)
Method to query lane change command for a vehicle.
AtomicMap< ActorId, bool > auto_lane_change
Map containing auto lane change commands.
Definition Parameters.h:61
bool GetLargeVehicleWideTurn(const ActorId &actor_id) const
Method to query whether the wide-turn manoeuvre is enabled for a large vehicle (per-vehicle override,...
float GetLaneOffset(const ActorId &actor_id) const
Method to query lane offset for a vehicle.
AtomicMap< ActorId, bool > upload_path
Parameter specifying if importing a custom path.
Definition Parameters.h:99
void SetLaneOffset(const ActorPtr &actor, const float offset)
Method to set a lane offset displacement from the center line.
float GetDistanceToLeadingVehicle(const ActorId &actor_id) const
Method to query distance to leading vehicle for a given vehicle.
void SetKeepSlowLanePercentage(const ActorPtr &actor, const float percentage)
Method to set % to keep on the slow lane.
void SetImportedRoute(const ActorPtr &actor, const Route route, const bool empty_buffer)
Method to set our own imported route.
bool GetCollisionDetection(const ActorId &reference_actor_id, const ActorId &other_actor_id) const
Method to query collision avoidance rule between a pair of vehicles.
void SetHybridPhysicsRadius(const float radius)
Method to set hybrid physics radius.
Route GetImportedRoute(const ActorId &actor_id) const
Method to get a custom route.
float global_lane_offset
Global lane offset.
Definition Parameters.h:49
float global_percentage_difference_from_limit
Global target velocity limit % difference.
Definition Parameters.h:47
std::atomic< bool > synchronous_mode
Synchronous mode switch.
Definition Parameters.h:79
float GetKeepSlowLanePercentage(const ActorId &actor_id)
Method to query percentage probability of keep slow lane rule for a vehicle.
double GetSynchronousModeTimeOutInMiliSecond() const
Get synchronous mode time out.
std::atomic< float > distance_margin
Distance margin.
Definition Parameters.h:81
std::chrono::duration< double, std::milli > synchronous_time_out
Synchronous mode time out variable.
Definition Parameters.h:311
std::atomic< float > hybrid_physics_radius
Hybrid physics radius.
Definition Parameters.h:95
bool GetUploadRoute(const ActorId &actor_id) const
Method to get if we are uploading a route.
AtomicMap< ActorId, bool > large_vehicle_wide_turn
Per-vehicle enable flag for the large-vehicle wide-turn manoeuvre.
Definition Parameters.h:51
void UpdateUploadPath(const ActorId &actor_id, const Path path)
Method to update an already set list of points.
bool GetOSMMode() const
Method to get Open Street Map mode.
void SetRandomLeftLaneChangePercentage(const ActorPtr &actor, const float percentage)
Method to set % to randomly do a left lane change.
void SetGlobalDistanceToLeadingVehicle(const float dist)
Method to set the distance to leading vehicle for all registered vehicles.
AtomicMap< ActorId, float > perc_random_left
Map containing % of random left lane change.
Definition Parameters.h:73
AtomicMap< ActorId, float > perc_ignore_walkers
Map containing % of ignoring walkers.
Definition Parameters.h:67
float GetHybridPhysicsRadius() const
Method to retrieve hybrid physics radius.
void UpdateImportedRoute(const ActorId &actor_id, const Route route)
Method to update an already set route.
float GetVehicleTargetVelocity(const ActorId &actor_id, const float speed_limit) const
Method to query target velocity for a vehicle.
void SetGlobalLaneOffset(float const offset)
Method to set a global lane offset displacement from the center line.
AtomicMap< ActorId, float > exact_desired_speed
Target velocity map for individual vehicles, based on a desired velocity.
Definition Parameters.h:45
AtomicMap< ActorId, bool > upload_route
Parameter specifying if importing a custom route.
Definition Parameters.h:103
bool GetUploadPath(const ActorId &actor_id) const
Method to get if we are uploading a path.
float min_lower_bound
Minimum possible distance to respawn vehicles with respect to the hero vehicle.
Definition Parameters.h:91
void SetDistanceToLeadingVehicle(const ActorPtr &actor, const float distance)
Method to specify how much distance a vehicle should maintain to the leading vehicle.
float GetUpperBoundaryRespawnDormantVehicles() const
Method to retrieve maximum distance from hero vehicle when respawning vehicles.
float GetRandomRightLaneChangePercentage(const ActorId &actor_id)
Method to query percentage probability of a random left lane change for a vehicle.
void SetForceLaneChange(const ActorPtr &actor, const bool direction)
Method to force lane change on a vehicle.
AtomicMap< ActorId, float > perc_run_traffic_light
Map containing % of running a traffic light.
Definition Parameters.h:63
float GetLowerBoundaryRespawnDormantVehicles() const
Method to retrieve minimum distance from hero vehicle when respawning vehicles.
void SetPercentageRunningSign(const ActorPtr &actor, const float perc)
Method to set % to run any traffic sign.
void SetCustomPath(const ActorPtr &actor, const Path path, const bool empty_buffer)
Method to set our own imported path.
std::atomic< bool > hybrid_physics_mode
Hybrid physics mode switch.
Definition Parameters.h:83
void RemoveImportedRoute(const ActorId &actor_id, const bool remove_path)
Method to remove a route.
bool GetAutoLaneChange(const ActorId &actor_id) const
Method to query auto lane change rule for a vehicle.
void SetPercentageIgnoreVehicles(const ActorPtr &actor, const float perc)
Method to set % to ignore any vehicle.
void SetMaxBoundaries(const float lower, const float upper)
Method to set limits for boundaries when respawning vehicles.
void SetSynchronousModeTimeOutInMiliSecond(const double time)
Set Synchronous mode time out.
void SetHybridPhysicsMode(const bool mode_switch)
Method to set hybrid physics mode.
AtomicMap< ActorId, float > perc_random_right
Map containing % of random right lane change.
Definition Parameters.h:75
float GetPercentageRunningSign(const ActorId &actor_id) const
Method to get % to run any traffic light.
void SetCollisionDetection(const ActorPtr &reference_actor, const ActorPtr &other_actor, const bool detect_collision)
Method to set collision detection rules between vehicles.
bool GetRespawnDormantVehicles() const
Method to retrieve if we are automatically respawning vehicles.
AtomicMap< ActorId, std::shared_ptr< AtomicActorSet > > ignore_collision
Map containing a set of actors to be ignored during collision detection.
Definition Parameters.h:55
AtomicMap< ActorId, float > perc_keep_slow_lane
Map containing % of keep slow lane rule.
Definition Parameters.h:71
void SetPercentageRunningLight(const ActorPtr &actor, const float perc)
Method to set % to run any traffic light.
AtomicMap< ActorId, float > perc_run_traffic_sign
Map containing % of running a traffic sign.
Definition Parameters.h:65
void SetRespawnDormantVehicles(const bool mode_switch)
Method to set if we are automatically respawning vehicles.
std::atomic< bool > osm_mode
Parameter specifying Open Street Map mode.
Definition Parameters.h:97
Path GetCustomPath(const ActorId &actor_id) const
Method to get a custom path.
void SetAutoLaneChange(const ActorPtr &actor, const bool enable)
Enable/disable automatic lane change on a vehicle.
AtomicMap< ActorId, float > distance_to_leading_vehicle
Map containing distance to leading vehicle command.
Definition Parameters.h:57
float GetPercentageIgnoreVehicles(const ActorId &actor_id) const
Method to get % to ignore any vehicle.
void SetDesiredSpeed(const ActorPtr &actor, const float value)
Set a vehicle's exact desired velocity.
void RemoveUploadPath(const ActorId &actor_id, const bool remove_path)
Method to remove a list of points.
bool GetSynchronousMode() const
Method to get synchronous mode.
void SetGlobalPercentageSpeedDifference(float const percentage)
Set a global % decrease in velocity with respect to the speed limit.
std::atomic< bool > respawn_dormant_vehicles
Automatic respawn mode switch.
Definition Parameters.h:85
AtomicMap< ActorId, float > lane_offset
Lane offset map for individual vehicles.
Definition Parameters.h:43
void SetPercentageIgnoreWalkers(const ActorPtr &actor, const float perc)
Method to set % to ignore any vehicle.
float GetPercentageRunningLight(const ActorId &actor_id) const
Method to get % to run any traffic light.
bool global_large_vehicle_wide_turn
Global enable flag for the large-vehicle wide-turn manoeuvre.
Definition Parameters.h:53
void SetBoundariesRespawnDormantVehicles(const float lower_bound, const float upper_bound)
Method to set boundaries for respawning vehicles.
bool GetUpdateVehicleLights(const ActorId &actor_id) const
Method to get if the vehicle lights should be updates automatically.
void SetRandomRightLaneChangePercentage(const ActorPtr &actor, const float percentage)
Method to set % to randomly do a right lane change.
void SetPercentageSpeedDifference(const ActorPtr &actor, const float percentage)
Set a vehicle's % decrease in velocity with respect to the speed limit.
AtomicMap< ActorId, bool > auto_update_vehicle_lights
Map containing the automatic vehicle lights update flag.
Definition Parameters.h:77
std::atomic< float > respawn_upper_bound
Maximum distance to respawn vehicles with respect to the hero vehicle.
Definition Parameters.h:89
AtomicMap< ActorId, Route > custom_route
Structure to hold all custom routes.
Definition Parameters.h:105
AtomicMap< ActorId, float > perc_ignore_vehicles
Map containing % of ignoring vehicles.
Definition Parameters.h:69
AtomicMap< ActorId, float > percentage_difference_from_speed_limit
Target velocity map for individual vehicles, based on a % diffrerence from speed limit.
Definition Parameters.h:41
void SetOSMMode(const bool mode_switch)
Method to set Open Street Map mode.
AtomicMap< ActorId, Path > custom_path
Structure to hold all custom paths.
Definition Parameters.h:101
bool GetHybridPhysicsMode() const
Method to retrieve hybrid physics mode.
void SetLargeVehicleWideTurn(const ActorPtr &actor, const bool enable)
Method to enable/disable the wide-turn manoeuvre for a single large vehicle (bus/truck).
void SetSynchronousMode(const bool mode_switch=true)
Method to set synchronous mode.
void SetUpdateVehicleLights(const ActorPtr &actor, const bool do_update)
Method to set the automatic vehicle light state update flag.
float max_upper_bound
Maximum possible distance to respawn vehicles with respect to the hero vehicle.
Definition Parameters.h:93
std::vector< uint8_t > Route
std::vector< cg::Location > Path
carla::SharedPtr< cc::Actor > ActorPtr
This file contains definitions of common data structures used in traffic manager.