Skip to content
Snippets Groups Projects
Select Git revision
  • cb849b521a1aec43d2d61bc640b637f07ecc2b09
  • master default protected
  • feature/lifecycled_bringup
  • develop
  • feature/pointcloud_merge
  • feature/odometry
  • feature/robot_description
  • feature/hollander_driver
8 results

description.launch.py

Blame
  • description.launch.py 2.00 KiB
    import os
    
    from launch_ros.actions import Node
    from launch import LaunchDescription
    from launch.actions import DeclareLaunchArgument
    from launch.substitutions import Command, LaunchConfiguration
    from ament_index_python.packages import get_package_share_directory
        
    
    def generate_launch_description():
    
        # Get package dirs
        package_dir = get_package_share_directory('hollander_description')
    
        # Default values
        default_model_path = os.path.join(package_dir, 'src/description/rollende_hollander.urdf')
    
        configurable_parameters = [
            {'name': 'model',     'default': default_model_path, 'description': 'Absolute path to robot urdf file'},
            {'name': 'namespace', 'default': 'hollander',        'description': 'Namespace to avoide conflicts'},
            {'name': 'log_level', 'default': 'info',             'description': 'debug log level [DEBUG|INFO|WARN|ERROR|FATAL]'},
           ]
    
        def declare_configurable_parameters(parameters):
            return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters]
    
    
        """ NODES """
        robot_state_publisher_node = Node(
            package='robot_state_publisher',
            executable='robot_state_publisher',
            name='robot_state_publisher',
            namespace=LaunchConfiguration("namespace"),
            parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}],
            arguments=['--ros-args', '--log-level', LaunchConfiguration('log_level')],
            emulate_tty=True,
        )
    
        joint_state_publisher_node = Node(
            package='joint_state_publisher',
            executable='joint_state_publisher',
            name='joint_state_publisher',
            namespace=LaunchConfiguration("namespace"),
            arguments=['--ros-args', '--log-level', LaunchConfiguration('log_level')],
            emulate_tty=True,
        )
    
        return LaunchDescription(declare_configurable_parameters(configurable_parameters) + [
            robot_state_publisher_node,
            joint_state_publisher_node,
        ])