from launch import LaunchDescription from launch_ros.actions import Node from launch.substitutions import LaunchConfiguration, Command, FindExecutable, PathJoinSubstitution from launch.actions import DeclareLaunchArgument from launch_ros.substitutions import FindPackageShare from launch_ros.descriptions import ParameterValue from launch_ros.actions import LifecycleNode import os from ament_index_python.packages import get_package_share_directory def generate_launch_description(): use_sim_time = LaunchConfiguration('use_sim_time') joy_params = os.path.join(get_package_share_directory('cps_rmp220_support'),'config','joystick.yaml') namespace = "/rmp" joy_node = Node( package='joy', executable='joy_node', parameters=[joy_params, {'use_sim_time': use_sim_time}], namespace = namespace ) teleop_node = Node( package='rmp220_teleop', executable='rmp220_teleop', name='rmp220_teleop', parameters=[joy_params, {'use_sim_time': use_sim_time}], remappings=[('/cmd_vel','cmd_vel_joy')], namespace = namespace ) twist_mux_params = os.path.join(get_package_share_directory('cps_rmp220_support'),'config','twist_mux.yaml') twist_mux = Node( package="twist_mux", executable="twist_mux", parameters=[twist_mux_params, {'use_sim_time': False}], remappings=[('cmd_vel_joy','/rmp/cmd_vel_joy')], namespace = namespace ) return LaunchDescription([ DeclareLaunchArgument( 'use_sim_time', default_value='false', description='Use sim time if true'), joy_node, teleop_node, twist_mux ])