105 lines
4.3 KiB
Python
105 lines
4.3 KiB
Python
# Copyright (c) 2021 PickNik, Inc.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# * Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# * Neither the name of the {copyright_holder} nor the names of its
|
|
# contributors may be used to endorse or promote products derived from
|
|
# this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
#
|
|
# Author: Denis Stogl
|
|
|
|
from launch import LaunchDescription
|
|
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
|
|
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
|
from launch.substitutions import LaunchConfiguration, ThisLaunchFileDir
|
|
|
|
|
|
def generate_launch_description():
|
|
# Declare arguments
|
|
declared_arguments = []
|
|
declared_arguments.append(
|
|
DeclareLaunchArgument(
|
|
"robot_ip",
|
|
description="IP address by which the robot can be reached.",
|
|
)
|
|
)
|
|
declared_arguments.append(
|
|
DeclareLaunchArgument(
|
|
"use_fake_hardware",
|
|
default_value="false",
|
|
description="Start robot with fake hardware mirroring command to its states.",
|
|
)
|
|
)
|
|
declared_arguments.append(
|
|
DeclareLaunchArgument(
|
|
"fake_sensor_commands",
|
|
default_value="false",
|
|
description="Enable fake command interfaces for sensors used for simple simulations. "
|
|
"Used only if 'use_fake_hardware' parameter is true.",
|
|
)
|
|
)
|
|
declared_arguments.append(
|
|
DeclareLaunchArgument(
|
|
"initial_joint_controller",
|
|
default_value="scaled_joint_trajectory_controller",
|
|
description="Initially loaded robot controller.",
|
|
choices=[
|
|
"scaled_joint_trajectory_controller",
|
|
"joint_trajectory_controller",
|
|
"forward_velocity_controller",
|
|
"forward_position_controller",
|
|
"freedrive_mode_controller",
|
|
"passthrough_trajectory_controller",
|
|
],
|
|
)
|
|
)
|
|
declared_arguments.append(
|
|
DeclareLaunchArgument(
|
|
"activate_joint_controller",
|
|
default_value="true",
|
|
description="Activate loaded joint controller.",
|
|
)
|
|
)
|
|
|
|
# Initialize Arguments
|
|
robot_ip = LaunchConfiguration("robot_ip")
|
|
use_fake_hardware = LaunchConfiguration("use_fake_hardware")
|
|
fake_sensor_commands = LaunchConfiguration("fake_sensor_commands")
|
|
initial_joint_controller = LaunchConfiguration("initial_joint_controller")
|
|
activate_joint_controller = LaunchConfiguration("activate_joint_controller")
|
|
|
|
base_launch = IncludeLaunchDescription(
|
|
PythonLaunchDescriptionSource([ThisLaunchFileDir(), "/ur_control.launch.py"]),
|
|
launch_arguments={
|
|
"ur_type": "ur10e",
|
|
"robot_ip": robot_ip,
|
|
"use_fake_hardware": use_fake_hardware,
|
|
"fake_sensor_commands": fake_sensor_commands,
|
|
"initial_joint_controller": initial_joint_controller,
|
|
"activate_joint_controller": activate_joint_controller,
|
|
}.items(),
|
|
)
|
|
|
|
return LaunchDescription(declared_arguments + [base_launch])
|