Go to the documentation of this file.
20 #ifndef ROBOT_CALIBRATION_CAPTURE_LED_FINDER_H
21 #define ROBOT_CALIBRATION_CAPTURE_LED_FINDER_H
28 #include <sensor_msgs/Image.h>
29 #include <sensor_msgs/PointCloud2.h>
30 #include <geometry_msgs/PointStamped.h>
31 #include <robot_calibration_msgs/CalibrationData.h>
32 #include <robot_calibration_msgs/GripperLedCommandAction.h>
57 bool process(sensor_msgs::PointCloud2& cloud,
58 sensor_msgs::PointCloud2&
prev,
59 geometry_msgs::Point& led_point,
64 bool isFound(
const sensor_msgs::PointCloud2& cloud,
69 geometry_msgs::PointStamped& centroid);
72 void reset(
size_t height,
size_t width);
91 bool find(robot_calibration_msgs::CalibrationData * msg);
94 void cameraCallback(
const sensor_msgs::PointCloud2::ConstPtr& cloud);
128 #endif // ROBOT_CALIBRATION_CAPTURE_LED_FINDER_H
bool isFound(const sensor_msgs::PointCloud2 &cloud, double threshold)
boost::scoped_ptr< LedClient > client_
Outgoing sensor_msgs::PointCloud2.
This class processes the point cloud input to find the LED.
ros::Publisher publisher_
Incoming sensor_msgs::PointCloud2.
CloudDifferenceTracker(std::string frame, double x, double y, double z)
actionlib::SimpleActionClient< robot_calibration_msgs::GripperLedCommandAction > LedClient
Internally used within LED finder to track each of several LEDs.
Base class for a feature finder.
Base class for a feature finder.
std::string camera_sensor_name_
Should we output debug image/cloud?
tf::TransformListener listener_
sensor_msgs::Image getImage()
bool process(sensor_msgs::PointCloud2 &cloud, sensor_msgs::PointCloud2 &prev, geometry_msgs::Point &led_point, double max_distance, double weight)
Update the tracker based on new cloud compared to previous.
void cameraCallback(const sensor_msgs::PointCloud2::ConstPtr &cloud)
bool find(robot_calibration_msgs::CalibrationData *msg)
Once the robot has been moved into the proper position and settled, this function will be called....
DepthCameraInfoManager depth_camera_manager_
bool output_debug_
Maximum number of cycles before we abort finding the LED.
bool init(const std::string &name, ros::NodeHandle &n)
Initialize the feature finder.
std::vector< CloudDifferenceTracker > trackers_
std::string chain_sensor_name_
std::vector< uint8_t > codes_
int max_iterations_
Minimum value of diffs in order to trigger that this is an LED.
geometry_msgs::Point point_
std::vector< boost::shared_ptr< ros::Publisher > > tracker_publishers_
std::vector< double > diff_
Calibration code lives under this namespace.
bool getRefinedCentroid(const sensor_msgs::PointCloud2 &cloud, geometry_msgs::PointStamped ¢roid)
void reset(size_t height, size_t width)
sensor_msgs::PointCloud2 cloud_
double max_inconsistency_
Maximum distance led can be from expected pose.
ros::Subscriber subscriber_
robot_calibration
Author(s): Michael Ferguson
autogenerated on Fri Sep 1 2023 02:52:01