18 #ifndef ROBOT_CALIBRATION_CAPTURE_SCAN_FINDER_H 19 #define ROBOT_CALIBRATION_CAPTURE_SCAN_FINDER_H 23 #include <robot_calibration_msgs/CalibrationData.h> 24 #include <sensor_msgs/LaserScan.h> 41 virtual bool find(robot_calibration_msgs::CalibrationData * msg);
47 virtual void scanCallback(
const sensor_msgs::LaserScan& scan);
63 robot_calibration_msgs::CalibrationData * msg);
88 #endif // ROBOT_CALIBRATION_CAPTURE_SCAN_FINDER_H
Base class for a feature finder.
virtual ~ScanFinder()=default
tf2_ros::Buffer tf_buffer_
virtual bool waitForScan()
Wait until a new scan has arrived.
tf2_ros::TransformListener tf_listener_
virtual bool find(robot_calibration_msgs::CalibrationData *msg)
Once the robot has been moved into the proper position and settled, this function will be called...
sensor_msgs::LaserScan scan_
virtual bool init(const std::string &name, ros::NodeHandle &n)
Initialize the feature finder.
void extractObservation(const sensor_msgs::PointCloud2 &cloud, robot_calibration_msgs::CalibrationData *msg)
Extract the point cloud into a calibration message.
std::string transform_frame_
The scan finder is useful for aligning a laser scanner with other sensors. In particular, the laser scan be multiplied in the Z direction in order to create a plane for plane to plane calibration.
Calibration code lives under this namespace.
ros::Subscriber subscriber_
std::string laser_sensor_name_
virtual void scanCallback(const sensor_msgs::LaserScan &scan)
ROS callback - updates scan_ and resets waiting_ to false.
void extractPoints(sensor_msgs::PointCloud2 &cloud)
Extract a point cloud from laser scan points that meet criteria.
ros::Publisher publisher_