class mp2p_icp_filters::FilterMerge

Overview

Takes an input point cloud or mrpt::maps::CVoxelMap layer and inserts it into another one of arbitrary metric map type.

Insertion is done by converting the input layer into an mrpt::obs::CObservationPointCloud, then invoking the target layer’s mrpt::maps::CMetricMap::insertObservation()

If the input was a mrpt::maps::CVoxelMap, it is first converted into a point cloud by generating points for each occupied voxel using mrpt::maps::CVoxelMap::getOccupiedVoxels().

Coordinate frames are:

  • If input_layer_in_local_coordinates is false (default): both, input and output layers are in the same frame of reference. Even though, the variable robot_pose is important in cases where ray-tracing is necesary, e.g. voxel or grid maps.

  • If input_layer_in_local_coordinates is true : input is in the vehicle frame, output is in another global frame, in which the vehicle is at pose robot_pose.

#include <FilterMerge.h>

class FilterMerge: public mp2p_icp_filters::FilterBase
{
public:
    // structs

    struct Parameters;

    // fields

    Parameters params_;

    // methods

    virtual void initialize(const mrpt::containers::yaml& cfg_block);
    virtual void filter(mp2p_icp::metric_map_t& inOut) const;
};

Inherited Members

public:
    // methods

    virtual void initialize(const mrpt::containers::yaml& cfg_block) = 0;
    virtual void filter(mp2p_icp::metric_map_t& inOut) const = 0;
    void attachToParameterSource(ParameterSource& source);
    void checkAllParametersAreRealized() const;
    void unrealizeParameters();

Fields

Parameters params_

Algorithm parameters

Methods

virtual void initialize(const mrpt::containers::yaml& cfg_block)

Loads, from a YAML configuration block, all the common, and implementation-specific parameters.

virtual void filter(mp2p_icp::metric_map_t& inOut) const

See docs above for FilterBase.