Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
DynamicEDT3D Class Reference

A DynamicEDT3D object computes and updates a 3D distance map. More...

#include <dynamicEDT3D.h>

Inheritance diagram for DynamicEDT3D:
Inheritance graph
[legend]

Classes

struct  dataCell
 

Public Types

enum  ObstDataState { invalidObstData = INT_MAX }
 

Public Member Functions

void clearCell (int x, int y, int z)
 remove an obstacle at the specified cell coordinate More...
 
 DynamicEDT3D (int _maxdist_squared)
 
void exchangeObstacles (std::vector< INTPOINT3D > newObstacles)
 remove old dynamic obstacles and add the new ones More...
 
INTPOINT3D getClosestObstacle (int x, int y, int z) const
 gets the closest occupied cell for that location More...
 
float getDistance (int x, int y, int z) const
 returns the obstacle distance at the specified location More...
 
unsigned int getSizeX () const
 returns the x size of the workspace/map More...
 
unsigned int getSizeY () const
 returns the y size of the workspace/map More...
 
unsigned int getSizeZ () const
 returns the z size of the workspace/map More...
 
int getSQCellDistance (int x, int y, int z) const
 returns the squared obstacle distance in cell units at the specified location More...
 
void initializeEmpty (int _sizeX, int _sizeY, int sizeZ, bool initGridMap=true)
 Initialization with an empty map. More...
 
void initializeMap (int _sizeX, int _sizeY, int sizeZ, bool ***_gridMap)
 Initialization with a given binary map (false==free, true==occupied) More...
 
bool isOccupied (int x, int y, int z) const
 checks whether the specficied location is occupied More...
 
void occupyCell (int x, int y, int z)
 add an obstacle at the specified cell coordinate More...
 
virtual void update (bool updateRealDist=true)
 update distance map to reflect the changes More...
 
 ~DynamicEDT3D ()
 

Static Public Attributes

static int distanceInCellsValue_Error = -1
 distance value returned when requesting distance in cell units for a cell outside the map More...
 
static float distanceValue_Error = -1.0
 distance value returned when requesting distance for a cell outside the map More...
 

Protected Types

enum  QueueingState {
  fwNotQueued =1, fwQueued =2, fwProcessed =3, bwQueued =4,
  bwProcessed =1
}
 
enum  State { free =0, occupied =1 }
 

Protected Member Functions

void inspectCellPropagate (int &nx, int &ny, int &nz, dataCell &c, bool updateRealDist)
 
void inspectCellRaise (int &nx, int &ny, int &nz, bool updateRealDist)
 
void propagateCell (INTPOINT3D &p, dataCell &c, bool updateRealDist)
 
void raiseCell (INTPOINT3D &p, dataCell &c, bool updateRealDist)
 
void removeObstacle (int x, int y, int z)
 
void setObstacle (int x, int y, int z)
 

Protected Attributes

dataCell *** data
 
double doubleThreshold
 
bool *** gridMap
 
double maxDist
 
int maxDist_squared
 
int padding
 
int sizeX
 
int sizeXm1
 
int sizeY
 
int sizeYm1
 
int sizeZ
 
int sizeZm1
 
double sqrt2
 

Private Member Functions

void commitAndColorize (bool updateRealDist=true)
 
bool isOccupied (int &x, int &y, int &z, dataCell &c)
 

Private Attributes

std::vector< INTPOINT3DaddList
 
std::vector< INTPOINT3DlastObstacles
 
BucketPrioQueue< INTPOINT3Dopen
 
std::vector< INTPOINT3DremoveList
 

Detailed Description

A DynamicEDT3D object computes and updates a 3D distance map.

dynamicEDT3D: A library for incrementally updatable Euclidean distance transforms in 3D.

Author
C. Sprunk, B. Lau, W. Burgard, University of Freiburg, Copyright (C) 2011.
See also
http://octomap.sourceforge.net/ License: New BSD License

Definition at line 47 of file dynamicEDT3D.h.

Member Enumeration Documentation

Enumerator
invalidObstData 

Definition at line 86 of file dynamicEDT3D.h.

Enumerator
fwNotQueued 
fwQueued 
fwProcessed 
bwQueued 
bwProcessed 

Definition at line 105 of file dynamicEDT3D.h.

enum DynamicEDT3D::State
protected
Enumerator
free 
occupied 

Definition at line 104 of file dynamicEDT3D.h.

Constructor & Destructor Documentation

DynamicEDT3D::DynamicEDT3D ( int  _maxdist_squared)

Definition at line 109 of file dynamicEDT3D.cpp.

DynamicEDT3D::~DynamicEDT3D ( )

Definition at line 117 of file dynamicEDT3D.cpp.

Member Function Documentation

void DynamicEDT3D::clearCell ( int  x,
int  y,
int  z 
)

remove an obstacle at the specified cell coordinate

Definition at line 260 of file dynamicEDT3D.cpp.

void DynamicEDT3D::commitAndColorize ( bool  updateRealDist = true)
private

Definition at line 544 of file dynamicEDT3D.cpp.

void DynamicEDT3D::exchangeObstacles ( std::vector< INTPOINT3D newObstacles)

remove old dynamic obstacles and add the new ones

Definition at line 288 of file dynamicEDT3D.cpp.

INTPOINT3D DynamicEDT3D::getClosestObstacle ( int  x,
int  y,
int  z 
) const

gets the closest occupied cell for that location

Definition at line 528 of file dynamicEDT3D.cpp.

float DynamicEDT3D::getDistance ( int  x,
int  y,
int  z 
) const

returns the obstacle distance at the specified location

Definition at line 521 of file dynamicEDT3D.cpp.

unsigned int DynamicEDT3D::getSizeX ( ) const
inline

returns the x size of the workspace/map

Definition at line 80 of file dynamicEDT3D.h.

unsigned int DynamicEDT3D::getSizeY ( ) const
inline

returns the y size of the workspace/map

Definition at line 82 of file dynamicEDT3D.h.

unsigned int DynamicEDT3D::getSizeZ ( ) const
inline

returns the z size of the workspace/map

Definition at line 84 of file dynamicEDT3D.h.

int DynamicEDT3D::getSQCellDistance ( int  x,
int  y,
int  z 
) const

returns the squared obstacle distance in cell units at the specified location

Definition at line 536 of file dynamicEDT3D.cpp.

void DynamicEDT3D::initializeEmpty ( int  _sizeX,
int  _sizeY,
int  sizeZ,
bool  initGridMap = true 
)

Initialization with an empty map.

Definition at line 139 of file dynamicEDT3D.cpp.

void DynamicEDT3D::initializeMap ( int  _sizeX,
int  _sizeY,
int  sizeZ,
bool ***  _gridMap 
)

Initialization with a given binary map (false==free, true==occupied)

Definition at line 209 of file dynamicEDT3D.cpp.

void DynamicEDT3D::inspectCellPropagate ( int &  nx,
int &  ny,
int &  nz,
dataCell c,
bool  updateRealDist 
)
inlineprotected

Definition at line 480 of file dynamicEDT3D.cpp.

void DynamicEDT3D::inspectCellRaise ( int &  nx,
int &  ny,
int &  nz,
bool  updateRealDist 
)
inlineprotected

Definition at line 362 of file dynamicEDT3D.cpp.

bool DynamicEDT3D::isOccupied ( int  x,
int  y,
int  z 
) const

checks whether the specficied location is occupied

Definition at line 584 of file dynamicEDT3D.cpp.

bool DynamicEDT3D::isOccupied ( int &  x,
int &  y,
int &  z,
dataCell c 
)
inlineprivate

Definition at line 589 of file dynamicEDT3D.cpp.

void DynamicEDT3D::occupyCell ( int  x,
int  y,
int  z 
)

add an obstacle at the specified cell coordinate

Definition at line 255 of file dynamicEDT3D.cpp.

void DynamicEDT3D::propagateCell ( INTPOINT3D p,
dataCell c,
bool  updateRealDist 
)
inlineprotected

Definition at line 385 of file dynamicEDT3D.cpp.

void DynamicEDT3D::raiseCell ( INTPOINT3D p,
dataCell c,
bool  updateRealDist 
)
inlineprotected

Definition at line 338 of file dynamicEDT3D.cpp.

void DynamicEDT3D::removeObstacle ( int  x,
int  y,
int  z 
)
protected

Definition at line 276 of file dynamicEDT3D.cpp.

void DynamicEDT3D::setObstacle ( int  x,
int  y,
int  z 
)
protected

Definition at line 265 of file dynamicEDT3D.cpp.

void DynamicEDT3D::update ( bool  updateRealDist = true)
virtual

update distance map to reflect the changes

Reimplemented in DynamicEDTOctomap.

Definition at line 313 of file dynamicEDT3D.cpp.

Member Data Documentation

std::vector<INTPOINT3D> DynamicEDT3D::addList
private

Definition at line 125 of file dynamicEDT3D.h.

dataCell*** DynamicEDT3D::data
protected

Definition at line 137 of file dynamicEDT3D.h.

int DynamicEDT3D::distanceInCellsValue_Error = -1
static

distance value returned when requesting distance in cell units for a cell outside the map

Definition at line 91 of file dynamicEDT3D.h.

float DynamicEDT3D::distanceValue_Error = -1.0
static

distance value returned when requesting distance for a cell outside the map

Definition at line 89 of file dynamicEDT3D.h.

double DynamicEDT3D::doubleThreshold
protected

Definition at line 142 of file dynamicEDT3D.h.

bool*** DynamicEDT3D::gridMap
protected

Definition at line 138 of file dynamicEDT3D.h.

std::vector<INTPOINT3D> DynamicEDT3D::lastObstacles
private

Definition at line 126 of file dynamicEDT3D.h.

double DynamicEDT3D::maxDist
protected

Definition at line 145 of file dynamicEDT3D.h.

int DynamicEDT3D::maxDist_squared
protected

Definition at line 146 of file dynamicEDT3D.h.

BucketPrioQueue<INTPOINT3D> DynamicEDT3D::open
private

Definition at line 122 of file dynamicEDT3D.h.

int DynamicEDT3D::padding
protected

Definition at line 141 of file dynamicEDT3D.h.

std::vector<INTPOINT3D> DynamicEDT3D::removeList
private

Definition at line 124 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeX
protected

Definition at line 130 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeXm1
protected

Definition at line 133 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeY
protected

Definition at line 131 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeYm1
protected

Definition at line 134 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeZ
protected

Definition at line 132 of file dynamicEDT3D.h.

int DynamicEDT3D::sizeZm1
protected

Definition at line 135 of file dynamicEDT3D.h.

double DynamicEDT3D::sqrt2
protected

Definition at line 144 of file dynamicEDT3D.h.


The documentation for this class was generated from the following files:


dynamicEDT3D
Author(s): Christoph Sprunk
autogenerated on Mon Jun 10 2019 14:00:23