7 #include <ros/node_handle.h>
8 #include <ros/advertise_service_options.h>
13 #include <geometry_msgs/Pose.h>
14 #include <shape_msgs/Mesh.h>
40 ros::NodeHandle nh_private(
"~");
41 ros::AdvertiseServiceOptions opt_publish_moveit_scene_ =
42 ros::AdvertiseServiceOptions::create<std_srvs::Trigger>(
62 ROS_INFO(
"[ED MOVEIT] Generating moveit planning scene");
63 moveit_msgs::PlanningSceneWorld msg;
68 if (!e->has_pose() || !e->shape() || e->existenceProbability() < 0.95 || e->hasFlag(
"self") || e->id() ==
"floor")
71 const geo::Mesh mesh = e->shape()->getMesh();
73 shape_msgs::Mesh mesh_msg;
76 moveit_msgs::CollisionObject object_msg;
77 object_msg.meshes.push_back(mesh_msg);
80 geometry_msgs::Pose pose_msg;
82 object_msg.mesh_poses.push_back(pose_msg);
84 object_msg.operation = moveit_msgs::CollisionObject::ADD;
85 object_msg.id = e->id().str();
86 object_msg.header.frame_id =
"map";
87 object_msg.header.stamp = ros::Time::now();
88 msg.collision_objects.push_back(object_msg);