Classes | Functions
grid_map::signed_distance_field::internal Namespace Reference

Classes

struct  DistanceLowerBound
 

Functions

void computePixelDistance2dTranspose (Matrix &input, Matrix &distanceTranspose)
 
void distanceTransform_1d_inplace (Eigen::Ref< Eigen::VectorXf > squareDistance1d, std::vector< DistanceLowerBound > &lowerBounds)
 
void extractDistances (Eigen::Ref< Eigen::VectorXf > squareDistance1d, std::vector< DistanceLowerBound >::const_iterator lowerBoundIt, Eigen::Index start)
 
void extractSquareDistances (Eigen::Ref< Eigen::VectorXf > squareDistance1d, std::vector< DistanceLowerBound >::const_iterator lowerBoundIt, Eigen::Index start)
 
std::vector< DistanceLowerBound >::iterator fillLowerBounds (const Eigen::Ref< Eigen::VectorXf > &squareDistance1d, std::vector< DistanceLowerBound > &lowerBounds, Eigen::Index start)
 
void initializeObstacleDistance (const Matrix &elevationMap, Matrix &result, float height, float resolution)
 
void initializeObstacleFreeDistance (const Matrix &elevationMap, Matrix &result, float height, float resolution)
 
float intersectionOffsetFromOrigin (float p, float fp)
 
float intersectionPointRightSideOfOrigin (float p, float fp)
 
Eigen::Index lastZeroFromFront (const Eigen::Ref< Eigen::VectorXf > &squareDistance1d)
 
void pixelDistanceToFreeSpaceTranspose (const Matrix &elevationMap, Matrix &sdfObstacleFree, Matrix &tmp, float height, float resolution)
 
void pixelDistanceToObstacleTranspose (const Matrix &elevationMap, Matrix &sdfObstacleTranspose, Matrix &tmp, float height, float resolution)
 
Matrix signedDistanceFromOccupancyTranspose (const Eigen::Matrix< bool, -1, -1 > &occupancyGrid, float resolution)
 
void squaredDistanceTransform_1d_inplace (Eigen::Ref< Eigen::VectorXf > squareDistance1d, std::vector< DistanceLowerBound > &lowerBounds)
 

Function Documentation

◆ computePixelDistance2dTranspose()

void grid_map::signed_distance_field::internal::computePixelDistance2dTranspose ( Matrix input,
Matrix distanceTranspose 
)

Definition at line 169 of file SignedDistance2d.cpp.

◆ distanceTransform_1d_inplace()

void grid_map::signed_distance_field::internal::distanceTransform_1d_inplace ( Eigen::Ref< Eigen::VectorXf >  squareDistance1d,
std::vector< DistanceLowerBound > &  lowerBounds 
)
inline

Same as above, but takes sqrt as final step (within the same loop)

Parameters
squareDistance1d: input as squared distance, output is the distance after sqrt.
lowerBounds: work vector

Definition at line 159 of file SignedDistance2d.cpp.

◆ extractDistances()

void grid_map::signed_distance_field::internal::extractDistances ( Eigen::Ref< Eigen::VectorXf >  squareDistance1d,
std::vector< DistanceLowerBound >::const_iterator  lowerBoundIt,
Eigen::Index  start 
)

Same as extractSquareDistances, but takes the sqrt as a final step. Because several cells will have a value of 0.0 (obstacle / free space label), we can skip the sqrt computation for those.

Definition at line 100 of file SignedDistance2d.cpp.

◆ extractSquareDistances()

void grid_map::signed_distance_field::internal::extractSquareDistances ( Eigen::Ref< Eigen::VectorXf >  squareDistance1d,
std::vector< DistanceLowerBound >::const_iterator  lowerBoundIt,
Eigen::Index  start 
)

Definition at line 71 of file SignedDistance2d.cpp.

◆ fillLowerBounds()

std::vector<DistanceLowerBound>::iterator grid_map::signed_distance_field::internal::fillLowerBounds ( const Eigen::Ref< Eigen::VectorXf > &  squareDistance1d,
std::vector< DistanceLowerBound > &  lowerBounds,
Eigen::Index  start 
)

1D Euclidean Distance Transform based on: http://cs.brown.edu/people/pfelzens/dt/ Adapted to work on Eigen objects directly Optimized computation of s. Some optimization to not keep track of bounds that lie fully outside the grid.

Definition at line 30 of file SignedDistance2d.cpp.

◆ initializeObstacleDistance()

void grid_map::signed_distance_field::internal::initializeObstacleDistance ( const Matrix elevationMap,
Matrix result,
float  height,
float  resolution 
)

Definition at line 190 of file SignedDistance2d.cpp.

◆ initializeObstacleFreeDistance()

void grid_map::signed_distance_field::internal::initializeObstacleFreeDistance ( const Matrix elevationMap,
Matrix result,
float  height,
float  resolution 
)

Definition at line 203 of file SignedDistance2d.cpp.

◆ intersectionOffsetFromOrigin()

float grid_map::signed_distance_field::internal::intersectionOffsetFromOrigin ( float  p,
float  fp 
)
inline

Return equidistancepoint between origin and pixel p with offset fp

Definition at line 73 of file PixelBorderDistance.hpp.

◆ intersectionPointRightSideOfOrigin()

float grid_map::signed_distance_field::internal::intersectionPointRightSideOfOrigin ( float  p,
float  fp 
)
inline

Return equidistancepoint between origin and pixel p (with p > 0) with offset fp

Definition at line 43 of file PixelBorderDistance.hpp.

◆ lastZeroFromFront()

Eigen::Index grid_map::signed_distance_field::internal::lastZeroFromFront ( const Eigen::Ref< Eigen::VectorXf > &  squareDistance1d)

Find the location of the last zero value from the front

Definition at line 128 of file SignedDistance2d.cpp.

◆ pixelDistanceToFreeSpaceTranspose()

void grid_map::signed_distance_field::internal::pixelDistanceToFreeSpaceTranspose ( const Matrix elevationMap,
Matrix sdfObstacleFree,
Matrix tmp,
float  height,
float  resolution 
)

Definition at line 215 of file SignedDistance2d.cpp.

◆ pixelDistanceToObstacleTranspose()

void grid_map::signed_distance_field::internal::pixelDistanceToObstacleTranspose ( const Matrix elevationMap,
Matrix sdfObstacleTranspose,
Matrix tmp,
float  height,
float  resolution 
)

Definition at line 220 of file SignedDistance2d.cpp.

◆ signedDistanceFromOccupancyTranspose()

Matrix grid_map::signed_distance_field::internal::signedDistanceFromOccupancyTranspose ( const Eigen::Matrix< bool, -1, -1 > &  occupancyGrid,
float  resolution 
)

Definition at line 226 of file SignedDistance2d.cpp.

◆ squaredDistanceTransform_1d_inplace()

void grid_map::signed_distance_field::internal::squaredDistanceTransform_1d_inplace ( Eigen::Ref< Eigen::VectorXf >  squareDistance1d,
std::vector< DistanceLowerBound > &  lowerBounds 
)
inline

Definition at line 143 of file SignedDistance2d.cpp.



grid_map_sdf
Author(s): Takahiro Miki , Péter Fankhauser
autogenerated on Wed Jul 5 2023 02:23:42