Skip to content
Snippets Groups Projects
Select Git revision
  • cfcb84627724ca5bd1dd0110936d8141661251af
  • main default protected
2 results

pawn.cpp

Blame
  • simulation.launch.py 2.17 KiB
    import os
    
    from launch_ros.actions import Node
    from launch import LaunchDescription
    from launch.conditions import IfCondition
    from launch.substitutions import LaunchConfiguration
    from launch.actions import DeclareLaunchArgument, ExecuteProcess, IncludeLaunchDescription
    from ament_index_python.packages import get_package_share_directory
    from launch.launch_description_sources import PythonLaunchDescriptionSource
    
    
    def generate_launch_description():
    
        # Get package dirs
        launch_dir = get_package_share_directory('hollander_bringup')
    
        # Default values
        default_rviz_config_path = os.path.join(launch_dir, 'rviz/urdf_config.rviz')
    
        # Parameters
        configurable_parameters = [
            {'name': 'need_rviz',     'default': 'False',                  'description': 'Whether launch or not rviz'},
            {'name': 'rvizconfig',    'default': default_rviz_config_path, 'description': 'Absolute path to rviz config file'},
            {'name': 'use_sim_time',  'default': 'True',                   'description': 'Flag to enable use_sim_time'},
        ]
    
        def declare_configurable_parameters(parameters):
            return [DeclareLaunchArgument(param['name'], default_value=param['default'], description=param['description']) for param in parameters]
    
        description = IncludeLaunchDescription(
            PythonLaunchDescriptionSource(os.path.join(get_package_share_directory('hollander_bringup'), 'launch', 'description.launch.py')),
            condition=IfCondition(LaunchConfiguration('need_description'))
        )
    
        """ NODES """
        rviz_node = Node(
            package='rviz2',
            executable='rviz2',
            name='rviz2',
            output='screen',
            arguments=['-d', LaunchConfiguration('rvizconfig')],
        )
    
        spawn_entity = Node(
            package='gazebo_ros',
            executable='spawn_entity.py',
            arguments=['-entity', 'hollander', '-topic', 'robot_description'],
            output='screen'
        )
    
        return LaunchDescription(declare_configurable_parameters(configurable_parameters) + [
    
            ExecuteProcess(cmd=['gazebo', '--verbose', '-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so'], output='screen'),
    
            description,
    
            spawn_entity,
            rviz_node,
        ])