diff --git a/CustomRobots/robot_arms/config/ur3_controllers.yaml b/CustomRobots/robot_arms/config/ur3_controllers.yaml new file mode 100644 index 000000000..0f2d6d906 --- /dev/null +++ b/CustomRobots/robot_arms/config/ur3_controllers.yaml @@ -0,0 +1,86 @@ +controller_manager: + ros__parameters: + update_rate: 100 # Hz + + joint_state_broadcaster: + type: joint_state_broadcaster/JointStateBroadcaster + + joint_trajectory_controller: + type: joint_trajectory_controller/JointTrajectoryController + + gripper_controller: + type: joint_trajectory_controller/JointTrajectoryController + +joint_state_broadcaster: + ros__parameters: + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + - robotiq_85_left_knuckle_joint + + interfaces: + - position + - velocity + - effort + +joint_trajectory_controller: + ros__parameters: + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + + command_interfaces: + - position + + state_interfaces: + - position + - velocity + + state_publish_rate: 100.0 + action_monitor_rate: 20.0 + allow_partial_joints_goal: false + allow_nonzero_velocity_at_trajectory_end: true + allow_integration_in_goal_trajectories: true + + constraints: + stopped_velocity_tolerance: 0.01 + goal_time: 0.0 + +gripper_controller: + ros__parameters: + joints: + - robotiq_85_left_knuckle_joint + + command_interfaces: + - position + + state_interfaces: + - position + - velocity + + state_publish_rate: 100.0 + action_monitor_rate: 20.0 + allow_partial_joints_goal: false + allow_integration_in_goal_trajectories: true + + constraints: + stopped_velocity_tolerance: 0.01 + goal_time: 0.0 + robotiq_85_left_knuckle_joint: + trajectory: 0.5 + goal: 0.5 + + gains: + robotiq_85_left_knuckle_joint: + p: 100.0 + d: 1.0 + i: 0.01 + i_clamp: 1.0 diff --git a/CustomRobots/robot_arms/config/ur5/joint_limits.yaml b/CustomRobots/robot_arms/config/ur5/joint_limits.yaml index e6093ea65..947574c93 100644 --- a/CustomRobots/robot_arms/config/ur5/joint_limits.yaml +++ b/CustomRobots/robot_arms/config/ur5/joint_limits.yaml @@ -15,9 +15,9 @@ joint_limits: has_position_limits: true has_velocity_limits: true max_effort: 150.0 - max_position: !degrees 360.0 + max_position: !degrees 180.0 max_velocity: !degrees 180.0 - min_position: !degrees -360.0 + min_position: !degrees -180.0 shoulder_lift_joint: # acceleration limits are not publicly available has_acceleration_limits: false @@ -25,9 +25,9 @@ joint_limits: has_position_limits: true has_velocity_limits: true max_effort: 150.0 - max_position: !degrees 360.0 + max_position: !degrees 180.0 max_velocity: !degrees 180.0 - min_position: !degrees -360.0 + min_position: !degrees -180.0 elbow_joint: # acceleration limits are not publicly available has_acceleration_limits: false @@ -55,9 +55,9 @@ joint_limits: has_position_limits: true has_velocity_limits: true max_effort: 28.0 - max_position: !degrees 360.0 + max_position: !degrees 180.0 max_velocity: !degrees 180.0 - min_position: !degrees -360.0 + min_position: !degrees -180.0 wrist_2_joint: # acceleration limits are not publicly available has_acceleration_limits: false @@ -65,9 +65,9 @@ joint_limits: has_position_limits: true has_velocity_limits: true max_effort: 28.0 - max_position: !degrees 360.0 + max_position: !degrees 180.0 max_velocity: !degrees 180.0 - min_position: !degrees -360.0 + min_position: !degrees -180.0 wrist_3_joint: # acceleration limits are not publicly available has_acceleration_limits: false @@ -75,6 +75,6 @@ joint_limits: has_position_limits: true has_velocity_limits: true max_effort: 28.0 - max_position: !degrees 360.0 + max_position: !degrees 180.0 max_velocity: !degrees 180.0 - min_position: !degrees -360.0 + min_position: !degrees -180.0 diff --git a/CustomRobots/robot_arms/launch/ur3.launch.py b/CustomRobots/robot_arms/launch/ur3.launch.py new file mode 100644 index 000000000..7c5aa7cd3 --- /dev/null +++ b/CustomRobots/robot_arms/launch/ur3.launch.py @@ -0,0 +1,351 @@ +from launch.actions import ( + IncludeLaunchDescription, + DeclareLaunchArgument, + SetEnvironmentVariable, +) +from launch.substitutions import LaunchConfiguration +from launch.launch_description_sources import PythonLaunchDescriptionSource +from launch import LaunchDescription +from launch_ros.actions import Node + +import os +import xacro +import yaml +from ament_index_python.packages import get_package_share_directory +from launch.actions import DeclareLaunchArgument, OpaqueFunction + + +def load_file(package_name, file_path): + pkg_path = get_package_share_directory(package_name) + with open(os.path.join(pkg_path, file_path), "r") as f: + return f.read() + + +def load_yaml(package_name, file_path): + pkg_path = get_package_share_directory(package_name) + with open(os.path.join(pkg_path, file_path), "r") as f: + return yaml.safe_load(f) + + +def launch_setup(context): + x = LaunchConfiguration("x") + y = LaunchConfiguration("y") + z = LaunchConfiguration("z") + R = LaunchConfiguration("R") + P = LaunchConfiguration("P") + Y = LaunchConfiguration("Y") + gz_sensor = LaunchConfiguration("sensor") + + package_dir = get_package_share_directory("custom_robots") + + sensor = gz_sensor.perform(context) + + nodes = [] + + # ========================= + # ROBOT DESCRIPTION (URDF) + # ========================= + xacro_file = os.path.join( + package_dir, + "models", + "ur3", + "ur3.urdf.xacro", + ) + + controllers_file = os.path.join(package_dir, "config", "ur3_controllers.yaml") + + robot_description_content = xacro.process_file( + xacro_file, + mappings={ + "ur_type": "ur3", + "name": "ur", + "prefix": "", + "use_fake_hardware": "false", + "sim_gazebo": "false", + "sim_gz": "true", + "simulation_controllers": controllers_file, + "hmi": "false", + "EE": "true", + "EE_name": "robotiq_2f85", + "camera": "true" if sensor == "camera" else "false", + }, + ).toxml() + + robot_description = {"robot_description": robot_description_content} + + # ========================= + # SRDF (SEMANTIC) + # ========================= + robot_description_semantic = { + "robot_description_semantic": load_file( + "ros2srrc_ur3_moveit2", "config/ur3robotiq_2f85.srdf" + ) + } + + # ========================= + # KINEMATICS + # ========================= + kinematics_yaml = load_yaml("ur3_gripper_moveit_config", "config/kinematics.yaml") + + kinematics_yaml = { + "robot_description_kinematics": kinematics_yaml["/**"]["ros__parameters"] + } + + # ========================= + # CONTROLLERS (MoveIt) + # ========================= + moveit_controllers = load_yaml( + "ur3_gripper_moveit_config", "config/moveit_controllers.yaml" + ) + + ompl_planning = load_yaml("ur3_gripper_moveit_config", "config/ompl_planning.yaml") + + ompl_planning = ompl_planning["/**"]["ros__parameters"] + + moveit_controllers = moveit_controllers["/**"]["ros__parameters"] + + planning_pipelines_config = { + "planning_pipelines": ["ompl", "pilz_industrial_motion_planner"], + "default_planning_pipeline": "pilz_industrial_motion_planner", + "ompl": { + "planning_plugin": "ompl_interface/OMPLPlanner", + }, + "pilz_industrial_motion_planner": { + "planning_plugin": "pilz_industrial_motion_planner/CommandPlanner", + "request_adapters": "", + "start_state_max_bounds_error": 0.1, + "default_planner_config": "PTP", + }, + } + + move_group_capabilities = { + "capabilities": "pilz_industrial_motion_planner/MoveGroupSequenceAction " + "pilz_industrial_motion_planner/MoveGroupSequenceService" + } + + pilz_cartesian_limits = load_yaml( + "ros2srrc_robots", "ur3/config/pilz_cartesian_limits.yaml" + ) + + joint_limits_yaml = load_yaml("ros2srrc_robots", "ur3/config/joint_limits.yaml") + + combined_planning = { + "robot_description_planning": {**joint_limits_yaml, **pilz_cartesian_limits} + } + + # ========================= + # NODES + # ========================= + + move = Node( + package="ros2srrc_execution", + executable="move", + name="move_action_server", + output="screen", + parameters=[ + robot_description, + robot_description_semantic, + kinematics_yaml, + moveit_controllers, + ompl_planning, + { + "moveit_controller_manager": "moveit_simple_controller_manager/MoveItSimpleControllerManager" + }, + {"use_sim_time": True}, + {"ROB_PARAM": "ur3"}, + {"EE_PARAM": "robotiq_2f85"}, + {"ROB_GROUP": "ur3_arm"}, + ], + ) + + robmove = Node( + package="ros2srrc_execution", + executable="robmove", + name="Robmove", + output="screen", + parameters=[ + robot_description, + robot_description_semantic, + kinematics_yaml, + moveit_controllers, + ompl_planning, + { + "moveit_controller_manager": "moveit_simple_controller_manager/MoveItSimpleControllerManager" + }, + {"use_sim_time": True}, + {"ROB_PARAM": "ur3"}, + {"ROB_GROUP": "ur3_arm"}, + ], + ) + + robpose = Node( + package="ros2srrc_execution", + executable="robpose", + name="robpose", + output="screen", + parameters=[ + robot_description, + robot_description_semantic, + kinematics_yaml, + ompl_planning, + {"use_sim_time": True}, + {"ROB_PARAM": "ur3"}, + {"ROB_GROUP": "ur3_arm"}, + ], + ) + + nodes.append(move) + nodes.append(robmove) + nodes.append(robpose) + + # ========================= + # CORE NODES + # ========================= + + robot_state_publisher = Node( + package="robot_state_publisher", + executable="robot_state_publisher", + parameters=[robot_description, {"use_sim_time": True}], + output="screen", + ) + + static_tf = Node( + package="tf2_ros", + executable="static_transform_publisher", + arguments=[x, y, z, R, P, Y, "world", "base_link"], + ) + + spawn_robot = Node( + package="ros_gz_sim", + executable="create", + arguments=[ + "-topic", + "robot_description", + "-name", + "ur3_robotiq", + "-x", + x, + "-y", + y, + "-z", + z, + "-R", + R, + "-P", + P, + "-Y", + Y, + ], + output="screen", + ) + + clock_bridge = Node( + package="ros_gz_bridge", + executable="parameter_bridge", + arguments=["/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock]"], + parameters=[{"use_sim_time": True}], + ) + + nodes.append(robot_state_publisher) + nodes.append(static_tf) + nodes.append(spawn_robot) + nodes.append(clock_bridge) + + if sensor == "camera": + camera_bridge = Node( + package="ros_gz_bridge", + executable="parameter_bridge", + arguments=[ + "/hand_camera/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo", + "/base_camera/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo", + ], + output="screen", + ) + + gz_ros2_image_bridge = Node( + package="ros_gz_image", + executable="image_bridge", + arguments=["/hand_camera/image"], + output="screen", + ) + + gz_ros2_base_image_bridge = Node( + package="ros_gz_image", + executable="image_bridge", + arguments=["/base_camera/image"], + output="screen", + ) + + nodes.append(camera_bridge) + nodes.append(gz_ros2_image_bridge) + nodes.append(gz_ros2_base_image_bridge) + + # ========================= + # CONTROLLERS + # ========================= + + joint_state_broadcaster = Node( + package="controller_manager", + executable="spawner", + arguments=["joint_state_broadcaster"], + ) + + joint_trajectory_controller = Node( + package="controller_manager", + executable="spawner", + arguments=["joint_trajectory_controller"], + ) + + gripper_controller = Node( + package="controller_manager", + executable="spawner", + arguments=["gripper_controller"], + ) + + nodes.append(joint_state_broadcaster) + nodes.append(joint_trajectory_controller) + nodes.append(gripper_controller) + + # ========================= + # MOVEIT + # ========================= + + move_group = Node( + package="moveit_ros_move_group", + executable="move_group", + output="screen", + parameters=[ + robot_description, + robot_description_semantic, + kinematics_yaml, + planning_pipelines_config, + move_group_capabilities, + moveit_controllers, + combined_planning, + {"use_sim_time": True}, + ], + ) + + nodes.append(move_group) + + # ========================= + # LAUNCH + # ========================= + + return nodes + + +def generate_launch_description(): + declared_arguments = [ + DeclareLaunchArgument("x", default_value="0"), + DeclareLaunchArgument("y", default_value="0"), + DeclareLaunchArgument("z", default_value="0.9"), + DeclareLaunchArgument("R", default_value="0"), + DeclareLaunchArgument("P", default_value="0"), + DeclareLaunchArgument("Y", default_value="0"), + DeclareLaunchArgument("sensor", default_value="none"), + ] + + return LaunchDescription( + declared_arguments + [OpaqueFunction(function=launch_setup)] + ) diff --git a/CustomRobots/robot_arms/launch/ur5.launch.py b/CustomRobots/robot_arms/launch/ur5.launch.py index 6668c5434..b18b06b15 100644 --- a/CustomRobots/robot_arms/launch/ur5.launch.py +++ b/CustomRobots/robot_arms/launch/ur5.launch.py @@ -154,6 +154,7 @@ def launch_setup(context): {"use_sim_time": True}, {"ROB_PARAM": "ur5"}, {"EE_PARAM": "robotiq_2f85"}, + {"ROB_GROUP": "ur5_manipulator"}, ], ) @@ -173,6 +174,7 @@ def launch_setup(context): }, {"use_sim_time": True}, {"ROB_PARAM": "ur5"}, + {"ROB_GROUP": "ur5_manipulator"}, ], ) @@ -188,6 +190,7 @@ def launch_setup(context): ompl_planning, {"use_sim_time": True}, {"ROB_PARAM": "ur5"}, + {"ROB_GROUP": "ur5_manipulator"}, ], ) diff --git a/CustomRobots/robot_arms/models/ur3/inc/ur_common.xacro b/CustomRobots/robot_arms/models/ur3/inc/ur_common.xacro new file mode 100644 index 000000000..4281d0033 --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/inc/ur_common.xacro @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CustomRobots/robot_arms/models/ur3/inc/ur_transmissions.xacro b/CustomRobots/robot_arms/models/ur3/inc/ur_transmissions.xacro new file mode 100644 index 000000000..18a86c355 --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/inc/ur_transmissions.xacro @@ -0,0 +1,73 @@ + + + + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + transmission_interface/SimpleTransmission + + ${hw_interface} + + + 1 + + + + + + diff --git a/CustomRobots/robot_arms/models/ur3/ur.ros2_control.xacro b/CustomRobots/robot_arms/models/ur3/ur.ros2_control.xacro new file mode 100644 index 000000000..1387428c5 --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/ur.ros2_control.xacro @@ -0,0 +1,304 @@ + + + + + + + + + gazebo_ros2_control/GazeboSystem + + + gz_ros2_control/GazeboSimSystem + + + mock_components/GenericSystem + ${fake_sensor_commands} + 0.0 + + + ur_robot_driver/URPositionHardwareInterface + ${robot_ip} + ${script_filename} + ${output_recipe_filename} + ${input_recipe_filename} + ${headless_mode} + ${reverse_port} + ${script_sender_port} + "${tf_prefix}" + 0 + 2000 + 0.03 + ${use_tool_communication} + ${hash_kinematics} + ${tool_voltage} + ${tool_parity} + ${tool_baud_rate} + ${tool_stop_bits} + ${tool_rx_idle_chars} + ${tool_tx_idle_chars} + ${tool_device_name} + ${tool_tcp_port} + + + + + {-2*pi} + {2*pi} + + + -3.15 + 3.15 + + + + ${initial_positions['shoulder_pan_joint']} + + + + + + + {-2*pi} + {2*pi} + + + -3.15 + 3.15 + + + + ${initial_positions['shoulder_lift_joint']} + + + + + + + {-pi} + {pi} + + + -3.15 + 3.15 + + + + ${initial_positions['elbow_joint']} + + + + + + + {-2*pi} + {2*pi} + + + -3.2 + 3.2 + + + + ${initial_positions['wrist_1_joint']} + + + + + + + {-2*pi} + {2*pi} + + + -3.2 + 3.2 + + + + ${initial_positions['wrist_2_joint']} + + + + + + + {-2*pi} + {2*pi} + + + -3.2 + 3.2 + + + + ${initial_positions['wrist_3_joint']} + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CustomRobots/robot_arms/models/ur3/ur.urdf.xacro b/CustomRobots/robot_arms/models/ur3/ur.urdf.xacro new file mode 100644 index 000000000..d940074dc --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/ur.urdf.xacro @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(arg simulation_controllers) + + + + + + + + + + + + + + + + $(arg simulation_controllers) + + + + + + + \ No newline at end of file diff --git a/CustomRobots/robot_arms/models/ur3/ur3.urdf.xacro b/CustomRobots/robot_arms/models/ur3/ur3.urdf.xacro new file mode 100644 index 000000000..630267ae4 --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/ur3.urdf.xacro @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CustomRobots/robot_arms/models/ur3/ur_generated.urdf b/CustomRobots/robot_arms/models/ur3/ur_generated.urdf new file mode 100644 index 000000000..e69de29bb diff --git a/CustomRobots/robot_arms/models/ur3/ur_macro.xacro b/CustomRobots/robot_arms/models/ur3/ur_macro.xacro new file mode 100644 index 000000000..011443f8b --- /dev/null +++ b/CustomRobots/robot_arms/models/ur3/ur_macro.xacro @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/CMakeLists.txt b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/CMakeLists.txt new file mode 100644 index 000000000..b6bb475a3 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/CMakeLists.txt @@ -0,0 +1,44 @@ +cmake_minimum_required(VERSION 3.5) +project(ros2srrc_ur3_gazebo) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +# uncomment the following section in order to fill in +# further dependencies manually. +# find_package( REQUIRED) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +install( + DIRECTORY + config + urdf + worlds + DESTINATION + share/${PROJECT_NAME} +) + +ament_package() diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/config/configurations.yaml b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/config/configurations.yaml new file mode 100644 index 000000000..f5ca050f7 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/config/configurations.yaml @@ -0,0 +1,20 @@ +# ROS 2 Sim-to-Real Robot Control: UR3 Robot. +Configurations: + + - ID: "ur3_1" + Name: "UR3 on top of Robot Stand." + urdf: "ur3.urdf.xacro" + rob: "ur3" + ee: "none" + + - ID: "ur3_2" + Name: "UR3 + Robotiq 2f-85 gripper on top of Robot Stand." + urdf: "ur3_robotiq_2f85.urdf.xacro" + rob: "ur3" + ee: "robotiq_2f85" + + - ID: "ur3_3" + Name: "UR3 + Robotiq HandE gripper on top of Robot Stand." + urdf: "ur3_robotiq_hande.urdf.xacro" + rob: "ur3" + ee: "robotiq_hande" \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/package.xml b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/package.xml new file mode 100644 index 000000000..c3462821e --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/package.xml @@ -0,0 +1,21 @@ + + + + ros2srrc_ur3_gazebo + 0.0.0 + IFRA-Cranfield (Cranfield University, UK). Package: ROS 2 SimRealRobotControl - UR3-Gazebo + + Mikel Bueno Viso + Mikel Bueno Viso + + Apache-2.0 + + ament_cmake + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3.urdf.xacro b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3.urdf.xacro new file mode 100644 index 000000000..3916bc6f3 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3.urdf.xacro @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(find ros2srrc_robots)/ur3/config/controller.yaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_2f85.urdf.xacro b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_2f85.urdf.xacro new file mode 100644 index 000000000..c65c22c45 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_2f85.urdf.xacro @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(find ros2srrc_robots)/ur3/config/controller.yaml + + + + $(find ros2srrc_endeffectors)/${EE_name}/config/controller.yaml + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_hande.urdf.xacro b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_hande.urdf.xacro new file mode 100644 index 000000000..50d19205e --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/urdf/ur3_robotiq_hande.urdf.xacro @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(find ros2srrc_robots)/ur3/config/controller.yaml + + + + $(find ros2srrc_endeffectors)/${EE_name}/config/controller.yaml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3.world b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3.world new file mode 100644 index 000000000..fa1e98d6d --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3.world @@ -0,0 +1,1611 @@ + + + + + 1 + 0 0 10 0 -0 0 + 0.8 0.8 0.8 1 + 0.2 0.2 0.2 1 + + 1000 + 0.9 + 0.01 + 0.001 + + -0.5 0.1 -0.9 + + + 1 + + + + + 0 0 1 + 100 100 + + + + + 65535 + + + + + 100 + 50 + + + + + + + + 10 + + + 0 + + + 0 0 1 + 100 100 + + + + + + + 0 + 0 + 0 + + + 0 0 -9.8 + 6e-06 2.3e-05 -4.2e-05 + + + 0.001 + 1 + 1000 + + + 0.4 0.4 0.4 1 + 0.7 0.7 0.7 1 + 1 + + + + EARTH_WGS84 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.95 0 -0 0 + + + 0.45 0.35 0.5 + model://conveyor/meshes/conveyor.dae + + + + + 0 + 10 + 0 0 0.95 0 -0 0 + + + 2.4 0.8 0.1 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 1 + 1 + 0.335211 0.377742 0 0 -0 0 + + + 1 + + + 0 0 0.001 0 -0 0 + + + 1 1 1 + model://ground_logo_big/meshes/ground_logo.dae + + + + 0 + 0 + 0 + + -0.163565 0.817691 0 0 -0 0 + + + 1275 417000000 + 538 186819528 + 1594223523 209571631 + 534891 + + -0.6 0.45 0.755 0 -0 0 + 1 1 1 + + -0.6 0.45 0.755 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + 0.6 0 0 0 -0 1.57 + 1 1 1 + + 0.6 0 0 0 -0 1.57 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + -0.5 0 0 0 -0 1.57 + 1 1 1 + + -0.5 0 0 0 -0 1.57 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + 0 0 0 0 -0 0 + 1 1 1 + + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + -0.6 0.15 0.755 0 -0 0 + 1 1 1 + + -0.6 0.15 0.755 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + -0.6 0 0 0 -0 1.57 + 1 1 1 + + -0.6 0 0 0 -0 1.57 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + -0.6 -0.45 0.755 0 -0 0 + 1 1 1 + + -0.6 -0.45 0.755 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + -0.6 -0.15 0.755 0 -0 0 + 1 1 1 + + -0.6 -0.15 0.755 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + 0 0 0 0 -0 0 + + + + 0 0 10 0 -0 0 + + + + + 3.82249 4.74978 2.99885 -0 0.401795 -2.20437 + orbit + perspective + + + + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.73 0 -0 1.57 + + + 1 1 1 + model://target_table/meshes/target_table.dae + + + + + 0 + 10 + 0 0 0.73 0 -0 1.57 + + + 0.8 1.6 0.06 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 1 + 1 + -0.877342 -1.1194 0 0 -0 0 + + + 1 + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.01 0 -0 0 + + + 0.5 0.5 0.5 + model://yellow_target/meshes/yellow_target.dae + + + + + 0 + 10 + 0.144 0 0 0 -0 0 + + + 0.012 0.3 0.24 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 -0.144 0 0 -0 0 + + + 0.3 0.012 0.36 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0 0 0 -0 0 + + + 0.3 0.3 0.025 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0.144 0 0 -0 0 + + + 0.3 0.012 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + -0.144 0 0 0 -0 0 + + + 0.012 0.3 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + -1.65226 -0.48866 0 0 -0 0 + + + 1 + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.01 0 -0 0 + + + 0.5 0.5 0.5 + model://green_target/meshes/green_target.dae + + + + + 0 + 10 + 0.144 0 0 0 -0 0 + + + 0.012 0.3 0.24 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 -0.144 0 0 -0 0 + + + 0.3 0.012 0.36 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0 0 0 -0 0 + + + 0.3 0.3 0.025 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0.144 0 0 -0 0 + + + 0.3 0.012 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + -0.144 0 0 0 -0 0 + + + 0.012 0.3 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + -1.65226 -0.48866 0 0 -0 0 + + + 1 + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.01 0 -0 0 + + + 0.5 0.5 0.5 + model://red_target/meshes/red_target.dae + + + + + 0 + 10 + 0.144 0 0 0 -0 0 + + + 0.012 0.3 0.24 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 -0.144 0 0 -0 0 + + + 0.3 0.012 0.36 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0 0 0 -0 0 + + + 0.3 0.3 0.025 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0.144 0 0 -0 0 + + + 0.3 0.012 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + -0.144 0 0 0 -0 0 + + + 0.012 0.3 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + -0.055993 0.310239 0 0 -0 0 + + + 1 + + 0 + 0 + 0 + 0 0 0 0 -0 0 + 1 + + 1 + 0 0 0 0 -0 0 + + 1 + 0 + 0 + 1 + 0 + 1 + + + + 0 0 0.01 0 -0 0 + + + 0.5 0.5 0.5 + model://blue_target/meshes/blue_target.dae + + + + + 0 + 10 + 0.144 0 0 0 -0 0 + + + 0.012 0.3 0.24 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 -0.144 0 0 -0 0 + + + 0.3 0.012 0.36 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0 0 0 -0 0 + + + 0.3 0.3 0.025 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + 0 0.144 0 0 -0 0 + + + 0.3 0.012 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + 0 + 10 + -0.144 0 0 0 -0 0 + + + 0.012 0.3 0.39 + + + + + + 1 + 1 + 0 0 0 + 0 + 0 + + + 1 + 0 + 0 + 1 + + 0 + + + + + 0 + 1e+06 + + + 0 + 1 + 1 + + 0 + 0.2 + 1e+13 + 1 + 0.01 + 0 + + + 1 + -0.01 + 0 + 0.2 + 1e+13 + 1 + + + + + + -1.18752 -1.7319 0 0 -0 0 + + + + + + + + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3_original.world b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3_original.world new file mode 100644 index 000000000..00314e1d9 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_gazebo/worlds/ros2srrc_ur3_original.world @@ -0,0 +1,59 @@ + + + + + + + + + + + 0 0 -9.8 + + + model://ground_plane + + + + model://sun + + + + 0 + + + + + + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/CMakeLists.txt b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/CMakeLists.txt new file mode 100644 index 000000000..6e9f6ade0 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.5) +project(ros2srrc_ur3_moveit2) + +# Default to C99 +if(NOT CMAKE_C_STANDARD) + set(CMAKE_C_STANDARD 99) +endif() + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +# uncomment the following section in order to fill in +# further dependencies manually. +# find_package( REQUIRED) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +# REQUIRED to -> Launch simulation: +install( + DIRECTORY + config + DESTINATION + share/${PROJECT_NAME} +) + +ament_package() diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3.srdf b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3.srdf new file mode 100644 index 000000000..6aabb088e --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3.srdf @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3_moveit2.rviz b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3_moveit2.rviz new file mode 100644 index 000000000..bdaee0371 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3_moveit2.rviz @@ -0,0 +1,318 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: ~ + Splitter Ratio: 0.5 + Tree Height: 348 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz_common/Time + Experimental: false + Name: Time + SyncMode: 0 + SyncSource: "" +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.7 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: false + Interrupt Display: false + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 3x + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: manipulator + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: /monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.7 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Covariance x: 0.25 + Covariance y: 0.25 + Covariance yaw: 0.06853891909122467 + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 10 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0 + Y: 0 + Z: 0 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.785398006439209 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.785398006439209 + Saved: ~ +Window Geometry: + "": + collapsed: false + " - Trajectory Slider": + collapsed: false + Displays: + collapsed: false + Height: 1043 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001f300000375fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000001e7000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffbffffffff010000022a000001880000017d00ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000005870000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1920 + X: 0 + Y: 0 \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85.srdf b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85.srdf new file mode 100644 index 000000000..eb5f1a064 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85.srdf @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85_moveit2.rviz b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85_moveit2.rviz new file mode 100644 index 000000000..1f96d17f7 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_2f85_moveit2.rviz @@ -0,0 +1,363 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: ~ + Splitter Ratio: 0.5 + Tree Height: 348 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz_common/Time + Experimental: false + Name: Time + SyncMode: 0 + SyncSource: "" +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.7 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: false + Interrupt Display: false + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_left_knuckle_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_right_knuckle_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_left_finger_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_right_finger_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_left_inner_knuckle_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_right_inner_knuckle_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_left_finger_tip_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_85_right_finger_tip_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 3x + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: manipulator + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: /monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.7 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Covariance x: 0.25 + Covariance y: 0.25 + Covariance yaw: 0.06853891909122467 + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 10 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0 + Y: 0 + Z: 0 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.785398006439209 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.785398006439209 + Saved: ~ +Window Geometry: + "": + collapsed: false + " - Trajectory Slider": + collapsed: false + Displays: + collapsed: false + Height: 1043 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001f300000375fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000001e7000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffbffffffff010000022a000001880000017d00ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000005870000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1920 + X: 0 + Y: 0 \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande.srdf b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande.srdf new file mode 100644 index 000000000..a7f70bc79 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande.srdf @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande_moveit2.rviz b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande_moveit2.rviz new file mode 100644 index 000000000..aca1caf2d --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/config/ur3robotiq_hande_moveit2.rviz @@ -0,0 +1,333 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: ~ + Splitter Ratio: 0.5 + Tree Height: 348 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz_common/Time + Experimental: false + Name: Time + SyncMode: 0 + SyncSource: "" +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.7 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: false + Interrupt Display: false + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_hande_base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_hande_left_finger: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + robotiq_hande_right_finger: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 3x + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: manipulator + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: /monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.7 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Covariance x: 0.25 + Covariance y: 0.25 + Covariance yaw: 0.06853891909122467 + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 10 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0 + Y: 0 + Z: 0 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.785398006439209 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.785398006439209 + Saved: ~ +Window Geometry: + "": + collapsed: false + " - Trajectory Slider": + collapsed: false + Displays: + collapsed: false + Height: 1043 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001f300000375fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000001e7000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffbffffffff010000022a000001880000017d00ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000005870000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1920 + X: 0 + Y: 0 \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/package.xml b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/package.xml new file mode 100644 index 000000000..7f15f5caa --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/package.xml @@ -0,0 +1,21 @@ + + + + ros2srrc_ur3_moveit2 + 0.0.0 + IFRA-Cranfield (Cranfield University, UK). Package: ROS 2 SimRealRobotControl - UR3-MoveIt!2 + + Mikel Bueno Viso + Mikel Bueno Viso + + Apache-2.0 + + ament_cmake + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/rviz/moveit.rviz b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/rviz/moveit.rviz new file mode 100644 index 000000000..c8092de74 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/packages/ur3/ros2srrc_ur3_moveit2/rviz/moveit.rviz @@ -0,0 +1,311 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 87 + Name: Displays + Property Tree Widget: + Expanded: + - /Global Options1 + Splitter Ratio: 0.4957627058029175 + Tree Height: 573 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Acceleration_Scaling_Factor: 0.1 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Warehouse_Host: 127.0.0.1 + MoveIt_Warehouse_Port: 33829 + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: true + Interrupt Display: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 0.05 s + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0.3 + Joint Violation Color: 255; 0; 255 + Planning Group: ur3_arm + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link_inertia: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + forearm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + shoulder_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + upper_arm_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_1_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_2_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + wrist_3_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: world + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /goal_pose + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 6.619869709014893 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0.2489434778690338 + Y: -0.013962505385279655 + Z: 0.13800443708896637 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.4103981554508209 + Target Frame: + Value: Orbit (rviz) + Yaw: 1.210397720336914 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1381 + Hide Left Dock: false + Hide Right Dock: false + MotionPlanning: + collapsed: false + MotionPlanning - Trajectory Slider: + collapsed: false + QMainWindow State: 000000ff00000000fd0000000400000000000001e0000004f6fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000007901000003fb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000046000002e3000000ff01000003fb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000005201000003fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000032a00000212000001b9010000030000000100000110000004f6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000046000004f6000000d701000003fb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d006501000000000000045000000000000000000000070e000004f600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 2560 + X: 0 + Y: 30 diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_macro.urdf.xacro b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_macro.urdf.xacro index 76a695acf..9a5f56205 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_macro.urdf.xacro +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_macro.urdf.xacro @@ -1,86 +1,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - 0.9 - 0.9 - Gazebo/Black - - - - + @@ -88,26 +20,36 @@ - + + iyx = "0.000000" iyy = "0.001110" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.001171" /> - - - - + + + + + + - - + + + + + + + + + + @@ -115,32 +57,19 @@ - + - - - + + + - - - - - - - - - - - - + - - - + @@ -148,30 +77,31 @@ - + - - - + + + + + + + + - - - - - - - + + + + - - + @@ -179,27 +109,19 @@ - + + iyx = "-0.000002" iyy = "0.000021" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000020" /> - - - - - - - - + - - + @@ -207,27 +129,37 @@ - + + iyx = "-0.000002" iyy = "0.000021" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000020" /> - + - - - - - + + + + + + + + + + + + + + + + - - + @@ -235,29 +167,18 @@ - + + iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000035" /> - - - - - - - - - - - - + @@ -265,121 +186,104 @@ - + + iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000035" /> - - - + + + - - - + + + - - + + + + + + + + + + + + - - - + + iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000006" /> - - - - - - - - + + + true + 100 + + + robotiq_85_left_finger_tip_link_collision + + + + - - + + - - - + - - - - - - - - - - - - - - - - - - - + iyx = "0.000000" iyy = "0.000005" iyz = "0.000000" + izx = "0.000000" izy = "0.000000" izz = "0.000006" /> - - - - - - - - - - - - - - - - - - - true + + + true + 100 + + + robotiq_85_right_finger_tip_link_collision + + + + + - + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_ros2control.xacro b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_ros2control.xacro index 60d683304..32637b44a 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_ros2control.xacro +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_ros2control.xacro @@ -1,137 +1,95 @@ - - - - + + - - - -0.05 - 0.80285 - - - 0.5 - 0.5 - - - 0.0 - - - - + + + + gz_ros2_control/GazeboSimSystem + + + mock_components/GenericSystem + false + 0.0 + + + + + + + 0.0 + 0.80285 + + + 0.0 + + + + - - - -0.05 - 0.80285 - - - 0.5 - 0.5 - - - 0.0 - - - - + + + ${prefix}robotiq_85_left_knuckle_joint + 1.0 + + 0.0 + 0.80285 + + + + + - - - -0.05 - 0.80285 - - - 0.5 - 0.5 - - - 0.0 - - - - + + ${prefix}robotiq_85_left_knuckle_joint + 1.0 + + 0.0 + 0.80285 + + + + - - - -0.05 - 0.80285 - - - 0.5 - 0.5 - - - 0.0 - - - - + + ${prefix}robotiq_85_left_knuckle_joint + 1.0 + + 0.0 + 0.80285 + + + + - - - -0.80285 - 0.05 - - - 0.5 - 0.5 - - - 0.0 - - - - + + ${prefix}robotiq_85_left_knuckle_joint + -1.0 + + -0.80285 + 0.0 + + + + - - - -0.80285 - 0.05 - - - 0.5 - 0.5 - - - 0.0 - - - - + + ${prefix}robotiq_85_left_knuckle_joint + -1.0 + + -0.80285 + 0.0 + + + + + - - \ No newline at end of file + \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_transmission.xacro b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_transmission.xacro index 404658c65..20eca4250 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_transmission.xacro +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_endeffectors/robotiq_2f85/urdf/robotiq_2f85_transmission.xacro @@ -1,128 +1,59 @@ - - transmission_interface/SimpleTransmission - - hardware_interface/PositionJointInterface - - - 1 - - - - - transmission_interface/SimpleTransmission - - hardware_interface/PositionJointInterface - - - 1 - - - - - transmission_interface/SimpleTransmission - - hardware_interface/PositionJointInterface - - - 1 - - - - transmission_interface/SimpleTransmission - - hardware_interface/PositionJointInterface + + + hardware_interface/PositionJointInterface + - - 1 - - - - transmission_interface/SimpleTransmission - - hardware_interface/PositionJointInterface - - + 1 - - - - - transmission_interface/SimpleTransmission - hardware_interface/PositionJointInterface - - - 1 false + false + false + false + false + false + false + false + false - + diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/move.cpp b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/move.cpp index 4e72de49a..cafec7d0f 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/move.cpp +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/move.cpp @@ -76,6 +76,7 @@ std::string param_ROB = "none"; std::string param_EE = "none"; std::string param_ENV = "none"; +std::string param_ROB_GROUP = "none"; // Declaration of GLOBAL VARIABLES --> MoveIt!2 Interface: moveit::planning_interface::MoveGroupInterface move_group_interface_ROB; @@ -98,13 +99,22 @@ ros2srrc_data::msg::Specs eeSPECS; class ros2_RobotParam : public rclcpp::Node { public: - ros2_RobotParam() : Node("ros2_RobotParam") + ros2_RobotParam() : Node("ros2_RobotParam") { this->declare_parameter("ROB_PARAM", "none"); - param_ROB = this->get_parameter("ROB_PARAM").get_parameter_value().get(); - RCLCPP_INFO(this->get_logger(), "ROB_PARAM received -> %s", param_ROB.c_str()); + param_ROB = this->get_parameter("ROB_PARAM").as_string(); + + this->declare_parameter("ROB_GROUP", "none"); + param_ROB_GROUP = this->get_parameter("ROB_GROUP").as_string(); + + RCLCPP_INFO(this->get_logger(), + "ROB_PARAM received -> %s", + param_ROB.c_str()); + + RCLCPP_INFO(this->get_logger(), + "ROB_GROUP received -> %s", + param_ROB_GROUP.c_str()); } -private: }; class ros2_EEParam : public rclcpp::Node @@ -402,7 +412,7 @@ class ActionServer : public rclcpp::Node robot_trajectory::RobotTrajectory rt( move_group_interface_ROB.getRobotModel(), - "ur5_manipulator" + param_ROB_GROUP ); moveit::core::RobotStatePtr current_state = move_group_interface_ROB.getCurrentState(); @@ -559,9 +569,8 @@ int main(int argc, char ** argv) // ROBOT if (param_ROB != "none"){ - std::string group_name = "ur5_manipulator"; - - move_group_interface_ROB = MoveGroupInterface(node2, group_name); + move_group_interface_ROB = + MoveGroupInterface(node2, param_ROB_GROUP); move_group_interface_ROB.setMaxVelocityScalingFactor(0.5); move_group_interface_ROB.setMaxAccelerationScalingFactor(0.5); @@ -572,11 +581,11 @@ int main(int argc, char ** argv) joint_model_group_ROB = move_group_interface_ROB.getCurrentState() - ->getJointModelGroup(group_name); + ->getJointModelGroup(param_ROB_GROUP); RCLCPP_INFO(logger, "MoveGroupInterface created for ROBOT group: %s", - group_name.c_str()); + param_ROB_GROUP.c_str()); } // END EFFECTOR diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robmove.cpp b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robmove.cpp index cfb982b46..091d8c3d6 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robmove.cpp +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robmove.cpp @@ -46,6 +46,7 @@ #include #include #include +#include // Declaration of GLOBAL VARIABLE --> MoveIt!2 Interface: moveit::planning_interface::MoveGroupInterface move_group_interface_ROB; @@ -56,13 +57,38 @@ std::string param_ROB = "none"; // Declaration of GLOBAL VARIABLE --> RES: std::string RES = "none"; +// Declaration of GLOBAL VARIABLE --> ROBOT GROUP: +std::string param_ROB_GROUP = "none"; + +#include + +void normalizeToNearest(std::vector& target, + const std::vector& current) +{ + for (size_t i = 0; i < target.size(); ++i) + { + while (target[i] - current[i] > M_PI) + target[i] -= 2.0 * M_PI; + + while (target[i] - current[i] < -M_PI) + target[i] += 2.0 * M_PI; + } +} + // =============================================================================== // // MoveIt!2 -> MoveGroupInterface/Plan function: moveit::planning_interface::MoveGroupInterface::Plan plan_ROB() { moveit::planning_interface::MoveGroupInterface::Plan my_plan; - bool success = (move_group_interface_ROB.plan(my_plan) == moveit::planning_interface::MoveItErrorCode::SUCCESS); + auto code = move_group_interface_ROB.plan(my_plan); + + RCLCPP_INFO( + rclcpp::get_logger("RobMove"), + "MoveIt error code = %d", + code.val); + + bool success = (code == moveit::core::MoveItErrorCode::SUCCESS); // Execute the plan if (success) @@ -94,6 +120,14 @@ class ActionServer : public rclcpp::Node param_ROB = this->get_parameter("ROB_PARAM").as_string(); RCLCPP_INFO(this->get_logger(), "ROB_PARAM received -> %s", param_ROB.c_str()); + this->declare_parameter("ROB_GROUP", "none"); + param_ROB_GROUP = this->get_parameter("ROB_GROUP").as_string(); + + RCLCPP_INFO( + this->get_logger(), + "ROB_GROUP received -> %s", + param_ROB_GROUP.c_str()); + action_server_ = rclcpp_action::create_server( this, "/Robmove", @@ -137,10 +171,24 @@ class ActionServer : public rclcpp::Node { // 0. INFORMATION -> Current Robot Pose: - auto CP_INFO = move_group_interface_ROB.getCurrentPose(); - RCLCPP_INFO(get_logger(), "INFORMATION -> Current Robot Pose:"); - RCLCPP_INFO(get_logger(), "POSITION -> (x: %.3f, y: %.3f, z: %.3f)", CP_INFO.pose.position.x, CP_INFO.pose.position.y, CP_INFO.pose.position.z); - RCLCPP_INFO(get_logger(), "ORIENTATION -> (qx: %.3f, qy: %.3f, qz: %.3f, qw: %.3f)", CP_INFO.pose.orientation.x, CP_INFO.pose.orientation.y, CP_INFO.pose.orientation.z, CP_INFO.pose.orientation.w); + auto CP_INFO = move_group_interface_ROB.getCurrentPose(); + + auto state = move_group_interface_ROB.getCurrentState(); + state->update(); + + const auto& current_tf = state->getGlobalLinkTransform("tool0"); + + RCLCPP_INFO(get_logger(), + "CURRENTPOSE = %.3f %.3f %.3f", + CP_INFO.pose.position.x, + CP_INFO.pose.position.y, + CP_INFO.pose.position.z); + + RCLCPP_INFO(get_logger(), + "STATE TOOL = %.3f %.3f %.3f", + current_tf.translation().x(), + current_tf.translation().y(), + current_tf.translation().z()); // 1. OBTAIN INPUT PARAMETERS: const auto GOAL = goal_handle->get_goal(); @@ -163,19 +211,180 @@ class ActionServer : public rclcpp::Node TARGET_POSE.orientation.z = GOAL->qz; TARGET_POSE.orientation.w = GOAL->qw; - move_group_interface_ROB.setPoseTarget(TARGET_POSE); + RCLCPP_INFO( + get_logger(), + "TARGET POSE = %.3f %.3f %.3f", + TARGET_POSE.position.x, + TARGET_POSE.position.y, + TARGET_POSE.position.z); - move_group_interface_ROB.setStartStateToCurrentState(); + move_group_interface_ROB.clearPoseTargets(); + move_group_interface_ROB.clearPathConstraints(); + + const moveit::core::JointModelGroup* jmg = + state->getJointModelGroup(param_ROB_GROUP); + + bool found_ik = state->setFromIK(jmg, TARGET_POSE); + + state->update(); + + const auto& ik_tf = state->getGlobalLinkTransform("tool0"); + + RCLCPP_INFO( + get_logger(), + "IK TOOL = %.3f %.3f %.3f", + ik_tf.translation().x(), + ik_tf.translation().y(), + ik_tf.translation().z()); + + RCLCPP_INFO(get_logger(), "IK FOUND = %d", found_ik); + + if (!found_ik) + { + RCLCPP_ERROR(get_logger(), "NO IK SOLUTION"); + } + + if (found_ik) + { + std::vector vals; + state->copyJointGroupPositions(jmg, vals); + + // Estado actual del robot + std::vector current = + move_group_interface_ROB.getCurrentJointValues(); + + RCLCPP_INFO(get_logger(), "CURRENT JOINTS:"); + for (size_t i = 0; i < current.size(); ++i) + { + RCLCPP_INFO(get_logger(), + "CURRENT[%zu] = %.6f", + i, + current[i]); + } + + RCLCPP_INFO(get_logger(), "IK BEFORE NORMALIZATION:"); + for (size_t i = 0; i < vals.size(); ++i) + { + RCLCPP_INFO(get_logger(), + "IK[%zu] = %.6f", + i, + vals[i]); + } + + // -------- NORMALIZACIÓN -------- + normalizeToNearest(vals, current); + + RCLCPP_INFO(get_logger(), "IK AFTER NORMALIZATION:"); + for (size_t i = 0; i < vals.size(); ++i) + { + RCLCPP_INFO(get_logger(), + "IKN[%zu] = %.6f", + i, + vals[i]); + } + + // Pasar esos joints al planificador + bool ok = move_group_interface_ROB.setJointValueTarget(vals); + + RCLCPP_INFO(get_logger(), + "setJointValueTarget = %d", + ok); + + std::vector target; + move_group_interface_ROB.getJointValueTarget(target); + + RCLCPP_INFO(get_logger(), "TARGET JOINTS:"); + for (size_t i = 0; i < target.size(); ++i) + { + RCLCPP_INFO(get_logger(), + "TARGET[%zu] = %.6f", + i, + target[i]); + } + } + + state->update(); + + const auto &tf = state->getGlobalLinkTransform("tool0"); + + RCLCPP_INFO( + get_logger(), + "IK TOOL = %.3f %.3f %.3f", + tf.translation().x(), + tf.translation().y(), + tf.translation().z()); + + //move_group_interface_ROB.setPoseTarget(TARGET_POSE); + move_group_interface_ROB.setStartStateToCurrentState(); move_group_interface_ROB.setPlannerId(GOAL->type); move_group_interface_ROB.setMaxVelocityScalingFactor(GOAL->speed); + // ===== DEBUG ===== + auto joints = move_group_interface_ROB.getCurrentJointValues(); + + RCLCPP_INFO(get_logger(), "CURRENT JOINTS:"); + + for (size_t i = 0; i < joints.size(); ++i) + { + RCLCPP_INFO( + get_logger(), + "CURRENT[%zu] = %.6f", + i, + joints[i]); + } + + // Estado interno de MoveIt + auto planning_state = move_group_interface_ROB.getCurrentState(); + + std::vector planning_vals; + + planning_state->copyJointGroupPositions( + planning_state->getJointModelGroup(param_ROB_GROUP), + planning_vals); + + RCLCPP_INFO(get_logger(), "PLANNING STATE:"); + + for (size_t i = 0; i < planning_vals.size(); ++i) + { + RCLCPP_INFO( + get_logger(), + "STATE[%zu] = %.6f", + i, + planning_vals[i]); + } + // ================== + MyPlan = plan_ROB(); if (RES == "PLANNING: OK"){ + + const auto& pts = MyPlan.trajectory_.joint_trajectory.points; + RCLCPP_INFO(get_logger(), "Trajectory has %zu points", pts.size()); + const auto& names = MyPlan.trajectory_.joint_trajectory.joint_names; + + std::stringstream ns; + ns << "Joint order: "; + + for (const auto& n : names) + ns << n << " "; + + RCLCPP_INFO(get_logger(), "%s", ns.str().c_str()); + + for (size_t p = 0; p < pts.size(); ++p) + { + std::stringstream ss; + ss << "Point " << p << ": "; + + for (double q : pts[p].positions) + ss << q << " "; + + RCLCPP_INFO(get_logger(), "%s", ss.str().c_str()); + } + robot_trajectory::RobotTrajectory rt( move_group_interface_ROB.getRobotModel(), - "ur5_manipulator" + param_ROB_GROUP ); moveit::core::RobotStatePtr current_state = move_group_interface_ROB.getCurrentState(); @@ -194,7 +403,83 @@ class ActionServer : public rclcpp::Node rt.getRobotTrajectoryMsg(MyPlan.trajectory_); - bool ExecSUCCESS = (move_group_interface_ROB.execute(MyPlan) == moveit::planning_interface::MoveItErrorCode::SUCCESS); + // ===== DEBUG TRAJECTORY ===== + + RCLCPP_INFO(get_logger(), "Joint names:"); + + for (auto &j : MyPlan.trajectory_.joint_trajectory.joint_names) + { + RCLCPP_INFO(get_logger(), "%s", j.c_str()); + } + + RCLCPP_INFO( + get_logger(), + "Trajectory has %zu points", + MyPlan.trajectory_.joint_trajectory.points.size()); + + auto &first = MyPlan.trajectory_.joint_trajectory.points.front(); + auto &last = MyPlan.trajectory_.joint_trajectory.points.back(); + + RCLCPP_INFO(get_logger(), "FIRST POINT"); + + for (size_t i = 0; i < first.positions.size(); ++i) + { + RCLCPP_INFO( + get_logger(), + "%s = %.6f", + MyPlan.trajectory_.joint_trajectory.joint_names[i].c_str(), + first.positions[i]); + } + + RCLCPP_INFO(get_logger(), "LAST POINT"); + + for (size_t i = 0; i < last.positions.size(); ++i) + { + RCLCPP_INFO( + get_logger(), + "%s = %.6f", + MyPlan.trajectory_.joint_trajectory.joint_names[i].c_str(), + last.positions[i]); + } + + // ============================ + + bool ExecSUCCESS = + (move_group_interface_ROB.execute(MyPlan) + == moveit::planning_interface::MoveItErrorCode::SUCCESS); + + auto state = move_group_interface_ROB.getCurrentState(); + + std::vector q; + state->copyJointGroupPositions( + state->getJointModelGroup(param_ROB_GROUP), + q); + + RCLCPP_INFO(get_logger(), "ROBOT AFTER EXECUTION"); + + for(size_t i=0;iis_canceling()) { RCLCPP_INFO(this->get_logger(), "ROBOT MOVEMENT (%s) has been CANCELED.", GOAL->type.c_str()); @@ -271,14 +556,16 @@ int main(int argc, char **argv) using moveit::planning_interface::MoveGroupInterface; - std::string ROBname = "ur5_manipulator"; - - move_group_interface_ROB = MoveGroupInterface(moveit_node, ROBname); + move_group_interface_ROB = + MoveGroupInterface(moveit_node, param_ROB_GROUP); move_group_interface_ROB.setMaxVelocityScalingFactor(1.0); move_group_interface_ROB.setMaxAccelerationScalingFactor(1.0); - RCLCPP_INFO(logger, "MoveGroupInterface object created for ROBOT: %s", ROBname.c_str()); + RCLCPP_INFO( + logger, + "MoveGroupInterface object created for ROBOT: %s", + param_ROB_GROUP.c_str()); rclcpp::spin(node); diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robpose.cpp b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robpose.cpp index 524a1e498..fc7b462d5 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robpose.cpp +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_execution/src/robpose.cpp @@ -53,6 +53,8 @@ moveit::planning_interface::MoveGroupInterface move_group_interface_ROB; // Declaration of GLOBAL VARIABLE --> ROBOT PARAMETER: std::string param_ROB = "none"; +std::string param_ROB_GROUP = "none"; + // Declaration of GLOBAL VARIABLE --> ROBOT POSE: ros2srrc_data::msg::Robpose POSE; @@ -113,11 +115,14 @@ int main(int argc, char **argv) RCLCPP_INFO(node->get_logger(), "ROB_PARAM received -> %s", param_ROB.c_str()); + node->declare_parameter("ROB_GROUP", "none"); + param_ROB_GROUP = + node->get_parameter("ROB_GROUP").as_string(); + // === MOVEIT === using moveit::planning_interface::MoveGroupInterface; - std::string ROBname = "ur5_manipulator"; - - move_group_interface_ROB = MoveGroupInterface(node, ROBname); + move_group_interface_ROB = + MoveGroupInterface(node, param_ROB_GROUP); RCLCPP_INFO(node->get_logger(), "MoveGroupInterface created"); diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/controller.yaml b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/controller.yaml index d5b1ac25c..26180e975 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/controller.yaml +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/controller.yaml @@ -1,32 +1,96 @@ controller_manager: ros__parameters: - - update_rate: 250 #Hz + + update_rate: 100 joint_state_broadcaster: type: joint_state_broadcaster/JointStateBroadcaster - + joint_trajectory_controller: type: joint_trajectory_controller/JointTrajectoryController + gripper_controller: + type: joint_trajectory_controller/JointTrajectoryController + + +joint_state_broadcaster: + ros__parameters: + + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + - robotiq_85_left_knuckle_joint + + interfaces: + - position + - velocity + - effort + + joint_trajectory_controller: ros__parameters: + joints: - - shoulder_pan_joint - - shoulder_lift_joint - - elbow_joint - - wrist_1_joint - - wrist_2_joint - - wrist_3_joint + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + command_interfaces: - position + + state_interfaces: + - position - velocity + + state_publish_rate: 100.0 + action_monitor_rate: 20.0 + + allow_partial_joints_goal: false + allow_nonzero_velocity_at_trajectory_end: true + allow_integration_in_goal_trajectories: true + + constraints: + stopped_velocity_tolerance: 0.01 + goal_time: 0.0 + + +gripper_controller: + ros__parameters: + + joints: + - robotiq_85_left_knuckle_joint + + command_interfaces: + - position + state_interfaces: - position - velocity - state_publish_rate: 250.0 + + state_publish_rate: 100.0 action_monitor_rate: 20.0 + allow_partial_joints_goal: false + allow_integration_in_goal_trajectories: true + constraints: - stopped_velocity_tolerance: 0.0 - goal_time: 0.0 \ No newline at end of file + stopped_velocity_tolerance: 0.01 + goal_time: 0.0 + + robotiq_85_left_knuckle_joint: + trajectory: 0.5 + goal: 0.5 + + gains: + robotiq_85_left_knuckle_joint: + p: 100.0 + d: 1.0 + i: 0.01 + i_clamp: 1.0 \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/moveit_controllers.yaml b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/moveit_controllers.yaml new file mode 100644 index 000000000..ef495fd5f --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/moveit_controllers.yaml @@ -0,0 +1,20 @@ +/**: + ros__parameters: + + moveit_simple_controller_manager: + + controller_names: + - joint_trajectory_controller + + joint_trajectory_controller: + type: FollowJointTrajectory + action_ns: follow_joint_trajectory + default: true + + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/ompl_planning.yaml b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/ompl_planning.yaml new file mode 100644 index 000000000..24eabd179 --- /dev/null +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/config/ompl_planning.yaml @@ -0,0 +1,67 @@ +/**: + ros__parameters: + + planner_configs: + + SBLkConfigDefault: + type: geometric::SBL + + ESTkConfigDefault: + type: geometric::EST + goal_bias: 0.05 + + LBKPIECEkConfigDefault: + type: geometric::LBKPIECE + border_fraction: 0.9 + min_valid_path_fraction: 0.5 + + BKPIECEkConfigDefault: + type: geometric::BKPIECE + border_fraction: 0.9 + failed_expansion_score_factor: 0.5 + min_valid_path_fraction: 0.5 + + KPIECEkConfigDefault: + type: geometric::KPIECE + goal_bias: 0.05 + border_fraction: 0.9 + failed_expansion_score_factor: 0.5 + min_valid_path_fraction: 0.5 + + RRTkConfigDefault: + type: geometric::RRT + goal_bias: 0.05 + + RRTConnectkConfigDefault: + type: geometric::RRTConnect + + RRTstarkConfigDefault: + type: geometric::RRTstar + goal_bias: 0.05 + delay_collision_checking: 1 + + TRRTkConfigDefault: + type: geometric::TRRT + goal_bias: 0.05 + + PRMkConfigDefault: + type: geometric::PRM + + PRMstarkConfigDefault: + type: geometric::PRMstar + + ur3_arm: + planner_configs: + - SBLkConfigDefault + - ESTkConfigDefault + - LBKPIECEkConfigDefault + - BKPIECEkConfigDefault + - KPIECEkConfigDefault + - RRTkConfigDefault + - RRTConnectkConfigDefault + - RRTstarkConfigDefault + - TRRTkConfigDefault + - PRMkConfigDefault + - PRMstarkConfigDefault + + longest_valid_segment_fraction: 0.01 \ No newline at end of file diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_macro.urdf.xacro b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_macro.urdf.xacro index 9fafebecc..2219b142a 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_macro.urdf.xacro +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_macro.urdf.xacro @@ -99,9 +99,6 @@ - - - @@ -119,9 +116,6 @@ - - - @@ -139,9 +133,6 @@ - - - @@ -159,9 +150,6 @@ - - - @@ -179,9 +167,6 @@ - - - @@ -199,9 +184,6 @@ - - - @@ -219,9 +201,6 @@ - - - diff --git a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_ros2control.xacro b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_ros2control.xacro index a317468c0..3900a0aff 100644 --- a/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_ros2control.xacro +++ b/Industrial/ros2_SimRealRobotControl_gz/ros2srrc_robots/ur3/urdf/ur3_ros2control.xacro @@ -144,7 +144,7 @@ - gazebo_ros2_control/GazeboSystem + gz_ros2_control/GazeboSimSystem diff --git a/Industrial/ur3_gripper_moveit_config /CMakeLists.txt b/Industrial/ur3_gripper_moveit_config /CMakeLists.txt new file mode 100644 index 000000000..e2513fb58 --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.8) +project(ur3_gripper_moveit_config) + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(ament_cmake_python REQUIRED) +find_package(robotiq_description REQUIRED) +find_package(urdf REQUIRED) +find_package(xacro REQUIRED) + +install(DIRECTORY config + DESTINATION share/${PROJECT_NAME} +) + + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + # the following line skips the linter which checks for copyrights + # uncomment the line when a copyright and license is not present in all source files + #set(ament_cmake_copyright_FOUND TRUE) + # the following line skips cpplint (only works in a git repo) + # uncomment the line when this package is not in a git repo + #set(ament_cmake_cpplint_FOUND TRUE) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/Industrial/ur3_gripper_moveit_config /config/controllers.yaml b/Industrial/ur3_gripper_moveit_config /config/controllers.yaml new file mode 100644 index 000000000..568d22a69 --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /config/controllers.yaml @@ -0,0 +1,26 @@ +/**: + ros__parameters: + moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager + moveit_simple_controller_manager: + controller_names: + - joint_trajectory_controller + - gripper_controller + + joint_trajectory_controller: + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: true + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + + gripper_controller: + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: false + joints: + - robotiq_85_left_knuckle_joint diff --git a/Industrial/ur3_gripper_moveit_config /config/kinematics.yaml b/Industrial/ur3_gripper_moveit_config /config/kinematics.yaml new file mode 100644 index 000000000..16412cd0b --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /config/kinematics.yaml @@ -0,0 +1,9 @@ +/**: + ros__parameters: + ur3_arm: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.1 + kinematics_solver_attempts: 10 + gripper: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin \ No newline at end of file diff --git a/Industrial/ur3_gripper_moveit_config /config/moveit_controllers.yaml b/Industrial/ur3_gripper_moveit_config /config/moveit_controllers.yaml new file mode 100644 index 000000000..188c35ddd --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /config/moveit_controllers.yaml @@ -0,0 +1,25 @@ +/**: + ros__parameters: + moveit_simple_controller_manager: + controller_names: + - joint_trajectory_controller + - gripper_controller + + joint_trajectory_controller: + type: FollowJointTrajectory + action_ns: follow_joint_trajectory + default: true + joints: + - shoulder_pan_joint + - shoulder_lift_joint + - elbow_joint + - wrist_1_joint + - wrist_2_joint + - wrist_3_joint + + gripper_controller: + type: FollowJointTrajectory + action_ns: follow_joint_trajectory + default: true + joints: + - robotiq_85_left_knuckle_joint \ No newline at end of file diff --git a/Industrial/ur3_gripper_moveit_config /config/ompl_planning.yaml b/Industrial/ur3_gripper_moveit_config /config/ompl_planning.yaml new file mode 100644 index 000000000..1fae3f8d6 --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /config/ompl_planning.yaml @@ -0,0 +1,72 @@ +/**: + ros__parameters: + planner_configs: + SBLkConfigDefault: + type: geometric::SBL + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + ESTkConfigDefault: + type: geometric::EST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LBKPIECEkConfigDefault: + type: geometric::LBKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + BKPIECEkConfigDefault: + type: geometric::BKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + KPIECEkConfigDefault: + type: geometric::KPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + RRTkConfigDefault: + type: geometric::RRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + RRTConnectkConfigDefault: + type: geometric::RRTConnect + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + RRTstarkConfigDefault: + type: geometric::RRTstar + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 + TRRTkConfigDefault: + type: geometric::TRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + max_states_failed: 10 # when to start increasing temp. default: 10 + temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 + min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 + init_temperature: 10e-6 # initial temperature. default: 10e-6 + frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + k_constant: 0.0 # value used to normalize expression. default: 0.0 set in setup() + PRMkConfigDefault: + type: geometric::PRM + max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 + PRMstarkConfigDefault: + type: geometric::PRMstar + ur3_arm: + planner_configs: + - SBLkConfigDefault + - ESTkConfigDefault + - LBKPIECEkConfigDefault + - BKPIECEkConfigDefault + - KPIECEkConfigDefault + - RRTkConfigDefault + - RRTConnectkConfigDefault + - RRTstarkConfigDefault + - TRRTkConfigDefault + - PRMkConfigDefault + - PRMstarkConfigDefault + ##Note: commenting the following line lets moveit chose RRTConnect as default planner rather than LBKPIECE + #projection_evaluator: joints(shoulder_pan_joint,shoulder_lift_joint) + longest_valid_segment_fraction: 0.01 diff --git a/Industrial/ur3_gripper_moveit_config /config/ur_servo.yaml b/Industrial/ur3_gripper_moveit_config /config/ur_servo.yaml new file mode 100644 index 000000000..741c97b6a --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /config/ur_servo.yaml @@ -0,0 +1,76 @@ +############################################### +# Modify all parameters related to servoing here +############################################### +use_gazebo: false # Whether the robot is started in a Gazebo simulation environment + +## Properties of incoming commands +command_in_type: "speed_units" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s +scale: + # Scale parameters are only used if command_in_type=="unitless" + linear: 0.6 # Max linear velocity. Meters per publish_period. Unit is [m/s]. Only used for Cartesian commands. + rotational: 0.3 # Max angular velocity. Rads per publish_period. Unit is [rad/s]. Only used for Cartesian commands. + # Max joint angular/linear velocity. Rads or Meters per publish period. Only used for joint commands on joint_command_in_topic. + joint: 0.01 +# This is a fudge factor to account for any latency in the system, e.g. network latency or poor low-level +# controller performance. It essentially increases the timestep when calculating the target pose, to move the target +# pose farther away. [seconds] +system_latency_compensation: 0.04 + +## Properties of outgoing commands +publish_period: 0.004 # 1/Nominal publish rate [seconds] +low_latency_mode: false # Set this to true to publish as soon as an incoming Twist command is received (publish_period is ignored) + +# What type of topic does your robot driver expect? +# Currently supported are std_msgs/Float64MultiArray or trajectory_msgs/JointTrajectory +command_out_type: std_msgs/Float64MultiArray + +# What to publish? Can save some bandwidth as most robots only require positions or velocities +publish_joint_positions: true +publish_joint_velocities: false +publish_joint_accelerations: false + +## Plugins for smoothing outgoing commands +smoothing_filter_plugin_name: "online_signal_smoothing::ButterworthFilterPlugin" + +## Incoming Joint State properties +low_pass_filter_coeff: 10.0 # Larger --> trust the filtered data more, trust the measurements less. + +## MoveIt properties +move_group_name: ur3_arm # Often 'manipulator' or 'arm' +planning_frame: base_link # The MoveIt planning frame. Often 'base_link' or 'world' + +## Other frames +ee_frame_name: tool0 # The name of the end effector link, used to return the EE pose +robot_link_command_frame: tool0 # commands must be given in the frame of a robot link. Usually either the base or end effector + +## Stopping behaviour +incoming_command_timeout: 0.1 # Stop servoing if X seconds elapse without a new command +# If 0, republish commands forever even if the robot is stationary. Otherwise, specify num. to publish. +# Important because ROS may drop some messages and we need the robot to halt reliably. +num_outgoing_halt_msgs_to_publish: 4 + +## Configure handling of singularities and joint limits +lower_singularity_threshold: 100.0 # Start decelerating when the condition number hits this (close to singularity) +hard_stop_singularity_threshold: 200.0 # Stop when the condition number hits this +joint_limit_margin: 0.1 # added as a buffer to joint limits [radians]. If moving quickly, make this larger. + +## Topic names +cartesian_command_in_topic: ~/delta_twist_cmds # Topic for incoming Cartesian twist commands +joint_command_in_topic: ~/delta_joint_cmds # Topic for incoming joint angle commands +joint_topic: /joint_states +status_topic: ~/status # Publish status to this topic +command_out_topic: /forward_position_controller/commands # Publish outgoing commands here + +## Collision checking for the entire robot body +check_collisions: true # Check collisions? +collision_check_rate: 5.0 # [Hz] Collision-checking can easily bog down a CPU if done too often. +# Two collision check algorithms are available: +# "threshold_distance" begins slowing down when nearer than a specified distance. Good if you want to tune collision thresholds manually. +# "stop_distance" stops if a collision is nearer than the worst-case stopping distance and the distance is decreasing. Requires joint acceleration limits +collision_check_type: threshold_distance +# Parameters for "threshold_distance"-type collision checking +self_collision_proximity_threshold: 0.01 # Start decelerating when a self-collision is this far [m] +scene_collision_proximity_threshold: 0.02 # Start decelerating when a scene collision is this far [m] +# Parameters for "stop_distance"-type collision checking +collision_distance_safety_factor: 1000.0 # Must be >= 1. A large safety factor is recommended to account for latency +min_allowable_collision_distance: 0.01 # Stop if a collision is closer than this [m] diff --git a/Industrial/ur3_gripper_moveit_config /package.xml b/Industrial/ur3_gripper_moveit_config /package.xml new file mode 100644 index 000000000..b5e616ab1 --- /dev/null +++ b/Industrial/ur3_gripper_moveit_config /package.xml @@ -0,0 +1,32 @@ + + + + ur3_gripper_moveit_config + 0.0.0 + TODO: Package description + justin + TODO: License declaration + + ament_cmake + ament_cmake_python + + robotiq_description + urdf + xacro + + launch + launch_ros + moveit_kinematics + moveit_planners_ompl + moveit_ros_move_group + moveit_ros_visualization + moveit_servo + moveit_simple_controller_manager + controller_manager + joint_trajectory_controller + rviz2 + + + ament_cmake + + diff --git a/Launchers/rviz/sausage_exercise.launch.py b/Launchers/rviz/sausage_exercise.launch.py new file mode 100644 index 000000000..aeccab830 --- /dev/null +++ b/Launchers/rviz/sausage_exercise.launch.py @@ -0,0 +1,142 @@ +""" +UR3 + Robotiq - RViz Launcher +Launches ONLY RViz with MoveIt Motion Planning +Assumes Gazebo and robot are already running +""" + +import os +import xacro +import yaml + +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import TimerAction + +from ament_index_python.packages import get_package_share_directory + +def load_yaml(package_name, file_path): + pkg_path = get_package_share_directory(package_name) + with open(os.path.join(pkg_path, file_path), "r") as f: + return yaml.safe_load(f) + + +def generate_launch_description(): + + # ===================================================== + # Packages + # ===================================================== + + pkg_share_dir = get_package_share_directory("custom_robots") + moveit_pkg_share = get_package_share_directory("ros2srrc_ur3_moveit2") + + # ===================================================== + # URDF + # ===================================================== + + xacro_file = os.path.join( + pkg_share_dir, + "models", + "ur3", + "ur3.urdf.xacro", + ) + + controllers_file = os.path.join( + pkg_share_dir, + "config", + "ur3_controllers.yaml", + ) + + robot_description_content = xacro.process_file( + xacro_file, + mappings={ + "ur_type": "ur3", + "name": "ur", + "prefix": "", + "use_fake_hardware": "false", + "sim_gazebo": "false", + "sim_gz": "true", + "simulation_controllers": controllers_file, + "hmi": "false", + "EE": "true", + "EE_name": "robotiq_2f85", + "camera": "false", + }, + ).toxml() + + robot_description = { + "robot_description": robot_description_content + } + + # ===================================================== + # SRDF + # ===================================================== + + srdf_file = os.path.join( + moveit_pkg_share, + "config", + "ur3robotiq_2f85.srdf", + ) + + with open(srdf_file, "r") as file: + robot_description_semantic = { + "robot_description_semantic": file.read() + } + + # ===================================================== + # MoveIt Config Files + # ===================================================== + + kinematics_yaml = load_yaml( + "ur3_gripper_moveit_config", + "config/kinematics.yaml", + ) + + kinematics_yaml = { + "robot_description_kinematics": + kinematics_yaml["/**"]["ros__parameters"] + } + + ompl_planning = load_yaml( + "ros2srrc_robots", + "ur3/config/ompl_planning.yaml", + ) + + ompl_planning = ompl_planning["/**"]["ros__parameters"] + + # ===================================================== + # RViz Config + # ===================================================== + + rviz_config_file = ( + "/home/ws/src/Industrial/ros2_SimRealRobotControl_gz/" + "packages/ur3/ros2srrc_ur3_moveit2/rviz/moveit.rviz" + ) + + print("MOVEIT PKG =", moveit_pkg_share) + print("RVIZ FILE =", rviz_config_file) + + rviz_node = Node( + package="rviz2", + executable="rviz2", + name="rviz2", + output="log", + arguments=["-d", rviz_config_file], + parameters=[ + robot_description, + robot_description_semantic, + ompl_planning, + kinematics_yaml, + {"use_sim_time": True}, + ], + ) + + delay_rviz = TimerAction( + period=3.0, + actions=[rviz_node], + ) + + return LaunchDescription( + [ + delay_rviz, + ] + ) \ No newline at end of file diff --git a/Launchers/sausage_exercise.launch.py b/Launchers/sausage_exercise.launch.py index eff793839..9468f828a 100644 --- a/Launchers/sausage_exercise.launch.py +++ b/Launchers/sausage_exercise.launch.py @@ -6,6 +6,7 @@ from launch.actions import ExecuteProcess, SetEnvironmentVariable from ament_index_python.packages import get_package_share_directory +from launch_ros.actions import Node def generate_launch_description(): @@ -70,11 +71,20 @@ def generate_launch_description(): output="screen", ) + sausage_spawner = ExecuteProcess( + cmd=[ + "python3", + "home/ws/src/CustomRobots/conveyor_belt/spawn_sausage.py" + ], + output="screen", + ) + return LaunchDescription( [ set_gz_plugin_path, set_ld_library_path, set_resource_path, gz, + sausage_spawner, ] ) diff --git a/Worlds/sausage_exercise.world b/Worlds/sausage_exercise.world index 2528dcdf6..e90e7bc06 100644 --- a/Worlds/sausage_exercise.world +++ b/Worlds/sausage_exercise.world @@ -12,8 +12,10 @@ - + + ogre2 + 0 0 -9.8 @@ -71,6 +73,36 @@ 0 0 0 0 0 0 + + + true + -0.5 0 0 0 0 0 + + 0 0 0.45 0 0 0 + + + + 0.09 + 0.9 + + + + 0.3 0.3 0.3 1 + 0.7 0.7 0.7 1 + 0.01 0.01 0.01 1 + + + + + + 0.09 + 0.9 + + + + + + \ No newline at end of file diff --git a/database/universes.sql b/database/universes.sql index 238550680..674039810 100644 --- a/database/universes.sql +++ b/database/universes.sql @@ -198,7 +198,7 @@ COPY public.universes (id, name, world_id, robot_id) FROM stdin; 68 Rover 4wd Warehouse Low Noise 68 19 69 Rover 4wd Warehouse High Noise 68 20 70 Machine vision Harmonic world 70 24 -71 Conveyor Belt World 71 0 +71 Conveyor Belt World 71 26 \. -- @@ -265,7 +265,7 @@ COPY public.worlds (id, name, launch_file_path, tools_config, ros_version, type, 67 Follow Person Teleop Harmonic /opt/jderobot/Launchers/follow_person_teleop_harmonic.launch.py {"gzsim":"/opt/jderobot/Launchers/visualization/follow_person.config"} ROS2 gz {-1.0,10.0,0.1,0.0,0.0,0.0} 68 Rover 4wd Warehouse Low Noise /opt/jderobot/Launchers/rover_4wd_warehouse.launch.py None ROS2 gz {0.0,0.0,0.0,0.0,0.0,0.0} 70 Machine Vision Harmonic /opt/jderobot/Launchers/machine_vision.launch.py {"rviz":"/opt/jderobot/Launchers/rviz/pick_place_harmonic.launch.py"} ROS2 gz {0.0,0.0,0.9,0.0,0.0,0.0} -71 Conveyor Harmonic /opt/jderobot/Launchers/sausage_exercise.launch.py None ROS2 gz {0.0,0.0,0.0,0.0,0.0,0.0} +71 Conveyor Harmonic /opt/jderobot/Launchers/sausage_exercise.launch.py {"rviz":"/opt/jderobot/Launchers/rviz/sausage_exercise.launch.py"} ROS2 gz {-0.5,0.0,0.9,0.0,0.0,0.0} \. -- @@ -299,6 +299,8 @@ COPY public.robots (id, name, launch_file_path, entity, extra_config) FROM stdin 22 Turtlebot 3 Medium Noise /home/ws/src/CustomRobots/turtlebot3/launch/turtlebot3.launch.py turtlebot3 noise:=med 23 Turtlebot 3 High Noise /home/ws/src/CustomRobots/turtlebot3/launch/turtlebot3.launch.py turtlebot3 noise:=high 24 Ur5 Camera /home/ws/src/CustomRobots/robot_arms/launch/ur5.launch.py ur5_robotiq sensor:=camera +25 Ur3 /home/ws/src/CustomRobots/robot_arms/launch/ur3.launch.py ur3_robotiq None +26 Ur3 Camera /home/ws/src/CustomRobots/robot_arms/launch/ur3.launch.py ur3_robotiq sensor:=camera \. --