template struct mrpt::maps::CLogOddsGridMap2D

Overview

A generic provider of log-odds grid-map maintainance functions.

Map cells must be type TCELL, which can be only:

  • int8_t or

  • int16_t

See also:

CLogOddsGridMapLUT, See derived classes for usage examples.

#include <mrpt/maps/CLogOddsGridMap2D.h>

template <typename TCELL>
struct CLogOddsGridMap2D: public mrpt::maps::detail::logoddscell_traits
{
    // typedefs

    typedef TCELL cell_t;

    // methods

    void updateCell_fast_occupied(
        const unsigned x,
        const unsigned y,
        const cell_t logodd_obs,
        const cell_t thres,
        cell_t* mapArray,
        const unsigned _size_x
        );

    void updateCell_fast_occupied(cell_t* theCell, const cell_t logodd_obs, const cell_t thres);

    static void updateCell_fast_free(
        const unsigned x,
        const unsigned y,
        const cell_t logodd_obs,
        const cell_t thres,
        cell_t* mapArray,
        const unsigned _size_x
        );

    static void updateCell_fast_free(cell_t* theCell, const cell_t logodd_obs, const cell_t thres);
};

// direct descendants

class COccupancyGridMap2D;
class CReflectivityGridMap2D;

Typedefs

typedef TCELL cell_t

The type of cells.

Methods

void updateCell_fast_occupied(
    const unsigned x,
    const unsigned y,
    const cell_t logodd_obs,
    const cell_t thres,
    cell_t* mapArray,
    const unsigned _size_x
    )

Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.

This method increases the “occupancy-ness” of a cell, managing possible saturation.

Parameters:

x

Cell index in X axis.

y

Cell index in Y axis.

logodd_obs

Observation of the cell, in log-odd form as transformed by p2l.

thres

This must be CELLTYPE_MIN+logodd_obs

See also:

updateCell, updateCell_fast_free

void updateCell_fast_occupied(cell_t* theCell, const cell_t logodd_obs, const cell_t thres)

Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.

This method increases the “occupancy-ness” of a cell, managing possible saturation.

Parameters:

theCell

The cell to modify

logodd_obs

Observation of the cell, in log-odd form as transformed by p2l.

thres

This must be CELLTYPE_MIN+logodd_obs

See also:

updateCell, updateCell_fast_free

static void updateCell_fast_free(
    const unsigned x,
    const unsigned y,
    const cell_t logodd_obs,
    const cell_t thres,
    cell_t* mapArray,
    const unsigned _size_x
    )

Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.

This method increases the “free-ness” of a cell, managing possible saturation.

Parameters:

x

Cell index in X axis.

y

Cell index in Y axis.

logodd_obs

Observation of the cell, in log-odd form as transformed by p2l.

thres

This must be CELLTYPE_MAX-logodd_obs

See also:

updateCell_fast_occupied

static void updateCell_fast_free(cell_t* theCell, const cell_t logodd_obs, const cell_t thres)

Performs the Bayesian fusion of a new observation of a cell, without checking for grid limits nor updateInfoChangeOnly.

This method increases the “free-ness” of a cell, managing possible saturation.

Parameters:

x

Cell index in X axis.

y

Cell index in Y axis.

logodd_obs

Observation of the cell, in log-odd form as transformed by p2l.

thres

This must be CELLTYPE_MAX-logodd_obs

See also:

updateCell_fast_occupied