22 #ifndef _PLUGINS_LASER_LINES_LINE_INFO_H_ 23 #define _PLUGINS_LASER_LINES_LINE_INFO_H_ 25 #include <logging/logger.h> 26 #include <pcl/point_cloud.h> 27 #include <pcl/point_types.h> 28 #include <tf/transformer.h> 31 #include <Eigen/Geometry> 32 #include <boost/circular_buffer.hpp> 42 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
74 boost::circular_buffer<LineInfo>
85 unsigned int cfg_moving_avg_len,
Line information container.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW float bearing
bearing to point on line
std::string input_frame_id
Input frame ID of raw line infos (base_laser usually)
Eigen::Vector3f end_point_1
line segment end point
std::string tracking_frame_id
Track lines relative to this frame (e.g. odom helps compensate movement)
Eigen::Vector3f end_point_2
line segment end point
fawkes::tf::Transformer * transformer
Transformer used to transform from input_frame_id_to odom.
Eigen::Vector3f base_point
optimized closest point on line
int visibility_history
visibility history of this line, negative for "no sighting"
LineInfo smooth
moving-average geometry of this line (cf. length of history buffer)
fawkes::Logger * logger
Logger pointer of the calling class.
std::string plugin_name
Plugin name of the calling class.
Eigen::Vector3f line_direction
line direction vector
float length
length of the detecte line segment
Eigen::Vector3f point_on_line
point on line vector
boost::circular_buffer< LineInfo > history
history of raw line geometries for computing moving average
void not_visible_update()
Update this currently not visible line, make the visibility history (more) negative and invalidate th...
fawkes::tf::Stamped< fawkes::tf::Point > base_point_odom
last reference point (in odom frame) for line tracking
int interface_idx
id of the interface, this line is written to, -1 when not yet assigned
TrackedLineInfo(fawkes::tf::Transformer *tfer, const std::string &input_frame_id, const std::string &tracking_frame_id, float cfg_switch_tolerance, unsigned int cfg_moving_avg_len, fawkes::Logger *logger, const std::string &plugin_name)
Constructor.
float cfg_switch_tolerance
Configured line jitter threshold.
Container for a line with tracking and smoothing info.
LineInfo raw
the latest geometry of this line, i.e. unfiltered
void update(LineInfo &new_linfo)
Update this line.
float bearing_center
Bearing towards line center, used to select lines "in front of us" when there.
btScalar distance(const LineInfo &linfo) const
Compute this line's distance from line info.
pcl::PointCloud< pcl::PointXYZ >::Ptr cloud
point cloud consisting only of points account to this line