3 #ifndef _RAPID_PERCEPTION_RGBD_H_
4 #define _RAPID_PERCEPTION_RGBD_H_
10 #include "geometry_msgs/Pose.h"
11 #include "geometry_msgs/PoseStamped.h"
12 #include "geometry_msgs/Vector3.h"
13 #include "pcl/ModelCoefficients.h"
14 #include "pcl/PointIndices.h"
15 #include "pcl/filters/extract_indices.h"
16 #include "pcl/point_cloud.h"
17 #include "pcl/point_types.h"
18 #include "pcl/search/search.h"
19 #include "pcl/sample_consensus/method_types.h"
20 #include "pcl/sample_consensus/model_types.h"
21 #include "pcl/segmentation/sac_segmentation.h"
25 namespace perception {
29 void ClosestAxis(
const Eigen::Matrix3d& mat,
const Eigen::Vector3d& vec,
30 int* index,
double* cosine_sim);
34 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
35 double distance_threshold,
double eps_angle,
36 pcl::PointIndices::Ptr inliers);
48 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
49 const pcl::PointIndices::ConstPtr& indices,
double distance_threshold,
50 double eps_angle, pcl::PointIndices::Ptr inliers);
65 void GetBoundingBox(
const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
66 const pcl::PointIndices::ConstPtr& indices,
67 geometry_msgs::PoseStamped* midpoint,
68 geometry_msgs::Vector3* dimensions);
81 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
82 const pcl::PointIndices::ConstPtr& indices, geometry_msgs::Pose* midpoint,
83 geometry_msgs::Vector3* dimensions);
87 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
88 geometry_msgs::Pose* midpoint, geometry_msgs::Vector3* dimensions);
93 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
94 const pcl::PointIndices::ConstPtr& indices);
99 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud);
101 const pcl::PointCloud<pcl::PointXYZRGB>::ConstPtr& cloud,
102 const pcl::search::Search<pcl::PointXYZRGB>& tree);
108 pcl::PointCloud<pcl::PointXYZRGB>::Ptr
Average(
109 const std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr>& clouds);
116 const std::string& topic,
int num_clouds = 5);
119 #endif // _RAPID_PERCEPTION_RGBD_H_
bool FindHorizontalPlane(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &cloud, double distance_threshold, double eps_angle, pcl::PointIndices::Ptr inliers)
pcl::PointCloud< pcl::PointXYZRGB >::Ptr Average(const std::vector< pcl::PointCloud< pcl::PointXYZRGB >::Ptr > &clouds)
double ComputeResolution(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &cloud)
void ClosestAxis(const Eigen::Matrix3d &mat, const Eigen::Vector3d &vec, int *index, double *cosine_sim)
pcl::PointCloud< pcl::PointXYZRGB >::Ptr GetSmoothedKinectCloud(const std::string &topic, int num_clouds=5)
void GetPlanarBoundingBox(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &cloud, const pcl::PointIndices::ConstPtr &indices, geometry_msgs::Pose *midpoint, geometry_msgs::Vector3 *dimensions)
void GetBoundingBox(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &cloud, const pcl::PointIndices::ConstPtr &indices, geometry_msgs::PoseStamped *midpoint, geometry_msgs::Vector3 *dimensions)
pcl::PointCloud< pcl::PointXYZRGB >::Ptr IndicesToCloud(const pcl::PointCloud< pcl::PointXYZRGB >::ConstPtr &cloud, const pcl::PointIndices::ConstPtr &indices)