From 213179adbd0c411a99274792d5bfe8199b0e97d3 Mon Sep 17 00:00:00 2001 From: Bill Finger Date: Wed, 18 Dec 2024 14:14:01 +0300 Subject: [PATCH] feat: enhance pick-and-place functionality with behavior tree support for place operations - Added `GetPlacePose` skill client library and associated service node to handle place pose retrieval, including preplace and postplace poses. - Created new behavior trees (`pick_and_place.xml`, `place_object.xml`) for handling pick-and-place operations with enhanced modularity. - Updated `AssemblyConfig` to include `place_poses` alongside `grasp_poses`, improving flexibility in assembly workflows. - Refactored YAML parsing and codebase to differentiate between `grasp_poses` and `place_poses` for better clarity and maintainability. - Updated related XML behavior tree nodes, scripts, and skill structures to integrate `GetPlacePose` functionality. - Adjusted gripper command maximum effort to `3.0` for improved control. - Added a new message definition for `GetPlacePose` service in the `rbs_utils_interfaces` package. - Updated CMakeLists.txt to include the new service and ensure proper build configuration. --- rbs_bt_executor/CMakeLists.txt | 8 +- rbs_bt_executor/bt_trees/grasp_object.xml | 22 +-- rbs_bt_executor/bt_trees/pick_and_place.xml | 17 ++ rbs_bt_executor/bt_trees/place_object.xml | 64 +++++++ rbs_bt_executor/src/GetGraspPose.cpp | 3 - rbs_bt_executor/src/GetPlacePose.cpp | 87 +++++++++ rbs_bt_executor/src/GripperCommand.cpp | 2 +- .../scripts/assembly_config_service.py | 180 +++++++++++++++--- rbs_utils/rbs_utils/src/rbs_utils.cpp | 6 +- rbs_utils/rbs_utils_interfaces/CMakeLists.txt | 1 + .../msg/AssemblyConfig.msg | 3 +- .../rbs_utils_interfaces/srv/GetPlacePose.srv | 7 + 12 files changed, 356 insertions(+), 44 deletions(-) create mode 100644 rbs_bt_executor/bt_trees/pick_and_place.xml create mode 100644 rbs_bt_executor/bt_trees/place_object.xml create mode 100644 rbs_bt_executor/src/GetPlacePose.cpp create mode 100644 rbs_utils/rbs_utils_interfaces/srv/GetPlacePose.srv diff --git a/rbs_bt_executor/CMakeLists.txt b/rbs_bt_executor/CMakeLists.txt index bb5147b..0bb5ed0 100644 --- a/rbs_bt_executor/CMakeLists.txt +++ b/rbs_bt_executor/CMakeLists.txt @@ -64,8 +64,12 @@ list(APPEND plugin_libs rbs_skill_move_topose_bt_action_client) add_library(rbs_skill_gripper_move_bt_action_client SHARED src/GripperCommand.cpp) list(APPEND plugin_libs rbs_skill_gripper_move_bt_action_client) -add_library(rbs_skill_get_pick_place_pose_service_client SHARED src/GetGraspPose.cpp) -list(APPEND plugin_libs rbs_skill_get_pick_place_pose_service_client) +add_library(rbs_get_grasp_pose_skill_client SHARED src/GetGraspPose.cpp) +list(APPEND plugin_libs rbs_get_grasp_pose_skill_client) + + +add_library(rbs_get_place_pose_skill_client SHARED src/GetPlacePose.cpp) +list(APPEND plugin_libs rbs_get_place_pose_skill_client) add_library(rbs_skill_move_joint_state SHARED src/MoveToJointStates.cpp) list(APPEND plugin_libs rbs_skill_move_joint_state) diff --git a/rbs_bt_executor/bt_trees/grasp_object.xml b/rbs_bt_executor/bt_trees/grasp_object.xml index 223245c..9e1ac91 100644 --- a/rbs_bt_executor/bt_trees/grasp_object.xml +++ b/rbs_bt_executor/bt_trees/grasp_object.xml @@ -4,15 +4,15 @@ -