Fawkes API  Fawkes Development Version
LaserProjectionDataFilter Class Reference

Projects one laser into another laser's plane. More...

#include "filters/projection.h"

Inheritance diagram for LaserProjectionDataFilter:

Public Member Functions

 LaserProjectionDataFilter (std::string filter_name, fawkes::tf::Transformer *tf, std::string target_frame, float not_from_x, float not_to_x, float not_from_y, float not_to_y, float only_from_z, float only_to_z, unsigned int in_data_size, std::vector< LaserDataFilter::Buffer *> &in)
 Constructor. More...
 
void filter ()
 Filter the incoming data. More...
 
- Public Member Functions inherited from LaserDataFilter
 LaserDataFilter (const std::string filter_name, unsigned int in_data_size, std::vector< Buffer *> &in, unsigned int out_size)
 Constructor. More...
 
virtual ~LaserDataFilter ()
 Virtual empty destructor. More...
 
virtual std::vector< Buffer * > & get_out_vector ()
 Get filtered data array. More...
 
virtual void set_out_vector (std::vector< Buffer *> &out)
 Set filtered data array. More...
 
virtual unsigned int get_out_data_size ()
 Get size of filtered data array. More...
 
void set_array_ownership (bool own_in, bool own_out)
 Set input/output array ownership. More...
 
bool owns_in () const
 Check if input arrays are owned by filter. More...
 
bool owns_out () const
 Check if output arrays are owned by filter. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LaserDataFilter
virtual void set_out_data_size (unsigned int data_size)
 Resize output arrays. More...
 
void reset_outbuf (Buffer *b)
 Resets all readings in outbuf to NaN. More...
 
void copy_to_outbuf (Buffer *outbuf, const Buffer *inbuf)
 Copies the readings from inbuf to outbuf. More...
 
- Protected Attributes inherited from LaserDataFilter
const std::string filter_name
 Name of the specific filter instance. More...
 
unsigned int out_data_size
 Number of entries in output arrays. More...
 
unsigned int in_data_size
 Number of entries in input arrays. More...
 
std::vector< Buffer * > in
 Vector of input arrays. More...
 
std::vector< Buffer * > out
 Vector of output arrays. More...
 

Detailed Description

Projects one laser into another laser's plane.

This first transforms the laser value into the target frame, and then projects it into the X-Y plane (which is assumed to be the laser plane of another (virtual) laser. Additionally some sanity filtering in all three axes is applied after the transformation, but before the projection.

Author
Tim Niemueller, Christoph Schwering

Definition at line 41 of file projection.h.

Constructor & Destructor Documentation

◆ LaserProjectionDataFilter()

LaserProjectionDataFilter::LaserProjectionDataFilter ( std::string  filter_name,
fawkes::tf::Transformer tf,
std::string  target_frame,
float  not_from_x,
float  not_to_x,
float  not_from_y,
float  not_to_y,
float  only_from_z,
float  only_to_z,
unsigned int  in_data_size,
std::vector< LaserDataFilter::Buffer *> &  in 
)

Constructor.

Parameters
filter_namename of this filter
tftransformer to get transform from
target_frametarget coordinate fram to project into
not_from_xlower X boundary of ignored rectangle
not_to_xupper X boundary of ignored rectangle
not_from_ylower Y boundary of ignored rectangle
not_to_yupper Y boundary of ignored rectangle
only_from_zminimum Z value for accepted points
only_to_zmaximum Z value for accepted points
in_data_sizenumber of entries input value arrays
invector of input arrays

Definition at line 57 of file projection.cpp.

References fawkes::deg2rad(), fawkes::normalize_rad(), LaserDataFilter::out_data_size, and fawkes::rad2deg().

Member Function Documentation

◆ filter()

void LaserProjectionDataFilter::filter ( )
virtual

Filter the incoming data.

Function shall filter the data in the "in" member vector and write output to the "out" member vector.

Implements LaserDataFilter.

Definition at line 124 of file projection.cpp.

References fawkes::deg2rad(), LaserDataFilter::in, LaserDataFilter::in_data_size, fawkes::tf::Transformer::lookup_transform(), LaserDataFilter::out, and LaserDataFilter::out_data_size.


The documentation for this class was generated from the following files: