From 52f9d78ae445d1dda29b29e55d6390e95ebe2d7f Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Wed, 27 May 2020 11:55:47 +0200 Subject: [PATCH] fixed environment generation, generalized data-formats --- launch/simulation.launch | 4 ++-- src/grasping/environment_util.cpp | 10 +++++----- src/grasping/environment_util.h | 2 +- src/grasping/grasp_service.cpp | 16 +++++++++++----- srv/PickObject.srv | 4 +--- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/launch/simulation.launch b/launch/simulation.launch index b25573f..58ed7ef 100644 --- a/launch/simulation.launch +++ b/launch/simulation.launch @@ -28,7 +28,7 @@ <rosparam file="$(find panda_simulation)/config/panda_control.yaml" command="load" /> <!-- Load teaching robot information from YAML file to parameter server --> - <rosparam file="$(find panda_teaching)/config/robot_information.yaml" command="load" /> + <!--<rosparam file="$(find panda_teaching)/config/robot_information.yaml" command="load" />--> <!-- load the controllers --> <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen" args="joint_state_controller panda_arm_controller" /> @@ -61,5 +61,5 @@ <node pkg="panda_simulation" type="robot_state_initializer_node" name="robot_state_initializer_node" /> <node pkg="panda_grasping" type="grasp_service" name="grasp_service" output="screen" /> - <!--<node pkg="panda_teaching" type="grasp_service" name="grasp_service" output="screen" />--> + <!--<node pkg="panda_grasping" type="grasp_service" name="grasp_service" output="screen" />--> </launch> diff --git a/src/grasping/environment_util.cpp b/src/grasping/environment_util.cpp index f48c394..2d22d60 100644 --- a/src/grasping/environment_util.cpp +++ b/src/grasping/environment_util.cpp @@ -5,7 +5,7 @@ #include "environment_util.h" -void EnvironmentUtil::constructPlate(std::vector<moveit_msgs::CollisionObject> &collision_objects) { +void EnvironmentUtil::constructPlate(std::vector<moveit_msgs::CollisionObject> &collision_objects, double x_dimension, double y_dimension) { moveit_msgs::CollisionObject plate; @@ -13,12 +13,12 @@ void EnvironmentUtil::constructPlate(std::vector<moveit_msgs::CollisionObject> & plate.id = "plate"; plate.primitives.resize(1); - plate.primitives[0].type = collision_objects[1].primitives[0].BOX; + plate.primitives[0].type = 1u; plate.primitives[0].dimensions.resize(3); - plate.primitives[0].dimensions[0] = 3.0; - plate.primitives[0].dimensions[1] = 3.0; - plate.primitives[0].dimensions[2] = 0.1; + plate.primitives[0].dimensions[0] = x_dimension; + plate.primitives[0].dimensions[1] = y_dimension; + plate.primitives[0].dimensions[2] = 0.1; plate.primitive_poses.resize(1); plate.primitive_poses[0].position.x = 0; plate.primitive_poses[0].position.y = 0; diff --git a/src/grasping/environment_util.h b/src/grasping/environment_util.h index 9fd8102..b24d9df 100644 --- a/src/grasping/environment_util.h +++ b/src/grasping/environment_util.h @@ -19,7 +19,7 @@ class EnvironmentUtil { public: - void constructPlate(std::vector<moveit_msgs::CollisionObject> &collision_objects); + void constructPlate(std::vector<moveit_msgs::CollisionObject> &collision_objects, double x_dimension, double y_dimension); void constructSupport(std::vector<moveit_msgs::CollisionObject> &collision_objects, std::string id, double object_x_dimension, double object_y_dimension, double object_z_dimension, diff --git a/src/grasping/grasp_service.cpp b/src/grasping/grasp_service.cpp index 2c73051..ad4b2c8 100644 --- a/src/grasping/grasp_service.cpp +++ b/src/grasping/grasp_service.cpp @@ -26,10 +26,16 @@ bool pickObject(panda_grasping::PickObject::Request &req, EnvironmentUtil env_util; std::vector<moveit_msgs::CollisionObject> collision_objects; - env_util.constructPlate(collision_objects); - env_util.constructSupport(collision_objects, "pick_support", req.x_dimension, req.y_dimension, req.z_dimension, req.pose); + ROS_INFO("Adding plate."); + env_util.constructPlate(collision_objects, 3.0, 3.0); + + ROS_INFO("Adding support."); + env_util.constructSupport(collision_objects, "pick_support", req.dimensions.x, req.dimensions.y, req.dimensions.z, req.pose); + + ROS_INFO("Applying to scene."); planning_scene_interface.applyCollisionObjects(collision_objects); + res.success = true; return true; } @@ -45,8 +51,8 @@ int main(int argc, char **argv) { ros::init(argc, argv, "grasp_service"); ros::NodeHandle n("panda_grasping"); - ros::AsyncSpinner spinner(1); - spinner.start(); + // ros::AsyncSpinner spinner(2); + // spinner.start(); moveit::planning_interface::PlanningSceneInterface planning_scene_interface; moveit::planning_interface::MoveGroupInterface group("panda_arm"); @@ -54,7 +60,7 @@ int main(int argc, char **argv) { ros::ServiceServer pick_object_service = n.advertiseService<panda_grasping::PickObject::Request, panda_grasping::PickObject::Response>("PickObjectService", boost::bind(&pickObject, _1, _2, boost::ref(n), boost::ref(planning_scene_interface), boost::ref(group))); - ros::ServiceServer place_object_service = n.advertiseService("PlaceObjectService", placeObject); + //ros::ServiceServer place_object_service = n.advertiseService("PlaceObjectService", placeObject); ROS_INFO("Ready to grasp."); ros::spin(); diff --git a/srv/PickObject.srv b/srv/PickObject.srv index 5f9340b..d0e99d0 100644 --- a/srv/PickObject.srv +++ b/srv/PickObject.srv @@ -1,6 +1,4 @@ geometry_msgs/Pose pose -float64 x_dimension -float64 y_dimension -float64 z_dimension +geometry_msgs/Vector3 dimensions --- bool success \ No newline at end of file -- GitLab