From 4b596bd80aef5a9c9586e68d493fb91124170ba6 Mon Sep 17 00:00:00 2001 From: Jeremy Bronson <109768477+jeremydbronson@users.noreply.github.com> Date: Wed, 31 Jul 2024 09:44:49 -0600 Subject: [PATCH 1/3] bump to 6.0.0 (#321) --- src/moveit_studio_ur_pstop_manager/package.xml | 2 +- src/picknik_ur_base_config/package.xml | 2 +- src/picknik_ur_gazebo_config/package.xml | 2 +- src/picknik_ur_gazebo_scan_and_plan_config/package.xml | 2 +- src/picknik_ur_mobile_config/package.xml | 2 +- src/picknik_ur_mock_hw_config/package.xml | 2 +- src/picknik_ur_mujoco_config/package.xml | 2 +- src/picknik_ur_multi_arm_config/package.xml | 2 +- src/picknik_ur_multi_arm_gazebo_config/package.xml | 2 +- src/picknik_ur_site_config/package.xml | 2 +- src/picknik_ur_studio_integration_testing/package.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/moveit_studio_ur_pstop_manager/package.xml b/src/moveit_studio_ur_pstop_manager/package.xml index 6b770574..0d04dade 100644 --- a/src/moveit_studio_ur_pstop_manager/package.xml +++ b/src/moveit_studio_ur_pstop_manager/package.xml @@ -2,7 +2,7 @@ moveit_studio_ur_pstop_manager - 5.1.0 + 6.0.0 Provides a node to monitor the protective stop state of the UR5, and reset protective stops when necessary. MoveIt Pro Maintainer diff --git a/src/picknik_ur_base_config/package.xml b/src/picknik_ur_base_config/package.xml index 97452221..24e9e279 100644 --- a/src/picknik_ur_base_config/package.xml +++ b/src/picknik_ur_base_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_base_config - 5.1.0 + 6.0.0 Base configuration package for Picknik's UR robot arms diff --git a/src/picknik_ur_gazebo_config/package.xml b/src/picknik_ur_gazebo_config/package.xml index 4d4878fa..bb03747b 100644 --- a/src/picknik_ur_gazebo_config/package.xml +++ b/src/picknik_ur_gazebo_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_gazebo_config - 5.1.0 + 6.0.0 Site configuration package for the UR5e in PickNik's space station world simulated by Gazebo. diff --git a/src/picknik_ur_gazebo_scan_and_plan_config/package.xml b/src/picknik_ur_gazebo_scan_and_plan_config/package.xml index 66cced26..887c8837 100644 --- a/src/picknik_ur_gazebo_scan_and_plan_config/package.xml +++ b/src/picknik_ur_gazebo_scan_and_plan_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_gazebo_scan_and_plan_config - 5.1.0 + 6.0.0 Site configuration package for the UR5e simulated in Gazebo to show "scan and plan" applications. diff --git a/src/picknik_ur_mobile_config/package.xml b/src/picknik_ur_mobile_config/package.xml index 9fe9ae98..9487462c 100644 --- a/src/picknik_ur_mobile_config/package.xml +++ b/src/picknik_ur_mobile_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_mobile_config - 5.1.0 + 6.0.0 MuJoCo simulation configuration package for Picknik's UR robot on a linear rail diff --git a/src/picknik_ur_mock_hw_config/package.xml b/src/picknik_ur_mock_hw_config/package.xml index 558098ec..b52ca3c7 100644 --- a/src/picknik_ur_mock_hw_config/package.xml +++ b/src/picknik_ur_mock_hw_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_mock_hw_config - 5.1.0 + 6.0.0 Configuration package for a UR arm that can be simulated with mock hardware diff --git a/src/picknik_ur_mujoco_config/package.xml b/src/picknik_ur_mujoco_config/package.xml index 160a7242..b4024b61 100644 --- a/src/picknik_ur_mujoco_config/package.xml +++ b/src/picknik_ur_mujoco_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_mujoco_config - 5.1.0 + 6.0.0 MuJoCo simulation configuration package for Picknik's UR robot on a linear rail diff --git a/src/picknik_ur_multi_arm_config/package.xml b/src/picknik_ur_multi_arm_config/package.xml index 006e9ead..1dc11783 100644 --- a/src/picknik_ur_multi_arm_config/package.xml +++ b/src/picknik_ur_multi_arm_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_multi_arm_config - 5.1.0 + 6.0.0 Example configuration package for multiple UR arms. diff --git a/src/picknik_ur_multi_arm_gazebo_config/package.xml b/src/picknik_ur_multi_arm_gazebo_config/package.xml index 53850831..bd7e860d 100644 --- a/src/picknik_ur_multi_arm_gazebo_config/package.xml +++ b/src/picknik_ur_multi_arm_gazebo_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_multi_arm_gazebo_config - 5.1.0 + 6.0.0 Experimental configuration package for dual UR arms. diff --git a/src/picknik_ur_site_config/package.xml b/src/picknik_ur_site_config/package.xml index 07449202..33bb0a49 100644 --- a/src/picknik_ur_site_config/package.xml +++ b/src/picknik_ur_site_config/package.xml @@ -1,7 +1,7 @@ picknik_ur_site_config - 5.1.0 + 6.0.0 Site configuration package for a UR arm that can be simulated with mock hardware diff --git a/src/picknik_ur_studio_integration_testing/package.xml b/src/picknik_ur_studio_integration_testing/package.xml index 0ac241ee..8a9a5fda 100644 --- a/src/picknik_ur_studio_integration_testing/package.xml +++ b/src/picknik_ur_studio_integration_testing/package.xml @@ -2,7 +2,7 @@ picknik_ur_studio_integration_testing - 5.1.0 + 6.0.0 Integration tests for UR with MoveIt Pro. MoveIt Pro Maintainer From cef07c4ebe8c9a44a7135c600e1bebb4378968ab Mon Sep 17 00:00:00 2001 From: David Yackzan Date: Mon, 5 Aug 2024 16:44:52 -0600 Subject: [PATCH 2/3] Make robot IP launch argument (#327) * Propagate hardware IP as launch argument * Remove other instances of deprecated IP param --- .../launch/robot_drivers_to_persist.launch.py | 11 +++++++++-- src/picknik_ur_multi_arm_config/config/config.yaml | 4 ---- .../config/config.yaml | 4 ---- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/picknik_ur_base_config/launch/robot_drivers_to_persist.launch.py b/src/picknik_ur_base_config/launch/robot_drivers_to_persist.launch.py index f77171a3..c4618f26 100644 --- a/src/picknik_ur_base_config/launch/robot_drivers_to_persist.launch.py +++ b/src/picknik_ur_base_config/launch/robot_drivers_to_persist.launch.py @@ -28,7 +28,9 @@ from launch import LaunchDescription +from launch.actions import DeclareLaunchArgument from launch.actions import IncludeLaunchDescription +from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node from launch.substitutions import ThisLaunchFileDir from launch.launch_description_sources import AnyLaunchDescriptionSource @@ -44,13 +46,18 @@ def generate_launch_description(): hardware_config = system_config_parser.get_hardware_config() controller_config = system_config_parser.get_ros2_control_config() + declare_robot_ip = DeclareLaunchArgument( + "robot_ip", description="IP address of the robot" + ) + robot_ip = LaunchConfiguration("robot_ip") + dashboard_client_node = Node( package="ur_robot_driver", executable="dashboard_client", name="dashboard_client", output="both", emulate_tty=True, - parameters=[{"robot_ip": hardware_config["ip"]}], + parameters=[{"robot_ip": robot_ip}], ) protective_stop_manager_node = Node( @@ -73,7 +80,7 @@ def generate_launch_description(): tool_comms_launch = IncludeLaunchDescription( AnyLaunchDescriptionSource([ThisLaunchFileDir(), "/ur_tool_comms.launch.xml"]), launch_arguments={ - "robot_ip": hardware_config["ip"], + "robot_ip": robot_ip, "tool_tcp_port": "54321", "tool_device_name": "/tmp/ttyUR", }.items(), diff --git a/src/picknik_ur_multi_arm_config/config/config.yaml b/src/picknik_ur_multi_arm_config/config/config.yaml index 4bad7e9b..4eb77e35 100644 --- a/src/picknik_ur_multi_arm_config/config/config.yaml +++ b/src/picknik_ur_multi_arm_config/config/config.yaml @@ -21,10 +21,6 @@ hardware: # [Optional, default=True] launch_robot_state_publisher: True - # The robot's IP address. - # [Required] - ip: "0.0.0.0" - # Specify additional launch files for running the robot with real hardware. # [Optional, defaults to a blank launch file if not specified] robot_driver_persist_launch_file: diff --git a/src/picknik_ur_multi_arm_gazebo_config/config/config.yaml b/src/picknik_ur_multi_arm_gazebo_config/config/config.yaml index ed14c7b2..6702f230 100644 --- a/src/picknik_ur_multi_arm_gazebo_config/config/config.yaml +++ b/src/picknik_ur_multi_arm_gazebo_config/config/config.yaml @@ -28,10 +28,6 @@ hardware: # If the MoveIt Pro Agent should launch cameras when simulated. launch_cameras_when_simulated: True - # The robot's IP address. - # [Required] - ip: "0.0.0.0" - # Specify any additional launch files for running the robot in simulation mode. # Used when hardware.simulated is True. # [Optional, defaults to a blank launch file if not specified] From a8c46907fe584693ee45dc679a59ea6034ed6df6 Mon Sep 17 00:00:00 2001 From: Chance Cardona <41308677+chancecardona@users.noreply.github.com> Date: Tue, 6 Aug 2024 17:14:40 +0000 Subject: [PATCH 3/3] Segment and Pick Anything (#268) * Add the code for a Segment Anything assisted pick object (aka generic pick object) * Added config with better grasps and click points Co-authored-by: Paul Gesel * Remove sensor name port variable for SendPointCloudToUI now that were on 6.0 Co-authored-by: David Yackzan --------- Co-authored-by: Paul Gesel Co-authored-by: David Yackzan --- README.md | 2 +- .../objectives/sam_pick_object.xml | 40 +++++++++++ .../objectives/sam_pick_object_config.yaml | 71 +++++++++++++++++++ 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 src/picknik_ur_site_config/objectives/sam_pick_object.xml create mode 100644 src/picknik_ur_site_config/objectives/sam_pick_object_config.yaml diff --git a/README.md b/README.md index 472a44d1..b8c1716e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ MoveIt Pro can be used with real robots and full simulators such as Gazebo and N For testing purposes, you can also use the [ROS 2 Control Mock Components](https://control.ros.org/master/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.html), which is what this repo is configured to use. This workspace offers a reasonable starting point for those users looking to develop with MoveIt Pro using custom base and site configurations. -For more information refer to the [online documentation](https://docs.picknik.ai/en/stable/). +For more information refer to the [online documentation](https://docs.picknik.ai). ## Universal Robots Configuration Packages diff --git a/src/picknik_ur_site_config/objectives/sam_pick_object.xml b/src/picknik_ur_site_config/objectives/sam_pick_object.xml new file mode 100644 index 00000000..b63800bc --- /dev/null +++ b/src/picknik_ur_site_config/objectives/sam_pick_object.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/picknik_ur_site_config/objectives/sam_pick_object_config.yaml b/src/picknik_ur_site_config/objectives/sam_pick_object_config.yaml new file mode 100644 index 00000000..ce8863b1 --- /dev/null +++ b/src/picknik_ur_site_config/objectives/sam_pick_object_config.yaml @@ -0,0 +1,71 @@ +SetupMTCApproachGrasp: + # The lift vector points to the direction of the positive z-axis of the frame marked as the world frame. + world_frame_name: "world" + arm_group_name: "manipulator" + end_effector_group_name: "gripper" + end_effector_name: "moveit_ee" + hand_frame_name: "grasp_link" + + approach_distance: 0.15 + + # Set to true to make the robot keep the object within view of its camera while reaching to grasp it + enforce_visibility_constraint: true + camera_optical_frame_id: "wrist_mounted_camera_color_optical_frame" + camera_field_of_view_angle: 1.0472 # radians: approx. 60 degrees, which is narrower than the 70 degree diagonal FOV of the D415 camera + sensor_z_offset: 0.02 + target_diameter: 0.0 # Set to 0 to disable the visibility cone constraint -- it's not useful with a single-arm camera-in-hand configuration. + + +SetupMTCGenerateCuboidGrasps: + end_effector_group_name: "gripper" + end_effector_name: "moveit_ee" + hand_frame_name: "grasp_link" + end_effector_closed_pose_name: "close" + ui_grasp_link: "grasp_link" + + # Grasp candidate configs + grasp_candidate_config: + generate_x_axis_grasps: true + generate_y_axis_grasps: true + generate_z_axis_grasps: true + + # Number of samples to generate for each quadrant of the cuboid. + samples_per_quadrant: 3 + + # Grasp data configs + grasp_data: + # See https://ros-planning.github.io/moveit_tutorials/_images/finger_gripper_explanation.jpg for description of the following parameters + # Note: these parameters are copied from Robotiq gripper without tweaking + # min/max values of the grasp depth range in meter. + # This should fit to the distance from finger tip to inner palm or the suction cup stroke + grasp_min_depth: 0.025 # minimum amount fingers must overlap object + grasp_max_depth: 0.065 # Maximum distance from tip of end effector inwards that an object can be for a grasp + + # Maximum allowed finger width for a grasp. + # This value should be considerably smaller than max_finger_width + # to allow padded collision checks + max_grasp_width: 0.4 + + # The transform from the arm IK link to the grasp point to align it with the following convention. + # + # z-axis pointing toward object to grasp + # x-axis perpendicular to movement of grippers + # y-axis parallel to movement of grippers + eef_mount_to_tcp_transform: + x: 0.0 + y: 0.0 + z: -0.02 + roll: 0.0 + pitch: 0.0 + yaw: 1.57 + +SetupMTCRetractFromGrasp: + world_frame_name: "world" + arm_group_name: "manipulator" + end_effector_group_name: "gripper" + hand_frame_name: "grasp_link" + end_effector_closed_pose_name: "close" + + # The lift vector points to the direction of the positive z-axis of the frame marked as the world frame. + approach_distance: 0.15 + lift_distance: 0.1