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.
stop_and_dwell_strategic_plugin_config.hpp
Go to the documentation of this file.
1#pragma once
2/*
3 * Copyright (C) 2023 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: Length od the vehicle
44 double veh_length = 4.0;
45
46 // Double: The distance bus drives to be considered out of bus stop
48
50 std::string strategic_plugin_name = "stop_and_dwell_strategic_plugin";
51
53 std::string lane_following_plugin_name = "inlanecruising_plugin";
54
56 std::string stop_and_wait_plugin_name = "stop_and_wait_plugin";
57
59 std::string vehicle_id = "default_id";
60
62 double activation_distance = 200.0;
63
65 double dwell_time = 0.0;
66
69
72
73
74
75 // Stream operator for this config
76 friend std::ostream &operator<<(std::ostream &output, const StopAndDwellStrategicPluginConfig &c)
77 {
78 output << "StopAndDwellStrategicPluginConfig { " << std::endl
79 << "vehicle_decel_limit: " << c.vehicle_decel_limit << std::endl
80 << "vehicle_decel_limit_multiplier: " << c.vehicle_decel_limit_multiplier << std::endl
81 << "vehicle_accel_limit: " << c.vehicle_accel_limit << std::endl
82 << "vehicle_accel_limit_multiplier: " << c.vehicle_accel_limit_multiplier << std::endl
83 << "stop_line_buffer: " << c.stop_line_buffer << std::endl
84 << "min_maneuver_planning_period: " << c.min_maneuver_planning_period << std::endl
85 << "veh_length: " << c.veh_length << std::endl
86 << "bus_line_exit_zone_length: " << c.bus_line_exit_zone_length << std::endl
87 << "strategic_plugin_name: " << c.strategic_plugin_name << std::endl
88 << "lane_following_plugin_name: " << c.lane_following_plugin_name << std::endl
89 << "stop_and_wait_plugin_name: " << c.stop_and_wait_plugin_name << std::endl
90 << "vehicle_id: " << c.vehicle_id << std::endl
91 << "activation_distance: " << c.activation_distance << std::endl
92 << "dwell_time: " << c.dwell_time << std::endl
93 << "deceleration_fraction: " << c.deceleration_fraction << std::endl
94 << "desired_distance_to_stop_buffer: " << c.desired_distance_to_stop_buffer << std::endl
95 << "}" << std::endl;
96 return output;
97 }
98};
99} // namespace stop_and_dwell_strategic_plugin
Struct to store the configuration settings for the WzStrategicPlugin class.
std::string strategic_plugin_name
The name to use for this plugin during comminications with the arbitrator.
friend std::ostream & operator<<(std::ostream &output, const StopAndDwellStrategicPluginConfig &c)
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.
double min_maneuver_planning_period
The minimum period in seconds which a maneuver plan must cover if the plugin wishes to control the wh...
double deceleration_fraction
Double: Safety multiplier (must be less than 1.0) of planned allowable vehicle deceleration to use wh...
double vehicle_decel_limit_multiplier
A multiplier to apply to the maximum allowable vehicle deceleration limit so we plan under our capabi...
double desired_distance_to_stop_buffer
Double: Desired distance to stop buffer in meters.
double vehicle_accel_limit
The maximum allowable vehicle acceleration limit in m/s.
std::string lane_following_plugin_name
The name of the tactical plugin to use for Lane Following 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_multiplier
A multiplier to apply to the maximum allowable vehicle acceleration limit so we plan under our capabi...