diff --git a/rbs_mill_assist/assets/laser/model.sdf b/rbs_mill_assist/assets/laser/model.sdf index 0713e03..973ebc7 100644 --- a/rbs_mill_assist/assets/laser/model.sdf +++ b/rbs_mill_assist/assets/laser/model.sdf @@ -10,24 +10,24 @@ model://laser/meshes/laser.stl - - - - - - - - - - - - - - - - - - + + 1 1 1 1 + 1 1 1 1 + 0.5 0.5 0.5 1 + 0 0 0 1 + + + + + + + + + + + + + diff --git a/rbs_mill_assist/assets/shildik/meshes/shildik_sh.dae b/rbs_mill_assist/assets/shildik/meshes/shildik_sh.dae index 3106369..e7108de 100644 --- a/rbs_mill_assist/assets/shildik/meshes/shildik_sh.dae +++ b/rbs_mill_assist/assets/shildik/meshes/shildik_sh.dae @@ -3,13 +3,66 @@ Blender User - Blender 4.1.1 commit date:2024-04-15, commit time:15:11, hash:e1743a0317bc + Blender 4.3.2 commit date:2024-12-16, commit time:21:10, hash:32f5fdce0a0a - 2025-02-12T10:55:51 - 2025-02-12T10:55:51 + 2025-03-03T12:34:37 + 2025-03-03T12:34:37 Z_UP + + + + + + 39.59775 + 1.777778 + 0.1 + 100 + + + + + + 0 + 0 + 10 + + + + + + + + + 1000 1000 1000 + 1 + 0 + 0 + + + + + 0 + 0 + 2097153 + 1 + 1 + 1 + 1000 + 75 + 0.15 + 0.04999995 + 40 + 0.1 + 1 + 0.1 + 0.1 + 1 + + + + @@ -39,7 +92,7 @@ - -0.02999997 -0.01999998 0 -0.02999997 -0.01999998 5e-4 -0.02999997 0.01999998 0 -0.02999997 0.01999998 5e-4 0.02999997 -0.01999998 0 0.02999997 -0.01999998 5e-4 0.02999997 0.01999998 0 0.02999997 0.01999998 5e-4 -0.02999997 0 0 -0.02999997 0 5e-4 0 0.01999998 0 0 0.01999998 5e-4 0.02999997 0 0 0.02999997 0 5e-4 0 -0.01999998 0 0 -0.01999998 5e-4 0 0 5e-4 0 0 0 + -0.02999997 -0.01999998 -2.5e-4 -0.02999997 -0.01999998 2.5e-4 -0.02999997 0.01999998 -2.5e-4 -0.02999997 0.01999998 2.5e-4 0.02999997 -0.01999998 -2.5e-4 0.02999997 -0.01999998 2.5e-4 0.02999997 0.01999998 -2.5e-4 0.02999997 0.01999998 2.5e-4 -0.02999997 0 -2.5e-4 -0.02999997 0 2.5e-4 0 0.01999998 -2.5e-4 0 0.01999998 2.5e-4 0.02999997 0 -2.5e-4 0.02999997 0 2.5e-4 0 -0.01999998 -2.5e-4 0 -0.01999998 2.5e-4 0 0 2.5e-4 0 0 -2.5e-4 @@ -87,12 +140,20 @@ - + + + 0.6859207 -0.3240135 0.6515582 7.358891 0.7276763 0.3054208 -0.6141704 -6.925791 0 0.8953956 0.4452714 4.958309 0 0 0 1 + + + + -0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 5.903862 0 0 0 1 + + diff --git a/rbs_mill_assist/assets/shildik/model.sdf b/rbs_mill_assist/assets/shildik/model.sdf index 1674d34..1761925 100644 --- a/rbs_mill_assist/assets/shildik/model.sdf +++ b/rbs_mill_assist/assets/shildik/model.sdf @@ -31,7 +31,7 @@ - 0.06 0.04 0.001 + 0.06 0.04 0.0005 diff --git a/rbs_mill_assist/bt/CMakeLists.txt b/rbs_mill_assist/bt/CMakeLists.txt index 70f2b16..c8c018f 100644 --- a/rbs_mill_assist/bt/CMakeLists.txt +++ b/rbs_mill_assist/bt/CMakeLists.txt @@ -2,6 +2,7 @@ find_package(behaviortree_ros2 REQUIRED) find_package(behaviortree_cpp REQUIRED) find_package(rbs_skill_interfaces REQUIRED) +find_package(rbs_utils_interfaces REQUIRED) find_package(geometry_msgs REQUIRED) # find_package(std_srvs REQUIRED) @@ -11,6 +12,7 @@ set(dependencies rbs_skill_interfaces geometry_msgs behaviortree_ros2 + rbs_utils_interfaces std_srvs ) @@ -20,6 +22,9 @@ list(APPEND plugin_libs vacuum_gripper_toggle) add_library(get_grasp_place_pose SHARED plugins/get_grasp_place_pose.cpp) list(APPEND plugin_libs get_grasp_place_pose) +add_library(get_named_pose SHARED plugins/get_named_pose.cpp) +list(APPEND plugin_libs get_named_pose) + foreach(bt_plugin ${plugin_libs}) ament_target_dependencies(${bt_plugin} ${dependencies}) target_compile_definitions(${bt_plugin} PRIVATE BT_PLUGIN_EXPORT) diff --git a/rbs_mill_assist/bt/plugins/get_named_pose.cpp b/rbs_mill_assist/bt/plugins/get_named_pose.cpp new file mode 100644 index 0000000..3b50b25 --- /dev/null +++ b/rbs_mill_assist/bt/plugins/get_named_pose.cpp @@ -0,0 +1,63 @@ +#include "behaviortree_ros2/bt_service_node.hpp" + +#include "behaviortree_ros2/plugins.hpp" +#include +// #include +#include "rbs_skill_interfaces/srv/get_pick_place_poses.hpp" +#include "rbs_utils_interfaces/srv/get_named_pose.hpp" +#include +#include +#include +#include +#include +#include + +using GetNamedPoseService = rbs_utils_interfaces::srv::GetNamedPose; +using namespace BT; + +class GetNamedPose : public RosServiceNode { +public: + GetNamedPose(const std::string &name, const NodeConfig &conf, + const RosNodeParams ¶ms) + : RosServiceNode(name, conf, params) { + + RCLCPP_INFO(this->logger(), "Starting GetGraspPose"); + } + + static PortsList providedPorts() { + return providedBasicPorts( + {InputPort("pose_name"), + OutputPort>("output_pose")}); + } + + bool setRequest(Request::SharedPtr &request) override { + RCLCPP_INFO(this->logger(), "Starting send request for: [%s]", + this->service_name_.c_str()); + if (!getInput("pose_name", request->pose_name)) { + RCLCPP_ERROR(this->node_.lock()->get_logger(), + "Failed to get pose_name from input port"); + return false; + } + return true; + } + + NodeStatus onResponseReceived(const Response::SharedPtr &response) override { + if (!response->ok) { + RCLCPP_ERROR(this->logger(), "Response indicates failure."); + return NodeStatus::FAILURE; + } + + RCLCPP_INFO(this->logger(), + "Response received successfully with pose name [%s]", + response->named_pose.name.c_str()); + + auto pose = std::make_shared(); + *pose = response->named_pose.pose; + setOutput("output_pose", pose); + + return NodeStatus::SUCCESS; + } + // virtual NodeStatus onFailure(ServiceNodeErrorCode error) override {} +}; + +CreateRosNodePlugin(GetNamedPose, "GetNamedPose"); diff --git a/rbs_mill_assist/bt/xmls/FromGraver.xml b/rbs_mill_assist/bt/xmls/FromGraver.xml new file mode 100644 index 0000000..7faccd8 --- /dev/null +++ b/rbs_mill_assist/bt/xmls/FromGraver.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/rbs_mill_assist/bt/xmls/Grasp.xml b/rbs_mill_assist/bt/xmls/Grasp.xml index 4d1bde0..5a8fb9e 100644 --- a/rbs_mill_assist/bt/xmls/Grasp.xml +++ b/rbs_mill_assist/bt/xmls/Grasp.xml @@ -2,16 +2,12 @@ + -