This is a filter that removes points in a laser scan inside of a polygon. It assumes that the transform between the scanner and the robot base remains unchanged, i.e. the position and orientation of the laser filter should not change. A typical use case for this filter is to filter out parts of the robot body or load that it may carry. More...
#include <polygon_filter.h>
Public Member Functions | |
bool | configure () override |
bool | update (const sensor_msgs::LaserScan &input_scan, sensor_msgs::LaserScan &filtered_scan) override |
![]() | |
virtual void | configure (PolygonFilterConfig &config) |
![]() | |
bool | configure (const std::string ¶m_name, ros::NodeHandle node_handle=ros::NodeHandle()) |
bool | configure (XmlRpc::XmlRpcValue &config) |
FilterBase () | |
const std::string & | getName () const |
std::string | getType () |
virtual bool | update (const T &data_in, T &data_out)=0 |
virtual | ~FilterBase () |
Protected Member Functions | |
void | reconfigureCB (laser_filters::PolygonFilterConfig &config, uint32_t level) override |
![]() | |
bool | inPolygon (tf::Point &point) const |
void | publishPolygon () |
![]() | |
bool | getParam (const std::string &name, bool &value) const |
bool | getParam (const std::string &name, double &value) const |
bool | getParam (const std::string &name, int &value) const |
bool | getParam (const std::string &name, std::string &value) const |
bool | getParam (const std::string &name, std::vector< double > &value) const |
bool | getParam (const std::string &name, std::vector< std::string > &value) const |
bool | getParam (const std::string &name, unsigned int &value) const |
bool | getParam (const std::string &name, XmlRpc::XmlRpcValue &value) const |
bool | loadConfiguration (XmlRpc::XmlRpcValue &config) |
Private Member Functions | |
void | checkCoSineMap (const sensor_msgs::LaserScan &input_scan) |
Private Attributes | |
Eigen::ArrayXXd | co_sine_map_ |
float | co_sine_map_angle_max_ |
float | co_sine_map_angle_min_ |
bool | is_polygon_transformed_ |
double | transform_timeout_ |
Additional Inherited Members | |
![]() | |
std::shared_ptr< dynamic_reconfigure::Server< laser_filters::PolygonFilterConfig > > | dyn_server_ |
bool | invert_filter_ |
bool | is_polygon_published_ = false |
boost::recursive_mutex | own_mutex_ |
geometry_msgs::Polygon | polygon_ |
std::string | polygon_frame_ |
double | polygon_padding_ |
ros::Publisher | polygon_pub_ |
![]() | |
bool | configured_ |
std::string | filter_name_ |
std::string | filter_type_ |
string_map_t | params_ |
This is a filter that removes points in a laser scan inside of a polygon. It assumes that the transform between the scanner and the robot base remains unchanged, i.e. the position and orientation of the laser filter should not change. A typical use case for this filter is to filter out parts of the robot body or load that it may carry.
Definition at line 107 of file polygon_filter.h.
|
private |
Definition at line 430 of file polygon_filter.cpp.
|
overridevirtual |
Reimplemented from laser_filters::LaserScanPolygonFilterBase.
Definition at line 420 of file polygon_filter.cpp.
|
overrideprotectedvirtual |
Reimplemented from laser_filters::LaserScanPolygonFilterBase.
Definition at line 544 of file polygon_filter.cpp.
|
overridevirtual |
Reimplemented from laser_filters::LaserScanPolygonFilterBase.
Definition at line 459 of file polygon_filter.cpp.
|
private |
Definition at line 118 of file polygon_filter.h.
|
private |
Definition at line 120 of file polygon_filter.h.
|
private |
Definition at line 119 of file polygon_filter.h.
|
private |
Definition at line 121 of file polygon_filter.h.
|
private |
Definition at line 116 of file polygon_filter.h.