diff --git a/launch/joy.launch.py b/launch/joy.launch.py new file mode 100644 index 0000000..67d73d4 --- /dev/null +++ b/launch/joy.launch.py @@ -0,0 +1,44 @@ +from launch import LaunchDescription +from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument +from launch.substitutions import ( + PathJoinSubstitution, + LaunchConfiguration, +) +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch_ros.substitutions import FindPackageShare +from launch_ros.actions import Node +from launch_ros.descriptions import ParameterFile + +def generate_launch_description(): + pkg_unity_robot_controller = FindPackageShare(package="").find("unity_robot_controller") + + # Launch arguments + launch_args = [ + DeclareLaunchArgument( + "namespace", default_value="sirius_bot", description="Top-level namespace" + ), + # DeclareLaunchArgument( + # "start_rviz", default_value="True", description="Use basic rviz" + # ), + ] + + joy_config = PathJoinSubstitution([pkg_unity_robot_controller, "config", "joy_config.yaml"]) + + joy_node = Node( + package="joy", + executable="joy_node", + name="joy", + namespace=LaunchConfiguration("namespace"), + output="both", + parameters=[ + ParameterFile(joy_config), + ], + ) + + + return LaunchDescription( + launch_args + + [ + joy_node, + ] + ) diff --git a/launch/joy_wave_rover.launch.py b/launch/wave_rover.launch.py similarity index 65% rename from launch/joy_wave_rover.launch.py rename to launch/wave_rover.launch.py index edd73e1..a7d9bdd 100644 --- a/launch/joy_wave_rover.launch.py +++ b/launch/wave_rover.launch.py @@ -8,8 +8,11 @@ from launch.launch_description_sources import PythonLaunchDescriptionSource from launch_ros.substitutions import FindPackageShare from launch_ros.actions import Node from launch_ros.descriptions import ParameterFile +from launch.conditions import IfCondition def generate_launch_description(): + + pkg_wave_rover_controller = FindPackageShare(package="").find("wave_rover_controller") pkg_unity_robot_controller = FindPackageShare(package="").find("unity_robot_controller") # Launch arguments @@ -22,12 +25,19 @@ def generate_launch_description(): DeclareLaunchArgument( "namespace", default_value="sirius_bot", description="Top-level namespace" ), - # DeclareLaunchArgument( - # "start_rviz", default_value="True", description="Use basic rviz" - # ), + DeclareLaunchArgument( + "use_joy", default_value="False", description="Use joystick for control" + ), ] - joy_config = PathJoinSubstitution([pkg_unity_robot_controller, "config", "joy_config.yaml"]) + + joy = IncludeLaunchDescription( + PythonLaunchDescriptionSource( + PathJoinSubstitution([pkg_wave_rover_controller, "launch", "joy.launch.py"]) + ), + launch_arguments={"namespace": LaunchConfiguration("namespace")}.items(), + condition=IfCondition(LaunchConfiguration('use_joy')) + ) model = LaunchConfiguration("joy_model") joy_params = PathJoinSubstitution([pkg_unity_robot_controller, @@ -35,16 +45,16 @@ def generate_launch_description(): model ]) - joy_node = Node( - package="joy", - executable="joy_node", - name="joy", - namespace=LaunchConfiguration("namespace"), - output="both", - parameters=[ - ParameterFile(joy_config), - ], - ) + # joy_node = Node( + # package="joy", + # executable="joy_node", + # name="joy", + # namespace=LaunchConfiguration("namespace"), + # output="both", + # parameters=[ + # ParameterFile(joy_config), + # ], + # ) joy_wave_rover_controller_node = Node( package="wave_rover_controller", @@ -57,11 +67,10 @@ def generate_launch_description(): {'serial_port': '/dev/ttyUSB0'}] ) - return LaunchDescription( launch_args + [ - joy_node, + joy, joy_wave_rover_controller_node, ] )