Public Member Functions | |
void | cloud_cb (const sensor_msgs::PointCloud2::ConstPtr &msg) |
void | computeCentroid (const sample_consensus::PointCloud &points, const std::vector< int > &indices, pcl::PointXYZ ¢roid) |
Compute the centroid of a set of points using their indices and return it as a Point32 message. | |
void | computeCovarianceMatrix (const sample_consensus::PointCloud &points, const std::vector< int > &indices, Eigen::Matrix3d &covariance_matrix, pcl::PointXYZ ¢roid) |
Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3d. | |
void | computePointNormal (const sample_consensus::PointCloud &points, const std::vector< int > &indices, Eigen::Vector4d &plane_parameters, double &curvature) |
Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature. | |
bool | fitSACLine (sample_consensus::PointCloud *points, vector< int > *indices, vector< int > &inliers) |
Find a line model in a point cloud given via a set of point indices with SAmple Consensus methods. | |
void | flipNormalTowardsViewpoint (Eigen::Vector4d &normal, const pcl::PointXYZ &point, const geometry_msgs::PointStamped &viewpoint) |
Flip (in place) the estimated normal of a point towards a given viewpoint. | |
void | getCloudViewPoint (string cloud_frame, geometry_msgs::PointStamped &viewpoint_cloud, tf::TransformListener *tf) |
Get the view point from where the scans were taken in the incoming sample_consensus::PointCloud message frame. | |
IncGroundRemoval (ros::NodeHandle &anode) | |
double | pointToPlaneDistanceSigned (const pcl::PointXYZ &p, const Eigen::Vector4d &plane_coefficients) |
Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0. | |
double | transformDoubleValueTF (double val, std::string src_frame, std::string tgt_frame, ros::Time stamp, tf::TransformListener *tf) |
Transform a value from a source frame to a target frame at a certain moment in time with TF. | |
void | transformPoint (tf::TransformListener *tf, const std::string &target_frame, const tf::Stamped< pcl::PointXYZ > &stamped_in, tf::Stamped< pcl::PointXYZ > &stamped_out) |
Transform a given point from its current frame to a given target frame. | |
void | updateParametersFromServer () |
virtual | ~IncGroundRemoval () |
Public Attributes | |
sample_consensus::PointCloud | cloud_ |
sample_consensus::PointCloud | cloud_noground_ |
tf::MessageFilter < sensor_msgs::PointCloud2 > * | cloud_notifier_ |
ros::Publisher | cloud_publisher_ |
message_filters::Subscriber < sensor_msgs::PointCloud2 > * | cloud_subscriber_ |
double | ground_slope_threshold_ |
sample_consensus::PointCloud | laser_cloud_ |
std::string | laser_tilt_mount_frame_ |
int | planar_refine_ |
std::string | robot_footprint_frame_ |
double | sac_distance_threshold_ |
double | sac_fitting_distance_threshold_ |
int | sac_max_iterations_ |
int | sac_min_points_per_model_ |
tf::TransformListener | tf_ |
geometry_msgs::PointStamped | viewpoint_cloud_ |
double | z_threshold_ |
Protected Attributes | |
ros::NodeHandle & | node_ |
Definition at line 64 of file sac_inc_ground_removal_standalone.cpp.
IncGroundRemoval::IncGroundRemoval | ( | ros::NodeHandle & | anode | ) | [inline] |
Definition at line 90 of file sac_inc_ground_removal_standalone.cpp.
virtual IncGroundRemoval::~IncGroundRemoval | ( | ) | [inline, virtual] |
Definition at line 133 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::cloud_cb | ( | const sensor_msgs::PointCloud2::ConstPtr & | msg | ) | [inline] |
Definition at line 315 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::computeCentroid | ( | const sample_consensus::PointCloud & | points, |
const std::vector< int > & | indices, | ||
pcl::PointXYZ & | centroid | ||
) | [inline] |
Compute the centroid of a set of points using their indices and return it as a Point32 message.
points | the input point cloud |
indices | the point cloud indices that need to be used |
centroid | the output centroid |
Definition at line 224 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::computeCovarianceMatrix | ( | const sample_consensus::PointCloud & | points, |
const std::vector< int > & | indices, | ||
Eigen::Matrix3d & | covariance_matrix, | ||
pcl::PointXYZ & | centroid | ||
) | [inline] |
Compute the 3x3 covariance matrix of a given set of points using their indices. The result is returned as a Eigen::Matrix3d.
points | the input point cloud |
indices | the point cloud indices that need to be used |
covariance_matrix | the 3x3 covariance matrix |
centroid | the computed centroid |
Definition at line 250 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::computePointNormal | ( | const sample_consensus::PointCloud & | points, |
const std::vector< int > & | indices, | ||
Eigen::Vector4d & | plane_parameters, | ||
double & | curvature | ||
) | [inline] |
Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature.
points | the input point cloud |
indices | the point cloud indices that need to be used |
plane_parameters | the plane parameters as: a, b, c, d (ax + by + cz + d = 0) |
curvature | the estimated surface curvature as a measure of
|
Definition at line 285 of file sac_inc_ground_removal_standalone.cpp.
bool IncGroundRemoval::fitSACLine | ( | sample_consensus::PointCloud * | points, |
vector< int > * | indices, | ||
vector< int > & | inliers | ||
) | [inline] |
Find a line model in a point cloud given via a set of point indices with SAmple Consensus methods.
points | the point cloud message |
indices | a pointer to a set of point cloud indices to test |
inliers | the resultant inliers |
Definition at line 152 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::flipNormalTowardsViewpoint | ( | Eigen::Vector4d & | normal, |
const pcl::PointXYZ & | point, | ||
const geometry_msgs::PointStamped & | viewpoint | ||
) | [inline] |
Flip (in place) the estimated normal of a point towards a given viewpoint.
normal | the plane normal to be flipped |
point | a given point |
viewpoint | the viewpoint |
Definition at line 196 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::getCloudViewPoint | ( | string | cloud_frame, |
geometry_msgs::PointStamped & | viewpoint_cloud, | ||
tf::TransformListener * | tf | ||
) | [inline] |
Get the view point from where the scans were taken in the incoming sample_consensus::PointCloud message frame.
cloud_frame | the point cloud message TF frame |
viewpoint_cloud | the resultant view point in the incoming cloud frame |
tf | a pointer to a TransformListener object |
Definition at line 462 of file sac_inc_ground_removal_standalone.cpp.
double IncGroundRemoval::pointToPlaneDistanceSigned | ( | const pcl::PointXYZ & | p, |
const Eigen::Vector4d & | plane_coefficients | ||
) | [inline] |
Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.
p | a point |
plane_coefficients | the normalized coefficients (a, b, c, d) of a plane |
Definition at line 450 of file sac_inc_ground_removal_standalone.cpp.
double IncGroundRemoval::transformDoubleValueTF | ( | double | val, |
std::string | src_frame, | ||
std::string | tgt_frame, | ||
ros::Time | stamp, | ||
tf::TransformListener * | tf | ||
) | [inline] |
Transform a value from a source frame to a target frame at a certain moment in time with TF.
val | the value to transform |
src_frame | the source frame to transform the value from |
tgt_frame | the target frame to transform the value into |
stamp | a given time stamp |
tf | a pointer to a TransformListener object |
Definition at line 530 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::transformPoint | ( | tf::TransformListener * | tf, |
const std::string & | target_frame, | ||
const tf::Stamped< pcl::PointXYZ > & | stamped_in, | ||
tf::Stamped< pcl::PointXYZ > & | stamped_out | ||
) | [inline] |
Transform a given point from its current frame to a given target frame.
tf | a pointer to a TransformListener object |
target_frame | the target frame to transform the point into |
stamped_in | the input point |
stamped_out | the output point |
Definition at line 496 of file sac_inc_ground_removal_standalone.cpp.
void IncGroundRemoval::updateParametersFromServer | ( | ) | [inline] |
Definition at line 137 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 72 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 72 of file sac_inc_ground_removal_standalone.cpp.
tf::MessageFilter<sensor_msgs::PointCloud2>* IncGroundRemoval::cloud_notifier_ |
Definition at line 76 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 87 of file sac_inc_ground_removal_standalone.cpp.
message_filters::Subscriber<sensor_msgs::PointCloud2>* IncGroundRemoval::cloud_subscriber_ |
Definition at line 77 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 80 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 72 of file sac_inc_ground_removal_standalone.cpp.
std::string IncGroundRemoval::laser_tilt_mount_frame_ |
Definition at line 85 of file sac_inc_ground_removal_standalone.cpp.
ros::NodeHandle& IncGroundRemoval::node_ [protected] |
Definition at line 67 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 84 of file sac_inc_ground_removal_standalone.cpp.
std::string IncGroundRemoval::robot_footprint_frame_ |
Definition at line 85 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 82 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 83 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 81 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 81 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 74 of file sac_inc_ground_removal_standalone.cpp.
geometry_msgs::PointStamped IncGroundRemoval::viewpoint_cloud_ |
Definition at line 75 of file sac_inc_ground_removal_standalone.cpp.
Definition at line 80 of file sac_inc_ground_removal_standalone.cpp.