def generate_launch_description()

in cloudwatch_logger/launch/cloudwatch_logger.launch.py [0:0]


def generate_launch_description():
    default_config = os.path.join(get_package_share_directory('cloudwatch_logger'), 'config', 'sample_configuration.yaml')
    with open(default_config, 'r') as f:
        config_text = f.read()
    config_yaml = yaml.safe_load(config_text)
    default_log_group_name = config_yaml['cloudwatch_logger']['ros__parameters']['log_group_name']
    default_aws_region = config_yaml['cloudwatch_logger']['ros__parameters']['aws_client_configuration']['region']

    parameters = [launch.substitutions.LaunchConfiguration("config_file")]
    parameters.append({"log_group_name": launch.substitutions.LaunchConfiguration("log_group_name")})
    parameters.append({"aws_client_configuration": { "region": launch.substitutions.LaunchConfiguration("aws_region") }})
  
    return LaunchDescription([
        launch.actions.DeclareLaunchArgument(
            "node_name",
            default_value="cloudwatch_logger",
        ),
        launch.actions.DeclareLaunchArgument(
            "config_file",
            default_value=default_config
        ),
        launch.actions.DeclareLaunchArgument(
            "aws_region",
            default_value=default_aws_region
        ),
        launch.actions.DeclareLaunchArgument(
            "log_group_name",
            default_value=default_log_group_name
        ),
        Node(
            package='cloudwatch_logger',
            node_executable='cloudwatch_logger',
            node_name=launch.substitutions.LaunchConfiguration('node_name'),
            parameters=parameters,
            # workaround until https://github.com/ros2/rmw_fastrtps/issues/265 is resolved
            arguments=["__log_disable_rosout:=true"],
            output='screen'
        ),
    ])