This class detects the door in 2D laser scans. More...
#include <door_angle_detector.h>
Public Member Functions | |
DoorAngleDetector () | |
void | estimateDoorState (const PointCloudType &pcl_cloud, double &angle_out, geometry_msgs::Point &axis_position_out) |
computes angle, stores slope and intercept | |
void | scanCallback (const sensor_msgs::LaserScan::ConstPtr &scan) |
bool | serviceCallback (door_perception_msgs::DoorStateSrv::Request &request, door_perception_msgs::DoorStateSrv::Response &response) |
Private Attributes | |
double | angle |
ros::Publisher | angle_pub_ |
PointCloudType | cropping_polygon_ |
bool | door_found |
std::string | door_frame_ |
ros::Publisher | door_state_publisher_ |
double | intercept |
sensor_msgs::LaserScan | last_scan_ |
ros::NodeHandle | node_ |
ros::Publisher | point_cloud_publisher_ |
laser_geometry::LaserProjection | projector_ |
message_filters::Subscriber < sensor_msgs::LaserScan > | scan_sub_ |
ros::ServiceServer | service |
double | slope |
tf::MessageFilter < sensor_msgs::LaserScan > * | tf_filter_ |
tf::TransformListener | tfListener_ |
ros::Publisher | vis_pub_ |
This class detects the door in 2D laser scans.
This class projects the laser scan into the (tf) door frame (settable via parameter) and crops it to remove the (physical) door frame. It then determines the angle of the door, which can be requested via service or subscribed to on a topic
Definition at line 23 of file door_angle_detector.h.
Definition at line 16 of file door_angle_detector.cpp.
void DoorAngleDetector::estimateDoorState | ( | const PointCloudType & | pcl_cloud, |
double & | angle_out, | ||
geometry_msgs::Point & | axis_position_out | ||
) |
computes angle, stores slope and intercept
Definition at line 115 of file door_angle_detector.cpp.
void DoorAngleDetector::scanCallback | ( | const sensor_msgs::LaserScan::ConstPtr & | scan | ) |
Definition at line 45 of file door_angle_detector.cpp.
bool DoorAngleDetector::serviceCallback | ( | door_perception_msgs::DoorStateSrv::Request & | request, |
door_perception_msgs::DoorStateSrv::Response & | response | ||
) |
Definition at line 156 of file door_angle_detector.cpp.
double DoorAngleDetector::angle [private] |
Definition at line 47 of file door_angle_detector.h.
ros::Publisher DoorAngleDetector::angle_pub_ [private] |
Definition at line 40 of file door_angle_detector.h.
Definition at line 43 of file door_angle_detector.h.
bool DoorAngleDetector::door_found [private] |
Definition at line 48 of file door_angle_detector.h.
std::string DoorAngleDetector::door_frame_ [private] |
Definition at line 41 of file door_angle_detector.h.
Definition at line 38 of file door_angle_detector.h.
double DoorAngleDetector::intercept [private] |
Definition at line 46 of file door_angle_detector.h.
sensor_msgs::LaserScan DoorAngleDetector::last_scan_ [private] |
Definition at line 45 of file door_angle_detector.h.
ros::NodeHandle DoorAngleDetector::node_ [private] |
Definition at line 32 of file door_angle_detector.h.
Definition at line 37 of file door_angle_detector.h.
Definition at line 34 of file door_angle_detector.h.
message_filters::Subscriber<sensor_msgs::LaserScan> DoorAngleDetector::scan_sub_ [private] |
Definition at line 36 of file door_angle_detector.h.
ros::ServiceServer DoorAngleDetector::service [private] |
Definition at line 44 of file door_angle_detector.h.
double DoorAngleDetector::slope [private] |
Definition at line 46 of file door_angle_detector.h.
tf::MessageFilter<sensor_msgs::LaserScan>* DoorAngleDetector::tf_filter_ [private] |
Definition at line 42 of file door_angle_detector.h.
Definition at line 33 of file door_angle_detector.h.
ros::Publisher DoorAngleDetector::vis_pub_ [private] |
Definition at line 39 of file door_angle_detector.h.