struct mp2p_icp_filters::sm2mm_options_t

Overview

Options for simplemap_to_metricmap()

#include <sm2mm.h>

struct sm2mm_options_t
{
    // fields

    mrpt::system::VerbosityLevel verbosity = mrpt::system::LVL_INFO;
    bool showProgressBar = false;
    bool throw_on_missing_external_files = true;
    std::vector<std::pair<std::string, double>> customVariables = {};
    std::optional<size_t> start_index;
    std::optional<size_t> end_index;
    mrpt::optional_ref<mrpt::system::CTimeLogger> profiler;
    std::optional<size_t> decimate_every_nth_frame;
    std::optional<size_t> decimate_maximum_frame_count;
    std::optional<mp2p_icp::metric_map_t::Georeferencing> georeferencing;
};

Fields

std::optional<mp2p_icp::metric_map_t::Georeferencing> georeferencing

If provided, robot poses from the simplemap are transformed into the ENU (East-North-Up) frame before being passed to the generators. Specifically, the effective pose used for each keyframe becomes:

T_enu_to_map oplus robotPose

so that the generated metric map is expressed in ENU coordinates. This is relevant for filters that expect an exact upward direction of the map +Z axis, for example.

When this field is set, the output metric_map_t will be populated with a copy of the georeferencing information, but with T_enu_to_map reset to the identity pose (while preserving its covariance matrix), because the map points are already expressed in the ENU frame and no further rigid-body correction is needed at query time.

The geodetic reference point (geo_coord) is copied verbatim from the input.

This option is mutually exclusive with any post-hoc injection of georeferencing data via mm-georef --inject-to-map; use one or the other.