Select Git revision
description.launch.py
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,
])