NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
handrail_detect::HandrailDetect Class Reference
Inheritance diagram for handrail_detect::HandrailDetect:
Inheritance graph

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW HandrailDetect ()
 
 ~HandrailDetect ()
 
- Public Member Functions inherited from ff_util::FreeFlyerNodelet
 FreeFlyerNodelet (bool autostart_hb_timer=true)
 
 FreeFlyerNodelet (std::string const &name, bool autostart_hb_timer=true)
 
virtual ~FreeFlyerNodelet ()
 
void AssertFault (FaultKeys enum_key, std::string const &message, ros::Time time_fault_occurred=ros::Time::now())
 
void ClearAllFaults ()
 
void ClearFault (FaultKeys enum_key)
 
void PrintFaults ()
 
ros::NodeHandle * GetPlatformHandle (bool multithreaded=false)
 
ros::NodeHandle * GetPrivateHandle (bool multithreaded=false)
 
std::string GetName ()
 
std::string GetPlatform ()
 
std::string GetTransform (std::string const &child)
 

Protected Member Functions

void Initialize (ros::NodeHandle *nh)
 
void ReadParams ()
 
bool EnableCallback (ff_msgs::SetBool::Request &req, ff_msgs::SetBool::Response &res)
 
void PointCloud2Callback (const sensor_msgs::PointCloud2ConstPtr &depth_msg)
 
void Clear ()
 
void HandrailCallback ()
 
bool FindHandrail ()
 
bool DownsamplePoints (std::vector< int > *downsample_points)
 
bool FindPlane (const std::vector< int > &downsample_points, const sensor_msgs::PointCloud &filtered_cloud, std::vector< int > *plane_inliers, std::vector< int > *plane_outliers, Eigen::Vector4f *plane_parameter, Eigen::Vector3f *plane_vector, float *plane_vector_length)
 
bool ClusterLinePoints (const std::array< std::vector< int >, 2 > &line_inliers, const Eigen::Vector4f &plane_parameter, const sensor_msgs::PointCloud &filtered_cloud, const int &line_size_thres, std::array< std::vector< int >, 2 > *clustered_line_inliers)
 
void ClusterPotentialLinePoints (const std::vector< int > &potential_line_inliers, const sensor_msgs::PointCloud &filtered_cloud, bool x_check, float gap_dist, std::vector< int > *clustered_line_inliers)
 
bool FilterCloud (const std::vector< int > &sample_points, sensor_msgs::PointCloud *filtered_cloud)
 
void PublishTF (const Eigen::Affine3f &publish_tf, std::string parent_frame, std::string child_frame)
 
bool FindPotentialLinePoints (const std::vector< int > &new_plane_outliers, const Eigen::Vector4f &plane_parameter, const Eigen::Vector3f &plane_vector, const int &line_size_thres, const float &plane_vector_length, std::vector< int > *potential_line_inliers)
 
bool FindBestLinePoints (const std::vector< int > &potential_line_inliers, const int &line_size_thres, const Eigen::Vector3f &plane_vector, sensor_msgs::PointCloud *new_filtered_cloud, std::array< std::vector< int >, 2 > *best_line_inliers)
 
float GetLineDist (const std::vector< int > &point_inliers, const sensor_msgs::PointCloud &filtered_cloud, Eigen::Vector3f *center_pos)
 
void UpdateEndPoint (const int &fst_end, const int &scd_end, const Eigen::Vector3f &line_vector, const Eigen::Vector3f &line_center, std::vector< geometry_msgs::Point > *end_point)
 
geometry_msgs::Point FindCloseLinePoint (const int &point_ID, const Eigen::Vector3f &line_vector, const Eigen::Vector3f &line_center)
 
bool FindLine (const std::vector< int > &plane_outliers, const Eigen::Vector4f &plane_parameter, const Eigen::Vector3f &plane_vector, const float &plane_vector_length, Eigen::Vector3f *line_vector, Eigen::Vector3f *line_center, std::vector< int > *line_inliers)
 
void FindCorner (const std::vector< int > &line_inliers, const Eigen::Vector4f &plane_parameter, const Eigen::Vector3f &line_center, const float &plane_vector_length)
 
void GetBodyTargetPose (const Eigen::Vector3f &line_vector, const Eigen::Vector3f &line_center, const std::vector< geometry_msgs::Point > &end_point, const Eigen::Vector3f &plane_vector, Eigen::Vector3f *target_pos_err, Eigen::Affine3f *i2h)
 
void GetFeaturePoints (const std::vector< int > &plane_inliers, const std::vector< int > &line_inliers)
 
bool GetXYScale (const std::vector< int > &plane_inliers)
 
void PublishCloud (const std::vector< int > &idxs, const sensor_msgs::PointCloud &cloud_data, ros::Publisher *cloud_publisher)
 
void PublishDepthImage ()
 
void PublishNoMarker ()
 
void PublishMarker (const Eigen::Vector3f &target_pos_err, const Eigen::Affine3f &i2h, const std::vector< geometry_msgs::Point > &end_point)
 
void PrintHandrailStatus (const handrailStatus &prev_status, const handrailStatus &curr_status)
 
void ConvertRotMatToEuler (const Eigen::Matrix3f &r_mat, Eigen::Vector3f *euler)
 
- Protected Member Functions inherited from ff_util::FreeFlyerNodelet
virtual void Reset ()
 
virtual void Sleep ()
 
virtual void Wakeup ()
 
void StopHeartbeat ()
 
void SendDiagnostics (const std::vector< diagnostic_msgs::KeyValue > &keyval)
 
void Setup (ros::NodeHandle &nh, ros::NodeHandle &nh_mt, std::string plugin_name)
 

Additional Inherited Members

- Public Types inherited from ff_util::FreeFlyerNodelet
enum  ResolveType : uint8_t { NAMESPACE = 0, TRANSFORM = 1, RESOURCE = 1 }
 
- Protected Attributes inherited from ff_util::FreeFlyerNodelet
std::map< std::string, int > faults_
 

Constructor & Destructor Documentation

◆ HandrailDetect()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW handrail_detect::HandrailDetect::HandrailDetect ( )
inline

◆ ~HandrailDetect()

handrail_detect::HandrailDetect::~HandrailDetect ( )
inline

Member Function Documentation

◆ Clear()

void handrail_detect::HandrailDetect::Clear ( )
inlineprotected

◆ ClusterLinePoints()

bool handrail_detect::HandrailDetect::ClusterLinePoints ( const std::array< std::vector< int >, 2 > &  line_inliers,
const Eigen::Vector4f &  plane_parameter,
const sensor_msgs::PointCloud &  filtered_cloud,
const int &  line_size_thres,
std::array< std::vector< int >, 2 > *  clustered_line_inliers 
)
inlineprotected

◆ ClusterPotentialLinePoints()

void handrail_detect::HandrailDetect::ClusterPotentialLinePoints ( const std::vector< int > &  potential_line_inliers,
const sensor_msgs::PointCloud &  filtered_cloud,
bool  x_check,
float  gap_dist,
std::vector< int > *  clustered_line_inliers 
)
inlineprotected

◆ ConvertRotMatToEuler()

void handrail_detect::HandrailDetect::ConvertRotMatToEuler ( const Eigen::Matrix3f &  r_mat,
Eigen::Vector3f *  euler 
)
inlineprotected

◆ DownsamplePoints()

bool handrail_detect::HandrailDetect::DownsamplePoints ( std::vector< int > *  downsample_points)
inlineprotected

◆ EnableCallback()

bool handrail_detect::HandrailDetect::EnableCallback ( ff_msgs::SetBool::Request &  req,
ff_msgs::SetBool::Response &  res 
)
inlineprotected

◆ FilterCloud()

bool handrail_detect::HandrailDetect::FilterCloud ( const std::vector< int > &  sample_points,
sensor_msgs::PointCloud *  filtered_cloud 
)
inlineprotected

◆ FindBestLinePoints()

bool handrail_detect::HandrailDetect::FindBestLinePoints ( const std::vector< int > &  potential_line_inliers,
const int &  line_size_thres,
const Eigen::Vector3f &  plane_vector,
sensor_msgs::PointCloud *  new_filtered_cloud,
std::array< std::vector< int >, 2 > *  best_line_inliers 
)
inlineprotected

◆ FindCloseLinePoint()

geometry_msgs::Point handrail_detect::HandrailDetect::FindCloseLinePoint ( const int &  point_ID,
const Eigen::Vector3f &  line_vector,
const Eigen::Vector3f &  line_center 
)
inlineprotected

◆ FindCorner()

void handrail_detect::HandrailDetect::FindCorner ( const std::vector< int > &  line_inliers,
const Eigen::Vector4f &  plane_parameter,
const Eigen::Vector3f &  line_center,
const float &  plane_vector_length 
)
inlineprotected

◆ FindHandrail()

bool handrail_detect::HandrailDetect::FindHandrail ( )
inlineprotected

◆ FindLine()

bool handrail_detect::HandrailDetect::FindLine ( const std::vector< int > &  plane_outliers,
const Eigen::Vector4f &  plane_parameter,
const Eigen::Vector3f &  plane_vector,
const float &  plane_vector_length,
Eigen::Vector3f *  line_vector,
Eigen::Vector3f *  line_center,
std::vector< int > *  line_inliers 
)
inlineprotected

◆ FindPlane()

bool handrail_detect::HandrailDetect::FindPlane ( const std::vector< int > &  downsample_points,
const sensor_msgs::PointCloud &  filtered_cloud,
std::vector< int > *  plane_inliers,
std::vector< int > *  plane_outliers,
Eigen::Vector4f *  plane_parameter,
Eigen::Vector3f *  plane_vector,
float *  plane_vector_length 
)
inlineprotected

◆ FindPotentialLinePoints()

bool handrail_detect::HandrailDetect::FindPotentialLinePoints ( const std::vector< int > &  new_plane_outliers,
const Eigen::Vector4f &  plane_parameter,
const Eigen::Vector3f &  plane_vector,
const int &  line_size_thres,
const float &  plane_vector_length,
std::vector< int > *  potential_line_inliers 
)
inlineprotected

◆ GetBodyTargetPose()

void handrail_detect::HandrailDetect::GetBodyTargetPose ( const Eigen::Vector3f &  line_vector,
const Eigen::Vector3f &  line_center,
const std::vector< geometry_msgs::Point > &  end_point,
const Eigen::Vector3f &  plane_vector,
Eigen::Vector3f *  target_pos_err,
Eigen::Affine3f *  i2h 
)
inlineprotected

◆ GetFeaturePoints()

void handrail_detect::HandrailDetect::GetFeaturePoints ( const std::vector< int > &  plane_inliers,
const std::vector< int > &  line_inliers 
)
inlineprotected

◆ GetLineDist()

float handrail_detect::HandrailDetect::GetLineDist ( const std::vector< int > &  point_inliers,
const sensor_msgs::PointCloud &  filtered_cloud,
Eigen::Vector3f *  center_pos 
)
inlineprotected

◆ GetXYScale()

bool handrail_detect::HandrailDetect::GetXYScale ( const std::vector< int > &  plane_inliers)
inlineprotected

◆ HandrailCallback()

void handrail_detect::HandrailDetect::HandrailCallback ( )
inlineprotected

◆ Initialize()

void handrail_detect::HandrailDetect::Initialize ( ros::NodeHandle *  nh)
inlineprotectedvirtual

Reimplemented from ff_util::FreeFlyerNodelet.

◆ PointCloud2Callback()

void handrail_detect::HandrailDetect::PointCloud2Callback ( const sensor_msgs::PointCloud2ConstPtr &  depth_msg)
inlineprotected

◆ PrintHandrailStatus()

void handrail_detect::HandrailDetect::PrintHandrailStatus ( const handrailStatus prev_status,
const handrailStatus curr_status 
)
inlineprotected

◆ PublishCloud()

void handrail_detect::HandrailDetect::PublishCloud ( const std::vector< int > &  idxs,
const sensor_msgs::PointCloud &  cloud_data,
ros::Publisher *  cloud_publisher 
)
inlineprotected

◆ PublishDepthImage()

void handrail_detect::HandrailDetect::PublishDepthImage ( )
inlineprotected

◆ PublishMarker()

void handrail_detect::HandrailDetect::PublishMarker ( const Eigen::Vector3f &  target_pos_err,
const Eigen::Affine3f &  i2h,
const std::vector< geometry_msgs::Point > &  end_point 
)
inlineprotected

◆ PublishNoMarker()

void handrail_detect::HandrailDetect::PublishNoMarker ( )
inlineprotected

◆ PublishTF()

void handrail_detect::HandrailDetect::PublishTF ( const Eigen::Affine3f &  publish_tf,
std::string  parent_frame,
std::string  child_frame 
)
inlineprotected

◆ ReadParams()

void handrail_detect::HandrailDetect::ReadParams ( )
inlineprotected

◆ UpdateEndPoint()

void handrail_detect::HandrailDetect::UpdateEndPoint ( const int &  fst_end,
const int &  scd_end,
const Eigen::Vector3f &  line_vector,
const Eigen::Vector3f &  line_center,
std::vector< geometry_msgs::Point > *  end_point 
)
inlineprotected

The documentation for this class was generated from the following file: