38 #include <grasping_msgs/FindGraspableObjectsAction.h>
42 #include <pcl/filters/passthrough.h>
99 ROS_INFO(
"basic_grasping_perception initialized");
103 void cloudCallback(
const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud)
109 ROS_DEBUG(
"Cloud received with %d points.",
static_cast<int>(cloud->points.size()));
112 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_filtered(
new pcl::PointCloud<pcl::PointXYZRGB>);
115 ROS_DEBUG(
"Filtered for range, now %d points.",
static_cast<int>(cloud_filtered->points.size()));
118 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud_transformed(
new pcl::PointCloud<pcl::PointXYZRGB>);
128 pcl::PointCloud<pcl::PointXYZRGB> object_cloud;
129 pcl::PointCloud<pcl::PointXYZRGB> support_cloud;
132 object_cloud.header.frame_id = cloud_transformed->header.frame_id;
133 support_cloud.header.frame_id = cloud_transformed->header.frame_id;
149 grasping_msgs::FindGraspableObjectsResult result;
160 server_->setAborted(result,
"Failed to get camera data in allocated time.");
161 ROS_ERROR(
"Failed to get camera data in allocated time.");
167 for (
size_t i = 0; i <
objects_.size(); ++i)
169 grasping_msgs::GraspableObject g;
171 if (
goal->plan_grasps)
176 result.objects.push_back(g);
181 server_->setSucceeded(result,
"Succeeded.");
210 int main(
int argc,
char* argv[])
212 ros::init(argc, argv,
"basic_grasping_perception");