class mp2p_icp_filters::FilterTransformPointCloud

Overview

Rigidly transforms an input point cloud layer into a different (new) output layer, replacing each point \(p_i\) by \(p'_i = T \oplus p_i\) (pose compounding operator), where \(T\) is pose, or its inverse if invert_pose is true.

Unlike FilterMerge, this does not insert into an existing metric map: it always creates (or overwrites) a plain point-cloud output layer of the same class as the input, making it composable with any other filter that takes a point-cloud layer as input (e.g. FilterDecimateAdaptive).

Typical use case: some algorithms (e.g. DLIO) voxelize incoming scans after transforming them into the (approximately known, e.g. from a motion-model prior) global/map frame, so voxel membership is anchored to the map rather than to the vehicle’s instantaneous local frame. This filter lets a pipeline replicate that: transform local->global with invert_pose: false, run the decimation filter, then transform back with invert_pose: true and the same pose so the rest of the pipeline is unaffected.

#include <FilterTransformPointCloud.h>

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

    struct Parameters;

    // fields

    Parameters params;

    // methods

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

Inherited Members

public:
    // methods

    Parameterizable& operator = (const Parameterizable&);
    Parameterizable& operator = (Parameterizable&&);
    virtual void filter(mp2p_icp::metric_map_t& inOut) const = 0;
    FilterBase& operator = (const FilterBase&);
    FilterBase& operator = (FilterBase&&);

Fields

Parameters params

Algorithm parameters

Methods

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

See docs above for FilterBase.