runtime/rasms_moveit_config/launch/rasms_control.launch.py

106 lines
3 KiB
Python
Raw Normal View History

2021-11-03 15:18:12 +04:00
import os
from launch.launch_description import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.conditions import UnlessCondition
from launch.substitutions import PathJoinSubstitution, LaunchConfiguration
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
2021-11-03 15:18:12 +04:00
from ament_index_python.packages import get_package_share_directory
from launch.actions import ExecuteProcess
def generate_launch_description():
# Launch arguments
launch_args = []
launch_args.append(
DeclareLaunchArgument(
name="robot_description",
description="Robot description XML file."
)
)
# Configure robot_description
robot_description = {"robot_description": LaunchConfiguration("robot_description")}
# Load controllers from YAML configuration file
2021-11-03 15:18:12 +04:00
ros2_controllers_path = os.path.join(
get_package_share_directory("rasms_moveit_config"),
"config",
"rasms_controllers.yml",
)
# Prepare controller manager and other required nodes
controller_manager = Node(
package="controller_manager",
executable="ros2_control_node",
2021-11-03 15:18:12 +04:00
parameters=[robot_description, ros2_controllers_path],
output={
"stdout": "screen",
"stderr": "screen"
},
)
robot_state_publisher = Node(
package="robot_state_publisher",
executable="robot_state_publisher",
output="screen",
parameters=[robot_description]
)
2021-11-03 15:18:12 +04:00
static_tf = Node(
package="tf2_ros",
executable="static_transform_publisher",
name="static_transform_publisher",
output="log",
arguments=["0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "world", "base"],
)
joint_state_broadcaster = Node(
package="controller_manager",
executable="spawner.py",
arguments=["joint_state_broadcaster", "--controller-manager", "/controller_manager"],
)
2021-12-31 12:09:29 +07:00
joint_state_publisher = Node(
package="joint_state_publisher",
executable="joint_state_publisher",
name="joint_state_publisher",
output="screen",
)
rasms_arm_controller = Node(
package="controller_manager",
executable="spawner.py",
arguments=["rasms_arm_controller", "--controller-manager", "/controller_manager"],
)
2021-11-03 15:18:12 +04:00
2022-01-09 17:51:08 +04:00
"""load_controllers = []
2021-11-03 15:18:12 +04:00
for controller in [
"rasms_arm_controller",
2021-11-07 20:14:46 +04:00
"joint_state_broadcaster",
2021-11-03 15:18:12 +04:00
]:
load_controllers += [
ExecuteProcess(
cmd=["ros2 run controller_manager spawner.py {}".format(controller)],
shell=True,
output="screen",
)
2022-01-09 17:51:08 +04:00
]"""
return LaunchDescription(
2021-11-03 15:18:12 +04:00
launch_args +
2022-01-09 17:51:08 +04:00
#load_controllers +
2021-11-03 15:18:12 +04:00
[
controller_manager,
robot_state_publisher,
2022-01-09 17:51:08 +04:00
#static_tf,
joint_state_broadcaster,
2022-01-09 17:56:22 +08:00
rasms_arm_controller,
2022-01-09 17:51:08 +04:00
#joint_state_publisher
2021-11-03 15:18:12 +04:00
]
2021-11-07 20:14:46 +04:00
)