19 #ifndef FETCH_AUTO_DOCK_PERCEPTION_H 20 #define FETCH_AUTO_DOCK_PERCEPTION_H 27 #include <boost/thread.hpp> 30 #include <geometry_msgs/PoseStamped.h> 31 #include <sensor_msgs/LaserScan.h> 47 bool start(
const geometry_msgs::PoseStamped&
pose);
53 bool getPose(geometry_msgs::PoseStamped& pose, std::string frame =
"");
57 void callback(
const sensor_msgs::LaserScanConstPtr& scan);
92 geometry_msgs::PoseStamped
dock_;
111 #endif // FETCH_AUTO_DOCK_PERCEPTION_H
DockPerception(ros::NodeHandle &nh)
DockCandidatePtr extract(laser_processor::SampleSet *cluster)
Extract a DockCandidate from a cluster, filling in the lengths and slopes of each line found using ra...
geometry_msgs::PoseStamped dock_
bool getPose(geometry_msgs::PoseStamped &pose, std::string frame="")
Get the pose of the dock.
ros::Publisher debug_points_
std::vector< geometry_msgs::Point > ideal_cloud_
std::vector< geometry_msgs::Point > front_cloud_
double max_alignment_error_
An ordered set of Samples.
ros::Subscriber scan_sub_
std::string tracking_frame_
Low pass filter object for filtering dock poses.
void callback(const sensor_msgs::LaserScanConstPtr &scan)
Callback to process laser scans.
static bool isValid(const tf::Quaternion &q)
Method to check if the quaternion is valid.
bool start(const geometry_msgs::PoseStamped &pose)
Start dock detection.
double fit(const DockCandidatePtr &candidate, geometry_msgs::Pose &pose)
Try to fit a dock to candidate.
LinearPoseFilter2DPtr dock_pose_filter_
bool stop()
Stop tracking the dock.
tf::TransformListener listener_