template struct mrpt::maps::CLogOddsGridMap3D

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/CLogOddsGridMap3D.h>

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

    typedef TCELL cell_t;

    //
fields

    grid_t m_grid;

    //
methods

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

    void updateCell_fast_occupied(
        const unsigned x,
        const unsigned y,
        const unsigned z,
        const cell_t logodd_obs,
        const cell_t thres
        );

    void updateCell_fast_free(
        const unsigned x,
        const unsigned y,
        const unsigned z,
        const cell_t logodd_obs,
        const cell_t thres
        );
};

// direct descendants

class COccupancyGridMap3D;

Typedefs

typedef TCELL cell_t

The type of cells.

Fields

grid_t m_grid

The actual 3D voxels container.

Methods

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

Performs Bayesian fusion of a new observation of a cell.

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(cell_t* theCell, const cell_t logodd_obs, const cell_t thres)

Performs Bayesian fusion of a new observation of a cell.

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

Parameters:

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

void updateCell_fast_occupied(
    const unsigned x,
    const unsigned y,
    const unsigned z,
    const cell_t logodd_obs,
    const cell_t thres
    )

Performs Bayesian fusion of a new observation of a cell.

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.

z

Cell index in Z 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_free(
    const unsigned x,
    const unsigned y,
    const unsigned z,
    const cell_t logodd_obs,
    const cell_t thres
    )

Performs the Bayesian fusion of a new observation of a cell.

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.

z

Cell index in Z 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