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.
arbitrator Namespace Reference

Classes

class  Arbitrator
 
class  ArbitratorNode
 
class  ArbitratorStateMachine
 
struct  ArbitratorStateTransition
 
class  BeamSearchStrategy
 Implementation of SearchStrategy by usage of Beam Search. More...
 
class  CapabilitiesInterface
 Generic interface for interacting with Plugins via their capabilities instead of directly by their topics. More...
 
struct  Config
 Config struct. More...
 
class  CostFunction
 Generic interface representing a means of computing cost for plans in the search graph. More...
 
class  CostSystemCostFunction
 Implementation of the CostFunction interface. More...
 
class  FixedPriorityCostFunction
 Implementation of the CostFunction interface. More...
 
class  NeighborGenerator
 
class  PlanningStrategy
 Generic interface representing a strategy for arriving at a maneuver plan. More...
 
class  PluginNeighborGenerator
 Implementation of the NeighborGenerator interface using plugins. More...
 
class  SearchStrategy
 Generic interface representing a computation to prioritize nodes for expansion in a search graph. More...
 
class  TreePlanner
 Implementation of PlanningStrategy using a generic tree search algorithm. More...
 
struct  VehicleState
 Struct defining the vehicle state required for maneuver planning. More...
 

Enumerations

enum  ArbitratorState {
  INITIAL = 0 , PLANNING , WAITING , PAUSED ,
  SHUTDOWN
}
 
enum  ArbitratorEvent {
  SYSTEM_STARTUP_COMPLETE = 0 , PLANNING_COMPLETE , PLANNING_TIMER_TRIGGER , ARBITRATOR_PAUSED ,
  ARBITRATOR_RESUMED , SYSTEM_SHUTDOWN_INITIATED
}
 

Functions

std::ostream & operator<< (std::ostream &output, const std::map< std::string, double > &map)
 
def generate_launch_description ()
 

Enumeration Type Documentation

◆ ArbitratorEvent

Possible events for the Arbitrator to respond to: SYSTEM_STARTUP_COMPLETE - The rest of the system is ready for the arbitrator to being planning PLANNING_COMPLETE - The Arbitrator itself has completed a maneuver plan PLANNING_TIMER_TRIGGER - The time has come for another plan to be generated ARBITRATOR_PAUSED - The Arbitrator has been paused externally ARBITRATOR_RESUMED - The Arbitrator has been resumed externally

Enumerator
SYSTEM_STARTUP_COMPLETE 
PLANNING_COMPLETE 
PLANNING_TIMER_TRIGGER 
ARBITRATOR_PAUSED 
ARBITRATOR_RESUMED 
SYSTEM_SHUTDOWN_INITIATED 

Definition at line 47 of file arbitrator_state_machine.hpp.

◆ ArbitratorState

Possible states for the Arbitrator to be in: INITIAL- Startup state while the rest of the system is initalizing PLANNING - Actiively generating a maneuver plan WAITING - After the completion of a plan, waiting for a timer trigger to replan PAUSED - Similar to waiting, but will ignore a timer trigger. Must be resumed externally.

Enumerator
INITIAL 
PLANNING 
WAITING 
PAUSED 
SHUTDOWN 

Definition at line 31 of file arbitrator_state_machine.hpp.

Function Documentation

◆ generate_launch_description()

def arbitrator.generate_launch_description ( )

Definition at line 31 of file arbitrator.launch.py.

32
33 # Declare the log_level launch argument
34 log_level = LaunchConfiguration('log_level')
35 declare_log_level_arg = DeclareLaunchArgument(
36 name ='log_level', default_value='DEBUG')
37
38 # Get parameter file path
39 param_file_path = os.path.join(
40 get_package_share_directory('arbitrator'), 'config/arbitrator_params.yaml')
41
42
43 # Launch node(s) in a carma container to allow logging to be configured
44 container = ComposableNodeContainer(
45 package='carma_ros2_utils',
46 name='arbitrator_container',
47 namespace=GetCurrentNamespace(),
48 executable='carma_component_container_mt',
49 composable_node_descriptions=[
50
51 # Launch the core node(s)
52 ComposableNode(
53 package='arbitrator',
54 plugin='arbitrator::ArbitratorNode',
55 name='arbitrator_node',
56 extra_arguments=[
57 {'use_intra_process_comms': True},
58 {'--log-level' : log_level }
59 ],
60 parameters=[ param_file_path ]
61 ),
62 ]
63 )
64
65 return LaunchDescription([
66 declare_log_level_arg,
67 container
68 ])
def generate_launch_description()

◆ operator<<()

std::ostream & arbitrator::operator<< ( std::ostream &  output,
const std::map< std::string, double > &  map 
)

Definition at line 31 of file arbitrator_config.hpp.

32 {
33 output << "Map { " << std::endl;
34 for (auto const& pair : map)
35 {
36 output << pair.first << ": " << pair.second << std::endl;
37 }
38 output << "}";
39 return output;
40 }