Select Git revision
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,
])