Carma-platform v4.2.0
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
sci_strategic_plugin_config.hpp
Go to the documentation of this file.
1#pragma once
2/*
3 * Copyright (C) 2022 LEIDOS.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18#include <string>
19
21{
24{
26 double vehicle_decel_limit = 2.0;
27
30
32 double vehicle_accel_limit = 2.0;
33
36
38 double stop_line_buffer = 3.0;
39
42
43 // Double: Approximate update time interval of carma streets
44 double delta_t = 1.0;
45
46 // Double: Minimum inter-vehicle gap
47 double min_gap = 10.0;
48
49 // Double: Length od the vehicle
50 double veh_length = 4.0;
51
52 // Double: Vehicle reaction time to a received schedule in seconds (approximate value, only used for communication with the schedule)
53 double reaction_time = 5.0;
54
55 // Double: The distance vehicle drives to be considered out of intersections
57
59 std::string strategic_plugin_name = "sci_strategic_plugin";
60
62 std::string lane_following_plugin_name = "stop_controlled_intersection_tactical_plugin";
63
65 std::string stop_and_wait_plugin_name = "stop_and_wait_plugin";
66
68 std::string intersection_transit_plugin_name = "intersection_transit_maneuvering";
69
71 std::string vehicle_id = "default_id";
72
73 // Stream operator for this config
74 friend std::ostream &operator<<(std::ostream &output, const SCIStrategicPluginConfig &c)
75 {
76 output << "SCIStrategicPluginConfig { " << std::endl
77 << "vehicle_decel_limit: " << c.vehicle_decel_limit << std::endl
78 << "vehicle_decel_limit_multiplier: " << c.vehicle_decel_limit_multiplier << std::endl
79 << "vehicle_accel_limit: " << c.vehicle_accel_limit << std::endl
80 << "vehicle_accel_limit_multiplier: " << c.vehicle_accel_limit_multiplier << std::endl
81 << "stop_line_buffer: " << c.stop_line_buffer << std::endl
82 << "min_maneuver_planning_period: " << c.min_maneuver_planning_period << std::endl
83 << "delta_t: " << c.delta_t << std::endl
84 << "min_gap: " << c.min_gap << std::endl
85 << "veh_length: " << c.veh_length << std::endl
86 << "reaction_time: " << c.reaction_time << std::endl
87 << "intersection_exit_zone_length: " << c.intersection_exit_zone_length << std::endl
88 << "strategic_plugin_name: " << c.strategic_plugin_name << std::endl
89 << "lane_following_plugin_name: " << c.lane_following_plugin_name << std::endl
90 << "stop_and_wait_plugin_name: " << c.stop_and_wait_plugin_name << std::endl
91 << "intersection_transit_plugin_name: " << c.intersection_transit_plugin_name << std::endl
92 << "vehicle_id: " << c.vehicle_id << std::endl
93 << "}" << std::endl;
94 return output;
95 }
96};
97} // namespace localizer
Struct to store the configuration settings for the WzStrategicPlugin class.
friend std::ostream & operator<<(std::ostream &output, const SCIStrategicPluginConfig &c)
std::string strategic_plugin_name
The name to use for this plugin during comminications with the arbitrator.
double min_maneuver_planning_period
The minimum period in seconds which a maneuver plan must cover if the plugin wishes to control the wh...
std::string lane_following_plugin_name
The name of the tactical plugin to use for Lane Following trajectory planning.
double vehicle_accel_limit_multiplier
A multiplier to apply to the maximum allowable vehicle acceleration limit so we plan under our capabi...
double vehicle_decel_limit_multiplier
A multiplier to apply to the maximum allowable vehicle deceleration limit so we plan under our capabi...
double vehicle_decel_limit
The maximum allowable vehicle deceleration limit in m/s.
std::string stop_and_wait_plugin_name
The name of the plugin to use for stop and wait trajectory planning.
std::string vehicle_id
License plate of the vehicle.
std::string intersection_transit_plugin_name
The name of the plugin to use for intersection transit trajectory planning.
double stop_line_buffer
A buffer infront of the stopping location which will still be considered a valid stop.
double vehicle_accel_limit
The maximum allowable vehicle acceleration limit in m/s.