launch_pal package from launch_pal repo

launch_pal

Package Summary

Tags No category tags.
Version 0.1.15
License Apache License 2.0
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/pal-robotics/launch_pal.git
VCS Type git
VCS Version master
Last Updated 2024-07-04
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Utilities for launch files

Additional Links

Maintainers

  • Jordan Palacios
  • Noel Jimenez

Authors

No additional authors.

launch_pal

Utilities for simplifying some common ROS2 launch operations.

get_pal_configuration

Implementation of the PAL's PAPS-007 standard for configuration management.

Retrieves all the parameters, remappings and arguments for a given node by looking for ament_index-registered YAML configurations file. It properly handle overloading of parameters, enabling for instance to have a default configuration and a specific configuration for a given robot family or robot unit.

Usage:

#...
from launch_pal import get_pal_configuration

def generate_launch_description():

    ld = LaunchDescription()

    config = get_pal_configuration(pkg='pkg_name',
                                   node='node_name', 
                                   ld=ld, # optional; only used for logging
                                   )
    my_node = Node(
        name='node_name',
        namespace='',
        package='pkg_name',
        executable='node_executable',
        parameters=config['parameters'],
        remappings=config['remappings'],
        arguments=config['arguments'],
    )

    # ...

    ld.add_action(my_node)

    return ld

robot_arguments

Contains classes to read launch argument settings directly from a YAML file, grouped per robot type. For each argument the name, the description, default value and possible choices are provided. The classes can be imported to remove boilerplate of robot launch arguments.

One special class, RobotArgs , contains all available launch arguments for PAL Robots. These arguments consist of only a name and description.

Example:

from launch_pal.arg_utils import LaunchArgumentsBase
from launch_pal.robot_arguments import TiagoArgs, RobotArgs
from launch.actions import DeclareLaunchArgument
from dataclasses import dataclass

@dataclass(frozen=True)
class LaunchArguments(LaunchArgumentsBase):

    # Tiago specific settings
    wheel_model: DeclareLaunchArgument = TiagoArgs.wheel_model
    # Robot agnostic argument
    base_type: DeclareLaunchArgument = RobotArgs.base_type

arg_utils

Contains utilities for declaring launch arguments and removing boiler plate.

An example of the use can be found in the launch_tutorial package that compares the standard boilerplate with the an updated version of the launch file. This updated version also provides a structured architecture that seperates launch arguments from other launch actions.

LaunchArgumentsBase: A dataclass that contains only DeclareLaunchArgument objects. The class is used to ease the process of adding launch arguments to the launch description. Has member function add_to_launch_description to automatically add all launch arguments to the launch description.

read_launch_argument: Used in Opaque functions to read the value of a launch argument and substitute it to text.

param_utils

Contains utilities for merging yaml parameter files or replace parametric variables in a param file.

parse_parametric_yaml: Checks yaml files for variables of layout ${VAR_NAME}and parses them. Parsing is done by giving a dictionary as input:

parse_dict = { VAR_NAME_1: value_1,
               VAR_NAME_2: value_2}

merge_param_files: Merges multiple yaml files into one single file to be loaded by a node.

include_utils

Contains utilities to reduce the boilerplate necessary for including files.

include_launch_py_description: Include a python launch file.

include_scoped_launch_py_description: Include a python launch file but avoid all launch arguments to be passed on by default. Any required launch arguments have to explicitly passed on to the launch file.

    scoped_launch_file = include_scoped_launch_py_description(pkg_name='my_pkg', 
    paths=['launch','my_file.launch.py'],
    launch_arguments={ 'arg_a': DeclareLaunchArgument('arg_a'),
                       'arg_2': DeclareLaunchArgument('arg_b'),
                       'arg_c': LaunchConfiguration('arg_c'),
                       'arg_d': "some_value' }
    env_vars=[SetEnvironmentVariable("VAR_NAME", 'value)]
    condition=IfCondition(LaunchConfiguration('arg_a')))

NOTE: This mimics the behavior of including launch files in ROS 1. Helpful in large launch files structures to avoid launch arguments to be overwritten by accident.

composition_utils

Contains utilities to reduce the boilerplate necessary for using ROS 2 components

generate_component_list: generates a list of composable nodes from a YAML and a package name, ready to be added or loaded into a ComposableNodeContainer:

components:
  <COMPONENT-NAME>:
    type: <DIAGNOSTIC-TYPE>
      ros__parameters: 
        name: <FULL-DIAGNOSTIC_DESCRIPTOR>
        [<REST-OF-PARAMS>]

It can be used from a launch file like:

component_list = generate_component_list(components_yaml, pkg_name)

And then added normally to a container:

container = ComposableNodeContainer(
    name="container_name",
    namespace="",
    package="rclcpp_components",
    executable="component_container",
    composable_node_descriptions=component_list,
)

robot_utils (DEPRECATED)

Declare a single launch argument given by the robot name.

Example:

robot_name = 'tiago'
laser_model_arg = get_laser_model(robot_name)

CHANGELOG

Changelog for package launch_pal

0.1.15 (2024-07-04)

  • Merge branch \'omm/feat/composition_utils\' into \'master\' Composition utils See merge request common/launch_pal!38
  • Added package field for extended usability
  • Readme and new type variable name
  • Removing pal_computer_monitor dep
  • Composition utils to generate containers from a yaml files
  • Merge branch \'paps007\' into \'master\' Add implementation of PAPS-007 \'get_pal_configuration\' See merge request common/launch_pal!57
  • add impl of PAPS-007 \'get_pal_configuration\'
  • Merge branch \'abr/feat/advanced-navigation\' into \'master\' added advanced navigation See merge request common/launch_pal!58
  • added advanced navigation
  • Contributors: Noel Jimenez, Oscar, S

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged launch_pal at Robotics Stack Exchange

No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.

launch_pal package from launch_pal repo

launch_pal

Package Summary

Tags No category tags.
Version 0.0.2
License Apache
Build type AMENT_PYTHON
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/pal-robotics/launch_pal.git
VCS Type git
VCS Version foxy-devel
Last Updated 2021-03-15
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Utilities for launch files

Additional Links

No additional links.

Maintainers

  • user

Authors

No additional authors.

launch_pal

Utilities for simplifying some common ROS2 launch operations.

CHANGELOG

Changelog for package launch_pal

0.0.2 (2021-03-15)

  • Added missing dependencies
  • Contributors: Jordan Palacios

0.0.1 (2021-03-15)

  • Add CONTRIBUTING and LICENSE
  • Apply linter fixes
  • Add param_utils
  • PAL utils for ROS2 launch files
  • Contributors: Victor Lopez

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged launch_pal at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.