2023-02-03 07:04:12 +00:00
|
|
|
from launch import LaunchDescription
|
|
|
|
from launch_ros.actions import Node
|
2023-03-31 20:24:56 +00:00
|
|
|
from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution
|
|
|
|
from launch_ros.substitutions import FindPackageShare
|
2023-02-03 07:04:12 +00:00
|
|
|
from ament_index_python.packages import get_package_share_directory
|
|
|
|
import os
|
2023-03-31 20:24:56 +00:00
|
|
|
import yaml
|
|
|
|
import math
|
|
|
|
|
|
|
|
|
2023-11-14 13:04:11 +03:00
|
|
|
# def construct_angle_radians(loader, node):
|
|
|
|
# """Utility function to construct radian values from yaml."""
|
|
|
|
# value = loader.construct_scalar(node)
|
|
|
|
# try:
|
|
|
|
# return float(value)
|
|
|
|
# except SyntaxError:
|
|
|
|
# raise Exception("invalid expression: %s" % value)
|
2023-02-03 07:04:12 +00:00
|
|
|
|
2023-11-14 13:04:11 +03:00
|
|
|
# def construct_angle_degrees(loader, node):
|
|
|
|
# """Utility function for converting degrees into radians from yaml."""
|
|
|
|
# return math.radians(construct_angle_radians(loader, node))
|
2023-02-03 07:04:12 +00:00
|
|
|
|
2023-11-14 13:04:11 +03:00
|
|
|
# def load_yaml(package_name, file_path):
|
|
|
|
# package_path = get_package_share_directory(package_name)
|
|
|
|
# absolute_file_path = os.path.join(package_path, file_path)
|
|
|
|
|
|
|
|
# try:
|
|
|
|
# yaml.SafeLoader.add_constructor("!radians", construct_angle_radians)
|
|
|
|
# yaml.SafeLoader.add_constructor("!degrees", construct_angle_degrees)
|
|
|
|
# except Exception:
|
|
|
|
# raise Exception("yaml support not available; install python-yaml")
|
|
|
|
|
|
|
|
# try:
|
|
|
|
# with open(absolute_file_path) as file:
|
|
|
|
# return yaml.safe_load(file)
|
|
|
|
# except OSError: # parent of IOError, OSError *and* WindowsError where available
|
|
|
|
# return None
|
|
|
|
|
|
|
|
|
|
|
|
# def generate_launch_description():
|
|
|
|
|
|
|
|
# bt_config = os.path.join(
|
|
|
|
# get_package_share_directory('rbs_bt_executor'),
|
|
|
|
# 'config',
|
|
|
|
# 'params.yaml'
|
|
|
|
# )
|
|
|
|
# points = load_yaml(
|
|
|
|
# package_name="rbs_bt_executor",
|
|
|
|
# file_path="config/points.yaml"
|
|
|
|
# )
|
2023-02-03 07:04:12 +00:00
|
|
|
|
2023-11-14 13:04:11 +03:00
|
|
|
# gripperPoints = load_yaml(
|
|
|
|
# package_name="rbs_bt_executor",
|
|
|
|
# file_path="config/gripperPositions.yaml")
|
|
|
|
|
|
|
|
# robot_description_semantic_content = Command(
|
|
|
|
# [
|
|
|
|
# PathJoinSubstitution([FindExecutable(name="xacro")]),
|
|
|
|
# " ",
|
|
|
|
# PathJoinSubstitution(
|
|
|
|
# [FindPackageShare("ur_moveit_config"), "srdf", "ur.srdf.xacro"]
|
|
|
|
# ),
|
|
|
|
# " ",
|
|
|
|
# "name:=",
|
|
|
|
# "ur",
|
|
|
|
# " ",
|
|
|
|
# "prefix:=",
|
|
|
|
# "",
|
|
|
|
# " ",
|
|
|
|
# ]
|
|
|
|
# )
|
|
|
|
# robot_description_semantic = {"robot_description_semantic": robot_description_semantic_content}
|
2023-03-31 20:24:56 +00:00
|
|
|
|
2023-02-03 07:04:12 +00:00
|
|
|
|
|
|
|
|
2023-11-14 13:04:11 +03:00
|
|
|
# return LaunchDescription([
|
|
|
|
# Node(
|
|
|
|
# package='behavior_tree',
|
|
|
|
# namespace='',
|
|
|
|
# executable='bt_engine',
|
|
|
|
# #prefix=['xterm -e gdb -ex run --args'],
|
|
|
|
# parameters=[
|
|
|
|
# {'bt_file_path': os.path.join(get_package_share_directory('rbs_bt_executor'), 'bt_trees/test_tree.xml')},
|
|
|
|
# {'plugins':['rbs_skill_move_topose_bt_action_client', "rbs_skill_get_pick_place_pose_service_client", "rbs_skill_gripper_move_bt_action_client", "rbs_skill_move_joint_state", "rbs_add_planning_scene_object"]},
|
|
|
|
# gripperPoints,
|
|
|
|
# robot_description_semantic
|
|
|
|
# ]
|
|
|
|
# )
|
|
|
|
# ])
|
|
|
|
|
|
|
|
|
|
|
|
def generate_launch_description():
|
|
|
|
|
2023-02-03 07:04:12 +00:00
|
|
|
return LaunchDescription([
|
|
|
|
Node(
|
|
|
|
package='behavior_tree',
|
|
|
|
namespace='',
|
|
|
|
executable='bt_engine',
|
2023-11-14 13:04:11 +03:00
|
|
|
prefix=['xterm -e gdb -ex run --args'],
|
2023-02-03 07:04:12 +00:00
|
|
|
parameters=[
|
2023-11-14 13:04:11 +03:00
|
|
|
{'bt_file_path': os.path.join(get_package_share_directory('rbs_bt_executor'), 'bt_trees/6Dpe_test.xml')},
|
|
|
|
{'plugins':["rbs_pose_estimation"]},
|
2023-02-03 07:04:12 +00:00
|
|
|
]
|
2023-03-31 20:24:56 +00:00
|
|
|
)
|
2023-02-03 07:04:12 +00:00
|
|
|
])
|