mp2p_icp_filters library
Overview
LiDAR and point cloud segmentation and filtering algorithms.
// typedefs typedef std::vector<FilterBase::Ptr> mp2p_icp_filters::FilterPipeline; typedef std::vector<Generator::Ptr> mp2p_icp_filters::GeneratorSet; // enums enum mp2p_icp_filters::DecimateMethod; enum mp2p_icp_filters::TimestampAdjustMethod; // structs struct mp2p_icp_filters::NotImplementedError; struct mp2p_icp_filters::sm2mm_options_t; // classes class mp2p_icp_filters::FilterAdjustTimestamps; class mp2p_icp_filters::FilterBase; class mp2p_icp_filters::FilterBoundingBox; class mp2p_icp_filters::FilterByIntensity; class mp2p_icp_filters::FilterByRange; class mp2p_icp_filters::FilterByRing; class mp2p_icp_filters::FilterCurvature; class mp2p_icp_filters::FilterDecimateAdaptive; class mp2p_icp_filters::FilterDecimateVoxels; class mp2p_icp_filters::FilterDecimateVoxelsQuadratic; class mp2p_icp_filters::FilterDeleteLayer; class mp2p_icp_filters::FilterDeskew; class mp2p_icp_filters::FilterEdgesPlanes; class mp2p_icp_filters::FilterMerge; class mp2p_icp_filters::FilterNormalizeIntensity; class mp2p_icp_filters::FilterRemoveByVoxelOccupancy; class mp2p_icp_filters::FilterVoxelSlice; class mp2p_icp_filters::Generator; class mp2p_icp_filters::GeneratorEdgesFromCurvature; class mp2p_icp_filters::GeneratorEdgesFromRangeImage; class mp2p_icp_filters::PointCloudToVoxelGrid; class mp2p_icp_filters::PointCloudToVoxelGridSingle; // global functions void mp2p_icp_filters::apply_filter_pipeline( const FilterPipeline& filters, mp2p_icp::metric_map_t& inOut, const mrpt::optional_ref<mrpt::system::CTimeLogger>& profiler = std::nullopt ); FilterPipeline mp2p_icp_filters::filter_pipeline_from_yaml( const mrpt::containers::yaml& c, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO ); FilterPipeline mp2p_icp_filters::filter_pipeline_from_yaml_file( const std::string& filename, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO ); bool mp2p_icp_filters::apply_generators( const GeneratorSet& generators, const mrpt::obs::CObservation& obs, mp2p_icp::metric_map_t& output, const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt ); mp2p_icp::metric_map_t mp2p_icp_filters::apply_generators( const GeneratorSet& generators, const mrpt::obs::CObservation& obs, const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt ); bool mp2p_icp_filters::apply_generators( const GeneratorSet& generators, const mrpt::obs::CSensoryFrame& sf, mp2p_icp::metric_map_t& output, const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt ); mp2p_icp::metric_map_t mp2p_icp_filters::apply_generators( const GeneratorSet& generators, const mrpt::obs::CSensoryFrame& sf, const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt ); GeneratorSet mp2p_icp_filters::generators_from_yaml( const mrpt::containers::yaml& c, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO ); GeneratorSet mp2p_icp_filters::generators_from_yaml_file( const std::string& filename, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO ); mrpt::maps::CPointsMap::Ptr mp2p_icp_filters::GetOrCreatePointLayer( mp2p_icp::metric_map_t& m, const std::string& layerName, bool allowEmptyName = true, const std::string& classForLayerCreation = "mrpt::maps::CSimplePointsMap" ); void mp2p_icp_filters::simplemap_to_metricmap( const mrpt::maps::CSimpleMap& sm, mp2p_icp::metric_map_t& outMap, const mrpt::containers::yaml& pipeline, const sm2mm_options_t& options = {} );
Typedefs
typedef std::vector<FilterBase::Ptr> mp2p_icp_filters::FilterPipeline
A sequence of filters
typedef std::vector<Generator::Ptr> mp2p_icp_filters::GeneratorSet
A set of generators
Global Functions
void mp2p_icp_filters::apply_filter_pipeline( const FilterPipeline& filters, mp2p_icp::metric_map_t& inOut, const mrpt::optional_ref<mrpt::system::CTimeLogger>& profiler = std::nullopt )
Applies a pipeline of filters to a given metric_map_t
FilterPipeline mp2p_icp_filters::filter_pipeline_from_yaml( const mrpt::containers::yaml& c, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO )
Creates a pipeline of filters from a YAML configuration block (a sequence). Refer to YAML file examples. Returns an empty pipeline for an empty or null yaml node. Returned filters are already initialize()’d.
bool mp2p_icp_filters::apply_generators( const GeneratorSet& generators, const mrpt::obs::CObservation& obs, mp2p_icp::metric_map_t& output, const std::optional<mrpt::poses::CPose3D>& robotPose = std::nullopt )
Applies a set of generators to a given input raw observation(s) and generates a metric_map_t.
The former contents on the output metric_map_t object are untouched, so calling this function several times can be used to accumulate point cloud elements from different sensors.
Returns:
true if any of the generators actually processed “obs”
GeneratorSet mp2p_icp_filters::generators_from_yaml( const mrpt::containers::yaml& c, const mrpt::system::VerbosityLevel& vLevel = mrpt::system::LVL_INFO )
Creates a set of generators from a YAML configuration block (a sequence). Returns an empty generators set for an empty or null yaml node. Refer to YAML file examples. Returned generators are already initialize()’d.
void mp2p_icp_filters::simplemap_to_metricmap( const mrpt::maps::CSimpleMap& sm, mp2p_icp::metric_map_t& outMap, const mrpt::containers::yaml& pipeline, const sm2mm_options_t& options = {} )
Utility function to build metric maps (”.mm”) from raw observations as a simple map (”.sm”). For a ready-to-use CLI application exposing this function, as well as documentation on the meaning of each argument, see sm2mm.
The former constents of outMap are cleared.